@abstractframework/code 0.12.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
var sx=Object.defineProperty;var rx=(e,t,n)=>t in e?sx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Dt=(e,t,n)=>rx(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"]'))s(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const u of l.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&s(u)}).observe(document,{childList:!0,subtree:!0});function n(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function s(i){if(i.ep)return;i.ep=!0;const l=n(i);fetch(i.href,l)}})();function ow(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var lf={exports:{}},Ci={},cf={exports:{}},tt={};/**
|
|
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 hg;function ax(){if(hg)return tt;hg=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=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"),g=Symbol.iterator;function b(R){return R===null||typeof R!="object"?null:(R=g&&R[g]||R["@@iterator"],typeof R=="function"?R:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,x={};function N(R,K,ne){this.props=R,this.context=K,this.refs=x,this.updater=ne||v}N.prototype.isReactComponent={},N.prototype.setState=function(R,K){if(typeof R!="object"&&typeof R!="function"&&R!=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,R,K,"setState")},N.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function k(){}k.prototype=N.prototype;function T(R,K,ne){this.props=R,this.context=K,this.refs=x,this.updater=ne||v}var $=T.prototype=new k;$.constructor=T,C($,N.prototype),$.isPureReactComponent=!0;var j=Array.isArray,A=Object.prototype.hasOwnProperty,S={current:null},M={key:!0,ref:!0,__self:!0,__source:!0};function I(R,K,ne){var ue,oe={},ve=null,Ne=null;if(K!=null)for(ue in K.ref!==void 0&&(Ne=K.ref),K.key!==void 0&&(ve=""+K.key),K)A.call(K,ue)&&!M.hasOwnProperty(ue)&&(oe[ue]=K[ue]);var q=arguments.length-2;if(q===1)oe.children=ne;else if(1<q){for(var be=Array(q),xe=0;xe<q;xe++)be[xe]=arguments[xe+2];oe.children=be}if(R&&R.defaultProps)for(ue in q=R.defaultProps,q)oe[ue]===void 0&&(oe[ue]=q[ue]);return{$$typeof:e,type:R,key:ve,ref:Ne,props:oe,_owner:S.current}}function z(R,K){return{$$typeof:e,type:R.type,key:K,ref:R.ref,props:R.props,_owner:R._owner}}function V(R){return typeof R=="object"&&R!==null&&R.$$typeof===e}function Z(R){var K={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(ne){return K[ne]})}var ie=/\/+/g;function F(R,K){return typeof R=="object"&&R!==null&&R.key!=null?Z(""+R.key):K.toString(36)}function D(R,K,ne,ue,oe){var ve=typeof R;(ve==="undefined"||ve==="boolean")&&(R=null);var Ne=!1;if(R===null)Ne=!0;else switch(ve){case"string":case"number":Ne=!0;break;case"object":switch(R.$$typeof){case e:case t:Ne=!0}}if(Ne)return Ne=R,oe=oe(Ne),R=ue===""?"."+F(Ne,0):ue,j(oe)?(ne="",R!=null&&(ne=R.replace(ie,"$&/")+"/"),D(oe,K,ne,"",function(xe){return xe})):oe!=null&&(V(oe)&&(oe=z(oe,ne+(!oe.key||Ne&&Ne.key===oe.key?"":(""+oe.key).replace(ie,"$&/")+"/")+R)),K.push(oe)),1;if(Ne=0,ue=ue===""?".":ue+":",j(R))for(var q=0;q<R.length;q++){ve=R[q];var be=ue+F(ve,q);Ne+=D(ve,K,ne,be,oe)}else if(be=b(R),typeof be=="function")for(R=be.call(R),q=0;!(ve=R.next()).done;)ve=ve.value,be=ue+F(ve,q++),Ne+=D(ve,K,ne,be,oe);else if(ve==="object")throw K=String(R),Error("Objects are not valid as a React child (found: "+(K==="[object Object]"?"object with keys {"+Object.keys(R).join(", ")+"}":K)+"). If you meant to render a collection of children, use an array instead.");return Ne}function L(R,K,ne){if(R==null)return R;var ue=[],oe=0;return D(R,ue,"","",function(ve){return K.call(ne,ve,oe++)}),ue}function J(R){if(R._status===-1){var K=R._result;K=K(),K.then(function(ne){(R._status===0||R._status===-1)&&(R._status=1,R._result=ne)},function(ne){(R._status===0||R._status===-1)&&(R._status=2,R._result=ne)}),R._status===-1&&(R._status=0,R._result=K)}if(R._status===1)return R._result.default;throw R._result}var B={current:null},Y={transition:null},te={ReactCurrentDispatcher:B,ReactCurrentBatchConfig:Y,ReactCurrentOwner:S};function W(){throw Error("act(...) is not supported in production builds of React.")}return tt.Children={map:L,forEach:function(R,K,ne){L(R,function(){K.apply(this,arguments)},ne)},count:function(R){var K=0;return L(R,function(){K++}),K},toArray:function(R){return L(R,function(K){return K})||[]},only:function(R){if(!V(R))throw Error("React.Children.only expected to receive a single React element child.");return R}},tt.Component=N,tt.Fragment=n,tt.Profiler=i,tt.PureComponent=T,tt.StrictMode=s,tt.Suspense=f,tt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=te,tt.act=W,tt.cloneElement=function(R,K,ne){if(R==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+R+".");var ue=C({},R.props),oe=R.key,ve=R.ref,Ne=R._owner;if(K!=null){if(K.ref!==void 0&&(ve=K.ref,Ne=S.current),K.key!==void 0&&(oe=""+K.key),R.type&&R.type.defaultProps)var q=R.type.defaultProps;for(be in K)A.call(K,be)&&!M.hasOwnProperty(be)&&(ue[be]=K[be]===void 0&&q!==void 0?q[be]:K[be])}var be=arguments.length-2;if(be===1)ue.children=ne;else if(1<be){q=Array(be);for(var xe=0;xe<be;xe++)q[xe]=arguments[xe+2];ue.children=q}return{$$typeof:e,type:R.type,key:oe,ref:ve,props:ue,_owner:Ne}},tt.createContext=function(R){return R={$$typeof:u,_currentValue:R,_currentValue2:R,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},R.Provider={$$typeof:l,_context:R},R.Consumer=R},tt.createElement=I,tt.createFactory=function(R){var K=I.bind(null,R);return K.type=R,K},tt.createRef=function(){return{current:null}},tt.forwardRef=function(R){return{$$typeof:d,render:R}},tt.isValidElement=V,tt.lazy=function(R){return{$$typeof:p,_payload:{_status:-1,_result:R},_init:J}},tt.memo=function(R,K){return{$$typeof:m,type:R,compare:K===void 0?null:K}},tt.startTransition=function(R){var K=Y.transition;Y.transition={};try{R()}finally{Y.transition=K}},tt.unstable_act=W,tt.useCallback=function(R,K){return B.current.useCallback(R,K)},tt.useContext=function(R){return B.current.useContext(R)},tt.useDebugValue=function(){},tt.useDeferredValue=function(R){return B.current.useDeferredValue(R)},tt.useEffect=function(R,K){return B.current.useEffect(R,K)},tt.useId=function(){return B.current.useId()},tt.useImperativeHandle=function(R,K,ne){return B.current.useImperativeHandle(R,K,ne)},tt.useInsertionEffect=function(R,K){return B.current.useInsertionEffect(R,K)},tt.useLayoutEffect=function(R,K){return B.current.useLayoutEffect(R,K)},tt.useMemo=function(R,K){return B.current.useMemo(R,K)},tt.useReducer=function(R,K,ne){return B.current.useReducer(R,K,ne)},tt.useRef=function(R){return B.current.useRef(R)},tt.useState=function(R){return B.current.useState(R)},tt.useSyncExternalStore=function(R,K,ne){return B.current.useSyncExternalStore(R,K,ne)},tt.useTransition=function(){return B.current.useTransition()},tt.version="18.3.1",tt}var mg;function $h(){return mg||(mg=1,cf.exports=ax()),cf.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 pg;function ox(){if(pg)return Ci;pg=1;var e=$h(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function u(d,f,m){var p,g={},b=null,v=null;m!==void 0&&(b=""+m),f.key!==void 0&&(b=""+f.key),f.ref!==void 0&&(v=f.ref);for(p in f)s.call(f,p)&&!l.hasOwnProperty(p)&&(g[p]=f[p]);if(d&&d.defaultProps)for(p in f=d.defaultProps,f)g[p]===void 0&&(g[p]=f[p]);return{$$typeof:t,type:d,key:b,ref:v,props:g,_owner:i.current}}return Ci.Fragment=n,Ci.jsx=u,Ci.jsxs=u,Ci}var gg;function ix(){return gg||(gg=1,lf.exports=ox()),lf.exports}var a=ix(),y=$h();const gt=ow(y);var Ec={},uf={exports:{}},On={},df={exports:{}},ff={};/**
|
|
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 yg;function lx(){return yg||(yg=1,(function(e){function t(Y,te){var W=Y.length;Y.push(te);e:for(;0<W;){var R=W-1>>>1,K=Y[R];if(0<i(K,te))Y[R]=te,Y[W]=K,W=R;else break e}}function n(Y){return Y.length===0?null:Y[0]}function s(Y){if(Y.length===0)return null;var te=Y[0],W=Y.pop();if(W!==te){Y[0]=W;e:for(var R=0,K=Y.length,ne=K>>>1;R<ne;){var ue=2*(R+1)-1,oe=Y[ue],ve=ue+1,Ne=Y[ve];if(0>i(oe,W))ve<K&&0>i(Ne,oe)?(Y[R]=Ne,Y[ve]=W,R=ve):(Y[R]=oe,Y[ue]=W,R=ue);else if(ve<K&&0>i(Ne,W))Y[R]=Ne,Y[ve]=W,R=ve;else break e}}return te}function i(Y,te){var W=Y.sortIndex-te.sortIndex;return W!==0?W:Y.id-te.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var u=Date,d=u.now();e.unstable_now=function(){return u.now()-d}}var f=[],m=[],p=1,g=null,b=3,v=!1,C=!1,x=!1,N=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,T=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function $(Y){for(var te=n(m);te!==null;){if(te.callback===null)s(m);else if(te.startTime<=Y)s(m),te.sortIndex=te.expirationTime,t(f,te);else break;te=n(m)}}function j(Y){if(x=!1,$(Y),!C)if(n(f)!==null)C=!0,J(A);else{var te=n(m);te!==null&&B(j,te.startTime-Y)}}function A(Y,te){C=!1,x&&(x=!1,k(I),I=-1),v=!0;var W=b;try{for($(te),g=n(f);g!==null&&(!(g.expirationTime>te)||Y&&!Z());){var R=g.callback;if(typeof R=="function"){g.callback=null,b=g.priorityLevel;var K=R(g.expirationTime<=te);te=e.unstable_now(),typeof K=="function"?g.callback=K:g===n(f)&&s(f),$(te)}else s(f);g=n(f)}if(g!==null)var ne=!0;else{var ue=n(m);ue!==null&&B(j,ue.startTime-te),ne=!1}return ne}finally{g=null,b=W,v=!1}}var S=!1,M=null,I=-1,z=5,V=-1;function Z(){return!(e.unstable_now()-V<z)}function ie(){if(M!==null){var Y=e.unstable_now();V=Y;var te=!0;try{te=M(!0,Y)}finally{te?F():(S=!1,M=null)}}else S=!1}var F;if(typeof T=="function")F=function(){T(ie)};else if(typeof MessageChannel<"u"){var D=new MessageChannel,L=D.port2;D.port1.onmessage=ie,F=function(){L.postMessage(null)}}else F=function(){N(ie,0)};function J(Y){M=Y,S||(S=!0,F())}function B(Y,te){I=N(function(){Y(e.unstable_now())},te)}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(Y){Y.callback=null},e.unstable_continueExecution=function(){C||v||(C=!0,J(A))},e.unstable_forceFrameRate=function(Y){0>Y||125<Y?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):z=0<Y?Math.floor(1e3/Y):5},e.unstable_getCurrentPriorityLevel=function(){return b},e.unstable_getFirstCallbackNode=function(){return n(f)},e.unstable_next=function(Y){switch(b){case 1:case 2:case 3:var te=3;break;default:te=b}var W=b;b=te;try{return Y()}finally{b=W}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(Y,te){switch(Y){case 1:case 2:case 3:case 4:case 5:break;default:Y=3}var W=b;b=Y;try{return te()}finally{b=W}},e.unstable_scheduleCallback=function(Y,te,W){var R=e.unstable_now();switch(typeof W=="object"&&W!==null?(W=W.delay,W=typeof W=="number"&&0<W?R+W:R):W=R,Y){case 1:var K=-1;break;case 2:K=250;break;case 5:K=1073741823;break;case 4:K=1e4;break;default:K=5e3}return K=W+K,Y={id:p++,callback:te,priorityLevel:Y,startTime:W,expirationTime:K,sortIndex:-1},W>R?(Y.sortIndex=W,t(m,Y),n(f)===null&&Y===n(m)&&(x?(k(I),I=-1):x=!0,B(j,W-R))):(Y.sortIndex=K,t(f,Y),C||v||(C=!0,J(A))),Y},e.unstable_shouldYield=Z,e.unstable_wrapCallback=function(Y){var te=b;return function(){var W=b;b=te;try{return Y.apply(this,arguments)}finally{b=W}}}})(ff)),ff}var wg;function cx(){return wg||(wg=1,df.exports=lx()),df.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 vg;function ux(){if(vg)return On;vg=1;var e=$h(),t=cx();function n(r){for(var o="https://reactjs.org/docs/error-decoder.html?invariant="+r,c=1;c<arguments.length;c++)o+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+r+"; visit "+o+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var s=new Set,i={};function l(r,o){u(r,o),u(r+"Capture",o)}function u(r,o){for(i[r]=o,r=0;r<o.length;r++)s.add(o[r])}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={},g={};function b(r){return f.call(g,r)?!0:f.call(p,r)?!1:m.test(r)?g[r]=!0:(p[r]=!0,!1)}function v(r,o,c,h){if(c!==null&&c.type===0)return!1;switch(typeof o){case"function":case"symbol":return!0;case"boolean":return h?!1:c!==null?!c.acceptsBooleans:(r=r.toLowerCase().slice(0,5),r!=="data-"&&r!=="aria-");default:return!1}}function C(r,o,c,h){if(o===null||typeof o>"u"||v(r,o,c,h))return!0;if(h)return!1;if(c!==null)switch(c.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(r,o,c,h,w,_,E){this.acceptsBooleans=o===2||o===3||o===4,this.attributeName=h,this.attributeNamespace=w,this.mustUseProperty=c,this.propertyName=r,this.type=o,this.sanitizeURL=_,this.removeEmptyString=E}var N={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(r){N[r]=new x(r,0,!1,r,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(r){var o=r[0];N[o]=new x(o,1,!1,r[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(r){N[r]=new x(r,2,!1,r.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(r){N[r]=new x(r,2,!1,r,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(r){N[r]=new x(r,3,!1,r.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(r){N[r]=new x(r,3,!0,r,null,!1,!1)}),["capture","download"].forEach(function(r){N[r]=new x(r,4,!1,r,null,!1,!1)}),["cols","rows","size","span"].forEach(function(r){N[r]=new x(r,6,!1,r,null,!1,!1)}),["rowSpan","start"].forEach(function(r){N[r]=new x(r,5,!1,r.toLowerCase(),null,!1,!1)});var k=/[\-:]([a-z])/g;function T(r){return r[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(r){var o=r.replace(k,T);N[o]=new x(o,1,!1,r,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(r){var o=r.replace(k,T);N[o]=new x(o,1,!1,r,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(r){var o=r.replace(k,T);N[o]=new x(o,1,!1,r,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(r){N[r]=new x(r,1,!1,r.toLowerCase(),null,!1,!1)}),N.xlinkHref=new x("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(r){N[r]=new x(r,1,!1,r.toLowerCase(),null,!0,!0)});function $(r,o,c,h){var w=N.hasOwnProperty(o)?N[o]:null;(w!==null?w.type!==0:h||!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")&&(C(o,c,w,h)&&(c=null),h||w===null?b(o)&&(c===null?r.removeAttribute(o):r.setAttribute(o,""+c)):w.mustUseProperty?r[w.propertyName]=c===null?w.type===3?!1:"":c:(o=w.attributeName,h=w.attributeNamespace,c===null?r.removeAttribute(o):(w=w.type,c=w===3||w===4&&c===!0?"":""+c,h?r.setAttributeNS(h,o,c):r.setAttribute(o,c))))}var j=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,A=Symbol.for("react.element"),S=Symbol.for("react.portal"),M=Symbol.for("react.fragment"),I=Symbol.for("react.strict_mode"),z=Symbol.for("react.profiler"),V=Symbol.for("react.provider"),Z=Symbol.for("react.context"),ie=Symbol.for("react.forward_ref"),F=Symbol.for("react.suspense"),D=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),B=Symbol.for("react.offscreen"),Y=Symbol.iterator;function te(r){return r===null||typeof r!="object"?null:(r=Y&&r[Y]||r["@@iterator"],typeof r=="function"?r:null)}var W=Object.assign,R;function K(r){if(R===void 0)try{throw Error()}catch(c){var o=c.stack.trim().match(/\n( *(at )?)/);R=o&&o[1]||""}return`
|
|
34
|
-
`+R+r}var ne=!1;function ue(r,o){if(!r||ne)return"";ne=!0;var c=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(re){var h=re}Reflect.construct(r,[],o)}else{try{o.call()}catch(re){h=re}r.call(o.prototype)}else{try{throw Error()}catch(re){h=re}r()}}catch(re){if(re&&h&&typeof re.stack=="string"){for(var w=re.stack.split(`
|
|
35
|
-
`),_=h.stack.split(`
|
|
36
|
-
`),E=w.length-1,P=_.length-1;1<=E&&0<=P&&w[E]!==_[P];)P--;for(;1<=E&&0<=P;E--,P--)if(w[E]!==_[P]){if(E!==1||P!==1)do if(E--,P--,0>P||w[E]!==_[P]){var U=`
|
|
37
|
-
`+w[E].replace(" at new "," at ");return r.displayName&&U.includes("<anonymous>")&&(U=U.replace("<anonymous>",r.displayName)),U}while(1<=E&&0<=P);break}}}finally{ne=!1,Error.prepareStackTrace=c}return(r=r?r.displayName||r.name:"")?K(r):""}function oe(r){switch(r.tag){case 5:return K(r.type);case 16:return K("Lazy");case 13:return K("Suspense");case 19:return K("SuspenseList");case 0:case 2:case 15:return r=ue(r.type,!1),r;case 11:return r=ue(r.type.render,!1),r;case 1:return r=ue(r.type,!0),r;default:return""}}function ve(r){if(r==null)return null;if(typeof r=="function")return r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case M:return"Fragment";case S:return"Portal";case z:return"Profiler";case I:return"StrictMode";case F:return"Suspense";case D:return"SuspenseList"}if(typeof r=="object")switch(r.$$typeof){case Z:return(r.displayName||"Context")+".Consumer";case V:return(r._context.displayName||"Context")+".Provider";case ie:var o=r.render;return r=r.displayName,r||(r=o.displayName||o.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case L:return o=r.displayName||null,o!==null?o:ve(r.type)||"Memo";case J:o=r._payload,r=r._init;try{return ve(r(o))}catch{}}return null}function Ne(r){var o=r.type;switch(r.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 r=o.render,r=r.displayName||r.name||"",o.displayName||(r!==""?"ForwardRef("+r+")":"ForwardRef");case 7:return"Fragment";case 5:return o;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ve(o);case 8:return o===I?"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 q(r){switch(typeof r){case"boolean":case"number":case"string":case"undefined":return r;case"object":return r;default:return""}}function be(r){var o=r.type;return(r=r.nodeName)&&r.toLowerCase()==="input"&&(o==="checkbox"||o==="radio")}function xe(r){var o=be(r)?"checked":"value",c=Object.getOwnPropertyDescriptor(r.constructor.prototype,o),h=""+r[o];if(!r.hasOwnProperty(o)&&typeof c<"u"&&typeof c.get=="function"&&typeof c.set=="function"){var w=c.get,_=c.set;return Object.defineProperty(r,o,{configurable:!0,get:function(){return w.call(this)},set:function(E){h=""+E,_.call(this,E)}}),Object.defineProperty(r,o,{enumerable:c.enumerable}),{getValue:function(){return h},setValue:function(E){h=""+E},stopTracking:function(){r._valueTracker=null,delete r[o]}}}}function Pe(r){r._valueTracker||(r._valueTracker=xe(r))}function Qe(r){if(!r)return!1;var o=r._valueTracker;if(!o)return!0;var c=o.getValue(),h="";return r&&(h=be(r)?r.checked?"true":"false":r.value),r=h,r!==c?(o.setValue(r),!0):!1}function He(r){if(r=r||(typeof document<"u"?document:void 0),typeof r>"u")return null;try{return r.activeElement||r.body}catch{return r.body}}function qe(r,o){var c=o.checked;return W({},o,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:c??r._wrapperState.initialChecked})}function ge(r,o){var c=o.defaultValue==null?"":o.defaultValue,h=o.checked!=null?o.checked:o.defaultChecked;c=q(o.value!=null?o.value:c),r._wrapperState={initialChecked:h,initialValue:c,controlled:o.type==="checkbox"||o.type==="radio"?o.checked!=null:o.value!=null}}function $e(r,o){o=o.checked,o!=null&&$(r,"checked",o,!1)}function nt(r,o){$e(r,o);var c=q(o.value),h=o.type;if(c!=null)h==="number"?(c===0&&r.value===""||r.value!=c)&&(r.value=""+c):r.value!==""+c&&(r.value=""+c);else if(h==="submit"||h==="reset"){r.removeAttribute("value");return}o.hasOwnProperty("value")?Rt(r,o.type,c):o.hasOwnProperty("defaultValue")&&Rt(r,o.type,q(o.defaultValue)),o.checked==null&&o.defaultChecked!=null&&(r.defaultChecked=!!o.defaultChecked)}function et(r,o,c){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=""+r._wrapperState.initialValue,c||o===r.value||(r.value=o),r.defaultValue=o}c=r.name,c!==""&&(r.name=""),r.defaultChecked=!!r._wrapperState.initialChecked,c!==""&&(r.name=c)}function Rt(r,o,c){(o!=="number"||He(r.ownerDocument)!==r)&&(c==null?r.defaultValue=""+r._wrapperState.initialValue:r.defaultValue!==""+c&&(r.defaultValue=""+c))}var ce=Array.isArray;function fe(r,o,c,h){if(r=r.options,o){o={};for(var w=0;w<c.length;w++)o["$"+c[w]]=!0;for(c=0;c<r.length;c++)w=o.hasOwnProperty("$"+r[c].value),r[c].selected!==w&&(r[c].selected=w),w&&h&&(r[c].defaultSelected=!0)}else{for(c=""+q(c),o=null,w=0;w<r.length;w++){if(r[w].value===c){r[w].selected=!0,h&&(r[w].defaultSelected=!0);return}o!==null||r[w].disabled||(o=r[w])}o!==null&&(o.selected=!0)}}function G(r,o){if(o.dangerouslySetInnerHTML!=null)throw Error(n(91));return W({},o,{value:void 0,defaultValue:void 0,children:""+r._wrapperState.initialValue})}function le(r,o){var c=o.value;if(c==null){if(c=o.children,o=o.defaultValue,c!=null){if(o!=null)throw Error(n(92));if(ce(c)){if(1<c.length)throw Error(n(93));c=c[0]}o=c}o==null&&(o=""),c=o}r._wrapperState={initialValue:q(c)}}function he(r,o){var c=q(o.value),h=q(o.defaultValue);c!=null&&(c=""+c,c!==r.value&&(r.value=c),o.defaultValue==null&&r.defaultValue!==c&&(r.defaultValue=c)),h!=null&&(r.defaultValue=""+h)}function Q(r){var o=r.textContent;o===r._wrapperState.initialValue&&o!==""&&o!==null&&(r.value=o)}function _e(r){switch(r){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 ae(r,o){return r==null||r==="http://www.w3.org/1999/xhtml"?_e(o):r==="http://www.w3.org/2000/svg"&&o==="foreignObject"?"http://www.w3.org/1999/xhtml":r}var je,Le=(function(r){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(o,c,h,w){MSApp.execUnsafeLocalFunction(function(){return r(o,c,h,w)})}:r})(function(r,o){if(r.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in r)r.innerHTML=o;else{for(je=je||document.createElement("div"),je.innerHTML="<svg>"+o.valueOf().toString()+"</svg>",o=je.firstChild;r.firstChild;)r.removeChild(r.firstChild);for(;o.firstChild;)r.appendChild(o.firstChild)}});function Fe(r,o){if(o){var c=r.firstChild;if(c&&c===r.lastChild&&c.nodeType===3){c.nodeValue=o;return}}r.textContent=o}var Xe={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},Ie=["Webkit","ms","Moz","O"];Object.keys(Xe).forEach(function(r){Ie.forEach(function(o){o=o+r.charAt(0).toUpperCase()+r.substring(1),Xe[o]=Xe[r]})});function Ge(r,o,c){return o==null||typeof o=="boolean"||o===""?"":c||typeof o!="number"||o===0||Xe.hasOwnProperty(r)&&Xe[r]?(""+o).trim():o+"px"}function De(r,o){r=r.style;for(var c in o)if(o.hasOwnProperty(c)){var h=c.indexOf("--")===0,w=Ge(c,o[c],h);c==="float"&&(c="cssFloat"),h?r.setProperty(c,w):r[c]=w}}var mt=W({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 xt(r,o){if(o){if(mt[r]&&(o.children!=null||o.dangerouslySetInnerHTML!=null))throw Error(n(137,r));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 kt(r,o){if(r.indexOf("-")===-1)return typeof o.is=="string";switch(r){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 Lt=null;function ks(r){return r=r.target||r.srcElement||window,r.correspondingUseElement&&(r=r.correspondingUseElement),r.nodeType===3?r.parentNode:r}var Po=null,Yn=null,Ps=null;function Ds(r){if(r=fi(r)){if(typeof Po!="function")throw Error(n(280));var o=r.stateNode;o&&(o=Ul(o),Po(r.stateNode,r.type,o))}}function Xt(r){Yn?Ps?Ps.push(r):Ps=[r]:Yn=r}function ka(){if(Yn){var r=Yn,o=Ps;if(Ps=Yn=null,Ds(r),o)for(r=0;r<o.length;r++)Ds(o[r])}}function Do(r,o){return r(o)}function ar(){}var ja=!1;function Fo(r,o,c){if(ja)return r(o,c);ja=!0;try{return Do(r,o,c)}finally{ja=!1,(Yn!==null||Ps!==null)&&(ar(),ka())}}function js(r,o){var c=r.stateNode;if(c===null)return null;var h=Ul(c);if(h===null)return null;c=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)||(r=r.type,h=!(r==="button"||r==="input"||r==="select"||r==="textarea")),r=!h;break e;default:r=!1}if(r)return null;if(c&&typeof c!="function")throw Error(n(231,o,typeof c));return c}var Sa=!1;if(d)try{var Kt={};Object.defineProperty(Kt,"passive",{get:function(){Sa=!0}}),window.addEventListener("test",Kt,Kt),window.removeEventListener("test",Kt,Kt)}catch{Sa=!1}function Ft(r,o,c,h,w,_,E,P,U){var re=Array.prototype.slice.call(arguments,3);try{o.apply(c,re)}catch(pe){this.onError(pe)}}var zt=!1,us=null,or=!1,Ur=null,zo={onError:function(r){zt=!0,us=r}};function Bo(r,o,c,h,w,_,E,P,U){zt=!1,us=null,Ft.apply(zo,arguments)}function Ru(r,o,c,h,w,_,E,P,U){if(Bo.apply(this,arguments),zt){if(zt){var re=us;zt=!1,us=null}else throw Error(n(198));or||(or=!0,Ur=re)}}function Ss(r){var o=r,c=r;if(r.alternate)for(;o.return;)o=o.return;else{r=o;do o=r,(o.flags&4098)!==0&&(c=o.return),r=o.return;while(r)}return o.tag===3?c:null}function Ns(r){if(r.tag===13){var o=r.memoizedState;if(o===null&&(r=r.alternate,r!==null&&(o=r.memoizedState)),o!==null)return o.dehydrated}return null}function ds(r){if(Ss(r)!==r)throw Error(n(188))}function Wo(r){var o=r.alternate;if(!o){if(o=Ss(r),o===null)throw Error(n(188));return o!==r?null:r}for(var c=r,h=o;;){var w=c.return;if(w===null)break;var _=w.alternate;if(_===null){if(h=w.return,h!==null){c=h;continue}break}if(w.child===_.child){for(_=w.child;_;){if(_===c)return ds(w),r;if(_===h)return ds(w),o;_=_.sibling}throw Error(n(188))}if(c.return!==h.return)c=w,h=_;else{for(var E=!1,P=w.child;P;){if(P===c){E=!0,c=w,h=_;break}if(P===h){E=!0,h=w,c=_;break}P=P.sibling}if(!E){for(P=_.child;P;){if(P===c){E=!0,c=_,h=w;break}if(P===h){E=!0,h=_,c=w;break}P=P.sibling}if(!E)throw Error(n(189))}}if(c.alternate!==h)throw Error(n(190))}if(c.tag!==3)throw Error(n(188));return c.stateNode.current===c?r:o}function Qn(r){return r=Wo(r),r!==null?Uo(r):null}function Uo(r){if(r.tag===5||r.tag===6)return r;for(r=r.child;r!==null;){var o=Uo(r);if(o!==null)return o;r=r.sibling}return null}var Na=t.unstable_scheduleCallback,Ca=t.unstable_cancelCallback,Iu=t.unstable_shouldYield,Vo=t.unstable_requestPaint,jt=t.unstable_now,pl=t.unstable_getCurrentPriorityLevel,Ea=t.unstable_ImmediatePriority,gl=t.unstable_UserBlockingPriority,Aa=t.unstable_NormalPriority,Xn=t.unstable_LowPriority,Ye=t.unstable_IdlePriority,Cs=null,Bt=null;function Ho(r){if(Bt&&typeof Bt.onCommitFiberRoot=="function")try{Bt.onCommitFiberRoot(Cs,r,void 0,(r.current.flags&128)===128)}catch{}}var Wt=Math.clz32?Math.clz32:Fs,$a=Math.log,Ta=Math.LN2;function Fs(r){return r>>>=0,r===0?32:31-($a(r)/Ta|0)|0}var ir=64,Vr=4194304;function un(r){switch(r&-r){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 r&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return r&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return r}}function Zn(r,o){var c=r.pendingLanes;if(c===0)return 0;var h=0,w=r.suspendedLanes,_=r.pingedLanes,E=c&268435455;if(E!==0){var P=E&~w;P!==0?h=un(P):(_&=E,_!==0&&(h=un(_)))}else E=c&~w,E!==0?h=un(E):_!==0&&(h=un(_));if(h===0)return 0;if(o!==0&&o!==h&&(o&w)===0&&(w=h&-h,_=o&-o,w>=_||w===16&&(_&4194240)!==0))return o;if((h&4)!==0&&(h|=c&16),o=r.entangledLanes,o!==0)for(r=r.entanglements,o&=h;0<o;)c=31-Wt(o),w=1<<c,h|=r[c],o&=~w;return h}function lr(r,o){switch(r){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 Go(r,o){for(var c=r.suspendedLanes,h=r.pingedLanes,w=r.expirationTimes,_=r.pendingLanes;0<_;){var E=31-Wt(_),P=1<<E,U=w[E];U===-1?((P&c)===0||(P&h)!==0)&&(w[E]=lr(P,o)):U<=o&&(r.expiredLanes|=P),_&=~P}}function Ra(r){return r=r.pendingLanes&-1073741825,r!==0?r:r&1073741824?1073741824:0}function An(){var r=ir;return ir<<=1,(ir&4194240)===0&&(ir=64),r}function Un(r){for(var o=[],c=0;31>c;c++)o.push(r);return o}function cr(r,o,c){r.pendingLanes|=o,o!==536870912&&(r.suspendedLanes=0,r.pingedLanes=0),r=r.eventTimes,o=31-Wt(o),r[o]=c}function ur(r,o){var c=r.pendingLanes&~o;r.pendingLanes=o,r.suspendedLanes=0,r.pingedLanes=0,r.expiredLanes&=o,r.mutableReadLanes&=o,r.entangledLanes&=o,o=r.entanglements;var h=r.eventTimes;for(r=r.expirationTimes;0<c;){var w=31-Wt(c),_=1<<w;o[w]=0,h[w]=-1,r[w]=-1,c&=~_}}function zs(r,o){var c=r.entangledLanes|=o;for(r=r.entanglements;c;){var h=31-Wt(c),w=1<<h;w&o|r[h]&o&&(r[h]|=o),c&=~w}}var rt=0;function dn(r){return r&=-r,1<r?4<r?(r&268435455)!==0?16:536870912:4:1}var Hr,Ia,Ma,La,Ko,Jo=!1,Gr=[],fs=null,es=null,Vn=null,Ot=new Map,Bs=new Map,St=[],bn="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 qo(r,o){switch(r){case"focusin":case"focusout":fs=null;break;case"dragenter":case"dragleave":es=null;break;case"mouseover":case"mouseout":Vn=null;break;case"pointerover":case"pointerout":Ot.delete(o.pointerId);break;case"gotpointercapture":case"lostpointercapture":Bs.delete(o.pointerId)}}function Kr(r,o,c,h,w,_){return r===null||r.nativeEvent!==_?(r={blockedOn:o,domEventName:c,eventSystemFlags:h,nativeEvent:_,targetContainers:[w]},o!==null&&(o=fi(o),o!==null&&Ia(o)),r):(r.eventSystemFlags|=h,o=r.targetContainers,w!==null&&o.indexOf(w)===-1&&o.push(w),r)}function Mu(r,o,c,h,w){switch(o){case"focusin":return fs=Kr(fs,r,o,c,h,w),!0;case"dragenter":return es=Kr(es,r,o,c,h,w),!0;case"mouseover":return Vn=Kr(Vn,r,o,c,h,w),!0;case"pointerover":var _=w.pointerId;return Ot.set(_,Kr(Ot.get(_)||null,r,o,c,h,w)),!0;case"gotpointercapture":return _=w.pointerId,Bs.set(_,Kr(Bs.get(_)||null,r,o,c,h,w)),!0}return!1}function Oa(r){var o=ea(r.target);if(o!==null){var c=Ss(o);if(c!==null){if(o=c.tag,o===13){if(o=Ns(c),o!==null){r.blockedOn=o,Ko(r.priority,function(){Ma(c)});return}}else if(o===3&&c.stateNode.current.memoizedState.isDehydrated){r.blockedOn=c.tag===3?c.stateNode.containerInfo:null;return}}}r.blockedOn=null}function Jr(r){if(r.blockedOn!==null)return!1;for(var o=r.targetContainers;0<o.length;){var c=Fa(r.domEventName,r.eventSystemFlags,o[0],r.nativeEvent);if(c===null){c=r.nativeEvent;var h=new c.constructor(c.type,c);Lt=h,c.target.dispatchEvent(h),Lt=null}else return o=fi(c),o!==null&&Ia(o),r.blockedOn=c,!1;o.shift()}return!0}function Pa(r,o,c){Jr(r)&&c.delete(o)}function qr(){Jo=!1,fs!==null&&Jr(fs)&&(fs=null),es!==null&&Jr(es)&&(es=null),Vn!==null&&Jr(Vn)&&(Vn=null),Ot.forEach(Pa),Bs.forEach(Pa)}function hs(r,o){r.blockedOn===o&&(r.blockedOn=null,Jo||(Jo=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,qr)))}function Ws(r){function o(w){return hs(w,r)}if(0<Gr.length){hs(Gr[0],r);for(var c=1;c<Gr.length;c++){var h=Gr[c];h.blockedOn===r&&(h.blockedOn=null)}}for(fs!==null&&hs(fs,r),es!==null&&hs(es,r),Vn!==null&&hs(Vn,r),Ot.forEach(o),Bs.forEach(o),c=0;c<St.length;c++)h=St[c],h.blockedOn===r&&(h.blockedOn=null);for(;0<St.length&&(c=St[0],c.blockedOn===null);)Oa(c),c.blockedOn===null&&St.shift()}var ms=j.ReactCurrentBatchConfig,Da=!0;function yl(r,o,c,h){var w=rt,_=ms.transition;ms.transition=null;try{rt=1,Yo(r,o,c,h)}finally{rt=w,ms.transition=_}}function wl(r,o,c,h){var w=rt,_=ms.transition;ms.transition=null;try{rt=4,Yo(r,o,c,h)}finally{rt=w,ms.transition=_}}function Yo(r,o,c,h){if(Da){var w=Fa(r,o,c,h);if(w===null)Qu(r,o,h,Yr,c),qo(r,h);else if(Mu(w,r,o,c,h))h.stopPropagation();else if(qo(r,h),o&4&&-1<bn.indexOf(r)){for(;w!==null;){var _=fi(w);if(_!==null&&Hr(_),_=Fa(r,o,c,h),_===null&&Qu(r,o,h,Yr,c),_===w)break;w=_}w!==null&&h.stopPropagation()}else Qu(r,o,h,null,c)}}var Yr=null;function Fa(r,o,c,h){if(Yr=null,r=ks(h),r=ea(r),r!==null)if(o=Ss(r),o===null)r=null;else if(c=o.tag,c===13){if(r=Ns(o),r!==null)return r;r=null}else if(c===3){if(o.stateNode.current.memoizedState.isDehydrated)return o.tag===3?o.stateNode.containerInfo:null;r=null}else o!==r&&(r=null);return Yr=r,null}function vl(r){switch(r){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(pl()){case Ea:return 1;case gl:return 4;case Aa:case Xn:return 16;case Ye:return 536870912;default:return 16}default:return 16}}var $n=null,Qr=null,xn=null;function za(){if(xn)return xn;var r,o=Qr,c=o.length,h,w="value"in $n?$n.value:$n.textContent,_=w.length;for(r=0;r<c&&o[r]===w[r];r++);var E=c-r;for(h=1;h<=E&&o[c-h]===w[_-h];h++);return xn=w.slice(r,1<h?1-h:void 0)}function Xr(r){var o=r.keyCode;return"charCode"in r?(r=r.charCode,r===0&&o===13&&(r=13)):r=o,r===10&&(r=13),32<=r||r===13?r:0}function dr(){return!0}function _l(){return!1}function Zt(r){function o(c,h,w,_,E){this._reactName=c,this._targetInst=w,this.type=h,this.nativeEvent=_,this.target=E,this.currentTarget=null;for(var P in r)r.hasOwnProperty(P)&&(c=r[P],this[P]=c?c(_):_[P]);return this.isDefaultPrevented=(_.defaultPrevented!=null?_.defaultPrevented:_.returnValue===!1)?dr:_l,this.isPropagationStopped=_l,this}return W(o.prototype,{preventDefault:function(){this.defaultPrevented=!0;var c=this.nativeEvent;c&&(c.preventDefault?c.preventDefault():typeof c.returnValue!="unknown"&&(c.returnValue=!1),this.isDefaultPrevented=dr)},stopPropagation:function(){var c=this.nativeEvent;c&&(c.stopPropagation?c.stopPropagation():typeof c.cancelBubble!="unknown"&&(c.cancelBubble=!0),this.isPropagationStopped=dr)},persist:function(){},isPersistent:dr}),o}var Us={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(r){return r.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Qo=Zt(Us),Zr=W({},Us,{view:0,detail:0}),bl=Zt(Zr),Xo,ts,fr,yt=W({},Zr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ba,button:0,buttons:0,relatedTarget:function(r){return r.relatedTarget===void 0?r.fromElement===r.srcElement?r.toElement:r.fromElement:r.relatedTarget},movementX:function(r){return"movementX"in r?r.movementX:(r!==fr&&(fr&&r.type==="mousemove"?(Xo=r.screenX-fr.screenX,ts=r.screenY-fr.screenY):ts=Xo=0,fr=r),Xo)},movementY:function(r){return"movementY"in r?r.movementY:ts}}),Es=Zt(yt),hr=W({},yt,{dataTransfer:0}),Lu=Zt(hr),Ou=W({},Zr,{relatedTarget:0}),Zo=Zt(Ou),Pu=W({},Us,{animationName:0,elapsedTime:0,pseudoElement:0}),Du=Zt(Pu),Fu=W({},Us,{clipboardData:function(r){return"clipboardData"in r?r.clipboardData:window.clipboardData}}),ei=Zt(Fu),xl=W({},Us,{data:0}),ti=Zt(xl),zu={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kl={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"},jl={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Sl(r){var o=this.nativeEvent;return o.getModifierState?o.getModifierState(r):(r=jl[r])?!!o[r]:!1}function Ba(){return Sl}var Nl=W({},Zr,{key:function(r){if(r.key){var o=zu[r.key]||r.key;if(o!=="Unidentified")return o}return r.type==="keypress"?(r=Xr(r),r===13?"Enter":String.fromCharCode(r)):r.type==="keydown"||r.type==="keyup"?kl[r.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ba,charCode:function(r){return r.type==="keypress"?Xr(r):0},keyCode:function(r){return r.type==="keydown"||r.type==="keyup"?r.keyCode:0},which:function(r){return r.type==="keypress"?Xr(r):r.type==="keydown"||r.type==="keyup"?r.keyCode:0}}),Cl=Zt(Nl),El=W({},yt,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),ni=Zt(El),Al=W({},Zr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ba}),$l=Zt(Al),Tl=W({},Us,{propertyName:0,elapsedTime:0,pseudoElement:0}),Rl=Zt(Tl),Il=W({},yt,{deltaX:function(r){return"deltaX"in r?r.deltaX:"wheelDeltaX"in r?-r.wheelDeltaX:0},deltaY:function(r){return"deltaY"in r?r.deltaY:"wheelDeltaY"in r?-r.wheelDeltaY:"wheelDelta"in r?-r.wheelDelta:0},deltaZ:0,deltaMode:0}),Ml=Zt(Il),Ll=[9,13,27,32],Wa=d&&"CompositionEvent"in window,mr=null;d&&"documentMode"in document&&(mr=document.documentMode);var Ol=d&&"TextEvent"in window&&!mr,si=d&&(!Wa||mr&&8<mr&&11>=mr),ri=" ",ai=!1;function O(r,o){switch(r){case"keyup":return Ll.indexOf(o.keyCode)!==-1;case"keydown":return o.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function se(r){return r=r.detail,typeof r=="object"&&"data"in r?r.data:null}var Se=!1;function Re(r,o){switch(r){case"compositionend":return se(o);case"keypress":return o.which!==32?null:(ai=!0,ri);case"textInput":return r=o.data,r===ri&&ai?null:r;default:return null}}function Ue(r,o){if(Se)return r==="compositionend"||!Wa&&O(r,o)?(r=za(),xn=Qr=$n=null,Se=!1,r):null;switch(r){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 si&&o.locale!=="ko"?null:o.data;default:return null}}var Ut={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 vt(r){var o=r&&r.nodeName&&r.nodeName.toLowerCase();return o==="input"?!!Ut[r.type]:o==="textarea"}function pr(r,o,c,h){Xt(h),o=zl(o,"onChange"),0<o.length&&(c=new Qo("onChange","change",null,c,h),r.push({event:c,listeners:o}))}var ps=null,ns=null;function Bu(r){Am(r,0)}function Hn(r){var o=Ka(r);if(Qe(o))return r}function rb(r,o){if(r==="change")return o}var fm=!1;if(d){var Wu;if(d){var Uu="oninput"in document;if(!Uu){var hm=document.createElement("div");hm.setAttribute("oninput","return;"),Uu=typeof hm.oninput=="function"}Wu=Uu}else Wu=!1;fm=Wu&&(!document.documentMode||9<document.documentMode)}function mm(){ps&&(ps.detachEvent("onpropertychange",pm),ns=ps=null)}function pm(r){if(r.propertyName==="value"&&Hn(ns)){var o=[];pr(o,ns,r,ks(r)),Fo(Bu,o)}}function ab(r,o,c){r==="focusin"?(mm(),ps=o,ns=c,ps.attachEvent("onpropertychange",pm)):r==="focusout"&&mm()}function ob(r){if(r==="selectionchange"||r==="keyup"||r==="keydown")return Hn(ns)}function ib(r,o){if(r==="click")return Hn(o)}function lb(r,o){if(r==="input"||r==="change")return Hn(o)}function cb(r,o){return r===o&&(r!==0||1/r===1/o)||r!==r&&o!==o}var gs=typeof Object.is=="function"?Object.is:cb;function oi(r,o){if(gs(r,o))return!0;if(typeof r!="object"||r===null||typeof o!="object"||o===null)return!1;var c=Object.keys(r),h=Object.keys(o);if(c.length!==h.length)return!1;for(h=0;h<c.length;h++){var w=c[h];if(!f.call(o,w)||!gs(r[w],o[w]))return!1}return!0}function gm(r){for(;r&&r.firstChild;)r=r.firstChild;return r}function ym(r,o){var c=gm(r);r=0;for(var h;c;){if(c.nodeType===3){if(h=r+c.textContent.length,r<=o&&h>=o)return{node:c,offset:o-r};r=h}e:{for(;c;){if(c.nextSibling){c=c.nextSibling;break e}c=c.parentNode}c=void 0}c=gm(c)}}function wm(r,o){return r&&o?r===o?!0:r&&r.nodeType===3?!1:o&&o.nodeType===3?wm(r,o.parentNode):"contains"in r?r.contains(o):r.compareDocumentPosition?!!(r.compareDocumentPosition(o)&16):!1:!1}function vm(){for(var r=window,o=He();o instanceof r.HTMLIFrameElement;){try{var c=typeof o.contentWindow.location.href=="string"}catch{c=!1}if(c)r=o.contentWindow;else break;o=He(r.document)}return o}function Vu(r){var o=r&&r.nodeName&&r.nodeName.toLowerCase();return o&&(o==="input"&&(r.type==="text"||r.type==="search"||r.type==="tel"||r.type==="url"||r.type==="password")||o==="textarea"||r.contentEditable==="true")}function ub(r){var o=vm(),c=r.focusedElem,h=r.selectionRange;if(o!==c&&c&&c.ownerDocument&&wm(c.ownerDocument.documentElement,c)){if(h!==null&&Vu(c)){if(o=h.start,r=h.end,r===void 0&&(r=o),"selectionStart"in c)c.selectionStart=o,c.selectionEnd=Math.min(r,c.value.length);else if(r=(o=c.ownerDocument||document)&&o.defaultView||window,r.getSelection){r=r.getSelection();var w=c.textContent.length,_=Math.min(h.start,w);h=h.end===void 0?_:Math.min(h.end,w),!r.extend&&_>h&&(w=h,h=_,_=w),w=ym(c,_);var E=ym(c,h);w&&E&&(r.rangeCount!==1||r.anchorNode!==w.node||r.anchorOffset!==w.offset||r.focusNode!==E.node||r.focusOffset!==E.offset)&&(o=o.createRange(),o.setStart(w.node,w.offset),r.removeAllRanges(),_>h?(r.addRange(o),r.extend(E.node,E.offset)):(o.setEnd(E.node,E.offset),r.addRange(o)))}}for(o=[],r=c;r=r.parentNode;)r.nodeType===1&&o.push({element:r,left:r.scrollLeft,top:r.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;c<o.length;c++)r=o[c],r.element.scrollLeft=r.left,r.element.scrollTop=r.top}}var db=d&&"documentMode"in document&&11>=document.documentMode,Ua=null,Hu=null,ii=null,Gu=!1;function _m(r,o,c){var h=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;Gu||Ua==null||Ua!==He(h)||(h=Ua,"selectionStart"in h&&Vu(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}),ii&&oi(ii,h)||(ii=h,h=zl(Hu,"onSelect"),0<h.length&&(o=new Qo("onSelect","select",null,o,c),r.push({event:o,listeners:h}),o.target=Ua)))}function Pl(r,o){var c={};return c[r.toLowerCase()]=o.toLowerCase(),c["Webkit"+r]="webkit"+o,c["Moz"+r]="moz"+o,c}var Va={animationend:Pl("Animation","AnimationEnd"),animationiteration:Pl("Animation","AnimationIteration"),animationstart:Pl("Animation","AnimationStart"),transitionend:Pl("Transition","TransitionEnd")},Ku={},bm={};d&&(bm=document.createElement("div").style,"AnimationEvent"in window||(delete Va.animationend.animation,delete Va.animationiteration.animation,delete Va.animationstart.animation),"TransitionEvent"in window||delete Va.transitionend.transition);function Dl(r){if(Ku[r])return Ku[r];if(!Va[r])return r;var o=Va[r],c;for(c in o)if(o.hasOwnProperty(c)&&c in bm)return Ku[r]=o[c];return r}var xm=Dl("animationend"),km=Dl("animationiteration"),jm=Dl("animationstart"),Sm=Dl("transitionend"),Nm=new Map,Cm="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 gr(r,o){Nm.set(r,o),l(o,[r])}for(var Ju=0;Ju<Cm.length;Ju++){var qu=Cm[Ju],fb=qu.toLowerCase(),hb=qu[0].toUpperCase()+qu.slice(1);gr(fb,"on"+hb)}gr(xm,"onAnimationEnd"),gr(km,"onAnimationIteration"),gr(jm,"onAnimationStart"),gr("dblclick","onDoubleClick"),gr("focusin","onFocus"),gr("focusout","onBlur"),gr(Sm,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var li="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(" "),mb=new Set("cancel close invalid load scroll toggle".split(" ").concat(li));function Em(r,o,c){var h=r.type||"unknown-event";r.currentTarget=c,Ru(h,o,void 0,r),r.currentTarget=null}function Am(r,o){o=(o&4)!==0;for(var c=0;c<r.length;c++){var h=r[c],w=h.event;h=h.listeners;e:{var _=void 0;if(o)for(var E=h.length-1;0<=E;E--){var P=h[E],U=P.instance,re=P.currentTarget;if(P=P.listener,U!==_&&w.isPropagationStopped())break e;Em(w,P,re),_=U}else for(E=0;E<h.length;E++){if(P=h[E],U=P.instance,re=P.currentTarget,P=P.listener,U!==_&&w.isPropagationStopped())break e;Em(w,P,re),_=U}}}if(or)throw r=Ur,or=!1,Ur=null,r}function _t(r,o){var c=o[sd];c===void 0&&(c=o[sd]=new Set);var h=r+"__bubble";c.has(h)||($m(o,r,2,!1),c.add(h))}function Yu(r,o,c){var h=0;o&&(h|=4),$m(c,r,h,o)}var Fl="_reactListening"+Math.random().toString(36).slice(2);function ci(r){if(!r[Fl]){r[Fl]=!0,s.forEach(function(c){c!=="selectionchange"&&(mb.has(c)||Yu(c,!1,r),Yu(c,!0,r))});var o=r.nodeType===9?r:r.ownerDocument;o===null||o[Fl]||(o[Fl]=!0,Yu("selectionchange",!1,o))}}function $m(r,o,c,h){switch(vl(o)){case 1:var w=yl;break;case 4:w=wl;break;default:w=Yo}c=w.bind(null,o,c,r),w=void 0,!Sa||o!=="touchstart"&&o!=="touchmove"&&o!=="wheel"||(w=!0),h?w!==void 0?r.addEventListener(o,c,{capture:!0,passive:w}):r.addEventListener(o,c,!0):w!==void 0?r.addEventListener(o,c,{passive:w}):r.addEventListener(o,c,!1)}function Qu(r,o,c,h,w){var _=h;if((o&1)===0&&(o&2)===0&&h!==null)e:for(;;){if(h===null)return;var E=h.tag;if(E===3||E===4){var P=h.stateNode.containerInfo;if(P===w||P.nodeType===8&&P.parentNode===w)break;if(E===4)for(E=h.return;E!==null;){var U=E.tag;if((U===3||U===4)&&(U=E.stateNode.containerInfo,U===w||U.nodeType===8&&U.parentNode===w))return;E=E.return}for(;P!==null;){if(E=ea(P),E===null)return;if(U=E.tag,U===5||U===6){h=_=E;continue e}P=P.parentNode}}h=h.return}Fo(function(){var re=_,pe=ks(c),ye=[];e:{var me=Nm.get(r);if(me!==void 0){var Ce=Qo,Ae=r;switch(r){case"keypress":if(Xr(c)===0)break e;case"keydown":case"keyup":Ce=Cl;break;case"focusin":Ae="focus",Ce=Zo;break;case"focusout":Ae="blur",Ce=Zo;break;case"beforeblur":case"afterblur":Ce=Zo;break;case"click":if(c.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":Ce=Es;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":Ce=Lu;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":Ce=$l;break;case xm:case km:case jm:Ce=Du;break;case Sm:Ce=Rl;break;case"scroll":Ce=bl;break;case"wheel":Ce=Ml;break;case"copy":case"cut":case"paste":Ce=ei;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":Ce=ni}var Te=(o&4)!==0,Pt=!Te&&r==="scroll",X=Te?me!==null?me+"Capture":null:me;Te=[];for(var H=re,ee;H!==null;){ee=H;var ke=ee.stateNode;if(ee.tag===5&&ke!==null&&(ee=ke,X!==null&&(ke=js(H,X),ke!=null&&Te.push(ui(H,ke,ee)))),Pt)break;H=H.return}0<Te.length&&(me=new Ce(me,Ae,null,c,pe),ye.push({event:me,listeners:Te}))}}if((o&7)===0){e:{if(me=r==="mouseover"||r==="pointerover",Ce=r==="mouseout"||r==="pointerout",me&&c!==Lt&&(Ae=c.relatedTarget||c.fromElement)&&(ea(Ae)||Ae[Vs]))break e;if((Ce||me)&&(me=pe.window===pe?pe:(me=pe.ownerDocument)?me.defaultView||me.parentWindow:window,Ce?(Ae=c.relatedTarget||c.toElement,Ce=re,Ae=Ae?ea(Ae):null,Ae!==null&&(Pt=Ss(Ae),Ae!==Pt||Ae.tag!==5&&Ae.tag!==6)&&(Ae=null)):(Ce=null,Ae=re),Ce!==Ae)){if(Te=Es,ke="onMouseLeave",X="onMouseEnter",H="mouse",(r==="pointerout"||r==="pointerover")&&(Te=ni,ke="onPointerLeave",X="onPointerEnter",H="pointer"),Pt=Ce==null?me:Ka(Ce),ee=Ae==null?me:Ka(Ae),me=new Te(ke,H+"leave",Ce,c,pe),me.target=Pt,me.relatedTarget=ee,ke=null,ea(pe)===re&&(Te=new Te(X,H+"enter",Ae,c,pe),Te.target=ee,Te.relatedTarget=Pt,ke=Te),Pt=ke,Ce&&Ae)t:{for(Te=Ce,X=Ae,H=0,ee=Te;ee;ee=Ha(ee))H++;for(ee=0,ke=X;ke;ke=Ha(ke))ee++;for(;0<H-ee;)Te=Ha(Te),H--;for(;0<ee-H;)X=Ha(X),ee--;for(;H--;){if(Te===X||X!==null&&Te===X.alternate)break t;Te=Ha(Te),X=Ha(X)}Te=null}else Te=null;Ce!==null&&Tm(ye,me,Ce,Te,!1),Ae!==null&&Pt!==null&&Tm(ye,Pt,Ae,Te,!0)}}e:{if(me=re?Ka(re):window,Ce=me.nodeName&&me.nodeName.toLowerCase(),Ce==="select"||Ce==="input"&&me.type==="file")var Me=rb;else if(vt(me))if(fm)Me=lb;else{Me=ob;var Be=ab}else(Ce=me.nodeName)&&Ce.toLowerCase()==="input"&&(me.type==="checkbox"||me.type==="radio")&&(Me=ib);if(Me&&(Me=Me(r,re))){pr(ye,Me,c,pe);break e}Be&&Be(r,me,re),r==="focusout"&&(Be=me._wrapperState)&&Be.controlled&&me.type==="number"&&Rt(me,"number",me.value)}switch(Be=re?Ka(re):window,r){case"focusin":(vt(Be)||Be.contentEditable==="true")&&(Ua=Be,Hu=re,ii=null);break;case"focusout":ii=Hu=Ua=null;break;case"mousedown":Gu=!0;break;case"contextmenu":case"mouseup":case"dragend":Gu=!1,_m(ye,c,pe);break;case"selectionchange":if(db)break;case"keydown":case"keyup":_m(ye,c,pe)}var We;if(Wa)e:{switch(r){case"compositionstart":var Ke="onCompositionStart";break e;case"compositionend":Ke="onCompositionEnd";break e;case"compositionupdate":Ke="onCompositionUpdate";break e}Ke=void 0}else Se?O(r,c)&&(Ke="onCompositionEnd"):r==="keydown"&&c.keyCode===229&&(Ke="onCompositionStart");Ke&&(si&&c.locale!=="ko"&&(Se||Ke!=="onCompositionStart"?Ke==="onCompositionEnd"&&Se&&(We=za()):($n=pe,Qr="value"in $n?$n.value:$n.textContent,Se=!0)),Be=zl(re,Ke),0<Be.length&&(Ke=new ti(Ke,r,null,c,pe),ye.push({event:Ke,listeners:Be}),We?Ke.data=We:(We=se(c),We!==null&&(Ke.data=We)))),(We=Ol?Re(r,c):Ue(r,c))&&(re=zl(re,"onBeforeInput"),0<re.length&&(pe=new ti("onBeforeInput","beforeinput",null,c,pe),ye.push({event:pe,listeners:re}),pe.data=We))}Am(ye,o)})}function ui(r,o,c){return{instance:r,listener:o,currentTarget:c}}function zl(r,o){for(var c=o+"Capture",h=[];r!==null;){var w=r,_=w.stateNode;w.tag===5&&_!==null&&(w=_,_=js(r,c),_!=null&&h.unshift(ui(r,_,w)),_=js(r,o),_!=null&&h.push(ui(r,_,w))),r=r.return}return h}function Ha(r){if(r===null)return null;do r=r.return;while(r&&r.tag!==5);return r||null}function Tm(r,o,c,h,w){for(var _=o._reactName,E=[];c!==null&&c!==h;){var P=c,U=P.alternate,re=P.stateNode;if(U!==null&&U===h)break;P.tag===5&&re!==null&&(P=re,w?(U=js(c,_),U!=null&&E.unshift(ui(c,U,P))):w||(U=js(c,_),U!=null&&E.push(ui(c,U,P)))),c=c.return}E.length!==0&&r.push({event:o,listeners:E})}var pb=/\r\n?/g,gb=/\u0000|\uFFFD/g;function Rm(r){return(typeof r=="string"?r:""+r).replace(pb,`
|
|
38
|
-
`).replace(gb,"")}function Bl(r,o,c){if(o=Rm(o),Rm(r)!==o&&c)throw Error(n(425))}function Wl(){}var Xu=null,Zu=null;function ed(r,o){return r==="textarea"||r==="noscript"||typeof o.children=="string"||typeof o.children=="number"||typeof o.dangerouslySetInnerHTML=="object"&&o.dangerouslySetInnerHTML!==null&&o.dangerouslySetInnerHTML.__html!=null}var td=typeof setTimeout=="function"?setTimeout:void 0,yb=typeof clearTimeout=="function"?clearTimeout:void 0,Im=typeof Promise=="function"?Promise:void 0,wb=typeof queueMicrotask=="function"?queueMicrotask:typeof Im<"u"?function(r){return Im.resolve(null).then(r).catch(vb)}:td;function vb(r){setTimeout(function(){throw r})}function nd(r,o){var c=o,h=0;do{var w=c.nextSibling;if(r.removeChild(c),w&&w.nodeType===8)if(c=w.data,c==="/$"){if(h===0){r.removeChild(w),Ws(o);return}h--}else c!=="$"&&c!=="$?"&&c!=="$!"||h++;c=w}while(c);Ws(o)}function yr(r){for(;r!=null;r=r.nextSibling){var o=r.nodeType;if(o===1||o===3)break;if(o===8){if(o=r.data,o==="$"||o==="$!"||o==="$?")break;if(o==="/$")return null}}return r}function Mm(r){r=r.previousSibling;for(var o=0;r;){if(r.nodeType===8){var c=r.data;if(c==="$"||c==="$!"||c==="$?"){if(o===0)return r;o--}else c==="/$"&&o++}r=r.previousSibling}return null}var Ga=Math.random().toString(36).slice(2),As="__reactFiber$"+Ga,di="__reactProps$"+Ga,Vs="__reactContainer$"+Ga,sd="__reactEvents$"+Ga,_b="__reactListeners$"+Ga,bb="__reactHandles$"+Ga;function ea(r){var o=r[As];if(o)return o;for(var c=r.parentNode;c;){if(o=c[Vs]||c[As]){if(c=o.alternate,o.child!==null||c!==null&&c.child!==null)for(r=Mm(r);r!==null;){if(c=r[As])return c;r=Mm(r)}return o}r=c,c=r.parentNode}return null}function fi(r){return r=r[As]||r[Vs],!r||r.tag!==5&&r.tag!==6&&r.tag!==13&&r.tag!==3?null:r}function Ka(r){if(r.tag===5||r.tag===6)return r.stateNode;throw Error(n(33))}function Ul(r){return r[di]||null}var rd=[],Ja=-1;function wr(r){return{current:r}}function bt(r){0>Ja||(r.current=rd[Ja],rd[Ja]=null,Ja--)}function wt(r,o){Ja++,rd[Ja]=r.current,r.current=o}var vr={},fn=wr(vr),Tn=wr(!1),ta=vr;function qa(r,o){var c=r.type.contextTypes;if(!c)return vr;var h=r.stateNode;if(h&&h.__reactInternalMemoizedUnmaskedChildContext===o)return h.__reactInternalMemoizedMaskedChildContext;var w={},_;for(_ in c)w[_]=o[_];return h&&(r=r.stateNode,r.__reactInternalMemoizedUnmaskedChildContext=o,r.__reactInternalMemoizedMaskedChildContext=w),w}function Rn(r){return r=r.childContextTypes,r!=null}function Vl(){bt(Tn),bt(fn)}function Lm(r,o,c){if(fn.current!==vr)throw Error(n(168));wt(fn,o),wt(Tn,c)}function Om(r,o,c){var h=r.stateNode;if(o=o.childContextTypes,typeof h.getChildContext!="function")return c;h=h.getChildContext();for(var w in h)if(!(w in o))throw Error(n(108,Ne(r)||"Unknown",w));return W({},c,h)}function Hl(r){return r=(r=r.stateNode)&&r.__reactInternalMemoizedMergedChildContext||vr,ta=fn.current,wt(fn,r),wt(Tn,Tn.current),!0}function Pm(r,o,c){var h=r.stateNode;if(!h)throw Error(n(169));c?(r=Om(r,o,ta),h.__reactInternalMemoizedMergedChildContext=r,bt(Tn),bt(fn),wt(fn,r)):bt(Tn),wt(Tn,c)}var Hs=null,Gl=!1,ad=!1;function Dm(r){Hs===null?Hs=[r]:Hs.push(r)}function xb(r){Gl=!0,Dm(r)}function _r(){if(!ad&&Hs!==null){ad=!0;var r=0,o=rt;try{var c=Hs;for(rt=1;r<c.length;r++){var h=c[r];do h=h(!0);while(h!==null)}Hs=null,Gl=!1}catch(w){throw Hs!==null&&(Hs=Hs.slice(r+1)),Na(Ea,_r),w}finally{rt=o,ad=!1}}return null}var Ya=[],Qa=0,Kl=null,Jl=0,ss=[],rs=0,na=null,Gs=1,Ks="";function sa(r,o){Ya[Qa++]=Jl,Ya[Qa++]=Kl,Kl=r,Jl=o}function Fm(r,o,c){ss[rs++]=Gs,ss[rs++]=Ks,ss[rs++]=na,na=r;var h=Gs;r=Ks;var w=32-Wt(h)-1;h&=~(1<<w),c+=1;var _=32-Wt(o)+w;if(30<_){var E=w-w%5;_=(h&(1<<E)-1).toString(32),h>>=E,w-=E,Gs=1<<32-Wt(o)+w|c<<w|h,Ks=_+r}else Gs=1<<_|c<<w|h,Ks=r}function od(r){r.return!==null&&(sa(r,1),Fm(r,1,0))}function id(r){for(;r===Kl;)Kl=Ya[--Qa],Ya[Qa]=null,Jl=Ya[--Qa],Ya[Qa]=null;for(;r===na;)na=ss[--rs],ss[rs]=null,Ks=ss[--rs],ss[rs]=null,Gs=ss[--rs],ss[rs]=null}var Gn=null,Kn=null,Nt=!1,ys=null;function zm(r,o){var c=ls(5,null,null,0);c.elementType="DELETED",c.stateNode=o,c.return=r,o=r.deletions,o===null?(r.deletions=[c],r.flags|=16):o.push(c)}function Bm(r,o){switch(r.tag){case 5:var c=r.type;return o=o.nodeType!==1||c.toLowerCase()!==o.nodeName.toLowerCase()?null:o,o!==null?(r.stateNode=o,Gn=r,Kn=yr(o.firstChild),!0):!1;case 6:return o=r.pendingProps===""||o.nodeType!==3?null:o,o!==null?(r.stateNode=o,Gn=r,Kn=null,!0):!1;case 13:return o=o.nodeType!==8?null:o,o!==null?(c=na!==null?{id:Gs,overflow:Ks}:null,r.memoizedState={dehydrated:o,treeContext:c,retryLane:1073741824},c=ls(18,null,null,0),c.stateNode=o,c.return=r,r.child=c,Gn=r,Kn=null,!0):!1;default:return!1}}function ld(r){return(r.mode&1)!==0&&(r.flags&128)===0}function cd(r){if(Nt){var o=Kn;if(o){var c=o;if(!Bm(r,o)){if(ld(r))throw Error(n(418));o=yr(c.nextSibling);var h=Gn;o&&Bm(r,o)?zm(h,c):(r.flags=r.flags&-4097|2,Nt=!1,Gn=r)}}else{if(ld(r))throw Error(n(418));r.flags=r.flags&-4097|2,Nt=!1,Gn=r}}}function Wm(r){for(r=r.return;r!==null&&r.tag!==5&&r.tag!==3&&r.tag!==13;)r=r.return;Gn=r}function ql(r){if(r!==Gn)return!1;if(!Nt)return Wm(r),Nt=!0,!1;var o;if((o=r.tag!==3)&&!(o=r.tag!==5)&&(o=r.type,o=o!=="head"&&o!=="body"&&!ed(r.type,r.memoizedProps)),o&&(o=Kn)){if(ld(r))throw Um(),Error(n(418));for(;o;)zm(r,o),o=yr(o.nextSibling)}if(Wm(r),r.tag===13){if(r=r.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(n(317));e:{for(r=r.nextSibling,o=0;r;){if(r.nodeType===8){var c=r.data;if(c==="/$"){if(o===0){Kn=yr(r.nextSibling);break e}o--}else c!=="$"&&c!=="$!"&&c!=="$?"||o++}r=r.nextSibling}Kn=null}}else Kn=Gn?yr(r.stateNode.nextSibling):null;return!0}function Um(){for(var r=Kn;r;)r=yr(r.nextSibling)}function Xa(){Kn=Gn=null,Nt=!1}function ud(r){ys===null?ys=[r]:ys.push(r)}var kb=j.ReactCurrentBatchConfig;function hi(r,o,c){if(r=c.ref,r!==null&&typeof r!="function"&&typeof r!="object"){if(c._owner){if(c=c._owner,c){if(c.tag!==1)throw Error(n(309));var h=c.stateNode}if(!h)throw Error(n(147,r));var w=h,_=""+r;return o!==null&&o.ref!==null&&typeof o.ref=="function"&&o.ref._stringRef===_?o.ref:(o=function(E){var P=w.refs;E===null?delete P[_]:P[_]=E},o._stringRef=_,o)}if(typeof r!="string")throw Error(n(284));if(!c._owner)throw Error(n(290,r))}return r}function Yl(r,o){throw r=Object.prototype.toString.call(o),Error(n(31,r==="[object Object]"?"object with keys {"+Object.keys(o).join(", ")+"}":r))}function Vm(r){var o=r._init;return o(r._payload)}function Hm(r){function o(X,H){if(r){var ee=X.deletions;ee===null?(X.deletions=[H],X.flags|=16):ee.push(H)}}function c(X,H){if(!r)return null;for(;H!==null;)o(X,H),H=H.sibling;return null}function h(X,H){for(X=new Map;H!==null;)H.key!==null?X.set(H.key,H):X.set(H.index,H),H=H.sibling;return X}function w(X,H){return X=Er(X,H),X.index=0,X.sibling=null,X}function _(X,H,ee){return X.index=ee,r?(ee=X.alternate,ee!==null?(ee=ee.index,ee<H?(X.flags|=2,H):ee):(X.flags|=2,H)):(X.flags|=1048576,H)}function E(X){return r&&X.alternate===null&&(X.flags|=2),X}function P(X,H,ee,ke){return H===null||H.tag!==6?(H=tf(ee,X.mode,ke),H.return=X,H):(H=w(H,ee),H.return=X,H)}function U(X,H,ee,ke){var Me=ee.type;return Me===M?pe(X,H,ee.props.children,ke,ee.key):H!==null&&(H.elementType===Me||typeof Me=="object"&&Me!==null&&Me.$$typeof===J&&Vm(Me)===H.type)?(ke=w(H,ee.props),ke.ref=hi(X,H,ee),ke.return=X,ke):(ke=_c(ee.type,ee.key,ee.props,null,X.mode,ke),ke.ref=hi(X,H,ee),ke.return=X,ke)}function re(X,H,ee,ke){return H===null||H.tag!==4||H.stateNode.containerInfo!==ee.containerInfo||H.stateNode.implementation!==ee.implementation?(H=nf(ee,X.mode,ke),H.return=X,H):(H=w(H,ee.children||[]),H.return=X,H)}function pe(X,H,ee,ke,Me){return H===null||H.tag!==7?(H=da(ee,X.mode,ke,Me),H.return=X,H):(H=w(H,ee),H.return=X,H)}function ye(X,H,ee){if(typeof H=="string"&&H!==""||typeof H=="number")return H=tf(""+H,X.mode,ee),H.return=X,H;if(typeof H=="object"&&H!==null){switch(H.$$typeof){case A:return ee=_c(H.type,H.key,H.props,null,X.mode,ee),ee.ref=hi(X,null,H),ee.return=X,ee;case S:return H=nf(H,X.mode,ee),H.return=X,H;case J:var ke=H._init;return ye(X,ke(H._payload),ee)}if(ce(H)||te(H))return H=da(H,X.mode,ee,null),H.return=X,H;Yl(X,H)}return null}function me(X,H,ee,ke){var Me=H!==null?H.key:null;if(typeof ee=="string"&&ee!==""||typeof ee=="number")return Me!==null?null:P(X,H,""+ee,ke);if(typeof ee=="object"&&ee!==null){switch(ee.$$typeof){case A:return ee.key===Me?U(X,H,ee,ke):null;case S:return ee.key===Me?re(X,H,ee,ke):null;case J:return Me=ee._init,me(X,H,Me(ee._payload),ke)}if(ce(ee)||te(ee))return Me!==null?null:pe(X,H,ee,ke,null);Yl(X,ee)}return null}function Ce(X,H,ee,ke,Me){if(typeof ke=="string"&&ke!==""||typeof ke=="number")return X=X.get(ee)||null,P(H,X,""+ke,Me);if(typeof ke=="object"&&ke!==null){switch(ke.$$typeof){case A:return X=X.get(ke.key===null?ee:ke.key)||null,U(H,X,ke,Me);case S:return X=X.get(ke.key===null?ee:ke.key)||null,re(H,X,ke,Me);case J:var Be=ke._init;return Ce(X,H,ee,Be(ke._payload),Me)}if(ce(ke)||te(ke))return X=X.get(ee)||null,pe(H,X,ke,Me,null);Yl(H,ke)}return null}function Ae(X,H,ee,ke){for(var Me=null,Be=null,We=H,Ke=H=0,nn=null;We!==null&&Ke<ee.length;Ke++){We.index>Ke?(nn=We,We=null):nn=We.sibling;var it=me(X,We,ee[Ke],ke);if(it===null){We===null&&(We=nn);break}r&&We&&it.alternate===null&&o(X,We),H=_(it,H,Ke),Be===null?Me=it:Be.sibling=it,Be=it,We=nn}if(Ke===ee.length)return c(X,We),Nt&&sa(X,Ke),Me;if(We===null){for(;Ke<ee.length;Ke++)We=ye(X,ee[Ke],ke),We!==null&&(H=_(We,H,Ke),Be===null?Me=We:Be.sibling=We,Be=We);return Nt&&sa(X,Ke),Me}for(We=h(X,We);Ke<ee.length;Ke++)nn=Ce(We,X,Ke,ee[Ke],ke),nn!==null&&(r&&nn.alternate!==null&&We.delete(nn.key===null?Ke:nn.key),H=_(nn,H,Ke),Be===null?Me=nn:Be.sibling=nn,Be=nn);return r&&We.forEach(function(Ar){return o(X,Ar)}),Nt&&sa(X,Ke),Me}function Te(X,H,ee,ke){var Me=te(ee);if(typeof Me!="function")throw Error(n(150));if(ee=Me.call(ee),ee==null)throw Error(n(151));for(var Be=Me=null,We=H,Ke=H=0,nn=null,it=ee.next();We!==null&&!it.done;Ke++,it=ee.next()){We.index>Ke?(nn=We,We=null):nn=We.sibling;var Ar=me(X,We,it.value,ke);if(Ar===null){We===null&&(We=nn);break}r&&We&&Ar.alternate===null&&o(X,We),H=_(Ar,H,Ke),Be===null?Me=Ar:Be.sibling=Ar,Be=Ar,We=nn}if(it.done)return c(X,We),Nt&&sa(X,Ke),Me;if(We===null){for(;!it.done;Ke++,it=ee.next())it=ye(X,it.value,ke),it!==null&&(H=_(it,H,Ke),Be===null?Me=it:Be.sibling=it,Be=it);return Nt&&sa(X,Ke),Me}for(We=h(X,We);!it.done;Ke++,it=ee.next())it=Ce(We,X,Ke,it.value,ke),it!==null&&(r&&it.alternate!==null&&We.delete(it.key===null?Ke:it.key),H=_(it,H,Ke),Be===null?Me=it:Be.sibling=it,Be=it);return r&&We.forEach(function(nx){return o(X,nx)}),Nt&&sa(X,Ke),Me}function Pt(X,H,ee,ke){if(typeof ee=="object"&&ee!==null&&ee.type===M&&ee.key===null&&(ee=ee.props.children),typeof ee=="object"&&ee!==null){switch(ee.$$typeof){case A:e:{for(var Me=ee.key,Be=H;Be!==null;){if(Be.key===Me){if(Me=ee.type,Me===M){if(Be.tag===7){c(X,Be.sibling),H=w(Be,ee.props.children),H.return=X,X=H;break e}}else if(Be.elementType===Me||typeof Me=="object"&&Me!==null&&Me.$$typeof===J&&Vm(Me)===Be.type){c(X,Be.sibling),H=w(Be,ee.props),H.ref=hi(X,Be,ee),H.return=X,X=H;break e}c(X,Be);break}else o(X,Be);Be=Be.sibling}ee.type===M?(H=da(ee.props.children,X.mode,ke,ee.key),H.return=X,X=H):(ke=_c(ee.type,ee.key,ee.props,null,X.mode,ke),ke.ref=hi(X,H,ee),ke.return=X,X=ke)}return E(X);case S:e:{for(Be=ee.key;H!==null;){if(H.key===Be)if(H.tag===4&&H.stateNode.containerInfo===ee.containerInfo&&H.stateNode.implementation===ee.implementation){c(X,H.sibling),H=w(H,ee.children||[]),H.return=X,X=H;break e}else{c(X,H);break}else o(X,H);H=H.sibling}H=nf(ee,X.mode,ke),H.return=X,X=H}return E(X);case J:return Be=ee._init,Pt(X,H,Be(ee._payload),ke)}if(ce(ee))return Ae(X,H,ee,ke);if(te(ee))return Te(X,H,ee,ke);Yl(X,ee)}return typeof ee=="string"&&ee!==""||typeof ee=="number"?(ee=""+ee,H!==null&&H.tag===6?(c(X,H.sibling),H=w(H,ee),H.return=X,X=H):(c(X,H),H=tf(ee,X.mode,ke),H.return=X,X=H),E(X)):c(X,H)}return Pt}var Za=Hm(!0),Gm=Hm(!1),Ql=wr(null),Xl=null,eo=null,dd=null;function fd(){dd=eo=Xl=null}function hd(r){var o=Ql.current;bt(Ql),r._currentValue=o}function md(r,o,c){for(;r!==null;){var h=r.alternate;if((r.childLanes&o)!==o?(r.childLanes|=o,h!==null&&(h.childLanes|=o)):h!==null&&(h.childLanes&o)!==o&&(h.childLanes|=o),r===c)break;r=r.return}}function to(r,o){Xl=r,dd=eo=null,r=r.dependencies,r!==null&&r.firstContext!==null&&((r.lanes&o)!==0&&(In=!0),r.firstContext=null)}function as(r){var o=r._currentValue;if(dd!==r)if(r={context:r,memoizedValue:o,next:null},eo===null){if(Xl===null)throw Error(n(308));eo=r,Xl.dependencies={lanes:0,firstContext:r}}else eo=eo.next=r;return o}var ra=null;function pd(r){ra===null?ra=[r]:ra.push(r)}function Km(r,o,c,h){var w=o.interleaved;return w===null?(c.next=c,pd(o)):(c.next=w.next,w.next=c),o.interleaved=c,Js(r,h)}function Js(r,o){r.lanes|=o;var c=r.alternate;for(c!==null&&(c.lanes|=o),c=r,r=r.return;r!==null;)r.childLanes|=o,c=r.alternate,c!==null&&(c.childLanes|=o),c=r,r=r.return;return c.tag===3?c.stateNode:null}var br=!1;function gd(r){r.updateQueue={baseState:r.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Jm(r,o){r=r.updateQueue,o.updateQueue===r&&(o.updateQueue={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,effects:r.effects})}function qs(r,o){return{eventTime:r,lane:o,tag:0,payload:null,callback:null,next:null}}function xr(r,o,c){var h=r.updateQueue;if(h===null)return null;if(h=h.shared,(ot&2)!==0){var w=h.pending;return w===null?o.next=o:(o.next=w.next,w.next=o),h.pending=o,Js(r,c)}return w=h.interleaved,w===null?(o.next=o,pd(h)):(o.next=w.next,w.next=o),h.interleaved=o,Js(r,c)}function Zl(r,o,c){if(o=o.updateQueue,o!==null&&(o=o.shared,(c&4194240)!==0)){var h=o.lanes;h&=r.pendingLanes,c|=h,o.lanes=c,zs(r,c)}}function qm(r,o){var c=r.updateQueue,h=r.alternate;if(h!==null&&(h=h.updateQueue,c===h)){var w=null,_=null;if(c=c.firstBaseUpdate,c!==null){do{var E={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};_===null?w=_=E:_=_.next=E,c=c.next}while(c!==null);_===null?w=_=o:_=_.next=o}else w=_=o;c={baseState:h.baseState,firstBaseUpdate:w,lastBaseUpdate:_,shared:h.shared,effects:h.effects},r.updateQueue=c;return}r=c.lastBaseUpdate,r===null?c.firstBaseUpdate=o:r.next=o,c.lastBaseUpdate=o}function ec(r,o,c,h){var w=r.updateQueue;br=!1;var _=w.firstBaseUpdate,E=w.lastBaseUpdate,P=w.shared.pending;if(P!==null){w.shared.pending=null;var U=P,re=U.next;U.next=null,E===null?_=re:E.next=re,E=U;var pe=r.alternate;pe!==null&&(pe=pe.updateQueue,P=pe.lastBaseUpdate,P!==E&&(P===null?pe.firstBaseUpdate=re:P.next=re,pe.lastBaseUpdate=U))}if(_!==null){var ye=w.baseState;E=0,pe=re=U=null,P=_;do{var me=P.lane,Ce=P.eventTime;if((h&me)===me){pe!==null&&(pe=pe.next={eventTime:Ce,lane:0,tag:P.tag,payload:P.payload,callback:P.callback,next:null});e:{var Ae=r,Te=P;switch(me=o,Ce=c,Te.tag){case 1:if(Ae=Te.payload,typeof Ae=="function"){ye=Ae.call(Ce,ye,me);break e}ye=Ae;break e;case 3:Ae.flags=Ae.flags&-65537|128;case 0:if(Ae=Te.payload,me=typeof Ae=="function"?Ae.call(Ce,ye,me):Ae,me==null)break e;ye=W({},ye,me);break e;case 2:br=!0}}P.callback!==null&&P.lane!==0&&(r.flags|=64,me=w.effects,me===null?w.effects=[P]:me.push(P))}else Ce={eventTime:Ce,lane:me,tag:P.tag,payload:P.payload,callback:P.callback,next:null},pe===null?(re=pe=Ce,U=ye):pe=pe.next=Ce,E|=me;if(P=P.next,P===null){if(P=w.shared.pending,P===null)break;me=P,P=me.next,me.next=null,w.lastBaseUpdate=me,w.shared.pending=null}}while(!0);if(pe===null&&(U=ye),w.baseState=U,w.firstBaseUpdate=re,w.lastBaseUpdate=pe,o=w.shared.interleaved,o!==null){w=o;do E|=w.lane,w=w.next;while(w!==o)}else _===null&&(w.shared.lanes=0);ia|=E,r.lanes=E,r.memoizedState=ye}}function Ym(r,o,c){if(r=o.effects,o.effects=null,r!==null)for(o=0;o<r.length;o++){var h=r[o],w=h.callback;if(w!==null){if(h.callback=null,h=c,typeof w!="function")throw Error(n(191,w));w.call(h)}}}var mi={},$s=wr(mi),pi=wr(mi),gi=wr(mi);function aa(r){if(r===mi)throw Error(n(174));return r}function yd(r,o){switch(wt(gi,o),wt(pi,r),wt($s,mi),r=o.nodeType,r){case 9:case 11:o=(o=o.documentElement)?o.namespaceURI:ae(null,"");break;default:r=r===8?o.parentNode:o,o=r.namespaceURI||null,r=r.tagName,o=ae(o,r)}bt($s),wt($s,o)}function no(){bt($s),bt(pi),bt(gi)}function Qm(r){aa(gi.current);var o=aa($s.current),c=ae(o,r.type);o!==c&&(wt(pi,r),wt($s,c))}function wd(r){pi.current===r&&(bt($s),bt(pi))}var Et=wr(0);function tc(r){for(var o=r;o!==null;){if(o.tag===13){var c=o.memoizedState;if(c!==null&&(c=c.dehydrated,c===null||c.data==="$?"||c.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===r)break;for(;o.sibling===null;){if(o.return===null||o.return===r)return null;o=o.return}o.sibling.return=o.return,o=o.sibling}return null}var vd=[];function _d(){for(var r=0;r<vd.length;r++)vd[r]._workInProgressVersionPrimary=null;vd.length=0}var nc=j.ReactCurrentDispatcher,bd=j.ReactCurrentBatchConfig,oa=0,At=null,Jt=null,en=null,sc=!1,yi=!1,wi=0,jb=0;function hn(){throw Error(n(321))}function xd(r,o){if(o===null)return!1;for(var c=0;c<o.length&&c<r.length;c++)if(!gs(r[c],o[c]))return!1;return!0}function kd(r,o,c,h,w,_){if(oa=_,At=o,o.memoizedState=null,o.updateQueue=null,o.lanes=0,nc.current=r===null||r.memoizedState===null?Eb:Ab,r=c(h,w),yi){_=0;do{if(yi=!1,wi=0,25<=_)throw Error(n(301));_+=1,en=Jt=null,o.updateQueue=null,nc.current=$b,r=c(h,w)}while(yi)}if(nc.current=oc,o=Jt!==null&&Jt.next!==null,oa=0,en=Jt=At=null,sc=!1,o)throw Error(n(300));return r}function jd(){var r=wi!==0;return wi=0,r}function Ts(){var r={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return en===null?At.memoizedState=en=r:en=en.next=r,en}function os(){if(Jt===null){var r=At.alternate;r=r!==null?r.memoizedState:null}else r=Jt.next;var o=en===null?At.memoizedState:en.next;if(o!==null)en=o,Jt=r;else{if(r===null)throw Error(n(310));Jt=r,r={memoizedState:Jt.memoizedState,baseState:Jt.baseState,baseQueue:Jt.baseQueue,queue:Jt.queue,next:null},en===null?At.memoizedState=en=r:en=en.next=r}return en}function vi(r,o){return typeof o=="function"?o(r):o}function Sd(r){var o=os(),c=o.queue;if(c===null)throw Error(n(311));c.lastRenderedReducer=r;var h=Jt,w=h.baseQueue,_=c.pending;if(_!==null){if(w!==null){var E=w.next;w.next=_.next,_.next=E}h.baseQueue=w=_,c.pending=null}if(w!==null){_=w.next,h=h.baseState;var P=E=null,U=null,re=_;do{var pe=re.lane;if((oa&pe)===pe)U!==null&&(U=U.next={lane:0,action:re.action,hasEagerState:re.hasEagerState,eagerState:re.eagerState,next:null}),h=re.hasEagerState?re.eagerState:r(h,re.action);else{var ye={lane:pe,action:re.action,hasEagerState:re.hasEagerState,eagerState:re.eagerState,next:null};U===null?(P=U=ye,E=h):U=U.next=ye,At.lanes|=pe,ia|=pe}re=re.next}while(re!==null&&re!==_);U===null?E=h:U.next=P,gs(h,o.memoizedState)||(In=!0),o.memoizedState=h,o.baseState=E,o.baseQueue=U,c.lastRenderedState=h}if(r=c.interleaved,r!==null){w=r;do _=w.lane,At.lanes|=_,ia|=_,w=w.next;while(w!==r)}else w===null&&(c.lanes=0);return[o.memoizedState,c.dispatch]}function Nd(r){var o=os(),c=o.queue;if(c===null)throw Error(n(311));c.lastRenderedReducer=r;var h=c.dispatch,w=c.pending,_=o.memoizedState;if(w!==null){c.pending=null;var E=w=w.next;do _=r(_,E.action),E=E.next;while(E!==w);gs(_,o.memoizedState)||(In=!0),o.memoizedState=_,o.baseQueue===null&&(o.baseState=_),c.lastRenderedState=_}return[_,h]}function Xm(){}function Zm(r,o){var c=At,h=os(),w=o(),_=!gs(h.memoizedState,w);if(_&&(h.memoizedState=w,In=!0),h=h.queue,Cd(np.bind(null,c,h,r),[r]),h.getSnapshot!==o||_||en!==null&&en.memoizedState.tag&1){if(c.flags|=2048,_i(9,tp.bind(null,c,h,w,o),void 0,null),tn===null)throw Error(n(349));(oa&30)!==0||ep(c,o,w)}return w}function ep(r,o,c){r.flags|=16384,r={getSnapshot:o,value:c},o=At.updateQueue,o===null?(o={lastEffect:null,stores:null},At.updateQueue=o,o.stores=[r]):(c=o.stores,c===null?o.stores=[r]:c.push(r))}function tp(r,o,c,h){o.value=c,o.getSnapshot=h,sp(o)&&rp(r)}function np(r,o,c){return c(function(){sp(o)&&rp(r)})}function sp(r){var o=r.getSnapshot;r=r.value;try{var c=o();return!gs(r,c)}catch{return!0}}function rp(r){var o=Js(r,1);o!==null&&bs(o,r,1,-1)}function ap(r){var o=Ts();return typeof r=="function"&&(r=r()),o.memoizedState=o.baseState=r,r={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:vi,lastRenderedState:r},o.queue=r,r=r.dispatch=Cb.bind(null,At,r),[o.memoizedState,r]}function _i(r,o,c,h){return r={tag:r,create:o,destroy:c,deps:h,next:null},o=At.updateQueue,o===null?(o={lastEffect:null,stores:null},At.updateQueue=o,o.lastEffect=r.next=r):(c=o.lastEffect,c===null?o.lastEffect=r.next=r:(h=c.next,c.next=r,r.next=h,o.lastEffect=r)),r}function op(){return os().memoizedState}function rc(r,o,c,h){var w=Ts();At.flags|=r,w.memoizedState=_i(1|o,c,void 0,h===void 0?null:h)}function ac(r,o,c,h){var w=os();h=h===void 0?null:h;var _=void 0;if(Jt!==null){var E=Jt.memoizedState;if(_=E.destroy,h!==null&&xd(h,E.deps)){w.memoizedState=_i(o,c,_,h);return}}At.flags|=r,w.memoizedState=_i(1|o,c,_,h)}function ip(r,o){return rc(8390656,8,r,o)}function Cd(r,o){return ac(2048,8,r,o)}function lp(r,o){return ac(4,2,r,o)}function cp(r,o){return ac(4,4,r,o)}function up(r,o){if(typeof o=="function")return r=r(),o(r),function(){o(null)};if(o!=null)return r=r(),o.current=r,function(){o.current=null}}function dp(r,o,c){return c=c!=null?c.concat([r]):null,ac(4,4,up.bind(null,o,r),c)}function Ed(){}function fp(r,o){var c=os();o=o===void 0?null:o;var h=c.memoizedState;return h!==null&&o!==null&&xd(o,h[1])?h[0]:(c.memoizedState=[r,o],r)}function hp(r,o){var c=os();o=o===void 0?null:o;var h=c.memoizedState;return h!==null&&o!==null&&xd(o,h[1])?h[0]:(r=r(),c.memoizedState=[r,o],r)}function mp(r,o,c){return(oa&21)===0?(r.baseState&&(r.baseState=!1,In=!0),r.memoizedState=c):(gs(c,o)||(c=An(),At.lanes|=c,ia|=c,r.baseState=!0),o)}function Sb(r,o){var c=rt;rt=c!==0&&4>c?c:4,r(!0);var h=bd.transition;bd.transition={};try{r(!1),o()}finally{rt=c,bd.transition=h}}function pp(){return os().memoizedState}function Nb(r,o,c){var h=Nr(r);if(c={lane:h,action:c,hasEagerState:!1,eagerState:null,next:null},gp(r))yp(o,c);else if(c=Km(r,o,c,h),c!==null){var w=jn();bs(c,r,h,w),wp(c,o,h)}}function Cb(r,o,c){var h=Nr(r),w={lane:h,action:c,hasEagerState:!1,eagerState:null,next:null};if(gp(r))yp(o,w);else{var _=r.alternate;if(r.lanes===0&&(_===null||_.lanes===0)&&(_=o.lastRenderedReducer,_!==null))try{var E=o.lastRenderedState,P=_(E,c);if(w.hasEagerState=!0,w.eagerState=P,gs(P,E)){var U=o.interleaved;U===null?(w.next=w,pd(o)):(w.next=U.next,U.next=w),o.interleaved=w;return}}catch{}finally{}c=Km(r,o,w,h),c!==null&&(w=jn(),bs(c,r,h,w),wp(c,o,h))}}function gp(r){var o=r.alternate;return r===At||o!==null&&o===At}function yp(r,o){yi=sc=!0;var c=r.pending;c===null?o.next=o:(o.next=c.next,c.next=o),r.pending=o}function wp(r,o,c){if((c&4194240)!==0){var h=o.lanes;h&=r.pendingLanes,c|=h,o.lanes=c,zs(r,c)}}var oc={readContext:as,useCallback:hn,useContext:hn,useEffect:hn,useImperativeHandle:hn,useInsertionEffect:hn,useLayoutEffect:hn,useMemo:hn,useReducer:hn,useRef:hn,useState:hn,useDebugValue:hn,useDeferredValue:hn,useTransition:hn,useMutableSource:hn,useSyncExternalStore:hn,useId:hn,unstable_isNewReconciler:!1},Eb={readContext:as,useCallback:function(r,o){return Ts().memoizedState=[r,o===void 0?null:o],r},useContext:as,useEffect:ip,useImperativeHandle:function(r,o,c){return c=c!=null?c.concat([r]):null,rc(4194308,4,up.bind(null,o,r),c)},useLayoutEffect:function(r,o){return rc(4194308,4,r,o)},useInsertionEffect:function(r,o){return rc(4,2,r,o)},useMemo:function(r,o){var c=Ts();return o=o===void 0?null:o,r=r(),c.memoizedState=[r,o],r},useReducer:function(r,o,c){var h=Ts();return o=c!==void 0?c(o):o,h.memoizedState=h.baseState=o,r={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:o},h.queue=r,r=r.dispatch=Nb.bind(null,At,r),[h.memoizedState,r]},useRef:function(r){var o=Ts();return r={current:r},o.memoizedState=r},useState:ap,useDebugValue:Ed,useDeferredValue:function(r){return Ts().memoizedState=r},useTransition:function(){var r=ap(!1),o=r[0];return r=Sb.bind(null,r[1]),Ts().memoizedState=r,[o,r]},useMutableSource:function(){},useSyncExternalStore:function(r,o,c){var h=At,w=Ts();if(Nt){if(c===void 0)throw Error(n(407));c=c()}else{if(c=o(),tn===null)throw Error(n(349));(oa&30)!==0||ep(h,o,c)}w.memoizedState=c;var _={value:c,getSnapshot:o};return w.queue=_,ip(np.bind(null,h,_,r),[r]),h.flags|=2048,_i(9,tp.bind(null,h,_,c,o),void 0,null),c},useId:function(){var r=Ts(),o=tn.identifierPrefix;if(Nt){var c=Ks,h=Gs;c=(h&~(1<<32-Wt(h)-1)).toString(32)+c,o=":"+o+"R"+c,c=wi++,0<c&&(o+="H"+c.toString(32)),o+=":"}else c=jb++,o=":"+o+"r"+c.toString(32)+":";return r.memoizedState=o},unstable_isNewReconciler:!1},Ab={readContext:as,useCallback:fp,useContext:as,useEffect:Cd,useImperativeHandle:dp,useInsertionEffect:lp,useLayoutEffect:cp,useMemo:hp,useReducer:Sd,useRef:op,useState:function(){return Sd(vi)},useDebugValue:Ed,useDeferredValue:function(r){var o=os();return mp(o,Jt.memoizedState,r)},useTransition:function(){var r=Sd(vi)[0],o=os().memoizedState;return[r,o]},useMutableSource:Xm,useSyncExternalStore:Zm,useId:pp,unstable_isNewReconciler:!1},$b={readContext:as,useCallback:fp,useContext:as,useEffect:Cd,useImperativeHandle:dp,useInsertionEffect:lp,useLayoutEffect:cp,useMemo:hp,useReducer:Nd,useRef:op,useState:function(){return Nd(vi)},useDebugValue:Ed,useDeferredValue:function(r){var o=os();return Jt===null?o.memoizedState=r:mp(o,Jt.memoizedState,r)},useTransition:function(){var r=Nd(vi)[0],o=os().memoizedState;return[r,o]},useMutableSource:Xm,useSyncExternalStore:Zm,useId:pp,unstable_isNewReconciler:!1};function ws(r,o){if(r&&r.defaultProps){o=W({},o),r=r.defaultProps;for(var c in r)o[c]===void 0&&(o[c]=r[c]);return o}return o}function Ad(r,o,c,h){o=r.memoizedState,c=c(h,o),c=c==null?o:W({},o,c),r.memoizedState=c,r.lanes===0&&(r.updateQueue.baseState=c)}var ic={isMounted:function(r){return(r=r._reactInternals)?Ss(r)===r:!1},enqueueSetState:function(r,o,c){r=r._reactInternals;var h=jn(),w=Nr(r),_=qs(h,w);_.payload=o,c!=null&&(_.callback=c),o=xr(r,_,w),o!==null&&(bs(o,r,w,h),Zl(o,r,w))},enqueueReplaceState:function(r,o,c){r=r._reactInternals;var h=jn(),w=Nr(r),_=qs(h,w);_.tag=1,_.payload=o,c!=null&&(_.callback=c),o=xr(r,_,w),o!==null&&(bs(o,r,w,h),Zl(o,r,w))},enqueueForceUpdate:function(r,o){r=r._reactInternals;var c=jn(),h=Nr(r),w=qs(c,h);w.tag=2,o!=null&&(w.callback=o),o=xr(r,w,h),o!==null&&(bs(o,r,h,c),Zl(o,r,h))}};function vp(r,o,c,h,w,_,E){return r=r.stateNode,typeof r.shouldComponentUpdate=="function"?r.shouldComponentUpdate(h,_,E):o.prototype&&o.prototype.isPureReactComponent?!oi(c,h)||!oi(w,_):!0}function _p(r,o,c){var h=!1,w=vr,_=o.contextType;return typeof _=="object"&&_!==null?_=as(_):(w=Rn(o)?ta:fn.current,h=o.contextTypes,_=(h=h!=null)?qa(r,w):vr),o=new o(c,_),r.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,o.updater=ic,r.stateNode=o,o._reactInternals=r,h&&(r=r.stateNode,r.__reactInternalMemoizedUnmaskedChildContext=w,r.__reactInternalMemoizedMaskedChildContext=_),o}function bp(r,o,c,h){r=o.state,typeof o.componentWillReceiveProps=="function"&&o.componentWillReceiveProps(c,h),typeof o.UNSAFE_componentWillReceiveProps=="function"&&o.UNSAFE_componentWillReceiveProps(c,h),o.state!==r&&ic.enqueueReplaceState(o,o.state,null)}function $d(r,o,c,h){var w=r.stateNode;w.props=c,w.state=r.memoizedState,w.refs={},gd(r);var _=o.contextType;typeof _=="object"&&_!==null?w.context=as(_):(_=Rn(o)?ta:fn.current,w.context=qa(r,_)),w.state=r.memoizedState,_=o.getDerivedStateFromProps,typeof _=="function"&&(Ad(r,o,_,c),w.state=r.memoizedState),typeof o.getDerivedStateFromProps=="function"||typeof w.getSnapshotBeforeUpdate=="function"||typeof w.UNSAFE_componentWillMount!="function"&&typeof w.componentWillMount!="function"||(o=w.state,typeof w.componentWillMount=="function"&&w.componentWillMount(),typeof w.UNSAFE_componentWillMount=="function"&&w.UNSAFE_componentWillMount(),o!==w.state&&ic.enqueueReplaceState(w,w.state,null),ec(r,c,w,h),w.state=r.memoizedState),typeof w.componentDidMount=="function"&&(r.flags|=4194308)}function so(r,o){try{var c="",h=o;do c+=oe(h),h=h.return;while(h);var w=c}catch(_){w=`
|
|
39
|
-
Error generating stack: `+_.message+`
|
|
40
|
-
`+_.stack}return{value:r,source:o,stack:w,digest:null}}function Td(r,o,c){return{value:r,source:null,stack:c??null,digest:o??null}}function Rd(r,o){try{console.error(o.value)}catch(c){setTimeout(function(){throw c})}}var Tb=typeof WeakMap=="function"?WeakMap:Map;function xp(r,o,c){c=qs(-1,c),c.tag=3,c.payload={element:null};var h=o.value;return c.callback=function(){mc||(mc=!0,Kd=h),Rd(r,o)},c}function kp(r,o,c){c=qs(-1,c),c.tag=3;var h=r.type.getDerivedStateFromError;if(typeof h=="function"){var w=o.value;c.payload=function(){return h(w)},c.callback=function(){Rd(r,o)}}var _=r.stateNode;return _!==null&&typeof _.componentDidCatch=="function"&&(c.callback=function(){Rd(r,o),typeof h!="function"&&(jr===null?jr=new Set([this]):jr.add(this));var E=o.stack;this.componentDidCatch(o.value,{componentStack:E!==null?E:""})}),c}function jp(r,o,c){var h=r.pingCache;if(h===null){h=r.pingCache=new Tb;var w=new Set;h.set(o,w)}else w=h.get(o),w===void 0&&(w=new Set,h.set(o,w));w.has(c)||(w.add(c),r=Hb.bind(null,r,o,c),o.then(r,r))}function Sp(r){do{var o;if((o=r.tag===13)&&(o=r.memoizedState,o=o!==null?o.dehydrated!==null:!0),o)return r;r=r.return}while(r!==null);return null}function Np(r,o,c,h,w){return(r.mode&1)===0?(r===o?r.flags|=65536:(r.flags|=128,c.flags|=131072,c.flags&=-52805,c.tag===1&&(c.alternate===null?c.tag=17:(o=qs(-1,1),o.tag=2,xr(c,o,1))),c.lanes|=1),r):(r.flags|=65536,r.lanes=w,r)}var Rb=j.ReactCurrentOwner,In=!1;function kn(r,o,c,h){o.child=r===null?Gm(o,null,c,h):Za(o,r.child,c,h)}function Cp(r,o,c,h,w){c=c.render;var _=o.ref;return to(o,w),h=kd(r,o,c,h,_,w),c=jd(),r!==null&&!In?(o.updateQueue=r.updateQueue,o.flags&=-2053,r.lanes&=~w,Ys(r,o,w)):(Nt&&c&&od(o),o.flags|=1,kn(r,o,h,w),o.child)}function Ep(r,o,c,h,w){if(r===null){var _=c.type;return typeof _=="function"&&!ef(_)&&_.defaultProps===void 0&&c.compare===null&&c.defaultProps===void 0?(o.tag=15,o.type=_,Ap(r,o,_,h,w)):(r=_c(c.type,null,h,o,o.mode,w),r.ref=o.ref,r.return=o,o.child=r)}if(_=r.child,(r.lanes&w)===0){var E=_.memoizedProps;if(c=c.compare,c=c!==null?c:oi,c(E,h)&&r.ref===o.ref)return Ys(r,o,w)}return o.flags|=1,r=Er(_,h),r.ref=o.ref,r.return=o,o.child=r}function Ap(r,o,c,h,w){if(r!==null){var _=r.memoizedProps;if(oi(_,h)&&r.ref===o.ref)if(In=!1,o.pendingProps=h=_,(r.lanes&w)!==0)(r.flags&131072)!==0&&(In=!0);else return o.lanes=r.lanes,Ys(r,o,w)}return Id(r,o,c,h,w)}function $p(r,o,c){var h=o.pendingProps,w=h.children,_=r!==null?r.memoizedState:null;if(h.mode==="hidden")if((o.mode&1)===0)o.memoizedState={baseLanes:0,cachePool:null,transitions:null},wt(ao,Jn),Jn|=c;else{if((c&1073741824)===0)return r=_!==null?_.baseLanes|c:c,o.lanes=o.childLanes=1073741824,o.memoizedState={baseLanes:r,cachePool:null,transitions:null},o.updateQueue=null,wt(ao,Jn),Jn|=r,null;o.memoizedState={baseLanes:0,cachePool:null,transitions:null},h=_!==null?_.baseLanes:c,wt(ao,Jn),Jn|=h}else _!==null?(h=_.baseLanes|c,o.memoizedState=null):h=c,wt(ao,Jn),Jn|=h;return kn(r,o,w,c),o.child}function Tp(r,o){var c=o.ref;(r===null&&c!==null||r!==null&&r.ref!==c)&&(o.flags|=512,o.flags|=2097152)}function Id(r,o,c,h,w){var _=Rn(c)?ta:fn.current;return _=qa(o,_),to(o,w),c=kd(r,o,c,h,_,w),h=jd(),r!==null&&!In?(o.updateQueue=r.updateQueue,o.flags&=-2053,r.lanes&=~w,Ys(r,o,w)):(Nt&&h&&od(o),o.flags|=1,kn(r,o,c,w),o.child)}function Rp(r,o,c,h,w){if(Rn(c)){var _=!0;Hl(o)}else _=!1;if(to(o,w),o.stateNode===null)cc(r,o),_p(o,c,h),$d(o,c,h,w),h=!0;else if(r===null){var E=o.stateNode,P=o.memoizedProps;E.props=P;var U=E.context,re=c.contextType;typeof re=="object"&&re!==null?re=as(re):(re=Rn(c)?ta:fn.current,re=qa(o,re));var pe=c.getDerivedStateFromProps,ye=typeof pe=="function"||typeof E.getSnapshotBeforeUpdate=="function";ye||typeof E.UNSAFE_componentWillReceiveProps!="function"&&typeof E.componentWillReceiveProps!="function"||(P!==h||U!==re)&&bp(o,E,h,re),br=!1;var me=o.memoizedState;E.state=me,ec(o,h,E,w),U=o.memoizedState,P!==h||me!==U||Tn.current||br?(typeof pe=="function"&&(Ad(o,c,pe,h),U=o.memoizedState),(P=br||vp(o,c,P,h,me,U,re))?(ye||typeof E.UNSAFE_componentWillMount!="function"&&typeof E.componentWillMount!="function"||(typeof E.componentWillMount=="function"&&E.componentWillMount(),typeof E.UNSAFE_componentWillMount=="function"&&E.UNSAFE_componentWillMount()),typeof E.componentDidMount=="function"&&(o.flags|=4194308)):(typeof E.componentDidMount=="function"&&(o.flags|=4194308),o.memoizedProps=h,o.memoizedState=U),E.props=h,E.state=U,E.context=re,h=P):(typeof E.componentDidMount=="function"&&(o.flags|=4194308),h=!1)}else{E=o.stateNode,Jm(r,o),P=o.memoizedProps,re=o.type===o.elementType?P:ws(o.type,P),E.props=re,ye=o.pendingProps,me=E.context,U=c.contextType,typeof U=="object"&&U!==null?U=as(U):(U=Rn(c)?ta:fn.current,U=qa(o,U));var Ce=c.getDerivedStateFromProps;(pe=typeof Ce=="function"||typeof E.getSnapshotBeforeUpdate=="function")||typeof E.UNSAFE_componentWillReceiveProps!="function"&&typeof E.componentWillReceiveProps!="function"||(P!==ye||me!==U)&&bp(o,E,h,U),br=!1,me=o.memoizedState,E.state=me,ec(o,h,E,w);var Ae=o.memoizedState;P!==ye||me!==Ae||Tn.current||br?(typeof Ce=="function"&&(Ad(o,c,Ce,h),Ae=o.memoizedState),(re=br||vp(o,c,re,h,me,Ae,U)||!1)?(pe||typeof E.UNSAFE_componentWillUpdate!="function"&&typeof E.componentWillUpdate!="function"||(typeof E.componentWillUpdate=="function"&&E.componentWillUpdate(h,Ae,U),typeof E.UNSAFE_componentWillUpdate=="function"&&E.UNSAFE_componentWillUpdate(h,Ae,U)),typeof E.componentDidUpdate=="function"&&(o.flags|=4),typeof E.getSnapshotBeforeUpdate=="function"&&(o.flags|=1024)):(typeof E.componentDidUpdate!="function"||P===r.memoizedProps&&me===r.memoizedState||(o.flags|=4),typeof E.getSnapshotBeforeUpdate!="function"||P===r.memoizedProps&&me===r.memoizedState||(o.flags|=1024),o.memoizedProps=h,o.memoizedState=Ae),E.props=h,E.state=Ae,E.context=U,h=re):(typeof E.componentDidUpdate!="function"||P===r.memoizedProps&&me===r.memoizedState||(o.flags|=4),typeof E.getSnapshotBeforeUpdate!="function"||P===r.memoizedProps&&me===r.memoizedState||(o.flags|=1024),h=!1)}return Md(r,o,c,h,_,w)}function Md(r,o,c,h,w,_){Tp(r,o);var E=(o.flags&128)!==0;if(!h&&!E)return w&&Pm(o,c,!1),Ys(r,o,_);h=o.stateNode,Rb.current=o;var P=E&&typeof c.getDerivedStateFromError!="function"?null:h.render();return o.flags|=1,r!==null&&E?(o.child=Za(o,r.child,null,_),o.child=Za(o,null,P,_)):kn(r,o,P,_),o.memoizedState=h.state,w&&Pm(o,c,!0),o.child}function Ip(r){var o=r.stateNode;o.pendingContext?Lm(r,o.pendingContext,o.pendingContext!==o.context):o.context&&Lm(r,o.context,!1),yd(r,o.containerInfo)}function Mp(r,o,c,h,w){return Xa(),ud(w),o.flags|=256,kn(r,o,c,h),o.child}var Ld={dehydrated:null,treeContext:null,retryLane:0};function Od(r){return{baseLanes:r,cachePool:null,transitions:null}}function Lp(r,o,c){var h=o.pendingProps,w=Et.current,_=!1,E=(o.flags&128)!==0,P;if((P=E)||(P=r!==null&&r.memoizedState===null?!1:(w&2)!==0),P?(_=!0,o.flags&=-129):(r===null||r.memoizedState!==null)&&(w|=1),wt(Et,w&1),r===null)return cd(o),r=o.memoizedState,r!==null&&(r=r.dehydrated,r!==null)?((o.mode&1)===0?o.lanes=1:r.data==="$!"?o.lanes=8:o.lanes=1073741824,null):(E=h.children,r=h.fallback,_?(h=o.mode,_=o.child,E={mode:"hidden",children:E},(h&1)===0&&_!==null?(_.childLanes=0,_.pendingProps=E):_=bc(E,h,0,null),r=da(r,h,c,null),_.return=o,r.return=o,_.sibling=r,o.child=_,o.child.memoizedState=Od(c),o.memoizedState=Ld,r):Pd(o,E));if(w=r.memoizedState,w!==null&&(P=w.dehydrated,P!==null))return Ib(r,o,E,h,P,w,c);if(_){_=h.fallback,E=o.mode,w=r.child,P=w.sibling;var U={mode:"hidden",children:h.children};return(E&1)===0&&o.child!==w?(h=o.child,h.childLanes=0,h.pendingProps=U,o.deletions=null):(h=Er(w,U),h.subtreeFlags=w.subtreeFlags&14680064),P!==null?_=Er(P,_):(_=da(_,E,c,null),_.flags|=2),_.return=o,h.return=o,h.sibling=_,o.child=h,h=_,_=o.child,E=r.child.memoizedState,E=E===null?Od(c):{baseLanes:E.baseLanes|c,cachePool:null,transitions:E.transitions},_.memoizedState=E,_.childLanes=r.childLanes&~c,o.memoizedState=Ld,h}return _=r.child,r=_.sibling,h=Er(_,{mode:"visible",children:h.children}),(o.mode&1)===0&&(h.lanes=c),h.return=o,h.sibling=null,r!==null&&(c=o.deletions,c===null?(o.deletions=[r],o.flags|=16):c.push(r)),o.child=h,o.memoizedState=null,h}function Pd(r,o){return o=bc({mode:"visible",children:o},r.mode,0,null),o.return=r,r.child=o}function lc(r,o,c,h){return h!==null&&ud(h),Za(o,r.child,null,c),r=Pd(o,o.pendingProps.children),r.flags|=2,o.memoizedState=null,r}function Ib(r,o,c,h,w,_,E){if(c)return o.flags&256?(o.flags&=-257,h=Td(Error(n(422))),lc(r,o,E,h)):o.memoizedState!==null?(o.child=r.child,o.flags|=128,null):(_=h.fallback,w=o.mode,h=bc({mode:"visible",children:h.children},w,0,null),_=da(_,w,E,null),_.flags|=2,h.return=o,_.return=o,h.sibling=_,o.child=h,(o.mode&1)!==0&&Za(o,r.child,null,E),o.child.memoizedState=Od(E),o.memoizedState=Ld,_);if((o.mode&1)===0)return lc(r,o,E,null);if(w.data==="$!"){if(h=w.nextSibling&&w.nextSibling.dataset,h)var P=h.dgst;return h=P,_=Error(n(419)),h=Td(_,h,void 0),lc(r,o,E,h)}if(P=(E&r.childLanes)!==0,In||P){if(h=tn,h!==null){switch(E&-E){case 4:w=2;break;case 16:w=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:w=32;break;case 536870912:w=268435456;break;default:w=0}w=(w&(h.suspendedLanes|E))!==0?0:w,w!==0&&w!==_.retryLane&&(_.retryLane=w,Js(r,w),bs(h,r,w,-1))}return Zd(),h=Td(Error(n(421))),lc(r,o,E,h)}return w.data==="$?"?(o.flags|=128,o.child=r.child,o=Gb.bind(null,r),w._reactRetry=o,null):(r=_.treeContext,Kn=yr(w.nextSibling),Gn=o,Nt=!0,ys=null,r!==null&&(ss[rs++]=Gs,ss[rs++]=Ks,ss[rs++]=na,Gs=r.id,Ks=r.overflow,na=o),o=Pd(o,h.children),o.flags|=4096,o)}function Op(r,o,c){r.lanes|=o;var h=r.alternate;h!==null&&(h.lanes|=o),md(r.return,o,c)}function Dd(r,o,c,h,w){var _=r.memoizedState;_===null?r.memoizedState={isBackwards:o,rendering:null,renderingStartTime:0,last:h,tail:c,tailMode:w}:(_.isBackwards=o,_.rendering=null,_.renderingStartTime=0,_.last=h,_.tail=c,_.tailMode=w)}function Pp(r,o,c){var h=o.pendingProps,w=h.revealOrder,_=h.tail;if(kn(r,o,h.children,c),h=Et.current,(h&2)!==0)h=h&1|2,o.flags|=128;else{if(r!==null&&(r.flags&128)!==0)e:for(r=o.child;r!==null;){if(r.tag===13)r.memoizedState!==null&&Op(r,c,o);else if(r.tag===19)Op(r,c,o);else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===o)break e;for(;r.sibling===null;){if(r.return===null||r.return===o)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}h&=1}if(wt(Et,h),(o.mode&1)===0)o.memoizedState=null;else switch(w){case"forwards":for(c=o.child,w=null;c!==null;)r=c.alternate,r!==null&&tc(r)===null&&(w=c),c=c.sibling;c=w,c===null?(w=o.child,o.child=null):(w=c.sibling,c.sibling=null),Dd(o,!1,w,c,_);break;case"backwards":for(c=null,w=o.child,o.child=null;w!==null;){if(r=w.alternate,r!==null&&tc(r)===null){o.child=w;break}r=w.sibling,w.sibling=c,c=w,w=r}Dd(o,!0,c,null,_);break;case"together":Dd(o,!1,null,null,void 0);break;default:o.memoizedState=null}return o.child}function cc(r,o){(o.mode&1)===0&&r!==null&&(r.alternate=null,o.alternate=null,o.flags|=2)}function Ys(r,o,c){if(r!==null&&(o.dependencies=r.dependencies),ia|=o.lanes,(c&o.childLanes)===0)return null;if(r!==null&&o.child!==r.child)throw Error(n(153));if(o.child!==null){for(r=o.child,c=Er(r,r.pendingProps),o.child=c,c.return=o;r.sibling!==null;)r=r.sibling,c=c.sibling=Er(r,r.pendingProps),c.return=o;c.sibling=null}return o.child}function Mb(r,o,c){switch(o.tag){case 3:Ip(o),Xa();break;case 5:Qm(o);break;case 1:Rn(o.type)&&Hl(o);break;case 4:yd(o,o.stateNode.containerInfo);break;case 10:var h=o.type._context,w=o.memoizedProps.value;wt(Ql,h._currentValue),h._currentValue=w;break;case 13:if(h=o.memoizedState,h!==null)return h.dehydrated!==null?(wt(Et,Et.current&1),o.flags|=128,null):(c&o.child.childLanes)!==0?Lp(r,o,c):(wt(Et,Et.current&1),r=Ys(r,o,c),r!==null?r.sibling:null);wt(Et,Et.current&1);break;case 19:if(h=(c&o.childLanes)!==0,(r.flags&128)!==0){if(h)return Pp(r,o,c);o.flags|=128}if(w=o.memoizedState,w!==null&&(w.rendering=null,w.tail=null,w.lastEffect=null),wt(Et,Et.current),h)break;return null;case 22:case 23:return o.lanes=0,$p(r,o,c)}return Ys(r,o,c)}var Dp,Fd,Fp,zp;Dp=function(r,o){for(var c=o.child;c!==null;){if(c.tag===5||c.tag===6)r.appendChild(c.stateNode);else if(c.tag!==4&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===o)break;for(;c.sibling===null;){if(c.return===null||c.return===o)return;c=c.return}c.sibling.return=c.return,c=c.sibling}},Fd=function(){},Fp=function(r,o,c,h){var w=r.memoizedProps;if(w!==h){r=o.stateNode,aa($s.current);var _=null;switch(c){case"input":w=qe(r,w),h=qe(r,h),_=[];break;case"select":w=W({},w,{value:void 0}),h=W({},h,{value:void 0}),_=[];break;case"textarea":w=G(r,w),h=G(r,h),_=[];break;default:typeof w.onClick!="function"&&typeof h.onClick=="function"&&(r.onclick=Wl)}xt(c,h);var E;c=null;for(re in w)if(!h.hasOwnProperty(re)&&w.hasOwnProperty(re)&&w[re]!=null)if(re==="style"){var P=w[re];for(E in P)P.hasOwnProperty(E)&&(c||(c={}),c[E]="")}else re!=="dangerouslySetInnerHTML"&&re!=="children"&&re!=="suppressContentEditableWarning"&&re!=="suppressHydrationWarning"&&re!=="autoFocus"&&(i.hasOwnProperty(re)?_||(_=[]):(_=_||[]).push(re,null));for(re in h){var U=h[re];if(P=w!=null?w[re]:void 0,h.hasOwnProperty(re)&&U!==P&&(U!=null||P!=null))if(re==="style")if(P){for(E in P)!P.hasOwnProperty(E)||U&&U.hasOwnProperty(E)||(c||(c={}),c[E]="");for(E in U)U.hasOwnProperty(E)&&P[E]!==U[E]&&(c||(c={}),c[E]=U[E])}else c||(_||(_=[]),_.push(re,c)),c=U;else re==="dangerouslySetInnerHTML"?(U=U?U.__html:void 0,P=P?P.__html:void 0,U!=null&&P!==U&&(_=_||[]).push(re,U)):re==="children"?typeof U!="string"&&typeof U!="number"||(_=_||[]).push(re,""+U):re!=="suppressContentEditableWarning"&&re!=="suppressHydrationWarning"&&(i.hasOwnProperty(re)?(U!=null&&re==="onScroll"&&_t("scroll",r),_||P===U||(_=[])):(_=_||[]).push(re,U))}c&&(_=_||[]).push("style",c);var re=_;(o.updateQueue=re)&&(o.flags|=4)}},zp=function(r,o,c,h){c!==h&&(o.flags|=4)};function bi(r,o){if(!Nt)switch(r.tailMode){case"hidden":o=r.tail;for(var c=null;o!==null;)o.alternate!==null&&(c=o),o=o.sibling;c===null?r.tail=null:c.sibling=null;break;case"collapsed":c=r.tail;for(var h=null;c!==null;)c.alternate!==null&&(h=c),c=c.sibling;h===null?o||r.tail===null?r.tail=null:r.tail.sibling=null:h.sibling=null}}function mn(r){var o=r.alternate!==null&&r.alternate.child===r.child,c=0,h=0;if(o)for(var w=r.child;w!==null;)c|=w.lanes|w.childLanes,h|=w.subtreeFlags&14680064,h|=w.flags&14680064,w.return=r,w=w.sibling;else for(w=r.child;w!==null;)c|=w.lanes|w.childLanes,h|=w.subtreeFlags,h|=w.flags,w.return=r,w=w.sibling;return r.subtreeFlags|=h,r.childLanes=c,o}function Lb(r,o,c){var h=o.pendingProps;switch(id(o),o.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return mn(o),null;case 1:return Rn(o.type)&&Vl(),mn(o),null;case 3:return h=o.stateNode,no(),bt(Tn),bt(fn),_d(),h.pendingContext&&(h.context=h.pendingContext,h.pendingContext=null),(r===null||r.child===null)&&(ql(o)?o.flags|=4:r===null||r.memoizedState.isDehydrated&&(o.flags&256)===0||(o.flags|=1024,ys!==null&&(Yd(ys),ys=null))),Fd(r,o),mn(o),null;case 5:wd(o);var w=aa(gi.current);if(c=o.type,r!==null&&o.stateNode!=null)Fp(r,o,c,h,w),r.ref!==o.ref&&(o.flags|=512,o.flags|=2097152);else{if(!h){if(o.stateNode===null)throw Error(n(166));return mn(o),null}if(r=aa($s.current),ql(o)){h=o.stateNode,c=o.type;var _=o.memoizedProps;switch(h[As]=o,h[di]=_,r=(o.mode&1)!==0,c){case"dialog":_t("cancel",h),_t("close",h);break;case"iframe":case"object":case"embed":_t("load",h);break;case"video":case"audio":for(w=0;w<li.length;w++)_t(li[w],h);break;case"source":_t("error",h);break;case"img":case"image":case"link":_t("error",h),_t("load",h);break;case"details":_t("toggle",h);break;case"input":ge(h,_),_t("invalid",h);break;case"select":h._wrapperState={wasMultiple:!!_.multiple},_t("invalid",h);break;case"textarea":le(h,_),_t("invalid",h)}xt(c,_),w=null;for(var E in _)if(_.hasOwnProperty(E)){var P=_[E];E==="children"?typeof P=="string"?h.textContent!==P&&(_.suppressHydrationWarning!==!0&&Bl(h.textContent,P,r),w=["children",P]):typeof P=="number"&&h.textContent!==""+P&&(_.suppressHydrationWarning!==!0&&Bl(h.textContent,P,r),w=["children",""+P]):i.hasOwnProperty(E)&&P!=null&&E==="onScroll"&&_t("scroll",h)}switch(c){case"input":Pe(h),et(h,_,!0);break;case"textarea":Pe(h),Q(h);break;case"select":case"option":break;default:typeof _.onClick=="function"&&(h.onclick=Wl)}h=w,o.updateQueue=h,h!==null&&(o.flags|=4)}else{E=w.nodeType===9?w:w.ownerDocument,r==="http://www.w3.org/1999/xhtml"&&(r=_e(c)),r==="http://www.w3.org/1999/xhtml"?c==="script"?(r=E.createElement("div"),r.innerHTML="<script><\/script>",r=r.removeChild(r.firstChild)):typeof h.is=="string"?r=E.createElement(c,{is:h.is}):(r=E.createElement(c),c==="select"&&(E=r,h.multiple?E.multiple=!0:h.size&&(E.size=h.size))):r=E.createElementNS(r,c),r[As]=o,r[di]=h,Dp(r,o,!1,!1),o.stateNode=r;e:{switch(E=kt(c,h),c){case"dialog":_t("cancel",r),_t("close",r),w=h;break;case"iframe":case"object":case"embed":_t("load",r),w=h;break;case"video":case"audio":for(w=0;w<li.length;w++)_t(li[w],r);w=h;break;case"source":_t("error",r),w=h;break;case"img":case"image":case"link":_t("error",r),_t("load",r),w=h;break;case"details":_t("toggle",r),w=h;break;case"input":ge(r,h),w=qe(r,h),_t("invalid",r);break;case"option":w=h;break;case"select":r._wrapperState={wasMultiple:!!h.multiple},w=W({},h,{value:void 0}),_t("invalid",r);break;case"textarea":le(r,h),w=G(r,h),_t("invalid",r);break;default:w=h}xt(c,w),P=w;for(_ in P)if(P.hasOwnProperty(_)){var U=P[_];_==="style"?De(r,U):_==="dangerouslySetInnerHTML"?(U=U?U.__html:void 0,U!=null&&Le(r,U)):_==="children"?typeof U=="string"?(c!=="textarea"||U!=="")&&Fe(r,U):typeof U=="number"&&Fe(r,""+U):_!=="suppressContentEditableWarning"&&_!=="suppressHydrationWarning"&&_!=="autoFocus"&&(i.hasOwnProperty(_)?U!=null&&_==="onScroll"&&_t("scroll",r):U!=null&&$(r,_,U,E))}switch(c){case"input":Pe(r),et(r,h,!1);break;case"textarea":Pe(r),Q(r);break;case"option":h.value!=null&&r.setAttribute("value",""+q(h.value));break;case"select":r.multiple=!!h.multiple,_=h.value,_!=null?fe(r,!!h.multiple,_,!1):h.defaultValue!=null&&fe(r,!!h.multiple,h.defaultValue,!0);break;default:typeof w.onClick=="function"&&(r.onclick=Wl)}switch(c){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 mn(o),null;case 6:if(r&&o.stateNode!=null)zp(r,o,r.memoizedProps,h);else{if(typeof h!="string"&&o.stateNode===null)throw Error(n(166));if(c=aa(gi.current),aa($s.current),ql(o)){if(h=o.stateNode,c=o.memoizedProps,h[As]=o,(_=h.nodeValue!==c)&&(r=Gn,r!==null))switch(r.tag){case 3:Bl(h.nodeValue,c,(r.mode&1)!==0);break;case 5:r.memoizedProps.suppressHydrationWarning!==!0&&Bl(h.nodeValue,c,(r.mode&1)!==0)}_&&(o.flags|=4)}else h=(c.nodeType===9?c:c.ownerDocument).createTextNode(h),h[As]=o,o.stateNode=h}return mn(o),null;case 13:if(bt(Et),h=o.memoizedState,r===null||r.memoizedState!==null&&r.memoizedState.dehydrated!==null){if(Nt&&Kn!==null&&(o.mode&1)!==0&&(o.flags&128)===0)Um(),Xa(),o.flags|=98560,_=!1;else if(_=ql(o),h!==null&&h.dehydrated!==null){if(r===null){if(!_)throw Error(n(318));if(_=o.memoizedState,_=_!==null?_.dehydrated:null,!_)throw Error(n(317));_[As]=o}else Xa(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;mn(o),_=!1}else ys!==null&&(Yd(ys),ys=null),_=!0;if(!_)return o.flags&65536?o:null}return(o.flags&128)!==0?(o.lanes=c,o):(h=h!==null,h!==(r!==null&&r.memoizedState!==null)&&h&&(o.child.flags|=8192,(o.mode&1)!==0&&(r===null||(Et.current&1)!==0?qt===0&&(qt=3):Zd())),o.updateQueue!==null&&(o.flags|=4),mn(o),null);case 4:return no(),Fd(r,o),r===null&&ci(o.stateNode.containerInfo),mn(o),null;case 10:return hd(o.type._context),mn(o),null;case 17:return Rn(o.type)&&Vl(),mn(o),null;case 19:if(bt(Et),_=o.memoizedState,_===null)return mn(o),null;if(h=(o.flags&128)!==0,E=_.rendering,E===null)if(h)bi(_,!1);else{if(qt!==0||r!==null&&(r.flags&128)!==0)for(r=o.child;r!==null;){if(E=tc(r),E!==null){for(o.flags|=128,bi(_,!1),h=E.updateQueue,h!==null&&(o.updateQueue=h,o.flags|=4),o.subtreeFlags=0,h=c,c=o.child;c!==null;)_=c,r=h,_.flags&=14680066,E=_.alternate,E===null?(_.childLanes=0,_.lanes=r,_.child=null,_.subtreeFlags=0,_.memoizedProps=null,_.memoizedState=null,_.updateQueue=null,_.dependencies=null,_.stateNode=null):(_.childLanes=E.childLanes,_.lanes=E.lanes,_.child=E.child,_.subtreeFlags=0,_.deletions=null,_.memoizedProps=E.memoizedProps,_.memoizedState=E.memoizedState,_.updateQueue=E.updateQueue,_.type=E.type,r=E.dependencies,_.dependencies=r===null?null:{lanes:r.lanes,firstContext:r.firstContext}),c=c.sibling;return wt(Et,Et.current&1|2),o.child}r=r.sibling}_.tail!==null&&jt()>oo&&(o.flags|=128,h=!0,bi(_,!1),o.lanes=4194304)}else{if(!h)if(r=tc(E),r!==null){if(o.flags|=128,h=!0,c=r.updateQueue,c!==null&&(o.updateQueue=c,o.flags|=4),bi(_,!0),_.tail===null&&_.tailMode==="hidden"&&!E.alternate&&!Nt)return mn(o),null}else 2*jt()-_.renderingStartTime>oo&&c!==1073741824&&(o.flags|=128,h=!0,bi(_,!1),o.lanes=4194304);_.isBackwards?(E.sibling=o.child,o.child=E):(c=_.last,c!==null?c.sibling=E:o.child=E,_.last=E)}return _.tail!==null?(o=_.tail,_.rendering=o,_.tail=o.sibling,_.renderingStartTime=jt(),o.sibling=null,c=Et.current,wt(Et,h?c&1|2:c&1),o):(mn(o),null);case 22:case 23:return Xd(),h=o.memoizedState!==null,r!==null&&r.memoizedState!==null!==h&&(o.flags|=8192),h&&(o.mode&1)!==0?(Jn&1073741824)!==0&&(mn(o),o.subtreeFlags&6&&(o.flags|=8192)):mn(o),null;case 24:return null;case 25:return null}throw Error(n(156,o.tag))}function Ob(r,o){switch(id(o),o.tag){case 1:return Rn(o.type)&&Vl(),r=o.flags,r&65536?(o.flags=r&-65537|128,o):null;case 3:return no(),bt(Tn),bt(fn),_d(),r=o.flags,(r&65536)!==0&&(r&128)===0?(o.flags=r&-65537|128,o):null;case 5:return wd(o),null;case 13:if(bt(Et),r=o.memoizedState,r!==null&&r.dehydrated!==null){if(o.alternate===null)throw Error(n(340));Xa()}return r=o.flags,r&65536?(o.flags=r&-65537|128,o):null;case 19:return bt(Et),null;case 4:return no(),null;case 10:return hd(o.type._context),null;case 22:case 23:return Xd(),null;case 24:return null;default:return null}}var uc=!1,pn=!1,Pb=typeof WeakSet=="function"?WeakSet:Set,Ee=null;function ro(r,o){var c=r.ref;if(c!==null)if(typeof c=="function")try{c(null)}catch(h){It(r,o,h)}else c.current=null}function zd(r,o,c){try{c()}catch(h){It(r,o,h)}}var Bp=!1;function Db(r,o){if(Xu=Da,r=vm(),Vu(r)){if("selectionStart"in r)var c={start:r.selectionStart,end:r.selectionEnd};else e:{c=(c=r.ownerDocument)&&c.defaultView||window;var h=c.getSelection&&c.getSelection();if(h&&h.rangeCount!==0){c=h.anchorNode;var w=h.anchorOffset,_=h.focusNode;h=h.focusOffset;try{c.nodeType,_.nodeType}catch{c=null;break e}var E=0,P=-1,U=-1,re=0,pe=0,ye=r,me=null;t:for(;;){for(var Ce;ye!==c||w!==0&&ye.nodeType!==3||(P=E+w),ye!==_||h!==0&&ye.nodeType!==3||(U=E+h),ye.nodeType===3&&(E+=ye.nodeValue.length),(Ce=ye.firstChild)!==null;)me=ye,ye=Ce;for(;;){if(ye===r)break t;if(me===c&&++re===w&&(P=E),me===_&&++pe===h&&(U=E),(Ce=ye.nextSibling)!==null)break;ye=me,me=ye.parentNode}ye=Ce}c=P===-1||U===-1?null:{start:P,end:U}}else c=null}c=c||{start:0,end:0}}else c=null;for(Zu={focusedElem:r,selectionRange:c},Da=!1,Ee=o;Ee!==null;)if(o=Ee,r=o.child,(o.subtreeFlags&1028)!==0&&r!==null)r.return=o,Ee=r;else for(;Ee!==null;){o=Ee;try{var Ae=o.alternate;if((o.flags&1024)!==0)switch(o.tag){case 0:case 11:case 15:break;case 1:if(Ae!==null){var Te=Ae.memoizedProps,Pt=Ae.memoizedState,X=o.stateNode,H=X.getSnapshotBeforeUpdate(o.elementType===o.type?Te:ws(o.type,Te),Pt);X.__reactInternalSnapshotBeforeUpdate=H}break;case 3:var ee=o.stateNode.containerInfo;ee.nodeType===1?ee.textContent="":ee.nodeType===9&&ee.documentElement&&ee.removeChild(ee.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(ke){It(o,o.return,ke)}if(r=o.sibling,r!==null){r.return=o.return,Ee=r;break}Ee=o.return}return Ae=Bp,Bp=!1,Ae}function xi(r,o,c){var h=o.updateQueue;if(h=h!==null?h.lastEffect:null,h!==null){var w=h=h.next;do{if((w.tag&r)===r){var _=w.destroy;w.destroy=void 0,_!==void 0&&zd(o,c,_)}w=w.next}while(w!==h)}}function dc(r,o){if(o=o.updateQueue,o=o!==null?o.lastEffect:null,o!==null){var c=o=o.next;do{if((c.tag&r)===r){var h=c.create;c.destroy=h()}c=c.next}while(c!==o)}}function Bd(r){var o=r.ref;if(o!==null){var c=r.stateNode;switch(r.tag){case 5:r=c;break;default:r=c}typeof o=="function"?o(r):o.current=r}}function Wp(r){var o=r.alternate;o!==null&&(r.alternate=null,Wp(o)),r.child=null,r.deletions=null,r.sibling=null,r.tag===5&&(o=r.stateNode,o!==null&&(delete o[As],delete o[di],delete o[sd],delete o[_b],delete o[bb])),r.stateNode=null,r.return=null,r.dependencies=null,r.memoizedProps=null,r.memoizedState=null,r.pendingProps=null,r.stateNode=null,r.updateQueue=null}function Up(r){return r.tag===5||r.tag===3||r.tag===4}function Vp(r){e:for(;;){for(;r.sibling===null;){if(r.return===null||Up(r.return))return null;r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.flags&2||r.child===null||r.tag===4)continue e;r.child.return=r,r=r.child}if(!(r.flags&2))return r.stateNode}}function Wd(r,o,c){var h=r.tag;if(h===5||h===6)r=r.stateNode,o?c.nodeType===8?c.parentNode.insertBefore(r,o):c.insertBefore(r,o):(c.nodeType===8?(o=c.parentNode,o.insertBefore(r,c)):(o=c,o.appendChild(r)),c=c._reactRootContainer,c!=null||o.onclick!==null||(o.onclick=Wl));else if(h!==4&&(r=r.child,r!==null))for(Wd(r,o,c),r=r.sibling;r!==null;)Wd(r,o,c),r=r.sibling}function Ud(r,o,c){var h=r.tag;if(h===5||h===6)r=r.stateNode,o?c.insertBefore(r,o):c.appendChild(r);else if(h!==4&&(r=r.child,r!==null))for(Ud(r,o,c),r=r.sibling;r!==null;)Ud(r,o,c),r=r.sibling}var sn=null,vs=!1;function kr(r,o,c){for(c=c.child;c!==null;)Hp(r,o,c),c=c.sibling}function Hp(r,o,c){if(Bt&&typeof Bt.onCommitFiberUnmount=="function")try{Bt.onCommitFiberUnmount(Cs,c)}catch{}switch(c.tag){case 5:pn||ro(c,o);case 6:var h=sn,w=vs;sn=null,kr(r,o,c),sn=h,vs=w,sn!==null&&(vs?(r=sn,c=c.stateNode,r.nodeType===8?r.parentNode.removeChild(c):r.removeChild(c)):sn.removeChild(c.stateNode));break;case 18:sn!==null&&(vs?(r=sn,c=c.stateNode,r.nodeType===8?nd(r.parentNode,c):r.nodeType===1&&nd(r,c),Ws(r)):nd(sn,c.stateNode));break;case 4:h=sn,w=vs,sn=c.stateNode.containerInfo,vs=!0,kr(r,o,c),sn=h,vs=w;break;case 0:case 11:case 14:case 15:if(!pn&&(h=c.updateQueue,h!==null&&(h=h.lastEffect,h!==null))){w=h=h.next;do{var _=w,E=_.destroy;_=_.tag,E!==void 0&&((_&2)!==0||(_&4)!==0)&&zd(c,o,E),w=w.next}while(w!==h)}kr(r,o,c);break;case 1:if(!pn&&(ro(c,o),h=c.stateNode,typeof h.componentWillUnmount=="function"))try{h.props=c.memoizedProps,h.state=c.memoizedState,h.componentWillUnmount()}catch(P){It(c,o,P)}kr(r,o,c);break;case 21:kr(r,o,c);break;case 22:c.mode&1?(pn=(h=pn)||c.memoizedState!==null,kr(r,o,c),pn=h):kr(r,o,c);break;default:kr(r,o,c)}}function Gp(r){var o=r.updateQueue;if(o!==null){r.updateQueue=null;var c=r.stateNode;c===null&&(c=r.stateNode=new Pb),o.forEach(function(h){var w=Kb.bind(null,r,h);c.has(h)||(c.add(h),h.then(w,w))})}}function _s(r,o){var c=o.deletions;if(c!==null)for(var h=0;h<c.length;h++){var w=c[h];try{var _=r,E=o,P=E;e:for(;P!==null;){switch(P.tag){case 5:sn=P.stateNode,vs=!1;break e;case 3:sn=P.stateNode.containerInfo,vs=!0;break e;case 4:sn=P.stateNode.containerInfo,vs=!0;break e}P=P.return}if(sn===null)throw Error(n(160));Hp(_,E,w),sn=null,vs=!1;var U=w.alternate;U!==null&&(U.return=null),w.return=null}catch(re){It(w,o,re)}}if(o.subtreeFlags&12854)for(o=o.child;o!==null;)Kp(o,r),o=o.sibling}function Kp(r,o){var c=r.alternate,h=r.flags;switch(r.tag){case 0:case 11:case 14:case 15:if(_s(o,r),Rs(r),h&4){try{xi(3,r,r.return),dc(3,r)}catch(Te){It(r,r.return,Te)}try{xi(5,r,r.return)}catch(Te){It(r,r.return,Te)}}break;case 1:_s(o,r),Rs(r),h&512&&c!==null&&ro(c,c.return);break;case 5:if(_s(o,r),Rs(r),h&512&&c!==null&&ro(c,c.return),r.flags&32){var w=r.stateNode;try{Fe(w,"")}catch(Te){It(r,r.return,Te)}}if(h&4&&(w=r.stateNode,w!=null)){var _=r.memoizedProps,E=c!==null?c.memoizedProps:_,P=r.type,U=r.updateQueue;if(r.updateQueue=null,U!==null)try{P==="input"&&_.type==="radio"&&_.name!=null&&$e(w,_),kt(P,E);var re=kt(P,_);for(E=0;E<U.length;E+=2){var pe=U[E],ye=U[E+1];pe==="style"?De(w,ye):pe==="dangerouslySetInnerHTML"?Le(w,ye):pe==="children"?Fe(w,ye):$(w,pe,ye,re)}switch(P){case"input":nt(w,_);break;case"textarea":he(w,_);break;case"select":var me=w._wrapperState.wasMultiple;w._wrapperState.wasMultiple=!!_.multiple;var Ce=_.value;Ce!=null?fe(w,!!_.multiple,Ce,!1):me!==!!_.multiple&&(_.defaultValue!=null?fe(w,!!_.multiple,_.defaultValue,!0):fe(w,!!_.multiple,_.multiple?[]:"",!1))}w[di]=_}catch(Te){It(r,r.return,Te)}}break;case 6:if(_s(o,r),Rs(r),h&4){if(r.stateNode===null)throw Error(n(162));w=r.stateNode,_=r.memoizedProps;try{w.nodeValue=_}catch(Te){It(r,r.return,Te)}}break;case 3:if(_s(o,r),Rs(r),h&4&&c!==null&&c.memoizedState.isDehydrated)try{Ws(o.containerInfo)}catch(Te){It(r,r.return,Te)}break;case 4:_s(o,r),Rs(r);break;case 13:_s(o,r),Rs(r),w=r.child,w.flags&8192&&(_=w.memoizedState!==null,w.stateNode.isHidden=_,!_||w.alternate!==null&&w.alternate.memoizedState!==null||(Gd=jt())),h&4&&Gp(r);break;case 22:if(pe=c!==null&&c.memoizedState!==null,r.mode&1?(pn=(re=pn)||pe,_s(o,r),pn=re):_s(o,r),Rs(r),h&8192){if(re=r.memoizedState!==null,(r.stateNode.isHidden=re)&&!pe&&(r.mode&1)!==0)for(Ee=r,pe=r.child;pe!==null;){for(ye=Ee=pe;Ee!==null;){switch(me=Ee,Ce=me.child,me.tag){case 0:case 11:case 14:case 15:xi(4,me,me.return);break;case 1:ro(me,me.return);var Ae=me.stateNode;if(typeof Ae.componentWillUnmount=="function"){h=me,c=me.return;try{o=h,Ae.props=o.memoizedProps,Ae.state=o.memoizedState,Ae.componentWillUnmount()}catch(Te){It(h,c,Te)}}break;case 5:ro(me,me.return);break;case 22:if(me.memoizedState!==null){Yp(ye);continue}}Ce!==null?(Ce.return=me,Ee=Ce):Yp(ye)}pe=pe.sibling}e:for(pe=null,ye=r;;){if(ye.tag===5){if(pe===null){pe=ye;try{w=ye.stateNode,re?(_=w.style,typeof _.setProperty=="function"?_.setProperty("display","none","important"):_.display="none"):(P=ye.stateNode,U=ye.memoizedProps.style,E=U!=null&&U.hasOwnProperty("display")?U.display:null,P.style.display=Ge("display",E))}catch(Te){It(r,r.return,Te)}}}else if(ye.tag===6){if(pe===null)try{ye.stateNode.nodeValue=re?"":ye.memoizedProps}catch(Te){It(r,r.return,Te)}}else if((ye.tag!==22&&ye.tag!==23||ye.memoizedState===null||ye===r)&&ye.child!==null){ye.child.return=ye,ye=ye.child;continue}if(ye===r)break e;for(;ye.sibling===null;){if(ye.return===null||ye.return===r)break e;pe===ye&&(pe=null),ye=ye.return}pe===ye&&(pe=null),ye.sibling.return=ye.return,ye=ye.sibling}}break;case 19:_s(o,r),Rs(r),h&4&&Gp(r);break;case 21:break;default:_s(o,r),Rs(r)}}function Rs(r){var o=r.flags;if(o&2){try{e:{for(var c=r.return;c!==null;){if(Up(c)){var h=c;break e}c=c.return}throw Error(n(160))}switch(h.tag){case 5:var w=h.stateNode;h.flags&32&&(Fe(w,""),h.flags&=-33);var _=Vp(r);Ud(r,_,w);break;case 3:case 4:var E=h.stateNode.containerInfo,P=Vp(r);Wd(r,P,E);break;default:throw Error(n(161))}}catch(U){It(r,r.return,U)}r.flags&=-3}o&4096&&(r.flags&=-4097)}function Fb(r,o,c){Ee=r,Jp(r)}function Jp(r,o,c){for(var h=(r.mode&1)!==0;Ee!==null;){var w=Ee,_=w.child;if(w.tag===22&&h){var E=w.memoizedState!==null||uc;if(!E){var P=w.alternate,U=P!==null&&P.memoizedState!==null||pn;P=uc;var re=pn;if(uc=E,(pn=U)&&!re)for(Ee=w;Ee!==null;)E=Ee,U=E.child,E.tag===22&&E.memoizedState!==null?Qp(w):U!==null?(U.return=E,Ee=U):Qp(w);for(;_!==null;)Ee=_,Jp(_),_=_.sibling;Ee=w,uc=P,pn=re}qp(r)}else(w.subtreeFlags&8772)!==0&&_!==null?(_.return=w,Ee=_):qp(r)}}function qp(r){for(;Ee!==null;){var o=Ee;if((o.flags&8772)!==0){var c=o.alternate;try{if((o.flags&8772)!==0)switch(o.tag){case 0:case 11:case 15:pn||dc(5,o);break;case 1:var h=o.stateNode;if(o.flags&4&&!pn)if(c===null)h.componentDidMount();else{var w=o.elementType===o.type?c.memoizedProps:ws(o.type,c.memoizedProps);h.componentDidUpdate(w,c.memoizedState,h.__reactInternalSnapshotBeforeUpdate)}var _=o.updateQueue;_!==null&&Ym(o,_,h);break;case 3:var E=o.updateQueue;if(E!==null){if(c=null,o.child!==null)switch(o.child.tag){case 5:c=o.child.stateNode;break;case 1:c=o.child.stateNode}Ym(o,E,c)}break;case 5:var P=o.stateNode;if(c===null&&o.flags&4){c=P;var U=o.memoizedProps;switch(o.type){case"button":case"input":case"select":case"textarea":U.autoFocus&&c.focus();break;case"img":U.src&&(c.src=U.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(o.memoizedState===null){var re=o.alternate;if(re!==null){var pe=re.memoizedState;if(pe!==null){var ye=pe.dehydrated;ye!==null&&Ws(ye)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}pn||o.flags&512&&Bd(o)}catch(me){It(o,o.return,me)}}if(o===r){Ee=null;break}if(c=o.sibling,c!==null){c.return=o.return,Ee=c;break}Ee=o.return}}function Yp(r){for(;Ee!==null;){var o=Ee;if(o===r){Ee=null;break}var c=o.sibling;if(c!==null){c.return=o.return,Ee=c;break}Ee=o.return}}function Qp(r){for(;Ee!==null;){var o=Ee;try{switch(o.tag){case 0:case 11:case 15:var c=o.return;try{dc(4,o)}catch(U){It(o,c,U)}break;case 1:var h=o.stateNode;if(typeof h.componentDidMount=="function"){var w=o.return;try{h.componentDidMount()}catch(U){It(o,w,U)}}var _=o.return;try{Bd(o)}catch(U){It(o,_,U)}break;case 5:var E=o.return;try{Bd(o)}catch(U){It(o,E,U)}}}catch(U){It(o,o.return,U)}if(o===r){Ee=null;break}var P=o.sibling;if(P!==null){P.return=o.return,Ee=P;break}Ee=o.return}}var zb=Math.ceil,fc=j.ReactCurrentDispatcher,Vd=j.ReactCurrentOwner,is=j.ReactCurrentBatchConfig,ot=0,tn=null,Vt=null,rn=0,Jn=0,ao=wr(0),qt=0,ki=null,ia=0,hc=0,Hd=0,ji=null,Mn=null,Gd=0,oo=1/0,Qs=null,mc=!1,Kd=null,jr=null,pc=!1,Sr=null,gc=0,Si=0,Jd=null,yc=-1,wc=0;function jn(){return(ot&6)!==0?jt():yc!==-1?yc:yc=jt()}function Nr(r){return(r.mode&1)===0?1:(ot&2)!==0&&rn!==0?rn&-rn:kb.transition!==null?(wc===0&&(wc=An()),wc):(r=rt,r!==0||(r=window.event,r=r===void 0?16:vl(r.type)),r)}function bs(r,o,c,h){if(50<Si)throw Si=0,Jd=null,Error(n(185));cr(r,c,h),((ot&2)===0||r!==tn)&&(r===tn&&((ot&2)===0&&(hc|=c),qt===4&&Cr(r,rn)),Ln(r,h),c===1&&ot===0&&(o.mode&1)===0&&(oo=jt()+500,Gl&&_r()))}function Ln(r,o){var c=r.callbackNode;Go(r,o);var h=Zn(r,r===tn?rn:0);if(h===0)c!==null&&Ca(c),r.callbackNode=null,r.callbackPriority=0;else if(o=h&-h,r.callbackPriority!==o){if(c!=null&&Ca(c),o===1)r.tag===0?xb(Zp.bind(null,r)):Dm(Zp.bind(null,r)),wb(function(){(ot&6)===0&&_r()}),c=null;else{switch(dn(h)){case 1:c=Ea;break;case 4:c=gl;break;case 16:c=Aa;break;case 536870912:c=Ye;break;default:c=Aa}c=ig(c,Xp.bind(null,r))}r.callbackPriority=o,r.callbackNode=c}}function Xp(r,o){if(yc=-1,wc=0,(ot&6)!==0)throw Error(n(327));var c=r.callbackNode;if(io()&&r.callbackNode!==c)return null;var h=Zn(r,r===tn?rn:0);if(h===0)return null;if((h&30)!==0||(h&r.expiredLanes)!==0||o)o=vc(r,h);else{o=h;var w=ot;ot|=2;var _=tg();(tn!==r||rn!==o)&&(Qs=null,oo=jt()+500,ca(r,o));do try{Ub();break}catch(P){eg(r,P)}while(!0);fd(),fc.current=_,ot=w,Vt!==null?o=0:(tn=null,rn=0,o=qt)}if(o!==0){if(o===2&&(w=Ra(r),w!==0&&(h=w,o=qd(r,w))),o===1)throw c=ki,ca(r,0),Cr(r,h),Ln(r,jt()),c;if(o===6)Cr(r,h);else{if(w=r.current.alternate,(h&30)===0&&!Bb(w)&&(o=vc(r,h),o===2&&(_=Ra(r),_!==0&&(h=_,o=qd(r,_))),o===1))throw c=ki,ca(r,0),Cr(r,h),Ln(r,jt()),c;switch(r.finishedWork=w,r.finishedLanes=h,o){case 0:case 1:throw Error(n(345));case 2:ua(r,Mn,Qs);break;case 3:if(Cr(r,h),(h&130023424)===h&&(o=Gd+500-jt(),10<o)){if(Zn(r,0)!==0)break;if(w=r.suspendedLanes,(w&h)!==h){jn(),r.pingedLanes|=r.suspendedLanes&w;break}r.timeoutHandle=td(ua.bind(null,r,Mn,Qs),o);break}ua(r,Mn,Qs);break;case 4:if(Cr(r,h),(h&4194240)===h)break;for(o=r.eventTimes,w=-1;0<h;){var E=31-Wt(h);_=1<<E,E=o[E],E>w&&(w=E),h&=~_}if(h=w,h=jt()-h,h=(120>h?120:480>h?480:1080>h?1080:1920>h?1920:3e3>h?3e3:4320>h?4320:1960*zb(h/1960))-h,10<h){r.timeoutHandle=td(ua.bind(null,r,Mn,Qs),h);break}ua(r,Mn,Qs);break;case 5:ua(r,Mn,Qs);break;default:throw Error(n(329))}}}return Ln(r,jt()),r.callbackNode===c?Xp.bind(null,r):null}function qd(r,o){var c=ji;return r.current.memoizedState.isDehydrated&&(ca(r,o).flags|=256),r=vc(r,o),r!==2&&(o=Mn,Mn=c,o!==null&&Yd(o)),r}function Yd(r){Mn===null?Mn=r:Mn.push.apply(Mn,r)}function Bb(r){for(var o=r;;){if(o.flags&16384){var c=o.updateQueue;if(c!==null&&(c=c.stores,c!==null))for(var h=0;h<c.length;h++){var w=c[h],_=w.getSnapshot;w=w.value;try{if(!gs(_(),w))return!1}catch{return!1}}}if(c=o.child,o.subtreeFlags&16384&&c!==null)c.return=o,o=c;else{if(o===r)break;for(;o.sibling===null;){if(o.return===null||o.return===r)return!0;o=o.return}o.sibling.return=o.return,o=o.sibling}}return!0}function Cr(r,o){for(o&=~Hd,o&=~hc,r.suspendedLanes|=o,r.pingedLanes&=~o,r=r.expirationTimes;0<o;){var c=31-Wt(o),h=1<<c;r[c]=-1,o&=~h}}function Zp(r){if((ot&6)!==0)throw Error(n(327));io();var o=Zn(r,0);if((o&1)===0)return Ln(r,jt()),null;var c=vc(r,o);if(r.tag!==0&&c===2){var h=Ra(r);h!==0&&(o=h,c=qd(r,h))}if(c===1)throw c=ki,ca(r,0),Cr(r,o),Ln(r,jt()),c;if(c===6)throw Error(n(345));return r.finishedWork=r.current.alternate,r.finishedLanes=o,ua(r,Mn,Qs),Ln(r,jt()),null}function Qd(r,o){var c=ot;ot|=1;try{return r(o)}finally{ot=c,ot===0&&(oo=jt()+500,Gl&&_r())}}function la(r){Sr!==null&&Sr.tag===0&&(ot&6)===0&&io();var o=ot;ot|=1;var c=is.transition,h=rt;try{if(is.transition=null,rt=1,r)return r()}finally{rt=h,is.transition=c,ot=o,(ot&6)===0&&_r()}}function Xd(){Jn=ao.current,bt(ao)}function ca(r,o){r.finishedWork=null,r.finishedLanes=0;var c=r.timeoutHandle;if(c!==-1&&(r.timeoutHandle=-1,yb(c)),Vt!==null)for(c=Vt.return;c!==null;){var h=c;switch(id(h),h.tag){case 1:h=h.type.childContextTypes,h!=null&&Vl();break;case 3:no(),bt(Tn),bt(fn),_d();break;case 5:wd(h);break;case 4:no();break;case 13:bt(Et);break;case 19:bt(Et);break;case 10:hd(h.type._context);break;case 22:case 23:Xd()}c=c.return}if(tn=r,Vt=r=Er(r.current,null),rn=Jn=o,qt=0,ki=null,Hd=hc=ia=0,Mn=ji=null,ra!==null){for(o=0;o<ra.length;o++)if(c=ra[o],h=c.interleaved,h!==null){c.interleaved=null;var w=h.next,_=c.pending;if(_!==null){var E=_.next;_.next=w,h.next=E}c.pending=h}ra=null}return r}function eg(r,o){do{var c=Vt;try{if(fd(),nc.current=oc,sc){for(var h=At.memoizedState;h!==null;){var w=h.queue;w!==null&&(w.pending=null),h=h.next}sc=!1}if(oa=0,en=Jt=At=null,yi=!1,wi=0,Vd.current=null,c===null||c.return===null){qt=1,ki=o,Vt=null;break}e:{var _=r,E=c.return,P=c,U=o;if(o=rn,P.flags|=32768,U!==null&&typeof U=="object"&&typeof U.then=="function"){var re=U,pe=P,ye=pe.tag;if((pe.mode&1)===0&&(ye===0||ye===11||ye===15)){var me=pe.alternate;me?(pe.updateQueue=me.updateQueue,pe.memoizedState=me.memoizedState,pe.lanes=me.lanes):(pe.updateQueue=null,pe.memoizedState=null)}var Ce=Sp(E);if(Ce!==null){Ce.flags&=-257,Np(Ce,E,P,_,o),Ce.mode&1&&jp(_,re,o),o=Ce,U=re;var Ae=o.updateQueue;if(Ae===null){var Te=new Set;Te.add(U),o.updateQueue=Te}else Ae.add(U);break e}else{if((o&1)===0){jp(_,re,o),Zd();break e}U=Error(n(426))}}else if(Nt&&P.mode&1){var Pt=Sp(E);if(Pt!==null){(Pt.flags&65536)===0&&(Pt.flags|=256),Np(Pt,E,P,_,o),ud(so(U,P));break e}}_=U=so(U,P),qt!==4&&(qt=2),ji===null?ji=[_]:ji.push(_),_=E;do{switch(_.tag){case 3:_.flags|=65536,o&=-o,_.lanes|=o;var X=xp(_,U,o);qm(_,X);break e;case 1:P=U;var H=_.type,ee=_.stateNode;if((_.flags&128)===0&&(typeof H.getDerivedStateFromError=="function"||ee!==null&&typeof ee.componentDidCatch=="function"&&(jr===null||!jr.has(ee)))){_.flags|=65536,o&=-o,_.lanes|=o;var ke=kp(_,P,o);qm(_,ke);break e}}_=_.return}while(_!==null)}sg(c)}catch(Me){o=Me,Vt===c&&c!==null&&(Vt=c=c.return);continue}break}while(!0)}function tg(){var r=fc.current;return fc.current=oc,r===null?oc:r}function Zd(){(qt===0||qt===3||qt===2)&&(qt=4),tn===null||(ia&268435455)===0&&(hc&268435455)===0||Cr(tn,rn)}function vc(r,o){var c=ot;ot|=2;var h=tg();(tn!==r||rn!==o)&&(Qs=null,ca(r,o));do try{Wb();break}catch(w){eg(r,w)}while(!0);if(fd(),ot=c,fc.current=h,Vt!==null)throw Error(n(261));return tn=null,rn=0,qt}function Wb(){for(;Vt!==null;)ng(Vt)}function Ub(){for(;Vt!==null&&!Iu();)ng(Vt)}function ng(r){var o=og(r.alternate,r,Jn);r.memoizedProps=r.pendingProps,o===null?sg(r):Vt=o,Vd.current=null}function sg(r){var o=r;do{var c=o.alternate;if(r=o.return,(o.flags&32768)===0){if(c=Lb(c,o,Jn),c!==null){Vt=c;return}}else{if(c=Ob(c,o),c!==null){c.flags&=32767,Vt=c;return}if(r!==null)r.flags|=32768,r.subtreeFlags=0,r.deletions=null;else{qt=6,Vt=null;return}}if(o=o.sibling,o!==null){Vt=o;return}Vt=o=r}while(o!==null);qt===0&&(qt=5)}function ua(r,o,c){var h=rt,w=is.transition;try{is.transition=null,rt=1,Vb(r,o,c,h)}finally{is.transition=w,rt=h}return null}function Vb(r,o,c,h){do io();while(Sr!==null);if((ot&6)!==0)throw Error(n(327));c=r.finishedWork;var w=r.finishedLanes;if(c===null)return null;if(r.finishedWork=null,r.finishedLanes=0,c===r.current)throw Error(n(177));r.callbackNode=null,r.callbackPriority=0;var _=c.lanes|c.childLanes;if(ur(r,_),r===tn&&(Vt=tn=null,rn=0),(c.subtreeFlags&2064)===0&&(c.flags&2064)===0||pc||(pc=!0,ig(Aa,function(){return io(),null})),_=(c.flags&15990)!==0,(c.subtreeFlags&15990)!==0||_){_=is.transition,is.transition=null;var E=rt;rt=1;var P=ot;ot|=4,Vd.current=null,Db(r,c),Kp(c,r),ub(Zu),Da=!!Xu,Zu=Xu=null,r.current=c,Fb(c),Vo(),ot=P,rt=E,is.transition=_}else r.current=c;if(pc&&(pc=!1,Sr=r,gc=w),_=r.pendingLanes,_===0&&(jr=null),Ho(c.stateNode),Ln(r,jt()),o!==null)for(h=r.onRecoverableError,c=0;c<o.length;c++)w=o[c],h(w.value,{componentStack:w.stack,digest:w.digest});if(mc)throw mc=!1,r=Kd,Kd=null,r;return(gc&1)!==0&&r.tag!==0&&io(),_=r.pendingLanes,(_&1)!==0?r===Jd?Si++:(Si=0,Jd=r):Si=0,_r(),null}function io(){if(Sr!==null){var r=dn(gc),o=is.transition,c=rt;try{if(is.transition=null,rt=16>r?16:r,Sr===null)var h=!1;else{if(r=Sr,Sr=null,gc=0,(ot&6)!==0)throw Error(n(331));var w=ot;for(ot|=4,Ee=r.current;Ee!==null;){var _=Ee,E=_.child;if((Ee.flags&16)!==0){var P=_.deletions;if(P!==null){for(var U=0;U<P.length;U++){var re=P[U];for(Ee=re;Ee!==null;){var pe=Ee;switch(pe.tag){case 0:case 11:case 15:xi(8,pe,_)}var ye=pe.child;if(ye!==null)ye.return=pe,Ee=ye;else for(;Ee!==null;){pe=Ee;var me=pe.sibling,Ce=pe.return;if(Wp(pe),pe===re){Ee=null;break}if(me!==null){me.return=Ce,Ee=me;break}Ee=Ce}}}var Ae=_.alternate;if(Ae!==null){var Te=Ae.child;if(Te!==null){Ae.child=null;do{var Pt=Te.sibling;Te.sibling=null,Te=Pt}while(Te!==null)}}Ee=_}}if((_.subtreeFlags&2064)!==0&&E!==null)E.return=_,Ee=E;else e:for(;Ee!==null;){if(_=Ee,(_.flags&2048)!==0)switch(_.tag){case 0:case 11:case 15:xi(9,_,_.return)}var X=_.sibling;if(X!==null){X.return=_.return,Ee=X;break e}Ee=_.return}}var H=r.current;for(Ee=H;Ee!==null;){E=Ee;var ee=E.child;if((E.subtreeFlags&2064)!==0&&ee!==null)ee.return=E,Ee=ee;else e:for(E=H;Ee!==null;){if(P=Ee,(P.flags&2048)!==0)try{switch(P.tag){case 0:case 11:case 15:dc(9,P)}}catch(Me){It(P,P.return,Me)}if(P===E){Ee=null;break e}var ke=P.sibling;if(ke!==null){ke.return=P.return,Ee=ke;break e}Ee=P.return}}if(ot=w,_r(),Bt&&typeof Bt.onPostCommitFiberRoot=="function")try{Bt.onPostCommitFiberRoot(Cs,r)}catch{}h=!0}return h}finally{rt=c,is.transition=o}}return!1}function rg(r,o,c){o=so(c,o),o=xp(r,o,1),r=xr(r,o,1),o=jn(),r!==null&&(cr(r,1,o),Ln(r,o))}function It(r,o,c){if(r.tag===3)rg(r,r,c);else for(;o!==null;){if(o.tag===3){rg(o,r,c);break}else if(o.tag===1){var h=o.stateNode;if(typeof o.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&(jr===null||!jr.has(h))){r=so(c,r),r=kp(o,r,1),o=xr(o,r,1),r=jn(),o!==null&&(cr(o,1,r),Ln(o,r));break}}o=o.return}}function Hb(r,o,c){var h=r.pingCache;h!==null&&h.delete(o),o=jn(),r.pingedLanes|=r.suspendedLanes&c,tn===r&&(rn&c)===c&&(qt===4||qt===3&&(rn&130023424)===rn&&500>jt()-Gd?ca(r,0):Hd|=c),Ln(r,o)}function ag(r,o){o===0&&((r.mode&1)===0?o=1:(o=Vr,Vr<<=1,(Vr&130023424)===0&&(Vr=4194304)));var c=jn();r=Js(r,o),r!==null&&(cr(r,o,c),Ln(r,c))}function Gb(r){var o=r.memoizedState,c=0;o!==null&&(c=o.retryLane),ag(r,c)}function Kb(r,o){var c=0;switch(r.tag){case 13:var h=r.stateNode,w=r.memoizedState;w!==null&&(c=w.retryLane);break;case 19:h=r.stateNode;break;default:throw Error(n(314))}h!==null&&h.delete(o),ag(r,c)}var og;og=function(r,o,c){if(r!==null)if(r.memoizedProps!==o.pendingProps||Tn.current)In=!0;else{if((r.lanes&c)===0&&(o.flags&128)===0)return In=!1,Mb(r,o,c);In=(r.flags&131072)!==0}else In=!1,Nt&&(o.flags&1048576)!==0&&Fm(o,Jl,o.index);switch(o.lanes=0,o.tag){case 2:var h=o.type;cc(r,o),r=o.pendingProps;var w=qa(o,fn.current);to(o,c),w=kd(null,o,h,r,w,c);var _=jd();return o.flags|=1,typeof w=="object"&&w!==null&&typeof w.render=="function"&&w.$$typeof===void 0?(o.tag=1,o.memoizedState=null,o.updateQueue=null,Rn(h)?(_=!0,Hl(o)):_=!1,o.memoizedState=w.state!==null&&w.state!==void 0?w.state:null,gd(o),w.updater=ic,o.stateNode=w,w._reactInternals=o,$d(o,h,r,c),o=Md(null,o,h,!0,_,c)):(o.tag=0,Nt&&_&&od(o),kn(null,o,w,c),o=o.child),o;case 16:h=o.elementType;e:{switch(cc(r,o),r=o.pendingProps,w=h._init,h=w(h._payload),o.type=h,w=o.tag=qb(h),r=ws(h,r),w){case 0:o=Id(null,o,h,r,c);break e;case 1:o=Rp(null,o,h,r,c);break e;case 11:o=Cp(null,o,h,r,c);break e;case 14:o=Ep(null,o,h,ws(h.type,r),c);break e}throw Error(n(306,h,""))}return o;case 0:return h=o.type,w=o.pendingProps,w=o.elementType===h?w:ws(h,w),Id(r,o,h,w,c);case 1:return h=o.type,w=o.pendingProps,w=o.elementType===h?w:ws(h,w),Rp(r,o,h,w,c);case 3:e:{if(Ip(o),r===null)throw Error(n(387));h=o.pendingProps,_=o.memoizedState,w=_.element,Jm(r,o),ec(o,h,null,c);var E=o.memoizedState;if(h=E.element,_.isDehydrated)if(_={element:h,isDehydrated:!1,cache:E.cache,pendingSuspenseBoundaries:E.pendingSuspenseBoundaries,transitions:E.transitions},o.updateQueue.baseState=_,o.memoizedState=_,o.flags&256){w=so(Error(n(423)),o),o=Mp(r,o,h,c,w);break e}else if(h!==w){w=so(Error(n(424)),o),o=Mp(r,o,h,c,w);break e}else for(Kn=yr(o.stateNode.containerInfo.firstChild),Gn=o,Nt=!0,ys=null,c=Gm(o,null,h,c),o.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{if(Xa(),h===w){o=Ys(r,o,c);break e}kn(r,o,h,c)}o=o.child}return o;case 5:return Qm(o),r===null&&cd(o),h=o.type,w=o.pendingProps,_=r!==null?r.memoizedProps:null,E=w.children,ed(h,w)?E=null:_!==null&&ed(h,_)&&(o.flags|=32),Tp(r,o),kn(r,o,E,c),o.child;case 6:return r===null&&cd(o),null;case 13:return Lp(r,o,c);case 4:return yd(o,o.stateNode.containerInfo),h=o.pendingProps,r===null?o.child=Za(o,null,h,c):kn(r,o,h,c),o.child;case 11:return h=o.type,w=o.pendingProps,w=o.elementType===h?w:ws(h,w),Cp(r,o,h,w,c);case 7:return kn(r,o,o.pendingProps,c),o.child;case 8:return kn(r,o,o.pendingProps.children,c),o.child;case 12:return kn(r,o,o.pendingProps.children,c),o.child;case 10:e:{if(h=o.type._context,w=o.pendingProps,_=o.memoizedProps,E=w.value,wt(Ql,h._currentValue),h._currentValue=E,_!==null)if(gs(_.value,E)){if(_.children===w.children&&!Tn.current){o=Ys(r,o,c);break e}}else for(_=o.child,_!==null&&(_.return=o);_!==null;){var P=_.dependencies;if(P!==null){E=_.child;for(var U=P.firstContext;U!==null;){if(U.context===h){if(_.tag===1){U=qs(-1,c&-c),U.tag=2;var re=_.updateQueue;if(re!==null){re=re.shared;var pe=re.pending;pe===null?U.next=U:(U.next=pe.next,pe.next=U),re.pending=U}}_.lanes|=c,U=_.alternate,U!==null&&(U.lanes|=c),md(_.return,c,o),P.lanes|=c;break}U=U.next}}else if(_.tag===10)E=_.type===o.type?null:_.child;else if(_.tag===18){if(E=_.return,E===null)throw Error(n(341));E.lanes|=c,P=E.alternate,P!==null&&(P.lanes|=c),md(E,c,o),E=_.sibling}else E=_.child;if(E!==null)E.return=_;else for(E=_;E!==null;){if(E===o){E=null;break}if(_=E.sibling,_!==null){_.return=E.return,E=_;break}E=E.return}_=E}kn(r,o,w.children,c),o=o.child}return o;case 9:return w=o.type,h=o.pendingProps.children,to(o,c),w=as(w),h=h(w),o.flags|=1,kn(r,o,h,c),o.child;case 14:return h=o.type,w=ws(h,o.pendingProps),w=ws(h.type,w),Ep(r,o,h,w,c);case 15:return Ap(r,o,o.type,o.pendingProps,c);case 17:return h=o.type,w=o.pendingProps,w=o.elementType===h?w:ws(h,w),cc(r,o),o.tag=1,Rn(h)?(r=!0,Hl(o)):r=!1,to(o,c),_p(o,h,w),$d(o,h,w,c),Md(null,o,h,!0,r,c);case 19:return Pp(r,o,c);case 22:return $p(r,o,c)}throw Error(n(156,o.tag))};function ig(r,o){return Na(r,o)}function Jb(r,o,c,h){this.tag=r,this.key=c,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 ls(r,o,c,h){return new Jb(r,o,c,h)}function ef(r){return r=r.prototype,!(!r||!r.isReactComponent)}function qb(r){if(typeof r=="function")return ef(r)?1:0;if(r!=null){if(r=r.$$typeof,r===ie)return 11;if(r===L)return 14}return 2}function Er(r,o){var c=r.alternate;return c===null?(c=ls(r.tag,o,r.key,r.mode),c.elementType=r.elementType,c.type=r.type,c.stateNode=r.stateNode,c.alternate=r,r.alternate=c):(c.pendingProps=o,c.type=r.type,c.flags=0,c.subtreeFlags=0,c.deletions=null),c.flags=r.flags&14680064,c.childLanes=r.childLanes,c.lanes=r.lanes,c.child=r.child,c.memoizedProps=r.memoizedProps,c.memoizedState=r.memoizedState,c.updateQueue=r.updateQueue,o=r.dependencies,c.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext},c.sibling=r.sibling,c.index=r.index,c.ref=r.ref,c}function _c(r,o,c,h,w,_){var E=2;if(h=r,typeof r=="function")ef(r)&&(E=1);else if(typeof r=="string")E=5;else e:switch(r){case M:return da(c.children,w,_,o);case I:E=8,w|=8;break;case z:return r=ls(12,c,o,w|2),r.elementType=z,r.lanes=_,r;case F:return r=ls(13,c,o,w),r.elementType=F,r.lanes=_,r;case D:return r=ls(19,c,o,w),r.elementType=D,r.lanes=_,r;case B:return bc(c,w,_,o);default:if(typeof r=="object"&&r!==null)switch(r.$$typeof){case V:E=10;break e;case Z:E=9;break e;case ie:E=11;break e;case L:E=14;break e;case J:E=16,h=null;break e}throw Error(n(130,r==null?r:typeof r,""))}return o=ls(E,c,o,w),o.elementType=r,o.type=h,o.lanes=_,o}function da(r,o,c,h){return r=ls(7,r,h,o),r.lanes=c,r}function bc(r,o,c,h){return r=ls(22,r,h,o),r.elementType=B,r.lanes=c,r.stateNode={isHidden:!1},r}function tf(r,o,c){return r=ls(6,r,null,o),r.lanes=c,r}function nf(r,o,c){return o=ls(4,r.children!==null?r.children:[],r.key,o),o.lanes=c,o.stateNode={containerInfo:r.containerInfo,pendingChildren:null,implementation:r.implementation},o}function Yb(r,o,c,h,w){this.tag=o,this.containerInfo=r,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Un(0),this.expirationTimes=Un(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Un(0),this.identifierPrefix=h,this.onRecoverableError=w,this.mutableSourceEagerHydrationData=null}function sf(r,o,c,h,w,_,E,P,U){return r=new Yb(r,o,c,P,U),o===1?(o=1,_===!0&&(o|=8)):o=0,_=ls(3,null,null,o),r.current=_,_.stateNode=r,_.memoizedState={element:h,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null},gd(_),r}function Qb(r,o,c){var h=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:S,key:h==null?null:""+h,children:r,containerInfo:o,implementation:c}}function lg(r){if(!r)return vr;r=r._reactInternals;e:{if(Ss(r)!==r||r.tag!==1)throw Error(n(170));var o=r;do{switch(o.tag){case 3:o=o.stateNode.context;break e;case 1:if(Rn(o.type)){o=o.stateNode.__reactInternalMemoizedMergedChildContext;break e}}o=o.return}while(o!==null);throw Error(n(171))}if(r.tag===1){var c=r.type;if(Rn(c))return Om(r,c,o)}return o}function cg(r,o,c,h,w,_,E,P,U){return r=sf(c,h,!0,r,w,_,E,P,U),r.context=lg(null),c=r.current,h=jn(),w=Nr(c),_=qs(h,w),_.callback=o??null,xr(c,_,w),r.current.lanes=w,cr(r,w,h),Ln(r,h),r}function xc(r,o,c,h){var w=o.current,_=jn(),E=Nr(w);return c=lg(c),o.context===null?o.context=c:o.pendingContext=c,o=qs(_,E),o.payload={element:r},h=h===void 0?null:h,h!==null&&(o.callback=h),r=xr(w,o,E),r!==null&&(bs(r,w,E,_),Zl(r,w,E)),E}function kc(r){if(r=r.current,!r.child)return null;switch(r.child.tag){case 5:return r.child.stateNode;default:return r.child.stateNode}}function ug(r,o){if(r=r.memoizedState,r!==null&&r.dehydrated!==null){var c=r.retryLane;r.retryLane=c!==0&&c<o?c:o}}function rf(r,o){ug(r,o),(r=r.alternate)&&ug(r,o)}function Xb(){return null}var dg=typeof reportError=="function"?reportError:function(r){console.error(r)};function af(r){this._internalRoot=r}jc.prototype.render=af.prototype.render=function(r){var o=this._internalRoot;if(o===null)throw Error(n(409));xc(r,o,null,null)},jc.prototype.unmount=af.prototype.unmount=function(){var r=this._internalRoot;if(r!==null){this._internalRoot=null;var o=r.containerInfo;la(function(){xc(null,r,null,null)}),o[Vs]=null}};function jc(r){this._internalRoot=r}jc.prototype.unstable_scheduleHydration=function(r){if(r){var o=La();r={blockedOn:null,target:r,priority:o};for(var c=0;c<St.length&&o!==0&&o<St[c].priority;c++);St.splice(c,0,r),c===0&&Oa(r)}};function of(r){return!(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11)}function Sc(r){return!(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11&&(r.nodeType!==8||r.nodeValue!==" react-mount-point-unstable "))}function fg(){}function Zb(r,o,c,h,w){if(w){if(typeof h=="function"){var _=h;h=function(){var re=kc(E);_.call(re)}}var E=cg(o,h,r,0,null,!1,!1,"",fg);return r._reactRootContainer=E,r[Vs]=E.current,ci(r.nodeType===8?r.parentNode:r),la(),E}for(;w=r.lastChild;)r.removeChild(w);if(typeof h=="function"){var P=h;h=function(){var re=kc(U);P.call(re)}}var U=sf(r,0,!1,null,null,!1,!1,"",fg);return r._reactRootContainer=U,r[Vs]=U.current,ci(r.nodeType===8?r.parentNode:r),la(function(){xc(o,U,c,h)}),U}function Nc(r,o,c,h,w){var _=c._reactRootContainer;if(_){var E=_;if(typeof w=="function"){var P=w;w=function(){var U=kc(E);P.call(U)}}xc(o,E,r,w)}else E=Zb(c,o,r,w,h);return kc(E)}Hr=function(r){switch(r.tag){case 3:var o=r.stateNode;if(o.current.memoizedState.isDehydrated){var c=un(o.pendingLanes);c!==0&&(zs(o,c|1),Ln(o,jt()),(ot&6)===0&&(oo=jt()+500,_r()))}break;case 13:la(function(){var h=Js(r,1);if(h!==null){var w=jn();bs(h,r,1,w)}}),rf(r,1)}},Ia=function(r){if(r.tag===13){var o=Js(r,134217728);if(o!==null){var c=jn();bs(o,r,134217728,c)}rf(r,134217728)}},Ma=function(r){if(r.tag===13){var o=Nr(r),c=Js(r,o);if(c!==null){var h=jn();bs(c,r,o,h)}rf(r,o)}},La=function(){return rt},Ko=function(r,o){var c=rt;try{return rt=r,o()}finally{rt=c}},Po=function(r,o,c){switch(o){case"input":if(nt(r,c),o=c.name,c.type==="radio"&&o!=null){for(c=r;c.parentNode;)c=c.parentNode;for(c=c.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),o=0;o<c.length;o++){var h=c[o];if(h!==r&&h.form===r.form){var w=Ul(h);if(!w)throw Error(n(90));Qe(h),nt(h,w)}}}break;case"textarea":he(r,c);break;case"select":o=c.value,o!=null&&fe(r,!!c.multiple,o,!1)}},Do=Qd,ar=la;var ex={usingClientEntryPoint:!1,Events:[fi,Ka,Ul,Xt,ka,Qd]},Ni={findFiberByHostInstance:ea,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},tx={bundleType:Ni.bundleType,version:Ni.version,rendererPackageName:Ni.rendererPackageName,rendererConfig:Ni.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:j.ReactCurrentDispatcher,findHostInstanceByFiber:function(r){return r=Qn(r),r===null?null:r.stateNode},findFiberByHostInstance:Ni.findFiberByHostInstance||Xb,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 Cc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Cc.isDisabled&&Cc.supportsFiber)try{Cs=Cc.inject(tx),Bt=Cc}catch{}}return On.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ex,On.createPortal=function(r,o){var c=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!of(o))throw Error(n(200));return Qb(r,o,null,c)},On.createRoot=function(r,o){if(!of(r))throw Error(n(299));var c=!1,h="",w=dg;return o!=null&&(o.unstable_strictMode===!0&&(c=!0),o.identifierPrefix!==void 0&&(h=o.identifierPrefix),o.onRecoverableError!==void 0&&(w=o.onRecoverableError)),o=sf(r,1,!1,null,null,c,!1,h,w),r[Vs]=o.current,ci(r.nodeType===8?r.parentNode:r),new af(o)},On.findDOMNode=function(r){if(r==null)return null;if(r.nodeType===1)return r;var o=r._reactInternals;if(o===void 0)throw typeof r.render=="function"?Error(n(188)):(r=Object.keys(r).join(","),Error(n(268,r)));return r=Qn(o),r=r===null?null:r.stateNode,r},On.flushSync=function(r){return la(r)},On.hydrate=function(r,o,c){if(!Sc(o))throw Error(n(200));return Nc(null,r,o,!0,c)},On.hydrateRoot=function(r,o,c){if(!of(r))throw Error(n(405));var h=c!=null&&c.hydratedSources||null,w=!1,_="",E=dg;if(c!=null&&(c.unstable_strictMode===!0&&(w=!0),c.identifierPrefix!==void 0&&(_=c.identifierPrefix),c.onRecoverableError!==void 0&&(E=c.onRecoverableError)),o=cg(o,null,r,1,c??null,w,!1,_,E),r[Vs]=o.current,ci(r),h)for(r=0;r<h.length;r++)c=h[r],w=c._getVersion,w=w(c._source),o.mutableSourceEagerHydrationData==null?o.mutableSourceEagerHydrationData=[c,w]:o.mutableSourceEagerHydrationData.push(c,w);return new jc(o)},On.render=function(r,o,c){if(!Sc(o))throw Error(n(200));return Nc(null,r,o,!1,c)},On.unmountComponentAtNode=function(r){if(!Sc(r))throw Error(n(40));return r._reactRootContainer?(la(function(){Nc(null,null,r,!1,function(){r._reactRootContainer=null,r[Vs]=null})}),!0):!1},On.unstable_batchedUpdates=Qd,On.unstable_renderSubtreeIntoContainer=function(r,o,c,h){if(!Sc(c))throw Error(n(200));if(r==null||r._reactInternals===void 0)throw Error(n(38));return Nc(r,o,c,!1,h)},On.version="18.3.1-next-f1338f8080-20240426",On}var _g;function iw(){if(_g)return uf.exports;_g=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(),uf.exports=ux(),uf.exports}var bg;function dx(){if(bg)return Ec;bg=1;var e=iw();return Ec.createRoot=e.createRoot,Ec.hydrateRoot=e.hydrateRoot,Ec}var fx=dx();const hx=ow(fx),lw=[{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"]}];lw.map(e=>({id:e.id,label:e.label}));function mx(e){return`theme-${String(e||"").trim()||"dark"}`}function xg(e){try{const t=document.documentElement,n=Array.from(t.classList).filter(s=>s.startsWith("theme-"));for(const s of n)t.classList.remove(s);t.classList.add(mx(e))}catch{}}const Zf=[{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}],eh=[{id:"compact",label:"Compact",density:.85},{id:"standard",label:"Standard",density:1},{id:"spacious",label:"Spacious",density:1.2}];function px(e){const t=String(e).trim();return Zf.find(n=>n.id===t)||Zf[1]}function gx(e){const t=String(e).trim();return eh.find(n=>n.id===t)||eh[1]}function kg(e){try{const t=document.documentElement,n=px(e.font_scale||"md"),s=gx(e.header_density||"standard");t.style.setProperty("--font-scale",String(n.scale)),t.style.setProperty("--header-density",String(s.density))}catch{}}const Uc={md:"(max-width: 1023.98px)",lg:"(max-width: 1439.98px)"};function yx(e){try{return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(e).matches}catch{return!1}}function Vc(e){const[t,n]=y.useState(()=>yx(e));return y.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const s=window.matchMedia(e),i=()=>n(s.matches);return i(),typeof s.addEventListener=="function"?s.addEventListener("change",i):s.addListener(i),()=>{typeof s.removeEventListener=="function"?s.removeEventListener("change",i):s.removeListener(i)}},[e]),t}let Ei=null;function wx(e,t){const n=Math.max(0,Math.round(e));if(!(t.scale<=1.01))return{vvHeight:n,keyboardInset:0};const s=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:s,keyboardInset:i}}function vx(){if(Ei)return Ei;if(typeof window>"u"||typeof document>"u")return()=>{};const e=window.visualViewport;if(!e)return()=>{};const t=document.documentElement;let n=0;const s=()=>{n=0;const{vvHeight:l,keyboardInset:u}=wx(window.innerHeight,{height:e.height,offsetTop:e.offsetTop,scale:e.scale||1});t.style.setProperty("--vv-height",`${l}px`),t.style.setProperty("--keyboard-inset",`${u}px`)},i=()=>{n||(n=window.requestAnimationFrame(s))};return s(),e.addEventListener("resize",i),e.addEventListener("scroll",i),window.addEventListener("orientationchange",i),Ei=()=>{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"),Ei=null},Ei}var al=iw();function lo(...e){return e.filter(Boolean).join(" ")}function _n({value:e,options:t,placeholder:n="Select…",disabled:s=!1,loading:i=!1,searchable:l=!0,searchPlaceholder:u="Search…",allowCustom:d=!1,clearable:f=!1,minPopoverWidth:m=240,variant:p="panel",className:g,triggerClassName:b,ariaLabel:v,id:C,includeValueOption:x=!1,onOpen:N,customOptionLabel:k,validateCustomValue:T,onChange:$,renderOption:j,renderValue:A}){const S=y.useRef(null),M=y.useRef(null),I=y.useRef(null),z=y.useRef(N),V=y.useId(),Z=C||`af-select-${V.replace(/[^a-zA-Z0-9_-]/g,"")}`,ie=`${Z}-listbox`,[F,D]=y.useState(!1),[L,J]=y.useState(""),[B,Y]=y.useState(0),[te,W]=y.useState("bottom"),[R,K]=y.useState({left:0,top:0,width:0});y.useEffect(()=>{z.current=N},[N]);const ne=y.useMemo(()=>{if(!x)return t;const ce=String(e??"").trim();return!ce||t.some(fe=>fe.value===ce)?t:[...t,{value:ce,label:ce}]},[x,t,e]),ue=y.useMemo(()=>{const ce=String(e??"");return ne.find(fe=>fe.value===ce)||null},[ne,e]),oe=y.useMemo(()=>(ue==null?void 0:ue.label)||String(e||"").trim()||"",[ue,e]),ve=y.useMemo(()=>{const ce=L.trim().toLowerCase();return ce?ne.filter(fe=>fe.label.toLowerCase().includes(ce)||fe.value.toLowerCase().includes(ce)):ne},[ne,L]),Ne=y.useMemo(()=>{if(!d)return null;const ce=L.trim();if(!ce||ne.some(le=>le.value===ce))return null;const G=(T==null?void 0:T(ce,{options:ne}))||"";return{value:ce,label:k?k(ce):`Use "${ce}"`,disabled:!!G,reason:G}},[d,k,ne,L,T]),q=y.useMemo(()=>{const ce=Ne?[Ne,...ve]:ve;if(ce.length>0)return ce;const fe=String(e??"").trim();return i&&fe?[{value:fe,label:oe||fe}]:ce},[Ne,ve,i,oe,e]),be=y.useCallback(()=>{const ce=S.current;if(!ce)return;const fe=ce.getBoundingClientRect(),G=Math.max(fe.width,m),le=Math.max(8,Math.min(fe.left,window.innerWidth-G-8)),he=window.innerHeight-fe.bottom,Q=fe.top,_e=he>=220||he>=Q?"bottom":"top";W(_e);const ae=_e==="bottom"?fe.bottom+6:fe.top-6;K({left:le,top:ae,width:G})},[m]),xe=y.useCallback(()=>{D(!1),J("")},[]);y.useEffect(()=>{var ce;F&&((ce=z.current)==null||ce.call(z))},[F]),y.useEffect(()=>{if(!F)return;be();const ce=()=>be();return window.addEventListener("resize",ce),window.addEventListener("scroll",ce,!0),()=>{window.removeEventListener("resize",ce),window.removeEventListener("scroll",ce,!0)}},[F,be]),y.useEffect(()=>{if(!F)return;const ce=fe=>{var le,he;const G=fe.target;G&&((le=S.current)!=null&&le.contains(G)||(he=M.current)!=null&&he.contains(G)||xe())};return document.addEventListener("mousedown",ce,!0),()=>document.removeEventListener("mousedown",ce,!0)},[F,xe]),y.useEffect(()=>{if(!F)return;const ce=Math.max(0,q.findIndex(fe=>fe.value===e));Y(ce===-1?0:ce),l&&setTimeout(()=>{var fe;return(fe=I.current)==null?void 0:fe.focus()},0)},[F,l,e,q]);const Pe=ce=>{var G;const fe=q.find(le=>le.value===ce);fe!=null&&fe.disabled||($(ce),xe(),(G=S.current)==null||G.focus())},Qe=ce=>{var fe,G;if(ce.key==="Escape")return ce.preventDefault(),xe(),(fe=S.current)==null||fe.focus(),!0;if(ce.key==="Tab")return xe(),(G=S.current)==null||G.focus(),!1;if(ce.key==="ArrowDown")return ce.preventDefault(),Y(le=>Math.min(le+1,Math.max(0,q.length-1))),!0;if(ce.key==="ArrowUp")return ce.preventDefault(),Y(le=>Math.max(le-1,0)),!0;if(ce.key==="Home")return ce.preventDefault(),Y(0),!0;if(ce.key==="End")return ce.preventDefault(),Y(Math.max(0,q.length-1)),!0;if(ce.key==="Enter"){ce.preventDefault();const le=q[B];return le&&Pe(le.value),!0}return!1},He=ce=>{if(!s){if(F){if(Qe(ce))return;if(ce.key===" "&&!l){ce.preventDefault();const fe=q[B];fe&&Pe(fe.value)}return}(ce.key==="Enter"||ce.key===" "||ce.key==="ArrowDown"||ce.key==="ArrowUp")&&(ce.preventDefault(),D(!0))}},qe=!!String(e||"").trim(),ge=qe?oe:n,$e=Ne!=null&&Ne.disabled?Ne.reason||"Unavailable":"",nt=F&&q.length>0?`${Z}-opt-${B}`:void 0,et=a.jsx("span",{className:lo("af-select-value",!qe&&"af-select-value--placeholder"),children:i&&!qe?"Loading…":ge}),Rt=A?A(ue,String(e||"")):et;return a.jsxs("span",{className:lo("af-select",p==="pin"?"af-select--pin":"af-select--panel",g),children:[a.jsxs("button",{ref:S,id:Z,type:"button",className:lo("af-select-trigger",f&&qe&&"af-select-trigger--clearable",b),disabled:s,onMouseDown:ce=>ce.stopPropagation(),onClick:ce=>{ce.stopPropagation(),!s&&D(fe=>!fe)},onKeyDown:He,role:l?void 0:"combobox","aria-haspopup":"listbox","aria-expanded":F,"aria-controls":F?ie:void 0,"aria-activedescendant":l?void 0:nt,"aria-label":v,children:[Rt,a.jsx("span",{className:lo("af-select-caret",F&&"af-select-caret--open"),children:"▾"})]}),f&&qe?a.jsx("button",{type:"button",className:"af-select-clear-btn","aria-label":"Clear selection",disabled:s,onMouseDown:ce=>{ce.preventDefault(),ce.stopPropagation()},onClick:ce=>{var fe;ce.preventDefault(),ce.stopPropagation(),$(""),xe(),(fe=S.current)==null||fe.focus()},title:"Clear",children:"×"}):null,F?al.createPortal(a.jsxs("div",{ref:M,className:lo("af-select-popover",te==="top"&&"af-select-popover--top"),style:{position:"fixed",left:`${R.left}px`,top:`${R.top}px`,width:`${R.width}px`},onMouseDown:ce=>ce.stopPropagation(),onClick:ce=>ce.stopPropagation(),onWheel:ce=>ce.stopPropagation(),onKeyDown:Qe,tabIndex:-1,children:[l?a.jsxs("div",{className:"af-select-search",children:[a.jsx("input",{ref:I,className:"af-select-search-input",value:L,onChange:ce=>J(ce.target.value),placeholder:u,onKeyDown:Qe,role:"combobox","aria-expanded":!0,"aria-controls":ie,"aria-activedescendant":nt,"aria-invalid":!!$e,"aria-describedby":$e?`${Z}-custom-error`:void 0}),$e?a.jsx("div",{id:`${Z}-custom-error`,className:"af-select-custom-error",role:"alert",children:$e}):null]}):null,a.jsx("div",{className:"af-select-options",role:"listbox",id:ie,"aria-label":v,children:i&&q.length===0?a.jsx("div",{className:"af-select-empty",children:"Loading…"}):q.length===0?a.jsx("div",{className:"af-select-empty",children:"No results"}):q.map((ce,fe)=>{var ae;const G=ce.value===e,le=fe===B,he=String(ce.group||"").trim(),Q=fe>0?String(((ae=q[fe-1])==null?void 0:ae.group)||"").trim():"",_e=!!he&&he!==Q;return a.jsxs(gt.Fragment,{children:[_e?a.jsx("div",{className:"af-select-group",role:"presentation",children:he}):null,a.jsx("div",{id:`${Z}-opt-${fe}`,role:"option","aria-selected":G,className:lo("af-select-option",G&&"af-select-option--selected",le&&"af-select-option--highlighted",ce.disabled&&"af-select-option--disabled"),title:ce.disabled?ce.reason||"Unavailable":void 0,onMouseEnter:()=>Y(fe),onMouseDown:je=>{je.preventDefault(),je.stopPropagation()},onClick:()=>Pe(ce.value),"aria-disabled":ce.disabled?!0:void 0,children:j?j(ce,{selected:G,highlighted:le}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"af-select-option-label",children:[a.jsx("span",{children:ce.label}),ce.reason?a.jsx("small",{className:"af-select-option-reason",children:ce.reason}):null]}),G?a.jsx("span",{className:"af-select-check",children:"✓"}):null]})})]},ce.value)})})]}),document.body):null]})}function _x(e){const t=new Set,n=[];for(const s of e||[]){if(!s||typeof s!="object")continue;const i=String(s.name||"").trim();!i||t.has(i)||(t.add(i),n.push({name:i,display_name:typeof s.display_name=="string"?s.display_name:void 0}))}return n.sort((s,i)=>s.name.localeCompare(i.name)),n}function bx(e){const t=new Set,n=[];for(const s of e||[]){const i=String(s||"").trim();!i||t.has(i)||(t.add(i),n.push(i))}return n.sort(),n}const th="Provided by connected pin";function xx(e){const t=e.disabled===!0,n=e.layout||"stack",s=e.allowGatewayDefault!==!1,i=String(e.gatewayDefaultLabel||"(gateway default)"),l=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(),g=_x(e.providers),b=bx(e.models),v=typeof e.markSaved=="object"?e.markSaved:null,C=(j,A,S,M)=>e.markSaved&&!S&&!M&&(!v||v[A]===j)?`${j} (saved)`:j,x=t||!!e.loadingProviders,N=t||!!e.loadingModels,k=[...s?[{value:"",label:i}]:[],...g.map(j=>({value:j.name,label:j.display_name?`${j.display_name} (${j.name})`:j.name})),...e.markSaved&&m&&!g.some(j=>j.name===m)?[{value:m,label:C(m,"provider",e.loadingProviders,e.providerError)}]:[]],T=[...s?[{value:"",label:i}]:[],...b.map(j=>{var A;return{value:j,label:((A=e.modelDisplayNames)==null?void 0:A[j])||j}}),...e.markSaved&&p&&!b.includes(p)?[{value:p,label:C(p,"model",e.loadingModels,e.modelError)}]:[]],$=(j,A)=>a.jsxs("div",{className:"af-pmp__pinned","data-pinned":j,children:[a.jsx("span",{className:"af-pmp__pinned-text",children:th}),A?a.jsxs("span",{className:"mono muted",children:[" · ",A]}):null]});return a.jsxs("div",{className:e.className,style:n==="row"?{display:"flex",gap:"10px",flexWrap:"wrap",alignItems:"flex-start"}:{display:"flex",flexDirection:"column",gap:"10px"},children:[a.jsxs("div",{style:n==="row"?{flex:"1 1 260px",minWidth:240}:void 0,children:[a.jsx("label",{children:l}),e.providerPinned?$("provider",m):a.jsx(_n,{value:m,options:k,placeholder:s?i:d,disabled:x,loading:!!e.loadingProviders,searchable:!0,allowCustom:e.allowCustomProvider===!0,clearable:s,variant:"panel",triggerClassName:e.selectClassName,ariaLabel:l,onChange:j=>e.onChange({provider:String(j||"").trim(),model:""})}),e.loadingProviders?a.jsx("div",{className:"mono muted",style:{fontSize:"12px",marginTop:"6px"},children:"Loading providers…"}):null,e.providerError?a.jsx("div",{className:"mono",style:{color:"var(--error)",fontSize:"12px",marginTop:"6px"},children:e.providerError}):null]}),a.jsxs("div",{style:n==="row"?{flex:"1 1 260px",minWidth:240}:void 0,children:[a.jsx("label",{children:u}),e.modelPinned?$("model",p):a.jsx(_n,{value:p,options:T,placeholder:s?i:f,disabled:N,loading:!!e.loadingModels,searchable:!0,allowCustom:e.allowCustomModel===!0,clearable:s,variant:"panel",triggerClassName:e.selectClassName,ariaLabel:u,onChange:j=>e.onChange({provider:m,model:String(j||"").trim()})}),e.loadingModels?a.jsx("div",{className:"mono muted",style:{fontSize:"12px",marginTop:"6px"},children:"Loading models…"}):null,e.modelError?a.jsx("div",{className:"mono",style:{color:"var(--error)",fontSize:"12px",marginTop:"6px"},children:e.modelError}):null]})]})}function Th(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 kx(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(s=>typeof s=="number"&&Number.isInteger(s)&&s>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 jg(e){const t=Th(e);return t===!1?"off":t?String(t.num_draft_tokens):""}function jx(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 Sx(e){const t=kx(e.capabilities),n=jg(e.value),s=(t==null?void 0:t.supported_depths.map(String))||[],i=jg(t==null?void 0:t.default),l=e.inheritLabel||"Workflow / Gateway default",u=i?`${l} (${i==="off"?"Off":`depth ${i}`})`:l,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 a.jsxs("div",{className:"af-pmp__speculation",children:[a.jsx("label",{children:"MTP depth"}),a.jsx(_n,{ariaLabel:"MTP depth",value:n,placeholder:u,disabled:e.disabled||e.loading,options:[{value:"",label:u},{value:"off",label:"Off"},...s.map(f=>({value:f,label:`Depth ${f}`})),...n&&n!=="off"&&!s.includes(n)?[{value:n,label:`Depth ${n} (saved)`}]:[]],onChange:f=>e.onChange(jx(f))}),d&&!e.hideNote?a.jsx("div",{role:"status",className:"af-pmp__hint",children:d}):null]})}const zr="api/gateway",ol="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?`${zr}/${t}`:zr}function ct(e,t){const n=String(t||"");if(n.startsWith("/"))throw new Error(`joinBaseUrl takes a relative path, got ${JSON.stringify(n)}.`);let s=String(e??"");for(;s.endsWith("/");)s=s.slice(0,-1);return s?`${s}/${n}`:n}function Nx(e){const t=String(e||""),n=`/${zr}/`;if(!t.startsWith(n)||t.length===n.length)throw new Error(`Not a gateway API path: ${JSON.stringify(t)} (expected ${JSON.stringify(n)}…).`);const s=t.slice(n.length).split(/[?#]/,1)[0];if(/\\|%2f|%5c/i.test(s))throw new Error(`Not a gateway API path: ${JSON.stringify(t)} (encoded slash or backslash).`);for(const i of s.split("/")){const l=i.replace(/%2e/gi,".");if(l==="."||l==="..")throw new Error(`Not a gateway API path: ${JSON.stringify(t)} (a "." or ".." segment).`)}return t.slice(1)}const Cx=(e,t)=>{const n=String(e||"");if(!n)throw new Error(`A voice route needs a ${t}.`);return encodeURIComponent(n)},Ex={clones:"voice/clones"};function nh(e){return`voice/clones/${Cx(e,"voice id")}`}function Ax(e){return`${nh(e)}/deploy`}const cw="discovery/providers",$x="discovery/models/capabilities",Tx="config/capability-defaults",Rx="discovery/capabilities";function Ix(e){const t=String(e||"").trim();if(!t)throw new Error("gatewayProviderModelsRoute needs a provider.");return`${cw}/${encodeURIComponent(t)}/models`}const uw=/^(?!\.+$)[A-Za-z0-9_.:-]{1,256}$/;function Mx(e){const t=String(e??"");if(!uw.test(t))throw new Error(`A session id is 1-256 characters [A-Za-z0-9_.:-], not only dots, got ${JSON.stringify(t)}.`);return`sessions/${t}/tool-policy`}const yn=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:void 0,$t=e=>typeof e=="string"?e.trim():"";function dw(e){var p,g;const t=yn(e);if((t==null?void 0:t.ok)===!1){const b=Array.isArray(t.errors)?t.errors.map($t).filter(Boolean):[];throw new Error(b.length?b.join("; "):"The gateway could not read its capability defaults.")}const n=t==null?void 0:t.routes;if(!Array.isArray(n))throw new Error("The gateway's capability defaults have no routes.");const s=b=>n.map(yn).find(v=>v&&$t(v.key)===b&&$t(v.source)!=="not_configured"),i=s("output.text"),l=s("input.text"),u=[i,l].find(b=>b&&$t(b.provider)&&$t(b.model));if(!u)return null;const d=$t(i==null?void 0:i.reasoning)||$t(l==null?void 0:l.reasoning),f=Th(((p=yn(l==null?void 0:l.options))==null?void 0:p.speculation)??((g=yn(i==null?void 0:i.options))==null?void 0:g.speculation)),m=Array.isArray(t==null?void 0:t.warnings)?t.warnings.map($t).filter(Boolean):[];return{provider:$t(u.provider),model:$t(u.model),...d?{reasoning:d}:{},...f!==void 0?{speculation:f}:{},...$t(u.source)?{source:$t(u.source)}:{},...m.length?{warnings:m}:{}}}function Lx(e){if(!e)return"";const t=[`${e.provider} / ${e.model}`];return e.reasoning&&t.push(`reasoning ${e.reasoning}`),e.speculation===!1?t.push("MTP off"):e.speculation&&t.push(`MTP depth ${e.speculation.num_draft_tokens}`),t.join(" · ")}function Ox(e,t="Gateway default"){const n=Lx(e);return n?`${t} · ${n}`:t}function Px(e){var s,i,l,u,d,f;const t=yn((s=yn(e))==null?void 0:s.capabilities)??yn(e),n=(f=yn((d=yn((u=yn((l=yn((i=yn(t==null?void 0:t.contracts))==null?void 0:i.common))==null?void 0:l.runs))==null?void 0:u.start))==null?void 0:d.thinking_control))==null?void 0:f.values;return Array.isArray(n)?[...new Set(n.map($t).filter(Boolean))]:[]}function Dx(e){if(typeof e=="string")return e.trim()?{name:e.trim()}:null;const t=yn(e),n=$t(t==null?void 0:t.id)||$t(t==null?void 0:t.provider)||$t(t==null?void 0:t.name);if(!n)return null;const s=$t(t==null?void 0:t.label)||$t(t==null?void 0:t.display_name);return s&&s!==n?{name:n,display_name:s}:{name:n}}function Fx(e){return{async fetchProviders(){const t=yn(await e(we(`${cw}?include_models=false`))),n=Array.isArray(t==null?void 0:t.items)?t.items.map(Dx).filter(s=>!!s):[];if(!n.length&&$t(t==null?void 0:t.error))throw new Error($t(t==null?void 0:t.error));return n},async fetchModels(t){const n=yn(await e(we(`${Ix(t)}?capability_route=output.text`))),s=Array.isArray(n==null?void 0:n.models)?n.models:Array.isArray(n==null?void 0:n.items)?n.items:[],i=[...new Set(s.map(l=>{var u;return typeof l=="string"?l.trim():$t((u=yn(l))==null?void 0:u.id)}).filter(Boolean))];if(!i.length&&$t(n==null?void 0:n.error))throw new Error($t(n==null?void 0:n.error));return i},async fetchModelCapabilities(t,n){const s=new URLSearchParams({model_name:t});return n&&s.set("provider",n),e(we(`${$x}?${s.toString()}`))},async fetchGatewayDefault(){return dw(await e(we(Tx)))},async fetchReasoningLadder(){return Px(await e(we(Rx)))}}}const zx="The gateway does not say which reasoning levels this model supports.",Bx="Set anyway",Wx="Reasoning and MTP choices appear when the gateway can describe the selected model.",Ux="Reasoning choices appear when the gateway can describe the selected model.";function yu(e){const t=e.disabled===!0,n=e.value||{provider:"",model:""},s=!String(n.provider||"").trim()&&!String(n.model||"").trim(),i=e.layout==="compact",l=e.pinned||{},u=!!(l.provider||l.model),[d,f]=y.useState(!s),m=i||u||!(s&&!d),p=s&&(i||u||!d),g=y.useRef(s);y.useEffect(()=>{s&&!g.current&&f(!1),g.current=s},[s]);const[b,v]=y.useState([]),[C,x]=y.useState(!1),[N,k]=y.useState(""),[T,$]=y.useState([]),[j,A]=y.useState({}),[S,M]=y.useState(!1),[I,z]=y.useState(""),V=y.useRef(e);V.current=e;const[Z,ie]=y.useState({status:"idle",value:null,message:""}),F=e.fetchGatewayDefault;y.useEffect(()=>{if(!F||t)return;let fe=!0;const G=le=>ie(he=>JSON.stringify(he)===JSON.stringify(le)?he:le);return ie(le=>le.status==="idle"?{...le,status:"loading"}:le),F().then(le=>{var he;fe&&(le?(he=le.warnings)!=null&&he.length?G({status:"unusable",value:le,message:le.warnings.join(" ")}):G({status:"resolved",value:le,message:""}):G({status:"none",value:null,message:""}))}).catch(le=>{fe&&G({status:"error",value:null,message:String((le==null?void 0:le.message)||le)})}),()=>{fe=!1}},[F,t]);const D=Z.status==="resolved"?Z.value:null,L=y.useRef({provider:String(n.provider||"").trim(),model:String(n.model||"").trim()});y.useEffect(()=>{if(!m||l.provider||t)return;let fe=!0;return x(!0),(async()=>{try{const G=await V.current.fetchProviders();if(!fe)return;v(Array.isArray(G)?G:[]),k("")}catch(G){if(!fe)return;v([]),k(`#FALLBACK provider discovery failed: ${String((G==null?void 0:G.message)||G)}`)}finally{fe&&x(!1)}})(),()=>{fe=!1}},[m,l.provider,t]);const J=String(n.provider||"").trim();y.useEffect(()=>{if(!J||t||l.model){$([]),z(""),M(!1);return}let fe=!0;return $([]),M(!0),z(""),(async()=>{try{const G=await V.current.fetchModels(J);if(!fe)return;const le=[],he={};for(const Q of Array.isArray(G)?G:[]){const _e=typeof Q=="string"?Q:String((Q==null?void 0:Q.id)||"");_e&&(le.push(_e),typeof Q!="string"&&(Q!=null&&Q.label)&&Q.label!==_e&&(he[_e]=String(Q.label)))}$(le),A(he)}catch(G){if(!fe)return;$([]),z(`#FALLBACK model discovery failed: ${String((G==null?void 0:G.message)||G)}`)}finally{fe&&M(!1)}})(),()=>{fe=!1}},[J,t,l.model]);const B=String(n.model||"").trim(),Y=e.defaultModeLabel||"Gateway default",te=Z.status==="none"?`${Y} · none configured`:Ox(D,Y),W=e.customModeLabel||"Custom",R=e.effectiveDefault||(Z.value?{provider:Z.value.provider,model:Z.value.model}:void 0),K=J||(R==null?void 0:R.provider)||"",ne=B||(J?"":R==null?void 0:R.model)||"",[ue,oe]=y.useState({levels:[],error:"",loading:!1}),[ve,Ne]=y.useState(!1),q=!!e.fetchModelCapabilities,[be,xe]=y.useState();y.useEffect(()=>{let fe=!0;if(xe(void 0),oe({levels:[],error:"",loading:q&&!!ne}),!(!q||!ne||t))return V.current.fetchModelCapabilities(ne,K).then(G=>{var ae;if(!fe)return;if(G!=null&&G.error)throw new Error(String(G.error));xe(G);const le=(G==null?void 0:G.capabilities)||G||{},he=le.reasoning_levels||le.thinking_levels,Q=Array.isArray(he)?[...new Set(he.filter(je=>typeof je=="string"&&!!je.trim()))]:[];!Q.length&&le.thinking_support===!0&&((ae=le.thinking_control)!=null&&ae.prompt_disable_token)&&Q.push("off","auto");const _e=typeof le.thinking_support=="boolean"?le.thinking_support:void 0;oe({levels:Q,support:_e,error:"",loading:!1})}).catch(G=>{fe&&oe({levels:[],error:String((G==null?void 0:G.message)||G),loading:!1})}),()=>{fe=!1}},[K,ne,q,t]),y.useEffect(()=>Ne(!1),[K,ne]);const Pe=e.inheritLabel||"Workflow / Gateway default",Qe=p&&(D!=null&&D.reasoning)?`${Pe} (${D.reasoning})`:Pe,He=!p||e.optionsInDefaultMode!==!1,qe=e.reasoningLadder?[...new Set(e.reasoningLadder.filter(fe=>typeof fe=="string"&&fe.trim()))]:null,ge=ue.loading?"loading":ue.levels.length||ue.support===!0?"supported":ue.support===!1?"unsupported":"unknown",$e=e.unknownReasoning==="allow-override"&&!!(qe!=null&&qe.length),nt=String(n.reasoning||"").trim();let et=[],Rt=!1;if(!qe)et=ue.levels.map(fe=>({value:fe,label:fe}));else if(ge==="supported"||ge==="loading"){const fe=ue.levels;et=[...qe,...fe.filter(le=>!qe.includes(le))].map(le=>!fe.length||fe.includes(le)?{value:le,label:le}:{value:le,label:le,disabled:!0,reason:"This model does not advertise it"})}else ge==="unknown"&&$e&&(Rt=!ve,et=qe.map(fe=>({value:fe,label:fe})));nt&&!et.some(fe=>fe.value===nt)&&et.push({value:nt,label:`${nt} (saved)`});const ce=(q||$e)&&(et.length>0||ge==="unknown"&&$e);return a.jsxs("div",{className:`af-pmp${i?" af-pmp--compact":""}${e.className?` ${e.className}`:""}`,"data-gateway-default":F?Z.status:void 0,children:[i||u?null:a.jsxs("div",{className:"af-pmp__seg",role:"tablist","aria-label":"Provider mode",children:[a.jsx("button",{type:"button",role:"tab","aria-selected":p,className:`af-pmp__seg-btn${p?" is-active":""}`,onClick:()=>{f(!1),e.onChange({...n,provider:"",model:"",...q?{reasoning:""}:{}})},disabled:t,title:te,"data-default-choice":"",children:te}),a.jsx("button",{type:"button",role:"tab","aria-selected":!p,className:`af-pmp__seg-btn${p?"":" is-active"}`,onClick:()=>{f(!0)},disabled:t,children:W})]}),Z.status==="error"||Z.status==="unusable"?a.jsx("div",{role:"status",className:"af-pmp__hint","data-gateway-default-problem":Z.status,children:Z.status==="error"?`The gateway's default could not be read: ${Z.message}`:`Gateway warning: ${Z.message}`}):null,m?a.jsx(xx,{provider:J,model:B,providers:b,models:T,modelDisplayNames:j,markSaved:L.current,providerPinned:l.provider,modelPinned:l.model,disabled:t,loadingProviders:C,loadingModels:S,providerError:N||void 0,modelError:I||void 0,providerLabel:e.providerLabel,modelLabel:e.modelLabel,allowGatewayDefault:i,gatewayDefaultLabel:i?te:void 0,allowCustomProvider:e.allowCustom!==!1,allowCustomModel:e.allowCustom!==!1,onChange:fe=>e.onChange({...n,provider:fe.provider,model:fe.model,...q?{reasoning:""}:{}})}):a.jsx("div",{className:"af-pmp__hint",children:e.defaultHint||"The gateway picks its configured default provider and model for this task."}),He&&l.reasoning?a.jsxs("div",{className:"af-pmp__reasoning",children:[a.jsx("label",{children:e.reasoningLabel||"Reasoning effort"}),a.jsx("div",{className:"af-pmp__pinned","data-pinned":"reasoning",children:th})]}):He&&ce?a.jsxs("div",{className:"af-pmp__reasoning","data-reasoning-state":ge,children:[a.jsx("label",{children:e.reasoningLabel||"Reasoning effort"}),a.jsx(_n,{ariaLabel:e.reasoningLabel||"Reasoning effort",placeholder:Qe,value:n.reasoning||"",options:[{value:"",label:Qe},...et],disabled:t||ue.loading||Rt,onChange:fe=>e.onChange({...n,reasoning:fe})}),ge==="unknown"&&$e?a.jsxs("div",{className:"af-pmp__hint","data-reasoning-unknown":"",children:[zx," ",a.jsxs("label",{className:"af-pmp__override",children:[a.jsx("input",{type:"checkbox",checked:ve,disabled:t,onChange:fe=>{Ne(fe.target.checked),!fe.target.checked&&n.reasoning&&e.onChange({...n,reasoning:""})}})," ",Bx]})]}):null]}):null,He&&e.enableSpeculation&&l.speculation?a.jsxs("div",{className:"af-pmp__speculation",children:[a.jsx("label",{children:"MTP depth"}),a.jsx("div",{className:"af-pmp__pinned","data-pinned":"speculation",children:th})]}):He&&e.enableSpeculation?a.jsx(Sx,{value:n.speculation,inheritLabel:Pe,onChange:fe=>e.onChange({...n,speculation:fe}),capabilities:be,disabled:t,loading:ue.loading,hideNote:!!ue.error}):null,He&&ue.error?a.jsxs("div",{role:"status",className:"af-pmp__hint","data-discovery":"unavailable",children:[e.enableSpeculation?Wx:Ux,a.jsxs("details",{className:"af-pmp__details",children:[a.jsx("summary",{children:"Technical details"}),a.jsx("span",{children:ue.error})]})]}):null]})}function Sg(...e){return e.filter(Boolean).join(" ")}function Vx({kicker:e="AbstractGateway connection",title:t="Connect to AbstractGateway",description:n="Sign in with the Gateway user token assigned by the Gateway admin.",statusLabel:s="Not signed in",statusTone:i="neutral",showGatewayUrl:l=!1,gatewayUrl:u="",gatewayUrlPlaceholder:d="http://127.0.0.1:8080",onGatewayUrlChange:f,userId:m,userPlaceholder:p="admin",onUserIdChange:g,token:b,tokenPlaceholder:v="Paste Gateway user token",showToken:C=!1,onTokenChange:x,onShowTokenChange:N,remember:k=!1,rememberLabel:T="Remember this browser",onRememberChange:$,loading:j=!1,submitting:A=!1,submitDisabled:S=!1,submitLabel:M="Sign in",submittingLabel:I="Signing in...",closeLabel:z="Close",signOutLabel:V="Sign out",showClose:Z=!1,showSignOut:ie=!1,error:F,message:D,className:L,onSubmit:J,onClose:B,onSignOut:Y}){const te=j||A,W=te||S||!String(m||"").trim()||!String(b||"").trim(),R=K=>{K.preventDefault(),!W&&J()};return a.jsxs("form",{className:Sg("af-gateway-signin",L),onSubmit:R,children:[a.jsxs("div",{className:"af-gateway-signin__hero",children:[a.jsxs("div",{children:[a.jsx("div",{className:"af-gateway-signin__kicker",children:e}),a.jsx("h2",{children:t}),n?a.jsx("p",{children:n}):null]}),a.jsx("div",{className:"af-gateway-signin__mark","aria-hidden":"true",children:"↔"})]}),a.jsx("div",{className:"af-gateway-signin__status-row",children:a.jsx("span",{className:Sg("af-gateway-signin__status",`af-gateway-signin__status--${i}`),children:s})}),a.jsxs("div",{className:"af-gateway-signin__form",children:[l?a.jsxs(a.Fragment,{children:[a.jsx("label",{className:"af-gateway-signin__label",htmlFor:"gateway-session-url",children:"Gateway URL"}),a.jsx("input",{id:"gateway-session-url",value:u,onChange:K=>f==null?void 0:f(K.target.value),placeholder:d,autoComplete:"url",disabled:te})]}):null,a.jsx("label",{className:"af-gateway-signin__label",htmlFor:"gateway-session-user",children:"Gateway user"}),a.jsx("input",{id:"gateway-session-user",value:m,onChange:K=>g(K.target.value),placeholder:p,autoComplete:"username",disabled:te}),a.jsx("label",{className:"af-gateway-signin__label",htmlFor:"gateway-session-token",children:"Gateway token"}),a.jsxs("div",{className:"af-gateway-signin__token-input",children:[a.jsx("input",{id:"gateway-session-token",type:C?"text":"password",value:b,onChange:K=>x(K.target.value),placeholder:v,autoComplete:"off","data-1p-ignore":"","data-lpignore":"true","data-bwignore":"",spellCheck:!1,disabled:te}),a.jsx("button",{className:"af-gateway-signin__secondary",type:"button",onClick:()=>N==null?void 0:N(!C),disabled:te,children:C?"Hide":"Show"})]}),a.jsxs("label",{className:"af-gateway-signin__checkbox",children:[a.jsx("input",{type:"checkbox",checked:!!k,onChange:K=>$==null?void 0:$(K.target.checked),disabled:te}),T]})]}),F?a.jsx("div",{className:"af-gateway-signin__message af-gateway-signin__message--error",children:F}):null,!F&&D?a.jsx("div",{className:"af-gateway-signin__message af-gateway-signin__message--ok",children:D}):null,a.jsxs("div",{className:"af-gateway-signin__actions",children:[Z?a.jsx("button",{className:"af-gateway-signin__secondary",type:"button",onClick:B,disabled:te,children:z}):null,ie?a.jsx("button",{className:"af-gateway-signin__secondary",type:"button",onClick:()=>void(Y==null?void 0:Y()),disabled:te,children:V}):null,a.jsx("button",{className:"af-gateway-signin__primary",type:"submit",disabled:W,children:A?I:M})]})]})}function Hx(e){return e==="light"?"Light":"Dark"}function Gx(e){const t=e.themes&&e.themes.length?e.themes:lw,n=e.showSwatches!==!1,s=e.variant||"panel",i=y.useMemo(()=>{const u={};for(const d of t)u[d.id]=d;return u},[t]),l=y.useMemo(()=>t.map(u=>({value:u.id,label:u.label,group:Hx(u.group)})),[t]);return a.jsx(_n,{value:e.value,options:l,placeholder:e.placeholder||"Select theme…",disabled:e.disabled===!0,searchable:!0,allowCustom:!1,clearable:!1,variant:s,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…",g=(m==null?void 0:m.swatches)||null,b=!f;return a.jsxs("span",{className:"af-theme-value",children:[a.jsx("span",{className:`af-theme-label ${b?"af-theme-label--placeholder":""}`.trim(),children:p}),n&&g?a.jsx("span",{className:"af-theme-swatches","aria-hidden":"true",children:g.map((v,C)=>a.jsx("span",{className:"af-theme-swatch",style:{background:v}},`${f}:${C}`))}):null]})},renderOption:(u,d)=>{const f=String(u.value||"").trim(),m=i[f],p=(m==null?void 0:m.swatches)||null;return a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"af-theme-option-label",children:u.label}),a.jsxs("span",{className:"af-theme-option-right",children:[n&&p?a.jsx("span",{className:"af-theme-swatches","aria-hidden":"true",children:p.map((g,b)=>a.jsx("span",{className:"af-theme-swatch",style:{background:g}},`${f}:${b}`))}):null,d.selected?a.jsx("span",{className:"af-select-check",children:"✓"}):null]})]})}})}function Kx(e){const t=e.scales&&e.scales.length?e.scales:Zf,n=e.variant||"panel",s=y.useMemo(()=>t.map(i=>({value:i.id,label:i.label})),[t]);return a.jsx(_n,{value:e.value,options:s,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 Jx(e){const t=e.densities&&e.densities.length?e.densities:eh,n=e.variant||"panel",s=y.useMemo(()=>t.map(i=>({value:i.id,label:i.label})),[t]);return a.jsx(_n,{value:e.value,options:s,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 qx=new Set(["board","inbox","server","agent","playCircle","list","gear"]);function Yx(e){switch(e){case"chat":return a.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 a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M12 5v14"}),a.jsx("path",{d:"M5 12h14"})]});case"history":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"12",cy:"12",r:"9"}),a.jsx("path",{d:"M12 7v5l3 3"})]});case"refresh":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M21 12a9 9 0 0 0-15.5-6.4L3 8"}),a.jsx("path",{d:"M3 3v5h5"}),a.jsx("path",{d:"M3 12a9 9 0 0 0 15.5 6.4L21 16"}),a.jsx("path",{d:"M21 21v-5h-5"})]});case"cog":return a.jsxs(a.Fragment,{children:[a.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"}),a.jsx("circle",{cx:"12",cy:"12",r:"3"})]});case"activity":return a.jsx("path",{d:"M22 12h-4l-3 9L9 3l-3 9H2"});case"settings":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M4 6h16"}),a.jsx("circle",{cx:"8",cy:"6",r:"2"}),a.jsx("path",{d:"M4 12h16"}),a.jsx("circle",{cx:"16",cy:"12",r:"2"}),a.jsx("path",{d:"M4 18h16"}),a.jsx("circle",{cx:"10",cy:"18",r:"2"})]});case"user":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"12",cy:"8",r:"4"}),a.jsx("path",{d:"M4 21a8 8 0 0 1 16 0"})]});case"bot":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M12 2v3"}),a.jsx("rect",{x:"5",y:"6",width:"14",height:"14",rx:"3"}),a.jsx("circle",{cx:"9",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),a.jsx("circle",{cx:"15",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),a.jsx("path",{d:"M9 17h6"})]});case"paperclip":return a.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 a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M12 14a3 3 0 0 0 3-3V5a3 3 0 0 0-6 0v6a3 3 0 0 0 3 3z"}),a.jsx("path",{d:"M19 11a7 7 0 0 1-14 0"}),a.jsx("path",{d:"M12 18v4"}),a.jsx("path",{d:"M8 22h8"})]});case"speaker":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M11 5L6 9H2v6h4l5 4V5z"}),a.jsx("path",{d:"M15.5 8.5a5 5 0 0 1 0 7"}),a.jsx("path",{d:"M18 6a9 9 0 0 1 0 12"})]});case"pause":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",fill:"currentColor",stroke:"none"}),a.jsx("rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",fill:"currentColor",stroke:"none"})]});case"terminal":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2",ry:"2"}),a.jsx("path",{d:"M7 9l3 3-3 3"}),a.jsx("path",{d:"M12 15h5"})]});case"edit":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M12 20h9"}),a.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 a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),a.jsx("path",{d:"M7 10l5 5 5-5"}),a.jsx("path",{d:"M12 15V3"})]});case"loader":return a.jsx("path",{d:"M21 12a9 9 0 1 1-3.3-6.9"});case"info":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"12",cy:"12",r:"10"}),a.jsx("path",{d:"M12 16v-4"}),a.jsx("circle",{cx:"12",cy:"8",r:"0.75",fill:"currentColor",stroke:"none"})]});case"warning":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M12 3l10 18H2L12 3z"}),a.jsx("path",{d:"M12 9v4"}),a.jsx("circle",{cx:"12",cy:"17",r:"0.75",fill:"currentColor",stroke:"none"})]});case"error":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"12",cy:"12",r:"10"}),a.jsx("path",{d:"M15 9l-6 6"}),a.jsx("path",{d:"M9 9l6 6"})]});case"copy":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),a.jsx("path",{d:"M5 15V5a2 2 0 0 1 2-2h10"})]});case"check":return a.jsx("path",{d:"M20 6L9 17l-5-5"});case"x":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M18 6L6 18"}),a.jsx("path",{d:"M6 6l12 12"})]});case"chevronDown":return a.jsx("path",{d:"M6 9l6 6 6-6"});case"chevronRight":return a.jsx("path",{d:"M9 18l6-6-6-6"});case"trash":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M3 6h18"}),a.jsx("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),a.jsx("path",{d:"M6 6l1 16h10l1-16"}),a.jsx("path",{d:"M10 11v6"}),a.jsx("path",{d:"M14 11v6"})]});case"send":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M22 2L11 13"}),a.jsx("path",{d:"M22 2L15 22l-4-9-9-4 20-7z"})]});case"thumbsUp":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M7 10v11"}),a.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 a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M17 14V3"}),a.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 a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M7 10v11"}),a.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 a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M17 14V3"}),a.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 a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"1.5",y:"2",width:"3.6",height:"12",rx:"1"}),a.jsx("rect",{x:"6.2",y:"2",width:"3.6",height:"8.5",rx:"1"}),a.jsx("rect",{x:"10.9",y:"2",width:"3.6",height:"5.5",rx:"1"})]});case"inbox":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M2 9.5 L4 3.5 h8 l2 6"}),a.jsx("path",{d:"M2 9.5 v3 h12 v-3"}),a.jsx("path",{d:"M2 9.5 h3.4 l1 1.6 h3.2 l1-1.6 H14"})]});case"server":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"2",y:"2.5",width:"12",height:"4.6",rx:"1.2"}),a.jsx("rect",{x:"2",y:"8.9",width:"12",height:"4.6",rx:"1.2"}),a.jsx("circle",{cx:"4.6",cy:"4.8",r:"0.8",fill:"currentColor",stroke:"none"}),a.jsx("circle",{cx:"4.6",cy:"11.2",r:"0.8",fill:"currentColor",stroke:"none"})]});case"agent":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"3",y:"4.5",width:"10",height:"8",rx:"2"}),a.jsx("path",{d:"M8 4.5V2.2"}),a.jsx("circle",{cx:"8",cy:"1.8",r:"0.9",fill:"currentColor",stroke:"none"}),a.jsx("circle",{cx:"5.8",cy:"8.4",r:"0.9",fill:"currentColor",stroke:"none"}),a.jsx("circle",{cx:"10.2",cy:"8.4",r:"0.9",fill:"currentColor",stroke:"none"})]});case"playCircle":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"8",cy:"8",r:"6.2"}),a.jsx("path",{d:"M6.5 5.6 L11 8 L6.5 10.4 Z",fill:"currentColor",stroke:"none"})]});case"list":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M2.5 4h11"}),a.jsx("path",{d:"M2.5 8h11"}),a.jsx("path",{d:"M2.5 12h7"})]});case"gear":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"8",cy:"8",r:"2.2"}),a.jsx("path",{d:"M8 1.6v2"}),a.jsx("path",{d:"M8 12.4v2"}),a.jsx("path",{d:"M1.6 8h2"}),a.jsx("path",{d:"M12.4 8h2"}),a.jsx("path",{d:"M3.5 3.5l1.4 1.4"}),a.jsx("path",{d:"M11.1 11.1l1.4 1.4"}),a.jsx("path",{d:"M12.5 3.5l-1.4 1.4"}),a.jsx("path",{d:"M4.9 11.1l-1.4 1.4"})]});case"sparkle":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z"}),a.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 a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"12",cy:"12",r:"9"}),a.jsx("path",{d:"M12 3a9 9 0 0 1 0 18z",fill:"currentColor",stroke:"none"})]});case"logout":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),a.jsx("path",{d:"M16 17l5-5-5-5"}),a.jsx("path",{d:"M21 12H9"})]});case"play":return a.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 a.jsx("rect",{x:"5",y:"5",width:"14",height:"14",rx:"2",fill:"currentColor",stroke:"none"});case"folder":return a.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 a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),a.jsx("path",{d:"M14 2v6h6"})]});case"archive":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),a.jsx("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),a.jsx("path",{d:"M10 12h4"})]});case"unarchive":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),a.jsx("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),a.jsx("path",{d:"M12 18v-6"}),a.jsx("path",{d:"m9 14 3-3 3 3"})]});case"clock":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"12",cy:"12",r:"10"}),a.jsx("path",{d:"M12 6v6h4"})]});case"book":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M2 4h6a4 4 0 0 1 4 4v13a3 3 0 0 0-3-3H2z"}),a.jsx("path",{d:"M22 4h-6a4 4 0 0 0-4 4v13a3 3 0 0 1 3-3h7z"})]});case"compose":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),a.jsx("path",{d:"M18.4 2.6a2.1 2.1 0 0 1 3 3L12 15l-4 1 1-4z"})]});case"image":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),a.jsx("circle",{cx:"9",cy:"9",r:"2"}),a.jsx("path",{d:"M21 15l-3.1-3.1a2 2 0 0 0-2.8 0L6 21"})]});case"video":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"2",y:"6",width:"14",height:"12",rx:"2"}),a.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 a.jsxs(a.Fragment,{children:[a.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"}),a.jsx("circle",{cx:"12",cy:"13",r:"3"})]});case"music":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M9 18V5l12-2v13"}),a.jsx("circle",{cx:"6",cy:"18",r:"3"}),a.jsx("circle",{cx:"18",cy:"16",r:"3"})]});case"database":return a.jsxs(a.Fragment,{children:[a.jsx("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),a.jsx("path",{d:"M3 5v14a9 3 0 0 0 18 0V5"}),a.jsx("path",{d:"M3 12a9 3 0 0 0 18 0"})]});case"branch":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M6 3v12"}),a.jsx("circle",{cx:"18",cy:"6",r:"3"}),a.jsx("circle",{cx:"6",cy:"18",r:"3"}),a.jsx("path",{d:"M18 9a9 9 0 0 1-9 9"})]});case"loop":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M17 2l4 4-4 4"}),a.jsx("path",{d:"M3 11v-1a4 4 0 0 1 4-4h14"}),a.jsx("path",{d:"M7 22l-4-4 4-4"}),a.jsx("path",{d:"M21 13v1a4 4 0 0 1-4 4H3"})]});case"variable":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M8 21s-4-3-4-9 4-9 4-9"}),a.jsx("path",{d:"M16 3s4 3 4 9-4 9-4 9"}),a.jsx("path",{d:"M15 9l-6 6"}),a.jsx("path",{d:"M9 9l6 6"})]});case"minus":return a.jsx("path",{d:"M5 12h14"});case"divide":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"12",cy:"6",r:"1.25",fill:"currentColor",stroke:"none"}),a.jsx("path",{d:"M5 12h14"}),a.jsx("circle",{cx:"12",cy:"18",r:"1.25",fill:"currentColor",stroke:"none"})]});case"function":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),a.jsx("path",{d:"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3"}),a.jsx("path",{d:"M9 11.2h5.7"})]});case"zoomIn":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"11",cy:"11",r:"8"}),a.jsx("path",{d:"M21 21l-4.35-4.35"}),a.jsx("path",{d:"M11 8v6"}),a.jsx("path",{d:"M8 11h6"})]});case"zoomOut":return a.jsxs(a.Fragment,{children:[a.jsx("circle",{cx:"11",cy:"11",r:"8"}),a.jsx("path",{d:"M21 21l-4.35-4.35"}),a.jsx("path",{d:"M8 11h6"})]});case"fitView":return a.jsxs(a.Fragment,{children:[a.jsx("path",{d:"M8 3H5a2 2 0 0 0-2 2v3"}),a.jsx("path",{d:"M21 8V5a2 2 0 0 0-2-2h-3"}),a.jsx("path",{d:"M3 16v3a2 2 0 0 0 2 2h3"}),a.jsx("path",{d:"M16 21h3a2 2 0 0 0 2-2v-3"})]});case"lock":return a.jsxs(a.Fragment,{children:[a.jsx("rect",{x:"4",y:"11",width:"16",height:"10",rx:"2"}),a.jsx("path",{d:"M8 11V7a4 4 0 0 1 8 0v4"})]});default:return null}}function de({name:e,size:t=16,className:n,title:s,...i}){const l=s?void 0:!0,u=qx.has(e);return a.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":l,role:s?"img":"presentation",...i,children:[s?a.jsx("title",{children:s}):null,Yx(e)]})}function Qx(e){return!String(e.unavailableReason||"").trim()&&!e.busy}function Xx(e){return Qx(e)?!e.checked:null}let Zx=0;function Br(e){const{label:t,checked:n,onChange:s,description:i,reasonVisible:l=!0,describedBy:u,hint:d,busy:f=!1,variant:m="inline",ariaLabel:p,className:g,id:b,action:v}=e,C=String(e.unavailableReason||"").trim(),x=!!C,N=u||(b?`${b}-reason`:x?`af-switch-reason-${++Zx}`:void 0),k=["af-switch",m==="row"?"af-switch--row":m==="sm"?"af-switch--sm":"",x?"af-switch--unavailable":"",g||""].filter(Boolean).join(" "),T=j=>{const A=Xx({checked:n,unavailableReason:C,busy:f});if(A===null){j.preventDefault();return}s==null||s(A)},$=a.jsxs("button",{type:"button",role:"switch",id:b,className:k,"data-action":v,"aria-checked":n?"true":"false","aria-disabled":x?"true":void 0,"aria-describedby":x?N:void 0,"aria-busy":f?"true":void 0,"aria-label":p,"aria-description":i?void 0:d,title:x?d?`${C}
|
|
41
|
-
${d}`:C:d,onClick:T,children:[a.jsx("span",{className:"af-switch__track","aria-hidden":"true",children:a.jsx("span",{className:"af-switch__thumb"})}),a.jsxs("span",{className:"af-switch__text",children:[a.jsx("span",{className:"af-switch__label",children:t}),i?a.jsx("span",{className:"af-switch__desc",children:i}):null]})]});return!x||u?$:a.jsxs("span",{className:m==="row"?"af-switch-wrap af-switch-wrap--row":"af-switch-wrap",children:[$,a.jsx("span",{id:N,className:l?"af-switch__reason":"af-switch__reason af-switch__reason--hidden",children:C})]})}function ek(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(" "),s=t?`${e.id||e.name}-reason`:void 0,i=a.jsxs("label",{className:n,title:t||void 0,"data-action":e.action,children:[a.jsx("input",{type:"checkbox",role:"switch",className:"af-switch__input",id:e.id,name:e.name,defaultChecked:e.defaultChecked,onChange:l=>{var u;return(u=e.onChange)==null?void 0:u.call(e,l.target.checked)},disabled:!!t,"aria-describedby":s}),a.jsx("span",{className:"af-switch__track","aria-hidden":"true",children:a.jsx("span",{className:"af-switch__thumb"})}),a.jsx("span",{className:"af-switch__text",children:a.jsx("span",{className:"af-switch__label",children:e.label})})]});return t?a.jsxs("span",{className:e.variant==="row"?"af-switch-wrap af-switch-wrap--row":"af-switch-wrap",children:[i,a.jsx("span",{id:s,className:"af-switch__reason",children:t})]}):i}const tk=150,Rh="data-af-tip";function nk(e,t,n,s=6,i=8){let l="top",u=e.top-s-t.height;if(u<i){const m=e.bottom+s;(m+t.height<=n.height-i||n.height-e.bottom>e.top)&&(u=m,l="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:l}}let Ng=0;function fw(e){return e?String(e.getAttribute(Rh)||"").trim():""}function hf(e,t){const n=e;if(!n||typeof n.closest!="function")return null;const s=n.closest(`[${Rh}]`);return!s||!t.contains(s)||!fw(s)?null:s}function sk(e,t={}){if(!e)throw new Error("bindAfTooltips: a root (document or element) is required");const n=e.nodeType===9?e:e.ownerDocument,s=n.defaultView||globalThis,i=typeof t.delayMs=="number"&&t.delayMs>=0?t.delayMs:tk;Ng+=1;const l=n.createElement("div");l.className="af-tooltip",l.setAttribute("role","tooltip");const u=`af-tooltip-${Ng}`;l.setAttribute("id",u),l.hidden=!0,(n.body||n.documentElement).appendChild(l);let d=null,f=null,m=null,p=null,g=!1,b=null;const v=()=>{m&&clearTimeout(m),m=null,f=null},C=()=>{p&&clearTimeout(p),p=null},x=()=>{if(!d)return;const L=d.getBoundingClientRect(),J=l.getBoundingClientRect(),B=nk(L,{width:J.width,height:J.height},{width:s.innerWidth,height:s.innerHeight});l.style.top=`${B.top}px`,l.style.left=`${B.left}px`,l.setAttribute("data-side",B.side)},N=()=>{if(v(),C(),!d)return;String(d.getAttribute("aria-describedby")||"").split(/\s+/).includes(u)&&(b?d.setAttribute("aria-describedby",b):d.removeAttribute("aria-describedby")),b=null,d=null,l.hidden=!0,l.textContent=""},k=L=>{v(),C(),d&&d!==L&&N();const J=fw(L);if(!J||L.isConnected===!1)return;if(d=L,l.textContent=J,l.hidden=!1,String(L.getAttribute("aria-label")||"").trim()!==J){const Y=L.getAttribute("aria-describedby");b=Y&&Y!==u?Y:null,L.setAttribute("aria-describedby",b?`${b} ${u}`:u)}x()},T=L=>{C(),d!==L&&f!==L&&(v(),f=L,m=setTimeout(()=>{const J=f;m=null,f=null,J&&k(J)},i))},$=()=>{v(),d&&(C(),p=setTimeout(N,100))},j=L=>{try{if(typeof L.matches=="function")return L.matches(":focus-visible")}catch{}return g},A=L=>{if(L.pointerType==="touch")return;if(l.contains(L.target)){C();return}const B=hf(L.target,e);B&&T(B)},S=L=>{const B=L.relatedTarget||null;if(!(B&&(l.contains(B)||d&&d.contains(B)||f&&f.contains(B)))){if(f&&!d){v();return}d&&$()}},M=L=>{const J=L.relatedTarget||null;J&&(l.contains(J)||d&&d.contains(J))||$()},I=L=>{const J=hf(L.target,e);J&&j(J)&&T(J)},z=L=>{const J=hf(L.target,e);J&&(J===d||J===f)&&N()},V=()=>{g=!1,N()},Z=L=>{if(L.key==="Escape"||L.key==="Esc"){d?(L.preventDefault(),N()):v();return}!L.metaKey&&!L.ctrlKey&&!L.altKey&&(g=!0)},ie=()=>N(),F=e;F.addEventListener("pointerover",A),F.addEventListener("pointerout",S),F.addEventListener("focusin",I),F.addEventListener("focusout",z),l.addEventListener("pointerover",A),l.addEventListener("pointerout",M),n.addEventListener("pointerdown",V,!0),s.addEventListener("keydown",Z,!0),s.addEventListener("scroll",ie,!0),s.addEventListener("resize",ie);let D=!1;return()=>{D||(D=!0,N(),F.removeEventListener("pointerover",A),F.removeEventListener("pointerout",S),F.removeEventListener("focusin",I),F.removeEventListener("focusout",z),l.removeEventListener("pointerover",A),l.removeEventListener("pointerout",M),n.removeEventListener("pointerdown",V,!0),s.removeEventListener("keydown",Z,!0),s.removeEventListener("scroll",ie,!0),s.removeEventListener("resize",ie),l.parentNode&&l.parentNode.removeChild(l))}}const Ac=new WeakMap;function rk(e){let t=Ac.get(e);t||(t={count:0,release:sk(e)},Ac.set(e,t)),t.count+=1;let n=!1;return()=>{if(n)return;n=!0;const s=Ac.get(e);s&&(s.count-=1,s.count<=0&&(s.release(),Ac.delete(e)))}}function To(){y.useEffect(()=>{if(!(typeof document>"u"))return rk(document)},[])}function Qc(e){To();const t=gt.Children.only(e.children),n=String(e.content||"").trim();return n?gt.cloneElement(t,{[Rh]:n}):t}function ak(e,t,n){const s=String(e||"").trim().toLowerCase();if(!s&&!t&&!n)return null;let i;return s==="approval"||s==="local_approval"||s==="local-approval"?i={label:"APPROVAL",detail:"Safe tools auto-run; mutating tools ask for approval.",tone:"safe"}:s==="passthrough"?i={label:"PASSTHROUGH",detail:"All tools require approval before execution.",tone:"warn"}:s==="delegated"||s==="delegate"||s==="job"?i={label:"DELEGATED",detail:"Tool calls wait for external executors.",tone:"info"}:s==="local"||s==="local_all"||s==="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}async function sh(e=ol){const t=await fetch(e),n=await t.json().catch(()=>null);if(!t.ok){const s=n&&typeof n=="object"&&n.detail?String(n.detail):`HTTP ${t.status}`;throw new Error(s)}return n}async function ok(e,t=ol){const n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),s=await n.json().catch(()=>null);if(!n.ok){const i=s&&typeof s=="object"&&s.detail?String(s.detail):`HTTP ${n.status}`;throw new Error(i)}return s}async function hw(e=ol){const t=await fetch(e,{method:"DELETE"});if(!t.ok){const n=await t.json().catch(()=>({})),s=n&&typeof n=="object"&&n.detail?String(n.detail):`HTTP ${t.status}`;throw new Error(s)}}function mf(e){let t=String(e||"").trim();for(let n=0;n<2&&t;n+=1){try{const l=JSON.parse(t);if(typeof l=="string"&&l!==t){t=l.trim();continue}}catch{}const s=t[0],i=t[t.length-1];if(s==='"'&&i==='"'||s==="'"&&i==="'"){t=t.slice(1,-1).trim();continue}break}return t.replace(/\/+$/,"")}function ik(e){var l,u;if(!e)return{label:"Signed out",tone:"warn"};if(!e.has_session)return{label:"Signed out",tone:"warn"};const t=e.gateway||{},n=(l=t.principal)==null?void 0:l.user_id,s=(u=t.principal)==null?void 0:u.runtime_id;if(t.ok&&n)return{label:`Signed in as ${n}${s?` · runtime ${s}`:""}`,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 lk(e){const t=e.connectionPath||ol,[n,s]=y.useState(!1),[i,l]=y.useState(!1),[u,d]=y.useState(null),[f,m]=y.useState(!1);y.useEffect(()=>{e.isOpen||m(!1)},[e.isOpen]);const[p,g]=y.useState(e.defaultGatewayUrl||"http://127.0.0.1:8080"),[b,v]=y.useState("admin"),[C,x]=y.useState(""),[N,k]=y.useState(!1),[T,$]=y.useState(!0),[j,A]=y.useState(""),[S,M]=y.useState(""),I=y.useMemo(()=>ik(u),[u]),z=F=>{var D;d(F),(D=e.onStatusChange)==null||D.call(e,F)},V=y.useRef(!1);if(y.useEffect(()=>{var D;if(!e.isOpen)return;const F=!V.current;if(V.current=!0,F&&e.initialStatus!==void 0&&e.initialStatus!==null){const L=e.initialStatus;z(L),typeof L.gateway_url=="string"&&L.gateway_url.trim()&&g(mf(L.gateway_url));const J=(D=L.gateway)==null?void 0:D.principal;J!=null&&J.user_id&&v(J.user_id);return}s(!0),A(""),sh(t).then(L=>{var B;z(L),typeof L.gateway_url=="string"&&L.gateway_url.trim()&&g(mf(L.gateway_url));const J=(B=L.gateway)==null?void 0:B.principal;J!=null&&J.user_id&&v(J.user_id)}).catch(L=>A(`Failed to load connection status: ${String((L==null?void 0:L.message)||L)}`)).finally(()=>s(!1))},[e.isOpen]),y.useEffect(()=>{if(!e.isOpen)return;const F=D=>{D.key==="Escape"&&!D.defaultPrevented&&!e.blocking&&(D.preventDefault(),e.onClose())};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[e.isOpen,e.blocking,e.onClose]),!e.isOpen||f)return null;const Z=async()=>{l(!0),A(""),M("");try{const F=mf(p);g(F);const D=await ok({gateway_url:F,gateway_user_id:b,gateway_token:C,persist:T},t);z(D),x(""),m(!0),e.onClose()}catch(F){A(String((F==null?void 0:F.message)||F))}finally{l(!1)}},ie=async()=>{l(!0),A(""),M("");try{await hw(t),x("");const F=await sh(t).catch(()=>null);z(F),M("Signed out. This browser no longer holds a gateway session.")}catch(F){A(String((F==null?void 0:F.message)||F))}finally{l(!1)}};return a.jsx("div",{className:"af-connect-overlay",role:"presentation",onMouseDown:F=>{!e.blocking&&F.target===F.currentTarget&&e.onClose()},children:a.jsx("div",{className:"af-connect-modal",role:"dialog","aria-modal":"true","aria-label":"Gateway connection",children:a.jsx(Vx,{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:I.label,statusTone:I.tone,showGatewayUrl:!0,gatewayUrl:p,onGatewayUrlChange:F=>g(F),userId:b,onUserIdChange:v,token:C,tokenPlaceholder:u!=null&&u.has_session?"(browser session already signed in)":"Paste Gateway user token",showToken:N,onTokenChange:x,onShowTokenChange:k,remember:T,rememberLabel:"Keep this browser signed in",onRememberChange:$,loading:n,submitting:i,submittingLabel:"Signing in...",showClose:!e.blocking,onClose:e.onClose,showSignOut:!e.blocking&&!!(u!=null&&u.has_session),onSignOut:ie,error:j,message:S,onSubmit:Z})})})}function mw(e){return!!(e&&e.ok===!0&&e.has_session===!0)}function ck(e){const t=e||{},n=t.connectionPath||ol,s=t.variant||"dismissable",i=y.useRef(t.onStatusChange);i.current=t.onStatusChange;const l=y.useRef(s);l.current=s;const u=y.useRef(!!t.autoOpenMidSession);u.current=!!t.autoOpenMidSession;const[d,f]=y.useState(null),[m,p]=y.useState("loading"),[g,b]=y.useState(!1),v=y.useRef(!1),C=y.useRef(!1),x=y.useRef("loading"),N=y.useRef("none"),k=y.useRef(!1),T=y.useRef(0),$=y.useCallback(D=>{var J;T.current+=1,f(D),(J=i.current)==null||J.call(i,D);const L=mw(D);if(L)p("connected"),x.current="connected",v.current=!1,N.current="none",C.current||b(!1);else if(D!==null){const B=x.current;p("disconnected"),x.current="disconnected",B!=="disconnected"&&(N.current=k.current?"signout":B==="connected"?"mid":"boot");const Y=l.current==="blocking"||N.current!=="mid"||u.current;!v.current&&Y&&b(!0)}D!==null&&(C.current=L)},[]),j=y.useCallback(async()=>{const D=T.current;try{const L=await sh(n);if(T.current!==D)return;$(L)}catch{if(T.current!==D)return;$(null)}},[n,$]),[A,S]=y.useState(!1),[M,I]=y.useState(null),z=y.useCallback(async()=>{S(!0),I(null),T.current+=1;let D=null;try{await hw(n)}catch(L){D=String((L==null?void 0:L.message)||L||"Sign-out request failed")}k.current=!0;try{await j()}finally{k.current=!1}return I(D),S(!1),D===null&&x.current!=="connected"},[n,j]),V=y.useRef(!1);y.useEffect(()=>{V.current||(V.current=!0,j())},[j]);const Z=y.useCallback(()=>{b(!0)},[]),ie=y.useCallback(()=>{const D=x.current;s==="blocking"&&D==="disconnected"||(D==="disconnected"&&(v.current=!0),b(!1))},[s]),F=y.useMemo(()=>({isOpen:g,onClose:ie,blocking:s==="blocking"&&m!=="connected",appName:t.appName,connectionPath:n,defaultGatewayUrl:t.defaultGatewayUrl,initialStatus:d,onStatusChange:$}),[g,ie,s,m,t.appName,n,t.defaultGatewayUrl,d,$]);return{status:d,phase:m,connected:m==="connected",modalOpen:g,signingOut:A,signOutError:M,openModal:Z,refresh:j,signOut:z,modalProps:F}}function uk(){return globalThis.crypto}function dk(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(s=>s.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 Dr(){const e=uk();if(e&&typeof e.randomUUID=="function")try{return e.randomUUID()}catch{}if(e&&typeof e.getRandomValues=="function")return dk(e.getRandomValues(new Uint8Array(16)));throw new Error("randomId: Web Crypto (crypto.getRandomValues) is unavailable")}function wu(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 pf={neutral:"var(--text-secondary)",muted:"var(--text-muted)",accent:"var(--accent)",info:"var(--info)",success:"var(--success)",warning:"var(--warning)",error:"var(--error)"},fk=/^var\(--[a-z0-9-]+\)$/i;function hk(e,t){const n=e||"neutral";if(n==="custom"){const s=String(t||"").trim();return fk.test(s)?s:pf.neutral}return pf[n]||pf.neutral}function pw(e,t,n){return[e,`${e}--${t.tone||"neutral"}`,t.size==="sm"?`${e}--sm`:"",n||"",t.className||""].filter(Boolean).join(" ")}function gw(e){return{"--af-chip-hue":hk(e.tone,e.hue)}}function mk(e){return a.jsxs("span",{className:pw("af-chip",e,e.onRemove?"af-chip--removable":""),style:gw(e),title:e.title,children:[a.jsx("span",{className:"af-chip__label",children:e.children}),e.onRemove?a.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:a.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.6",strokeLinecap:"round",children:[a.jsx("path",{d:"M18 6L6 18"}),a.jsx("path",{d:"M6 6l12 12"})]})}):null]})}function pk(e){return a.jsx("button",{type:"button",className:pw("af-chip",e,"af-chip--button"),style:gw(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:a.jsx("span",{className:"af-chip__label",children:e.children})})}const gk=["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 yk(e,t,n,s){if(e.length===0)return null;const i=e[0],l=e[e.length-1];return s?n&&t===i?l:!n&&t===l?i:null:n?l:i}function wk(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 gf(e){return Array.from(e.querySelectorAll(gk)).filter(n=>!(typeof n.closest=="function"&&n.closest("[hidden], [inert], [aria-hidden='true']")||wk(n)||typeof n.getClientRects=="function"&&n.getClientRects().length===0))}const Cg=new WeakMap;function vk(e,t){const n=t.document||e.ownerDocument,s=e.querySelector(".af-modal")||e,i=n.activeElement,l=Cg.get(n)||[];Cg.set(n,l),l.push(e);const u=t.lockScroll!==!1;u&&n.documentElement.classList.add("af-modal-open");const d=()=>{const x=s.querySelector(".af-modal__body"),N=t.initialFocus||s.querySelector("[data-af-autofocus], [autofocus]")||(x?gf(x)[0]:void 0)||gf(s)[0]||s;N===s&&!s.hasAttribute("tabindex")&&s.setAttribute("tabindex","-1"),N.focus({preventScroll:!0})};d();const f=()=>l[l.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 N=gf(s),k=n.activeElement,T=!!k&&s.contains(k);if(N.length===0){x.preventDefault(),s.focus({preventScroll:!0});return}const $=yk(N,k,x.shiftKey,T&&k!==s);$&&(x.preventDefault(),$.focus({preventScroll:!0}))},p=x=>{if(!f())return;const N=x.target;N&&!s.contains(N)&&d()};let g=!1;const b=x=>{g=x.target===e},v=x=>{const N=x.target===e&&g;g=!1,!(!N||!f()||t.closeOnBackdrop===!1)&&t.onClose()};n.addEventListener("keydown",m,!0),n.addEventListener("focusin",p,!0),e.addEventListener("mousedown",b),e.addEventListener("click",v);let C=!1;return()=>{if(C)return;C=!0,n.removeEventListener("keydown",m,!0),n.removeEventListener("focusin",p,!0),e.removeEventListener("mousedown",b),e.removeEventListener("click",v);const x=l.lastIndexOf(e);x>=0&&l.splice(x,1),u&&l.length===0&&n.documentElement.classList.remove("af-modal-open"),i&&typeof i.focus=="function"&&i.isConnected!==!1&&i.focus({preventScroll:!0})}}function _k(e){const t=y.useId().replace(/:/g,""),n=e.id||`af-modal-${t}`,s=y.useRef(null),i=y.useRef(e.onClose);if(i.current=e.onClose,y.useEffect(()=>{if(!(!e.open||!s.current))return vk(s.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 l=a.jsx("div",{className:"af-modal-backdrop",ref:s,children:a.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:[a.jsxs("div",{className:"af-modal__header",children:[a.jsx("h2",{className:"af-modal__title",id:`${n}-title`,children:e.title}),a.jsx("button",{type:"button",className:"af-modal__close","aria-label":e.closeLabel||"Close",onClick:()=>i.current(),children:a.jsx("span",{"aria-hidden":"true",children:"×"})})]}),a.jsx("div",{className:"af-modal__body",children:e.children}),e.footer!==void 0||e.footerNote!==void 0?a.jsxs("div",{className:"af-modal__footer",children:[e.footerNote!==void 0?a.jsx("p",{className:"af-modal__footer-note",children:e.footerNote}):null,e.footer]}):null]})});return e.portal!==!1&&typeof document<"u"&&!!document.body?al.createPortal(l,document.body):l}function bk(e,t,n,s=4,i=8){let l=e.bottom+s,u=!1;if(l+t.height>n.height-i){const m=e.top-s-t.height;(m>=i||e.top>n.height-e.bottom)&&(l=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)),l=Math.max(i,l),{top:Math.round(l),left:Math.round(d),up:u,leftward:f}}let Eg=0;function xk(e,t,n={}){if(!e||!t)throw new Error("bindAfMenu: button and menu are required");const s=n.document||e.ownerDocument,i=s.defaultView||globalThis;t.getAttribute("id")||(Eg+=1,t.setAttribute("id",`af-menu-${Eg}`)),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 l=()=>{const $=Array.from(t.querySelectorAll(".af-menu__item")),j=$.filter(A=>!A.hidden&&!A.hasAttribute("disabled"));for(const A of $)A.setAttribute("role","menuitem"),A.setAttribute("tabindex","-1");return j};l();let u=!1;const d=()=>{if(!u)return;const $=e.getBoundingClientRect(),j=t.getBoundingClientRect(),A=bk($,{width:j.width,height:j.height},{width:i.innerWidth,height:i.innerHeight});t.style.top=`${A.top}px`,t.style.left=`${A.left}px`,t.setAttribute("data-placement",`${A.up?"top":"bottom"}-${A.leftward?"end":"start"}`)},f=$=>{const j=l();if(!j.length)return;const A=($%j.length+j.length)%j.length;j[A].focus({preventScroll:!0})},m=$=>{u||(u=!0,t.hidden=!1,e.setAttribute("aria-expanded","true"),d(),f($),s.addEventListener("pointerdown",g,!0),s.addEventListener("mousedown",g,!0),i.addEventListener("scroll",d,!0),i.addEventListener("resize",b),i.addEventListener("keydown",x,!0),n.onOpen&&n.onOpen())},p=$=>{u&&(u=!1,t.hidden=!0,e.setAttribute("aria-expanded","false"),s.removeEventListener("pointerdown",g,!0),s.removeEventListener("mousedown",g,!0),i.removeEventListener("scroll",d,!0),i.removeEventListener("resize",b),i.removeEventListener("keydown",x,!0),$&&e.focus({preventScroll:!0}),n.onClose&&n.onClose())};function g($){const j=$.target;j&&(t.contains(j)||e.contains(j))||p(!1)}function b(){p(!1)}const v=$=>{$.preventDefault(),u?p(!0):m(0)},C=$=>{$.key==="ArrowDown"||($.key==="Enter"||$.key===" ")&&!u?($.preventDefault(),m(0)):$.key==="ArrowUp"&&($.preventDefault(),m(-1))},x=$=>{if(!u||$.key!=="Escape"&&$.key!=="Esc")return;const j=$.target;j&&j!==e&&!t.contains(j)&&j!==s.body||($.preventDefault(),p(!0))},N=$=>{if(!u)return;const A=l().indexOf(s.activeElement);$.key==="ArrowDown"?($.preventDefault(),f(A+1)):$.key==="ArrowUp"?($.preventDefault(),f(A<0?-1:A-1)):$.key==="Home"?($.preventDefault(),f(0)):$.key==="End"?($.preventDefault(),f(-1)):$.key==="Tab"&&p(!1)},k=$=>{const j=$.target,A=j&&typeof j.closest=="function"?j.closest(".af-menu__item"):null;if(!A||!t.contains(A))return;const S=s.activeElement,M=!S||S===s.body||t.contains(S);p(M)};e.addEventListener("click",v),e.addEventListener("keydown",C),t.addEventListener("keydown",N),t.addEventListener("click",k);let T=!1;return()=>{T||(T=!0,p(!1),e.removeEventListener("click",v),e.removeEventListener("keydown",C),t.removeEventListener("keydown",N),t.removeEventListener("click",k))}}function Ih(e){const t=y.useRef(null),n=y.useRef(null),s=e.items.filter(l=>l&&!l.hidden),i=s.length>0;return y.useEffect(()=>{if(!(!i||!t.current||!n.current))return xk(t.current,n.current)},[i]),i?a.jsxs("div",{className:`af-menu${e.className?` ${e.className}`:""}`,children:[a.jsx("button",{type:"button",ref:t,className:`af-menu__button${e.buttonClassName?` ${e.buttonClassName}`:""}`,"aria-label":e.label,title:e.title,"data-af-tip":e.tip,"aria-haspopup":"menu","aria-expanded":"false",children:e.buttonContent!==void 0?e.buttonContent:a.jsx("span",{"aria-hidden":"true",children:"⋯"})}),a.jsxs("div",{className:"af-menu__list",role:"menu",ref:n,hidden:!0,children:[e.header!==void 0&&e.header!==null?a.jsx("div",{className:"af-menu__header",role:"presentation",children:e.header}):null,s.map(l=>a.jsx("button",{type:"button",role:"menuitem",tabIndex:-1,"data-menu-id":l.id,className:`af-menu__item${l.danger?" af-menu__item--danger":""}`,onClick:()=>l.onSelect(),children:l.label},l.id))]})]}):null}const kk={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"},jk={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"}},Sk={framework:kk,apps:jk},Xc=Sk;function yw(){return{...Xc.framework}}function Nk(){return Object.keys(Xc.apps).sort()}function Ck(e,t){const n=Object.prototype.hasOwnProperty.call(Xc.apps,e)?Xc.apps[e]:void 0;if(!n)throw new Error(`appIdentity: unknown application id "${e}" (known: ${Nk().join(", ")})`);return{id:e,name:n.name,version:t,website:n.website,repo:n.repo,docs:n.docs,issues:n.issues,feedback:n.feedback}}async function Ek(e,t){try{const n=await e(we("about"),{method:"GET",headers:{Accept:"application/json"},signal:t});if(!n.ok)return yf(null,`HTTP ${n.status}`);const s=await n.json().catch(()=>null);return yf(s)}catch(n){return yf(null,String((n==null?void 0:n.message)||n||"request failed"))}}const Ak={framework:null,frameworkNote:"checking…",gateway:null,gatewayNote:"checking…"};function vo(e){return typeof e=="string"?e.trim():""}function yf(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:{},s=vo(n.abstractgateway),i=vo(n.abstractframework);return{framework:i||null,gateway:s||null,...s&&!i?{frameworkNote:"not installed on the gateway host"}:{},...s?{}:{gatewayNote:"unavailable (the gateway did not report its version)"}}}function $k(e){const t=yw();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 Tk(e){const t=e||{},n=vo(t.framework),s=vo(t.gateway);return[["AbstractFramework",n||vo(t.frameworkNote)||"not reported"],["AbstractGateway",s||vo(t.gatewayNote)||"not connected"]]}const Rk='a[href], button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])';function ww(e,t,n){if(e.key!=="Tab"||!t)return;const s=Array.from(t.querySelectorAll(Rk));if(s.length===0){e.preventDefault();return}const i=s[0],l=s[s.length-1],u=!!n&&t.contains(n);e.shiftKey?(n===i||!u)&&(e.preventDefault(),l.focus()):(n===l||!u)&&(e.preventDefault(),i.focus())}function Ik(e){const t=yw();return a.jsxs("div",{className:`af-about-card${e.className?` ${e.className}`:""}`,"data-app":e.identity.id,children:[a.jsxs("div",{className:"af-about-card__head",children:[a.jsxs("h2",{className:"af-about-card__name",id:e.titleId,children:[e.identity.name," ",a.jsx("span",{className:"af-about-card__version",children:e.identity.version})]}),e.action]}),a.jsx("dl",{className:"af-about-card__versions",children:Tk(e.versions).map(([n,s])=>a.jsxs("div",{className:"af-about-card__fact",children:[a.jsx("dt",{children:n}),a.jsx("dd",{children:s})]},n))}),a.jsx("nav",{className:"af-about-card__links","aria-label":`${e.identity.name} links`,children:$k(e.identity).map(n=>n.href.startsWith("mailto:")?a.jsx("a",{className:"af-about-card__link","data-link":n.id,href:n.href,title:n.title,children:n.label},n.id):a.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))}),e.extra!==void 0&&e.extra!==null?a.jsx("div",{className:"af-about-card__extra",children:e.extra}):null,a.jsx("p",{className:"af-about-card__legal",children:t.copyright})]})}function Mk(e){To();const t=y.useRef(null),n=y.useRef(null),s=y.useId(),i=y.useRef(e.onClose);return i.current=e.onClose,y.useEffect(()=>{var d;if(!e.open)return;const l=document.activeElement;(d=t.current)==null||d.focus();const u=f=>{if(!f.defaultPrevented){if(f.key==="Escape"){f.preventDefault(),i.current();return}ww(f,n.current,document.activeElement)}};return window.addEventListener("keydown",u),()=>{window.removeEventListener("keydown",u),l&&typeof l.focus=="function"&&l.focus()}},[e.open]),e.open?a.jsx("div",{className:"af-appearance-overlay af-about-overlay",onClick:e.onClose,role:"presentation",children:a.jsx("div",{ref:n,className:"af-appearance af-about",role:"dialog","aria-modal":"true","aria-labelledby":s,onClick:l=>l.stopPropagation(),children:a.jsx(Ik,{identity:e.identity,versions:e.versions,extra:e.extra,titleId:s,action:a.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:a.jsx(de,{name:"x",size:16})})})})}):null}const Hc={theme:"dark",font_scale:"md",header_density:"standard"};function Lk(e){const t=e&&typeof e=="object"?e:{};return{theme:typeof t.theme=="string"&&t.theme?t.theme:Hc.theme,font_scale:typeof t.font_scale=="string"&&t.font_scale?t.font_scale:Hc.font_scale,header_density:typeof t.header_density=="string"&&t.header_density?t.header_density:Hc.header_density}}function Ok(e){return`af_appearance_${e}_v1`}function Pk(e,t){const n=Ok(e),s=y.useMemo(()=>({...Hc,...(t==null?void 0:t.defaults)||{}}),[JSON.stringify((t==null?void 0:t.defaults)||{})]),[i,l]=y.useState(()=>{let u=s;try{const d=localStorage.getItem(n)??(t!=null&&t.legacyKey?localStorage.getItem(t.legacyKey):null);d&&(u=Lk({...s,...JSON.parse(d)}))}catch{}try{xg(u.theme),kg({font_scale:u.font_scale,header_density:u.header_density})}catch{}return u});return y.useEffect(()=>{xg(i.theme),kg({font_scale:i.font_scale,header_density:i.header_density});try{localStorage.setItem(n,JSON.stringify(i))}catch{}},[n,i]),[i,l]}function Dk(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?a.jsx("div",{className:"af-appearance-overlay",onClick:e.onClose,role:"presentation",children:a.jsxs("div",{className:"af-appearance",role:"dialog","aria-modal":"true","aria-label":e.title||"Appearance",onClick:t=>t.stopPropagation(),children:[a.jsx("div",{className:"af-appearance__title",children:e.title||"Appearance"}),a.jsx("div",{className:"af-appearance__note",children:e.note||"Stored locally in this browser, per app."}),a.jsxs("div",{className:"af-appearance__grid",children:[a.jsx("label",{className:"af-appearance__label",children:"Theme"}),a.jsx(Gx,{value:e.value.theme,onChange:t=>e.onChange({...e.value,theme:t})}),a.jsx("label",{className:"af-appearance__label",children:"Font size"}),a.jsx(Kx,{value:e.value.font_scale,onChange:t=>e.onChange({...e.value,font_scale:t})}),a.jsx("label",{className:"af-appearance__label",children:"Header size"}),a.jsx(Jx,{value:e.value.header_density,onChange:t=>e.onChange({...e.value,header_density:t})})]}),a.jsx("div",{className:"af-appearance__actions",children:a.jsx("button",{type:"button",className:"af-appearance__close",onClick:e.onClose,children:"Close"})})]})}):null}const Fk="default";function Or(e){return typeof e=="string"?e.trim():""}function Ag(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):void 0}function zk(e){var m;if(!e||!mw(e))return null;const t=(m=e.gateway)==null?void 0:m.principal;if(!t||typeof t!="object")return null;const n=Or(t.user_id);if(!n)return null;const s={userId:n},i=Or(t.tenant_id);i&&(s.tenantId=i);const l=Or(t.runtime_id);l&&(s.runtimeId=l);const u=Ag(t.roles);u&&(s.roles=u);const d=Ag(t.scopes);d&&(s.scopes=d);const f=Or(t.source);return f&&(s.source=f),typeof t.admin=="boolean"&&(s.admin=t.admin),s}function vw(e){const t=Or(e.displayName)||Or(e.userId),n=Or(e.tenantId);return n&&n!==Fk?`${n}/${t}`:t}function _w(e){const t=Or(e);if(!t)return"";try{return new URL(t).host||t}catch{return t}}function Bk(e,t){return{label:t?"Disconnecting…":e==="connected"?"Disconnect":e==="loading"?"Connecting…":"Connect",title:e==="connected"?"Disconnect from gateway":e==="loading"?"Checking gateway session…":"Connect to gateway"}}function Wk(e){return typeof e.openModal=="function"&&typeof e.signOut=="function"}function Uk(e,t){return Wk(e)?{phase:e.phase,signingOut:e.signingOut===!0,connect:e.openModal,disconnect:async()=>{await e.signOut()===!0&&(t==null||t())},status:e.status,signOutError:e.signOutError||null}:{phase:e.phase,signingOut:e.signingOut===!0,connect:e.onConnect,disconnect:async()=>{e.onDisconnect()},status:e.status??null,signOutError:e.signOutError||null}}function Vk(e,t){const n=_w(t);return`Signed in as ${vw(e)}${n?` · gateway ${n}`:""}`}const wf="--af-topbar-h";function Hk(e,t=!0){y.useEffect(()=>{if(!t||typeof window>"u"||typeof document>"u")return;const n=e.current;if(!n)return;const s=n.closest("[data-af-topbar], header")||n.parentElement||n,i=document.documentElement;let l="";const u=()=>{l=`${Math.max(0,Math.round(s.getBoundingClientRect().bottom))}px`,i.style.setProperty(wf,l)};u();const d=typeof ResizeObserver<"u"?new ResizeObserver(u):null;d==null||d.observe(s);const f={passive:!0,capture:!0};return window.addEventListener("resize",u),window.addEventListener("scroll",u,f),()=>{d==null||d.disconnect(),window.removeEventListener("resize",u),window.removeEventListener("scroll",u,f),l&&i.style.getPropertyValue(wf)===l&&i.style.removeProperty(wf)}},[e,t])}function Gk(e){const t=typeof navigator<"u"?navigator.clipboard:void 0;return!t||typeof t.writeText!="function"?null:()=>{t.writeText(e).catch(()=>{})}}function Kk(e){var j,A;const t=Uk(e.connection,e.onSignOut),{phase:n,signingOut:s}=t,[i,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(void 0),p=y.useRef(null);To(),Hk(p,e.publishHeight!==!1);const g=e.about,b=e.appearance,v=!!(b&&"value"in b),C=g&&!g.versions?g.fetch:void 0,x=y.useRef(C);x.current=C,y.useEffect(()=>{const S=x.current;if(!i||!S)return;const M=typeof AbortController<"u"?new AbortController:null;let I=!0;return m(Ak),Ek(S,M==null?void 0:M.signal).then(z=>{I&&m(z)}),()=>{I=!1,M==null||M.abort()}},[i]);const N=Bk(n,s),k=e.identity&&n==="connected"?zk(t.status):null,T=()=>void t.disconnect();let $=null;if(k&&e.identity){const S=vw(k),M=Vk(k,(j=t.status)==null?void 0:j.gateway_url),I=a.jsxs(a.Fragment,{children:[a.jsx(de,{name:"user",size:14}),a.jsx("span",{className:"af-topbar__identity-label",children:S})]});if(e.identity==="badge")$=a.jsx("span",{className:"af-topbar__identity af-topbar__identity--badge","data-af-identity":"badge","data-af-tip":M,"aria-label":M,children:I});else{const z=Gk(k.userId),V=_w((A=t.status)==null?void 0:A.gateway_url);$=a.jsx(Ih,{label:`Account: ${M}`,tip:M,className:"af-topbar__account",buttonClassName:"af-topbar__identity af-topbar__identity--menu",buttonContent:I,header:a.jsxs("span",{className:"af-topbar__account-head","data-af-identity":"menu",children:[a.jsxs("span",{className:"af-topbar__account-who",children:["Signed in as ",S]}),V?a.jsxs("span",{className:"af-topbar__account-host",children:["Gateway ",V]}):null]}),items:[{id:"copy-user-id",label:"Copy user id",onSelect:z||(()=>{}),hidden:!z},{id:"disconnect",label:"Disconnect",onSelect:T,danger:!0,hidden:s}]})}}return a.jsxs("div",{ref:p,className:`af-topbar${e.className?` ${e.className}`:""}`,role:"group","aria-label":"App actions",children:[e.extraActions,e.docs?a.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:a.jsx(de,{name:"book",size:16})}):null,e.assistant?a.jsx("button",{type:"button",className:`af-topbar__btn af-topbar__btn--assistant${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:a.jsx(de,{name:"sparkle",size:16})}):null,b?a.jsx("button",{type:"button",className:"af-topbar__btn af-topbar__btn--appearance","aria-label":b.label||"Appearance (theme and typography)","data-af-tip":b.label||"Appearance (theme and text size)","aria-haspopup":v?"dialog":void 0,onClick:()=>{"value"in b?d(!0):b.onOpen()},children:a.jsx(de,{name:"contrast",size:16})}):null,g?a.jsx("button",{type:"button",className:"af-topbar__btn af-topbar__btn--about","aria-label":g.label||`About ${g.identity.name}`,"data-af-tip":g.label||`About ${g.identity.name}`,"aria-haspopup":"dialog",onClick:()=>{var S;l(!0),(S=g.onOpen)==null||S.call(g)},children:a.jsx(de,{name:"info",size:16})}):null,$,t.signOutError?a.jsxs("span",{className:"af-topbar__signout-error",role:"alert","data-af-tip":`Disconnect failed: ${t.signOutError}`,"aria-label":`Disconnect failed: ${t.signOutError}`,children:[a.jsx(de,{name:"warning",size:14}),a.jsx("span",{className:"af-topbar__signout-error-label",children:"Disconnect failed"})]}):null,a.jsxs("button",{type:"button",className:`af-topbar__pill af-topbar__pill--${n}`,onClick:n==="connected"?T:t.connect,disabled:s,title:N.title,"aria-label":N.title,children:[a.jsx("span",{className:`af-topbar__dot af-topbar__dot--${n}`,"aria-hidden":"true"}),a.jsx("span",{className:"af-topbar__pill-label",children:N.label})]}),g?a.jsx(Mk,{open:i,onClose:()=>l(!1),identity:g.identity,versions:g.versions||(g.fetch?f:void 0),extra:g.extra}):null,b&&"value"in b?a.jsx(Dk,{open:u,onClose:()=>d(!1),value:b.value,onChange:b.onChange,title:b.title,note:b.note}):null]})}function rh(e){return e?[e.provider,e.model].map(t=>String(t||"").trim()).filter(Boolean).join(" / "):""}function $g(e,t,n=!1){if(n)return"unknown";if(!e)return"";const s=e[t];return!s||!s.configured?"not set":rh(s)||"not set"}function Jk(e,t){var n;return e.stt_provider?rh({provider:e.stt_provider,model:e.stt_model}):(n=t==null?void 0:t.stt)!=null&&n.configured?rh(t.stt):""}function bw(e,t){return`${Math.max(0,Math.floor((t-e)/1e3))} s`}function qk(e,t,n){return`Transcribing… ${bw(e,t)}${n?` · ${n}`:""}`}const vu=()=>{var e;return(e=globalThis.navigator)==null?void 0:e.mediaDevices};function Zc(e){var i;const t=wu("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=vu())!=null&&i.getUserMedia))return"This browser cannot record audio.";const s=String((e==null?void 0:e.message)||e||"").trim();return s?`The microphone did not start: ${s.replace(/\.$/,"")}.`:"The microphone did not start."}async function xw(e){const t=vu();if(!t||typeof t.enumerateDevices!="function")return{devices:[],labelled:!1};const s=(await t.enumerateDevices()).filter(u=>u.kind===e),i=s.some(u=>!!u.label);return{devices:s.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 Yk(){const e=vu();if(!(e!=null&&e.getUserMedia))throw new Error(wu("the microphone")||"This browser cannot record audio.");(await e.getUserMedia({audio:!0})).getTracks().forEach(n=>n.stop())}async function kw(e){const t=vu();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 _u(){const e=globalThis;return e.AudioContext||e.webkitAudioContext||null}function jw(){const e=_u();return!!(e&&e.prototype&&typeof e.prototype.createMediaStreamDestination=="function")}function Sw(e,t,n=1){const s=_u();if(!s)return()=>{};const i=new s,l=i.createMediaStreamSource(e),u=i.createAnalyser();u.fftSize=1024,l.connect(u);const d=new Float32Array(u.fftSize);let f=!0;const p=setInterval(()=>{if(!f)return;u.getFloatTimeDomainData(d);let g=0;for(let b=0;b<d.length;b+=1)g+=d[b]*d[b];t(Math.min(1,Math.sqrt(g/d.length)*4*n))},50);return()=>{var g;f=!1,clearInterval(p);try{l.disconnect()}catch{}(g=i.close)==null||g.call(i)}}const Nw=.02;function Tg(){return Object.assign(new Error("The recording was stopped before it began."),{name:"AbortError"})}async function Cw(e){var l,u,d;const t=globalThis.MediaRecorder;if(typeof t!="function")throw Object.assign(new Error("This browser cannot record audio."),{name:"NotSupportedError"});if((l=e.signal)!=null&&l.aborted)throw Tg();const n=await kw(e.deviceId);if((u=e.signal)!=null&&u.aborted)throw n.getTracks().forEach(f=>f.stop()),Tg();let s=0;const i=Sw(n,f=>{var m;s=Math.max(s,f),(m=e.onLevel)==null||m.call(e,f)},e.gain??1);try{const f=new t(n),m=[],p=new Promise((b,v)=>{f.ondataavailable=C=>(C==null?void 0:C.data)&&m.push(C.data),f.onstop=()=>b(),f.onerror=C=>v((C==null?void 0:C.error)||new Error("Recording failed."))});f.start(),await new Promise(b=>{var C,x;if((C=e.signal)!=null&&C.aborted)return b();const v=setTimeout(b,e.ms??3e3);(x=e.signal)==null||x.addEventListener("abort",()=>{clearTimeout(v),b()},{once:!0})}),f.stop(),await p;const g=String(f.mimeType||"audio/webm");return{blob:new Blob(m,{type:g}),peak:s,mime:g}}finally{i(),n.getTracks().forEach(f=>f.stop()),(d=e.onLevel)==null||d.call(e,0)}}async function Ew(e,t={}){var i,l,u,d;if((i=t.signal)!=null&&i.aborted)return;const n=_u();if(!n)throw new Error("This browser cannot play audio.");const s=new n;try{t.deviceId&&typeof s.setSinkId=="function"&&await s.setSinkId(t.deviceId);const f=e instanceof Blob?await e.arrayBuffer():e,m=await s.decodeAudioData(f.slice(0));if((l=t.signal)!=null&&l.aborted)return;if(s.state==="suspended"&&await((u=s.resume)==null?void 0:u.call(s)),s.state==="suspended")throw new Error("The browser held the sound back: press play to hear it");const p=s.createGain();p.gain.value=_a(t.volume),p.connect(s.destination);const g=s.createBufferSource();g.buffer=m,g.connect(p),await new Promise(b=>{var C,x;const v=()=>{try{g.stop()}catch{}b()};g.onended=()=>{var N,k;(k=(N=t.signal)==null?void 0:N.removeEventListener)==null||k.call(N,"abort",v),b()},(x=(C=t.signal)==null?void 0:C.addEventListener)==null||x.call(C,"abort",v,{once:!0}),g.start()})}finally{(d=s.close)==null||d.call(s)}}async function Qk(e={}){var s,i;const t=_u();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((s=n.resume)==null?void 0:s.call(n));const l=n.createGain();l.connect(n.destination);const u=.3*_a(e.volume),d=n.currentTime+.02;[660,880].forEach((f,m)=>{const p=n.createOscillator(),g=n.createGain();p.frequency.value=f,p.connect(g),g.connect(l);const b=d+m*.22;g.gain.setValueAtTime(0,b),g.gain.linearRampToValueAtTime(u,b+.02),g.gain.exponentialRampToValueAtTime(1e-4,b+.2),p.start(b),p.stop(b+.21)}),await new Promise(f=>setTimeout(f,520))}finally{(i=n.close)==null||i.call(n)}}function _a(e){const t=Number(e);return e==null||e===""||!Number.isFinite(t)?1:Math.min(1,Math.max(0,t))}function No(e){return(e&&typeof e=="object"?e.capture_mode:e)==="toggle"?"toggle":"hold"}async function*Xk(e){var s,i,l;const t=new AbortController,n=()=>t.abort();(s=e.signal)!=null&&s.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),g=p&&typeof p=="object"&&p.detail?String(p.detail):`HTTP ${u.status}`;throw new Error(g)}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:g}=await d.read();m+=p?f.decode():f.decode(g,{stream:!0}),p&&m.trim()&&(m+=`
|
|
42
|
-
`);let b;for(;(b=m.indexOf(`
|
|
43
|
-
`))>=0;){const v=m.slice(0,b).trim();if(m=m.slice(b+1),!v)continue;let C=null;try{C=JSON.parse(v)}catch{throw new Error("TTS stream returned invalid JSON.")}if(C&&C.type==="error")throw new Error(String(C.error||"TTS stream error"));const x=C&&typeof C.audio_b64=="string"?C.audio_b64:"";if(x){const N=atob(x),k=new Uint8Array(N.length);for(let T=0;T<N.length;T+=1)k[T]=N.charCodeAt(T);yield k.buffer}if(C&&(C.type==="done"||C.type==="cancelled"))return}if(p)throw new Error("TTS stream ended before synthesis completed.")}}finally{(l=e.signal)==null||l.removeEventListener("abort",n),t.abort()}}function Ai(e,t){const n=String((t==null?void 0:t.message)||t||"").trim().replace(/\.$/,"");return n?`${e}: ${n}.`:`${e}.`}const Aw=350;function Zk(){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 ej(){if(typeof window>"u")return!1;const e=window;return!!(e!=null&&e.AudioContext||e!=null&&e.webkitAudioContext)}function tj(){const e=window.MediaRecorder,t=s=>{var i;try{return!!((i=e==null?void 0:e.isTypeSupported)!=null&&i.call(e,s))}catch{return!1}},n=["audio/webm;codecs=opus","audio/webm","audio/mp4","audio/ogg;codecs=opus","audio/ogg"];for(const s of n)if(t(s))return s;return""}async function vf(e,t){var i;const n=t.slice(0),s=(i=e.decodeAudioData)==null?void 0:i.bind(e);if(typeof s!="function")throw new Error("decodeAudioData not available");try{const l=s(n);if(l&&typeof l.then=="function")return await l}catch{}return await new Promise((l,u)=>{try{s(n,l,u)}catch(d){u(d)}})}function nj(e){const t=new Uint8Array(e);if(t.length<44)return null;const n=l=>String.fromCharCode(t[l],t[l+1],t[l+2],t[l+3]);if(n(0)!=="RIFF"||n(8)!=="WAVE")return null;const s=new DataView(e);let i=12;for(;i+8<=t.length;){const l=n(i),u=s.getUint32(i+4,!0);if(l==="data")return t.slice(0,i+8);i+=8+u+u%2}return null}function sj(e,t){const n=new Uint8Array(t),s=new Uint8Array(e.length+n.length);s.set(e,0),s.set(n,e.length);const i=new DataView(s.buffer);return i.setUint32(4,s.length-8,!0),i.setUint32(e.length-4,n.length,!0),s.buffer}function $w(){const e=globalThis,t=e==null?void 0:e.AudioContext;return!!(t&&t.prototype&&typeof t.prototype.setSinkId=="function")}const $c=new WeakMap;function rj(e,t){const n=e;if(!(typeof n.setSinkId!="function"||$c.get(e)===t)){$c.set(e,t);try{Promise.resolve(n.setSinkId(t)).catch(()=>$c.delete(e))}catch{$c.delete(e)}}}function aj(e){const t=y.useRef(e);t.current=e;const n=Q=>{var _e,ae;return(ae=(_e=t.current).on_error)==null?void 0:ae.call(_e,Q)},s=y.useMemo(()=>ej()&&(typeof e.tts=="function"||typeof e.tts_stream=="function"),[e.tts,e.tts_stream]),i=y.useMemo(()=>Zk()&&typeof e.transcribe=="function",[e.transcribe]),[l,u]=y.useState({key:"",status:"idle"}),d=y.useRef(l),f=y.useCallback(Q=>{d.current=Q,u(_e=>_e.key===Q.key&&_e.status===Q.status?_e:Q)},[]),m=y.useRef(""),p=y.useRef(""),g=y.useRef(null),b=y.useRef(null),v=y.useRef(null),C=y.useRef(null),x=y.useRef(0),N=y.useRef(0),k=y.useRef(0),T=y.useRef(null),$=y.useRef([]),j=y.useRef(0),A=y.useRef(!0),S=y.useRef(!1),M=()=>{try{const Q=globalThis,_e=(Q==null?void 0:Q.AudioContext)||(Q==null?void 0:Q.webkitAudioContext);if(!_e)return null;if(!g.current){const Le=new _e,Fe=Le.createGain();Fe.gain.value=1,Fe.connect(Le.destination),g.current=Le,b.current=Fe}const ae=g.current,je=b.current;if(!ae||!je)return null;rj(ae,t.current.output_device_id||""),je.gain.value=_a(t.current.volume)*(t.current.muted?0:1);try{ae.state==="suspended"&&ae.resume()}catch{}return{ctx:ae,gain:je}}catch{return null}};y.useEffect(()=>{const Q=b.current;Q&&(Q.gain.value=_a(e.volume)*(e.muted?0:1))},[e.volume,e.muted]);const I=y.useCallback(()=>{const Q=v.current;if(v.current=null,!!Q){try{Q.onended=null}catch{}try{Q.stop()}catch{}try{Q.disconnect()}catch{}}},[]),z=y.useCallback(()=>{var Q;I(),k.current+=1,(Q=T.current)==null||Q.abort(),T.current=null,$.current=[],j.current=0,A.current=!0,S.current=!1,p.current="",m.current="",C.current=null,x.current=0,N.current=0,f({key:"",status:"idle"})},[I,f]);y.useEffect(()=>()=>{var Q,_e;z();try{(Q=b.current)==null||Q.disconnect()}catch{}try{(_e=g.current)==null||_e.close()}catch{}g.current=null,b.current=null,C.current=null},[]);const V=async(Q,_e,ae)=>{const je=k.current,Le=M();if(!Le)throw new Error("TTS playback is not supported in this browser");const{ctx:Fe,gain:Xe}=Le;try{Fe.state==="suspended"&&await Fe.resume()}catch{}if(je!==k.current)return;I();const Ie=Fe.createBufferSource();Ie.buffer=_e,Ie.connect(Xe);const Ge=Number.isFinite(Number(_e.duration))?Number(_e.duration):0,De=Math.max(0,Math.min(Number(ae||0),Ge>0?Math.max(0,Ge-.01):0));N.current=Fe.currentTime-De,x.current=De,v.current=Ie,m.current=Q,Ie.onended=()=>{v.current===Ie&&(v.current=null,x.current=0,N.current=0,m.current="",f({key:"",status:"idle"}))},Ie.start(0,De),f({key:Q,status:"playing"})},Z=(Q,_e)=>{if(_e!==k.current)return;const ae=M();if(!ae)return;const je=$.current,Le=j.current;if(Le>=je.length){A.current&&(m.current="",x.current=0,N.current=0,f({key:"",status:"idle"}));return}const Fe=je[Le],{ctx:Xe,gain:Ie}=ae;I();const Ge=Xe.createBufferSource();Ge.buffer=Fe,Ge.connect(Ie);const De=Number.isFinite(Number(Fe.duration))?Number(Fe.duration):0,mt=Math.max(0,Math.min(Number(x.current||0),De>0?Math.max(0,De-.01):0));N.current=Xe.currentTime-mt,v.current=Ge,m.current=Q,Ge.onended=()=>{_e===k.current&&v.current===Ge&&(v.current=null,j.current=Le+1,x.current=0,Z(Q,_e))};try{Xe.state==="suspended"&&Xe.resume()}catch{}Ge.start(0,mt),f({key:Q,status:"playing"})},ie=async(Q,_e,ae)=>{var Ie;const je=M();if(!je){n==null||n("This browser cannot play spoken replies.");return}I();const Le=++k.current;(Ie=T.current)==null||Ie.abort();const Fe=new AbortController;T.current=Fe,$.current=[],j.current=0,A.current=!1,S.current=!1,C.current=null,x.current=0,N.current=0,m.current=Q,p.current=Q,f({key:Q,status:"loading"}),n==null||n("");let Xe=null;try{for await(const Ge of ae(_e,Fe.signal)){if(Le!==k.current)return;let De;try{De=await vf(je.ctx,Ge),Xe||(Xe=nj(Ge))}catch{if(!Xe)continue;try{De=await vf(je.ctx,sj(Xe,Ge))}catch{continue}}if(Le!==k.current)return;$.current.push(De),!v.current&&!S.current&&(p.current="",Z(Q,Le))}if(Le!==k.current)return;if(A.current=!0,$.current.length===0){n==null||n("Reading aloud failed: the voice engine returned no audio."),z();return}!v.current&&!S.current&&Z(Q,Le)}catch(Ge){if(Le!==k.current)return;n==null||n(Ai("Reading aloud failed",Ge)),z()}finally{T.current===Fe&&(T.current=null)}},F=y.useCallback(async(Q,_e)=>{var mt;const ae=String(Q||"").trim(),je=String(_e||"").trim();if(!ae||!je)return;const Le=t.current.tts,Fe=t.current.tts_stream;if(typeof Le!="function"&&typeof Fe!="function"){n==null||n("Reading aloud is not available on this gateway.");return}const Xe=M();if(!Xe){n==null||n("This browser cannot play spoken replies.");return}const Ie=d.current,Ge=Ie.key===ae;if(Ge&&Ie.status==="playing"){if(v.current){const xt=Math.max(0,Xe.ctx.currentTime-Number(N.current||0));x.current=xt}else x.current=0;S.current=!0,I(),f({key:ae,status:"paused"});return}if(Ge&&Ie.status==="paused"){if($.current.length>0){n==null||n(""),S.current=!1,f({key:ae,status:"playing"}),Z(ae,k.current);return}const xt=C.current;if(xt){n==null||n(""),S.current=!1;try{await V(ae,xt,x.current)}catch(kt){n==null||n(Ai("Reading aloud failed",kt)),f({key:"",status:"idle"})}return}}if(Ge&&Ie.status==="loading")return;if(typeof Fe=="function"){await ie(ae,je,Fe);return}I(),k.current+=1,(mt=T.current)==null||mt.abort(),T.current=null;const De=k.current;$.current=[],j.current=0,A.current=!0,S.current=!1,C.current=null,x.current=0,N.current=0,m.current=ae,p.current=ae,f({key:ae,status:"loading"}),n==null||n("");try{const xt=await Le(je);if(p.current!==ae||k.current!==De)return;const kt=await vf(Xe.ctx,xt);if(p.current!==ae||k.current!==De)return;C.current=kt,x.current=0,await V(ae,kt,0)}catch(xt){if(k.current!==De)return;p.current===ae&&(p.current="",m.current="",f({key:"",status:"idle"})),n==null||n(Ai("Reading aloud failed",xt))}},[]),[D,L]=y.useState(!1),[J,B]=y.useState(!1),Y=y.useRef(!1),te=y.useRef(i);te.current=i;const W=y.useCallback(Q=>{Y.current=Q,L(_e=>_e===Q?_e:Q)},[]),R=y.useRef(!1),K=y.useRef(null),ne=y.useRef(null),ue=y.useRef([]),oe=y.useRef(""),ve=y.useRef(0),Ne=y.useRef(!1),q=y.useRef(!1),[be,xe]=y.useState(0),Pe=y.useRef(0),Qe=y.useRef(null),He=y.useRef(0),qe=y.useRef(new Set),ge=y.useRef(null),$e=y.useCallback(Q=>{const _e=Math.round(Math.min(1,Math.max(0,Number(Q)||0))*20)/20;if(_e!==He.current){He.current=_e;for(const ae of Array.from(qe.current))ae(_e)}},[]),nt=y.useCallback(Q=>(qe.current.add(Q),Q(He.current),()=>{qe.current.delete(Q)}),[]),et=y.useRef(new Set),Rt=y.useCallback(Q=>(et.current.add(Q),()=>{et.current.delete(Q)}),[]);function ce(){var ae,je;const Q=ge.current;ge.current=null;try{Q==null||Q()}catch{}$e(0);try{(je=(ae=K.current)==null?void 0:ae.getTracks)==null||je.call(ae).forEach(Le=>{try{Le.stop()}catch{}})}catch{}K.current=null;const _e=Qe.current;Qe.current=null;try{_e==null||_e.close()}catch{}}const fe=y.useCallback(()=>{ve.current+=1,Ne.current=!1;const Q=ne.current;if(Q){Q.onstop=null,Q.ondataavailable=null,Q.onerror=null;try{Q.stop()}catch{}}ne.current=null,ce(),W(!1),R.current=!1,B(!1),xe(0),ue.current=[]},[W]);y.useEffect(()=>()=>fe(),[fe]);async function G(Q,_e){var Fe,Xe;if(n==null||n(""),R.current)return;const ae=Pe.current?Date.now()-Pe.current:1/0;if(!Q||!Q.size||ae<Aw){xe(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 je=t.current.transcribe;if(typeof je!="function"){n==null||n("Speech to text is not available on this gateway.");return}R.current=!0;const Le=ve.current;B(!0),xe(Date.now());try{const Ie=await je(Q,_e),Ge=typeof Ie=="string"||!Ie?{text:String(Ie||"")}:Ie,De=String(Ge.text||"").trim();if(Le!==ve.current)return;if(De){(Xe=(Fe=t.current).on_transcript)==null||Xe.call(Fe,De,{...Ge,text:De});for(const mt of Array.from(et.current))mt(De,{...Ge,text:De})}else n==null||n("Nothing was heard. Check the microphone in Settings → Voice (Test), then try again.")}catch(Ie){if(Le===ve.current){const Ge=String((Ie==null?void 0:Ie.message)||Ie||"").trim().replace(/\.$/,"");n==null||n(Ge?`Transcription failed: ${Ge}.`:"Transcription failed.")}}finally{Le===ve.current&&(R.current=!1,B(!1),xe(0))}}const le=y.useCallback(async()=>{if(n==null||n(""),!te.current){n==null||n(wu("the microphone")??"Voice recording is not supported in this browser (MediaRecorder/getUserMedia unavailable).");return}if(R.current||Ne.current||Y.current||ne.current)return;ue.current=[];const Q=ve.current;Ne.current=!0,q.current=!1;try{const _e=await kw(t.current.input_device_id||"");if(Q!==ve.current){_e.getTracks().forEach(Ie=>Ie.stop());return}if(q.current){q.current=!1,_e.getTracks().forEach(Ie=>Ie.stop()),xe(0);return}K.current=_e;const ae=Number(t.current.input_gain??1);try{ge.current=Sw(_e,$e,Number.isFinite(ae)&&ae>0?ae:1)}catch{}const je=tj();oe.current=je;let Le=_e;const Fe=Number(t.current.input_gain??1);if(Number.isFinite(Fe)&&Fe>0&&Fe!==1&&jw()){const Ie=globalThis.AudioContext||globalThis.webkitAudioContext,Ge=new Ie,De=Ge.createGain();De.gain.value=Fe;const mt=Ge.createMediaStreamDestination();Ge.createMediaStreamSource(_e).connect(De),De.connect(mt),Qe.current=Ge,Le=mt.stream}const Xe=je?new MediaRecorder(Le,{mimeType:je}):new MediaRecorder(Le);ne.current=Xe,Xe.ondataavailable=Ie=>{if(Q===ve.current)try{Ie!=null&&Ie.data&&ue.current.push(Ie.data)}catch{}},Xe.onerror=()=>{Q===ve.current&&(n==null||n("Recording failed. Try again, or pick another microphone in Settings → Voice."))},Xe.onstop=()=>{if(Q===ve.current){W(!1),ce(),ne.current=null;try{const Ie=new Blob(ue.current,{type:oe.current||""});G(Ie,oe.current)}catch(Ie){n==null||n(Ai("The recording could not be prepared",Ie))}}},Xe.start(),Pe.current=Date.now(),xe(Pe.current),W(!0)}catch(_e){if(Q!==ve.current)return;ce(),ne.current=null,W(!1),xe(0),n==null||n(Zc(_e))}finally{Q===ve.current&&(Ne.current=!1)}},[]),he=y.useCallback(()=>{const Q=ne.current;if(Ne.current&&!Q){q.current=!0;return}if(!(!Y.current||!Q)){W(!1);try{Q.stop()}catch(_e){n==null||n(Ai("The recording could not stop",_e))}}},[]);return y.useEffect(()=>{if(!D||t.current.stop_on_pointerup===!1||t.current.stop_on_pointerup===void 0&&No(t.current.capture_mode)==="toggle")return;const Q=()=>he();return window.addEventListener("pointerup",Q),window.addEventListener("pointercancel",Q),()=>{window.removeEventListener("pointerup",Q),window.removeEventListener("pointercancel",Q)}},[D]),{tts_supported:s,tts_playback:l,toggle_tts:F,stop_tts:z,voice_ptt_supported:i,voice_ptt_recording:D,voice_ptt_busy:J,start_voice_ptt_recording:le,stop_voice_ptt_recording:he,cancel_voice_ptt_recording:fe,voice_ptt_since:be,subscribe_level:nt,voice_capture_mode:No(e.capture_mode),add_transcript_listener:Rt}}const Rg=["Your voices","Engine voices","Shared voices"];function Tw(e){var s,i;const t=e&&e.tags||{},n=(i=(s=e==null?void 0:e.params)==null?void 0:s.meta)==null?void 0:i.scope;return t.builtin?"Shared voices":(e==null?void 0:e.kind)==="clone"||(e==null?void 0:e.voice_kind)==="clone"?n==="library"?"Shared voices":"Your voices":"Engine voices"}function bu(e){var t;return String((e==null?void 0:e.language)||((t=e==null?void 0:e.tags)==null?void 0:t.language_code)||"").trim().toLowerCase()}function oj(e){return Array.from(new Set(e.map(bu).filter(Boolean))).sort()}function ij(e,t){if(!t)return!0;const n=bu(e);if(n===t)return!0;const s=Array.isArray(e==null?void 0:e.languages)?e.languages.map(i=>String(i).toLowerCase()):[];return!n&&s.length===0?!0:s.includes(t)}const Rw={en:"English",fr:"French",de:"German",es:"Spanish",it:"Italian",pt:"Portuguese",ru:"Russian",zh:"Chinese",ja:"Japanese",ko:"Korean",nl:"Dutch",pl:"Polish",tr:"Turkish",ar:"Arabic",hi:"Hindi"},Iw=Rw,ba=e=>Iw[e]||e,_f=e=>String((e==null?void 0:e.voice_id)||(e==null?void 0:e.id)||""),Tc=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):[],lj=200;function cj({value:e,onChange:t,fetchCatalog:n,intro:s,delivery:i=!0,quality:l=!0,showReset:u=!0,defaultHint:d,voiceDefaultLabel:f,createVoice:m,voiceLibrary:p,previewVoice:g,previewOn:b,recordFrom:v}){var nt,et,Rt,ce,fe;const C=p||m,[x,N]=y.useState({state:"idle",error:""}),k=y.useRef(0),T=y.useRef(null),$=y.useRef(null),j=y.useRef(null),A=y.useRef(null),S=y.useRef(n);S.current=n;const[M,I]=y.useState({}),[z,V]=y.useState(""),[Z,ie]=y.useState(!1),[F,D]=y.useState(""),[L,J]=y.useState(0),B=y.useRef(e);B.current=e;const Y=y.useRef(!0),te=()=>{var G,le;k.current+=1,A.current!==null&&clearTimeout(A.current),A.current=null,(G=T.current)==null||G.abort(),T.current=null,(le=$.current)==null||le.abort(),$.current=null};y.useEffect(()=>(Y.current=!0,()=>{Y.current=!1,te()}),[]);const W=G=>JSON.stringify([G.provider||"",G.model||"",G.voice||"",G.profile||""]),R=G=>`The sample did not play: ${String((G==null?void 0:G.message)||G).replace(/\.$/,"")}.`,K=(G,le)=>{const he=new AbortController;$.current=he,N({state:"playing",error:""}),Ew(G,{deviceId:(b==null?void 0:b.deviceId)||"",volume:b==null?void 0:b.volume,signal:he.signal}).then(()=>Y.current&&k.current===le&&N({state:"idle",error:""})).catch(Q=>Y.current&&k.current===le&&N({state:"idle",error:R(Q)}))},ne=G=>{if(!g)return;te();const le=k.current,he=new AbortController;T.current=he,N({state:"loading",error:""}),g(G,void 0,{signal:he.signal}).then(Q=>{!Y.current||k.current!==le||(T.current=null,j.current={key:W(G),bytes:Q},K(Q,le))}).catch(Q=>{!Y.current||k.current!==le||(T.current=null,N({state:"idle",error:R(Q)}))})},ue=G=>{if(!g)return;te();const le=k.current;if(j.current&&j.current.key===W(G)){K(j.current.bytes,le);return}N({state:"loading",error:""}),A.current=setTimeout(()=>{A.current=null,Y.current&&k.current===le&&ne(G)},lj)},oe=()=>{if(x.state!=="idle"){te(),N({state:"idle",error:""});return}const G=B.current;if(j.current&&j.current.key===W(G)){te(),K(j.current.bytes,k.current);return}ne(G)};y.useEffect(()=>{D("")},[e.provider]),y.useEffect(()=>{let G=!0;return ie(!0),I({}),V(""),S.current(e.provider,e.model).then(le=>{G&&(I(le),V(le.error?String(le.error):""))}).catch(le=>{G&&V(String((le==null?void 0:le.message)||le))}).finally(()=>{G&&ie(!1)}),()=>{G=!1}},[e.provider,e.model,L]);const ve=Array.isArray(M.items)?M.items:[...Array.isArray(M.profiles)?M.profiles.map(G=>({...G,voice_kind:"profile"})):[],...Array.isArray(M.voices)?M.voices.map(G=>({...G,voice_kind:"voice"})):[]],Ne=G=>JSON.stringify([G.provider||"",G.model||"",G.voice_kind==="profile"?"profile":"voice",G.id]),q=G=>(!e.provider||!G.provider||G.provider===e.provider)&&(!e.model||!G.model||G.model===e.model),be=ve.find(G=>G.id===(e.profile||e.voice)&&G.voice_kind==="profile"==!!e.profile&&q(G))||(!e.profile&&e.voice?ve.find(G=>G.id===e.voice&&G.voice_kind==="profile"&&q(G)):void 0),xe=be?Ne(be):e.profile||e.voice?JSON.stringify([e.provider||"",e.model||"",e.profile?"profile":"voice",e.profile||e.voice]):"",Pe=oj(ve),Qe=Pe.length>1;y.useEffect(()=>{!Qe&&!Z&&D("")},[Qe,Z]);const He=Qe?F:"",qe=ve.filter(G=>(G==null?void 0:G.id)&&(!e.provider||!G.provider||G.provider===e.provider)&&(ij(G,He)||Ne(G)===xe)).map(G=>{const le=bu(G);return{value:Ne(G),group:Tw(G),label:`${G.label||G.name||G.id}${le?` · ${ba(le)}`:""}${!e.provider&&G.provider?` · ${G.provider}`:""}`}}).sort((G,le)=>Rg.indexOf(G.group)-Rg.indexOf(le.group)),ge=String(((nt=be==null?void 0:be.tags)==null?void 0:nt.description)||"").trim();xe&&!qe.some(G=>G.value===xe)&&qe.unshift({value:xe,group:"",label:`${e.profile||e.voice} (saved)`});const $e=G=>t({...e,...G});return a.jsxs("div",{className:"af-voice-settings",children:[s===void 0?a.jsx("p",{children:"Speech is generated by your authenticated Gateway. Leave routing and voice unset to use its defaults."}):s,a.jsx(yu,{defaultHint:d,value:{provider:e.provider||"",model:e.model||""},onChange:G=>{te(),N({state:"idle",error:""}),t({...e,...G,voice:"",profile:""})},fetchProviders:async()=>{const G=await S.current();if(G.error&&!Tc(G.tts_providers||G.providers).length)throw new Error(G.error);return Tc(G.tts_providers||G.providers).map(le=>({name:le}))},fetchModels:async G=>{var ae,je;const le=await S.current(G),he=Tc(((ae=le.tts_models_by_provider)==null?void 0:ae[G])||le.tts_models||le.models),Q=Array.isArray((je=le.tts_model_details_by_provider)==null?void 0:je[G])?le.tts_model_details_by_provider[G]:[],_e=new Map(Q.filter(Le=>Le&&Le.id).map(Le=>[String(Le.id),String(Le.label||(Le.role==="cloning"?`${Le.id} (clones)`:Le.id))]));return he.map(Le=>({id:Le,label:_e.get(Le)||Le}))},providerLabel:"Speech provider",modelLabel:"Speech model"}),Qe?a.jsxs("label",{children:["Voices that speak",a.jsx(_n,{ariaLabel:"Voice language",placeholder:"Any language",value:F,searchable:!1,options:[{value:"",label:"Any language"},...Pe.map(G=>({value:G,label:ba(G)}))],onChange:D})]}):null,a.jsxs("label",{children:["Voice / profile",a.jsxs("span",{className:"af-voice-settings__voice-row",children:[a.jsx(_n,{ariaLabel:"AI voice",placeholder:f||"Gateway / provider default",value:xe,disabled:Z,options:[{value:"",label:f||"Gateway / provider default"},...qe],onChange:G=>{let le;if(!G)le={voice:"",profile:""};else{const[he,Q,_e,ae]=JSON.parse(G);le={provider:he||e.provider||"",model:Q||(he&&he!==e.provider?"":e.model)||"",voice:_e==="voice"?ae:"",profile:_e==="profile"?ae:""}}$e(le),ue({...e,...le})}}),g?a.jsx("button",{type:"button",className:"af-voice-settings__sample","data-action":"play-sample","data-state":x.state,"aria-busy":x.state==="loading","aria-label":x.state==="playing"?"Stop the sample":x.state==="loading"?"Cancel the sample":"Play a sample of this voice",title:x.state==="playing"?"Stop":x.state==="loading"?"Synthesizing… (click to cancel)":"Play a sample",disabled:Z&&x.state==="idle",onClick:oe,children:a.jsx("span",{"aria-hidden":"true",children:x.state==="playing"?"■":"▶"})}):null]})]}),x.error?a.jsx("p",{className:"af-voice-note af-voice-note--error",role:"status","data-voice-note":"sample",children:x.error}):null,ge?a.jsx("p",{className:"af-voice-settings__description",children:ge}):null,Z?a.jsx("p",{role:"status",children:"Loading available voices…"}):null,z?a.jsxs("p",{role:"alert",children:["Voice discovery unavailable: ",z,". Your saved choice is preserved."]}):null,!Z&&!z&&e.provider&&ve.length===0&&String(M.unavailable_reason||"").trim()?a.jsx("p",{className:"af-voice-note",role:"status","data-voice-note":"unavailable",children:String(M.unavailable_reason).trim()}):null,i?a.jsxs(a.Fragment,{children:[a.jsxs("label",{children:["Speaking speed",a.jsxs("select",{"aria-label":"Speech speed",value:e.speed??"",onChange:G=>$e({speed:G.target.value?Number(G.target.value):void 0}),children:[a.jsx("option",{value:"",children:"Gateway default"}),[.5,.75,1,1.25,1.5,2].map(G=>a.jsxs("option",{value:G,children:[G,"×"]},G))]})]}),l&&((Rt=(et=M.controls)==null?void 0:et.quality_preset)!=null&&Rt.supported)?a.jsxs("label",{children:["Quality",a.jsxs("select",{"aria-label":"Speech quality",value:e.quality_preset||"",onChange:G=>$e({quality_preset:G.target.value}),children:[a.jsx("option",{value:"",children:"Gateway default"}),Tc(M.controls.quality_preset.values).map(G=>a.jsx("option",{value:G,children:G},G))]})]}):null,(fe=(ce=M.controls)==null?void 0:ce.instructions)!=null&&fe.supported?a.jsxs("label",{children:["Delivery instructions",a.jsx("textarea",{"aria-label":"Voice delivery instructions",rows:3,placeholder:"For example: calm, clear, and conversational",value:e.instructions||"",onChange:G=>$e({instructions:G.target.value})})]}):null]}):null,C&&(C.design||C.clone)?a.jsx(fj,{creation:C,defaultLanguage:He,recordFrom:v,onCreated:(G,le)=>{const he=B.current;t({...he,provider:le||he.provider||"",model:"",voice:G,profile:""}),J(Q=>Q+1)}}):null,p!=null&&p.list?a.jsx(mj,{library:p,refreshKey:L,onChanged:()=>J(G=>G+1),onRemoved:G=>{const le=B.current;le.voice===G&&t({...le,voice:""})}}):null,u?a.jsx("button",{type:"button",onClick:()=>t({}),children:"Reset to Gateway defaults"}):null]})}const uj={value:"",label:"Detect from the recording"},dj=3e4;function fj({creation:e,defaultLanguage:t,onCreated:n,recordFrom:s,cloneRoute:i}){const[l,u]=y.useState(e.design?"design":"clone"),[d,f]=y.useState(""),[m,p]=y.useState(""),[g,b]=y.useState(t||"en"),[v,C]=y.useState(""),[x,N]=y.useState(null),[k,T]=y.useState(""),[$,j]=y.useState(!1),[A,S]=y.useState(!1),[M,I]=y.useState(0),[z,V]=y.useState({text:"",tone:"info"}),Z=y.useRef(!1),ie=y.useRef(!0),F=y.useRef(null);y.useEffect(()=>(ie.current=!0,()=>{var te;ie.current=!1,(te=F.current)==null||te.abort()}),[]);const D=Object.keys(Iw).map(te=>({value:te,label:ba(te)})),L=l==="design"?g:v,J=()=>{if(F.current){F.current.abort();return}const te=new AbortController;F.current=te;const W=Date.now();S(!0),V({text:"Recording — read a few sentences, then press Stop.",tone:"info"}),Cw({deviceId:(s==null?void 0:s.deviceId)||"",gain:s==null?void 0:s.gain,ms:dj,signal:te.signal,onLevel:R=>ie.current&&I(R)}).then(({blob:R,peak:K})=>{if(ie.current){if(K<Nw){V({text:"The microphone recorded silence. Pick another input in the voice settings, then record again.",tone:"error"});return}N(R),V({text:`Recording ready (${Math.max(1,Math.round((Date.now()-W)/1e3))} s).`,tone:"ok"})}}).catch(R=>{ie.current&&((R==null?void 0:R.name)==="AbortError"?V({text:"Recording cancelled.",tone:"info"}):V({text:Zc(R),tone:"error"}))}).finally(()=>{F.current===te&&(F.current=null),ie.current&&(S(!1),I(0))})},B=async()=>{if(!(Z.current||F.current)){Z.current=!0,j(!0),V({text:l==="design"?"Creating the voice from your description…":"Cloning the voice from your recording…",tone:"info"});try{const te=l==="design"?await e.design({description:d.trim(),name:m.trim()||void 0,language:g}):await e.clone(x,{name:m.trim()||void 0,reference_text:k.trim()||void 0,...v?{language:v}:{},...i!=null&&i.provider?{provider:i.provider}:{},...i!=null&&i.provider&&i.model?{model:i.model}:{}});if(!ie.current)return;V({text:`Voice ready: ${te.name||te.voice_id}. It is selected above.`,tone:"ok"}),n(te.voice_id,te.engine||(l==="design"?"qwen3-tts":void 0))}catch(te){if(!ie.current)return;V({text:`The voice was not created: ${String((te==null?void 0:te.message)||te).replace(/\.$/,"")}.`,tone:"error"})}finally{Z.current=!1,ie.current&&j(!1)}}},Y=l==="design"?!!d.trim():!!x&&!A;return a.jsxs("fieldset",{className:"af-voice-create","data-voice-create":!0,children:[a.jsx("legend",{children:"Create a voice"}),a.jsxs("div",{className:"af-voice-create__modes",role:"tablist",children:[e.design?a.jsx("button",{type:"button",role:"tab","aria-selected":l==="design","data-create-mode":"design",disabled:$||A,onClick:()=>u("design"),children:"From a description"}):null,e.clone?a.jsx("button",{type:"button",role:"tab","aria-selected":l==="clone","data-create-mode":"clone",disabled:$||A,onClick:()=>u("clone"),children:"From a recording"}):null]}),l==="design"?a.jsxs("label",{children:["Describe the voice",a.jsx("textarea",{"aria-label":"Voice description",rows:3,placeholder:"A calm, warm adult female voice with a slight British accent, speaking slowly.",value:d,onChange:te=>f(te.target.value)})]}):a.jsxs(a.Fragment,{children:[a.jsxs("label",{children:["Recording",a.jsx("input",{"aria-label":"Voice recording",type:"file",accept:"audio/*",disabled:A,onChange:te=>{const W=te.target.files&&te.target.files[0]||null;N(W),W&&V({text:"",tone:"info"})}})]}),a.jsxs("div",{className:"af-voice-create__record",children:[a.jsx("button",{type:"button","data-action":"record-sample",disabled:$,onClick:J,children:A?"Stop":"Record"}),A?a.jsx("div",{className:"af-voice-meter","data-voice-meter":!0,role:"meter","aria-label":"Recording level","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(M*100),children:a.jsx("span",{className:"af-voice-meter__fill",style:{width:`${Math.round(M*100)}%`}})}):null]}),a.jsxs("label",{children:["What the recording says (optional)",a.jsx("input",{"aria-label":"Recording transcript",value:k,onChange:te=>T(te.target.value)})]})]}),a.jsxs("label",{children:["Name",a.jsx("input",{"aria-label":"Voice name",value:m,placeholder:"My voice",onChange:te=>p(te.target.value)})]}),a.jsxs("label",{children:["Language",a.jsx(_n,{ariaLabel:"Voice language for creation",value:L,searchable:!1,options:l==="design"?D:[uj,...D],onChange:l==="design"?b:C})]}),a.jsx("button",{type:"button","data-action":"create-voice",disabled:$||!Y,onClick:B,children:$?"Creating…":"Create voice"}),z.text?a.jsx("p",{className:`af-voice-note af-voice-note--${z.tone}`,role:"status","data-voice-note":"create",children:z.text}):null]})}const hj=e=>Array.isArray(e)?e:Array.isArray(e==null?void 0:e.voices)?e.voices:[],Ig=e=>String((e==null?void 0:e.message)||e||"").trim().replace(/\.$/,"");function mj({library:e,refreshKey:t,onChanged:n,onRemoved:s}){const[i,l]=y.useState([]),[u,d]=y.useState({loading:!0,error:""}),[f,m]=y.useState(null),[p,g]=y.useState(""),[b,v]=y.useState(""),[C,x]=y.useState({text:"",tone:"info"}),[N,k]=y.useState(0),T=y.useRef(e);T.current=e;const $=y.useRef(!1),j=y.useRef(!0);y.useEffect(()=>(j.current=!0,()=>{j.current=!1}),[]),y.useEffect(()=>{const M=T.current.list;if(!M)return;let I=!0;return d(z=>({loading:!0,error:z.error})),M().then(z=>{I&&(l(hj(z).filter(V=>{var Z;return _f(V)&&!((Z=V==null?void 0:V.tags)!=null&&Z.builtin)})),d({loading:!1,error:""}))}).catch(z=>I&&d({loading:!1,error:`The voices could not be listed: ${Ig(z)}.`})),()=>{I=!1}},[t,N]);const A=(M,I,z,V)=>{$.current||($.current=!0,v(M),x({text:"",tone:"info"}),I().then(()=>{j.current&&(x({text:z,tone:"ok"}),m(null),g(""),V==null||V(),k(Z=>Z+1),n==null||n())}).catch(Z=>j.current&&x({text:`${Ig(Z)||"The gateway refused"}.`,tone:"error"})).finally(()=>{$.current=!1,j.current&&v("")}))},S=M=>String(M.name||M.label||_f(M));return a.jsxs("fieldset",{className:"af-voice-library","data-voice-library":!0,children:[a.jsx("legend",{children:"Manage voices"}),u.loading&&!i.length?a.jsx("p",{role:"status",children:"Loading your voices…"}):null,u.error?a.jsx("p",{className:"af-voice-note af-voice-note--error",role:"status","data-voice-note":"library",children:u.error}):null,!u.loading&&!u.error&&!i.length?a.jsx("p",{className:"af-voice-library__empty",children:"No voices of your own yet."}):null,i.length?a.jsx("ul",{className:"af-voice-library__list",children:i.map(M=>{const I=_f(M),z=Tw(M)==="Shared voices",V=bu(M),Z=String(M.engine||M.provider||""),ie=b===I;return a.jsxs("li",{className:"af-voice-library__item","data-voice-id":I,children:[(f==null?void 0:f.id)===I?a.jsxs("span",{className:"af-voice-library__edit",children:[a.jsx("input",{"aria-label":`New name for ${S(M)}`,value:f.name,onChange:F=>m({id:I,name:F.target.value})}),a.jsx("button",{type:"button","data-action":"save-voice-name",disabled:ie||!f.name.trim(),onClick:()=>A(I,()=>T.current.rename(I,{name:f.name.trim()}),`Renamed to ${f.name.trim()}.`),children:"Save"}),a.jsx("button",{type:"button","data-action":"cancel-voice-name",disabled:ie,onClick:()=>m(null),children:"Cancel"})]}):a.jsxs("span",{className:"af-voice-library__name",children:[S(M),a.jsx("span",{className:"af-voice-library__meta",children:[z?"Shared":"Yours",V?ba(V):"",Z].filter(Boolean).join(" · ")})]}),p===I?a.jsxs("span",{className:"af-voice-library__confirm",role:"group","aria-label":`Delete ${S(M)}?`,children:["Delete ",S(M),"?",a.jsx("button",{type:"button","data-action":"confirm-delete-voice",disabled:ie,onClick:()=>A(I,()=>T.current.remove(I),`${S(M)} was deleted.`,()=>s==null?void 0:s(I)),children:"Delete"}),a.jsx("button",{type:"button","data-action":"keep-voice",disabled:ie,onClick:()=>g(""),children:"Keep"})]}):(f==null?void 0:f.id)!==I?a.jsxs("span",{className:"af-voice-library__actions",children:[e.rename?a.jsx("button",{type:"button","data-action":"rename-voice",disabled:!!b,onClick:()=>m({id:I,name:S(M)}),children:"Rename"}):null,e.remove?a.jsx("button",{type:"button","data-action":"delete-voice",disabled:!!b,onClick:()=>g(I),children:"Delete"}):null,e.share&&!z?a.jsx("button",{type:"button","data-action":"share-voice",disabled:!!b,onClick:()=>A(I,()=>T.current.share(I),`${S(M)} is shared with everyone.`),children:"Share"}):null]}):null]},I)})}):null,C.text?a.jsx("p",{className:`af-voice-note af-voice-note--${C.tone}`,role:"status","data-voice-note":"library-action",children:C.text}):null]})}const bf=we("automations"),pj=we("trigger-sources"),gj=we("me/email"),yj=we("me/email/accounts"),wj=we("triggers/connections"),vj=we("automations/schedule-preview");class Mg 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 _j(e,t){const n=t&&typeof t=="object"?t.detail:void 0;if(n&&typeof n=="object"&&!Array.isArray(n)){const s=n;if(typeof s.reason_code=="string"&&s.reason_code&&typeof s.message=="string"){const i={status:e,code:s.reason_code,message:s.message};return typeof s.field=="string"&&(i.field=s.field),typeof s.command_id=="string"&&(i.command_id=s.command_id),i}}return{status:e,code:"invalid_response",message:`The gateway answered HTTP ${e} without an automation error envelope.`}}function xf(e){const t=new URLSearchParams;for(const[s,i]of Object.entries(e))i!==void 0&&t.set(s,String(i));const n=t.toString();return n?`?${n}`:""}function bj(){return Dr()}function xj(e){const t=e.newId??bj,n=i=>`${bf}/${encodeURIComponent(i)}`;async function s(i,l,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(ct(e.baseUrl,l),f),p=await m.text();let g,b=!1;if(p)try{g=JSON.parse(p),b=!0}catch{b=!1}if(!m.ok)throw new Mg(_j(m.status,g));if(!b||g===null||typeof g!="object")throw new Mg({status:m.status,code:"invalid_response",message:`The gateway answered ${i} ${l} with a body that is not a JSON object.`});return g}return{listAutomations:(i={})=>s("GET",`${bf}${xf({status:i.status,cursor:i.cursor,limit:i.limit})}`),getAutomation:i=>s("GET",n(i)),createAutomation:i=>s("POST",bf,i),reviseAutomation:(i,l)=>s("PATCH",n(i),{command_id:l.command_id??t(),...l.expected_revision!==void 0?{expected_revision:l.expected_revision}:{},changes:l.changes}),sendAutomationCommand:(i,l)=>s("POST",`${n(i)}/commands`,{command_id:l.command_id??t(),type:l.type,...l.payload!==void 0?{payload:l.payload}:{}}),listOccurrences:(i,l={})=>s("GET",`${n(i)}/occurrences${xf({cursor:l.cursor,limit:l.limit})}`),discuss:(i,l)=>s("POST",`${n(i)}/discuss`,{request_id:l.request_id??t(),occurrence_index:l.occurrence_index,prompt:l.prompt}),markSeen:(i,l)=>s("POST",`${n(i)}/seen`,{attention_cursor:l}),listAttention:(i,l={})=>s("GET",`${n(i)}/attention${xf({cursor:l.cursor,limit:l.limit})}`),listTriggerSources:()=>s("GET",pj),getMyEmail:()=>s("GET",gj),listTriggerConnections:()=>s("GET",wj),listMailboxes:()=>s("GET",yj),previewSchedule:i=>s("POST",vj,{trigger:i})}}function xu(e){const t=e==null?void 0:e._runtime,n=Array.isArray(t==null?void 0:t.allowed_tools)?t.allowed_tools:null,s=Array.isArray(e==null?void 0:e.tools)?e.tools:n;return Array.isArray(s)?s.filter(i=>typeof i=="string"&&(!n||n.includes(i))):null}function Mh(e,t){const n={...e},s=e._runtime&&typeof e._runtime=="object"?{...e._runtime}:{};return t===null?(delete n.tools,delete s.allowed_tools):(n.tools=[...t],s.allowed_tools=[...t]),Object.keys(s).length?n._runtime=s:delete n._runtime,n}function kj(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 s=e._runtime;if(s&&typeof s=="object"){const i={};for(const l of["allowed_tools","provider","model","thinking","speculation","stream"])l in s&&(i[l]=s[l]);Object.keys(i).length&&(n._runtime=i)}return n}function ah(e){return e.flow_id==="@default"?"@default":`${"bundle_ref"in e?e.bundle_ref:""}:${e.flow_id}`}const jj={active:"Active",pause:"Pause",resume:"Resume",run_now:"Run now",stop_current:"Stop current",revise:"Edit",archive:"Archive",unarchive:"Unarchive",discuss:"Discuss"},Sj={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.`},Nj="Next scheduled run: {time}.",Cj="Growing context: later runs see this run in their history.",Ej={run_now:{name:"playCircle"}},Aj={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."},$j={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."},Lh={labels:jj,hints:Sj,run_now_next_run_line:Nj,run_now_growing_line:Cj,icons:Ej,email:Aj,schedule:$j},qi={manual:"By hand",schedule:"On a schedule",something:"When something arrives",main_mailbox:"your main mailbox"};function ku(e){const t=String(e||"");return t.startsWith("feed")?"feed":t.startsWith("webhook")?"webhook":"other"}function Tj(e,t){const n=ku(t);return n==="feed"?`When ${e} has a new item`:n==="webhook"?`When ${e} is called`:`When ${e} sends something`}function Mw(e){if(!e)return"";const t=e.config??{};return(typeof t.connection_id=="string"?t.connection_id:typeof e.connection_id=="string"?e.connection_id:"").trim()}function Lw(e){if(!e)return!1;const t=String(e.source_id||"");return!(t==="schedule"||t==="manual"||!t)}function Oh(e,t){const n=typeof e=="string"?e.trim():"",s=!n||n==="self"?"default":n,i=(t??[]).find(l=>l.account_id===s)??(s==="default"?(t??[]).find(l=>l.primary):void 0);return i!=null&&i.address?i.address:s==="default"?qi.main_mailbox:s}function Ph(e,t){const n=Mw(e);return n?(t??[]).find(s=>s.connection_id===n)??null:null}function Rj(e,t,n){var u;if(!e||!Lw(e))return"";const s=String(e.source_id||"");if(s.startsWith("email"))return Oh((u=e.config)==null?void 0:u.account,n);const i=Ph(e,t);if(i!=null&&i.label)return i.label;const l=ku(s);return l==="feed"?"A feed":l==="webhook"?"A webhook":"A connection"}function Dh(e,t,n,s){var d;const i=typeof(s==null?void 0:s.trigger_text)=="string"?s.trigger_text.trim():"";if(i)return i;if(!e)return"";const l=String(e.source_id||"");if(l==="schedule"){const f=s==null?void 0:s.schedule_rule_text;return typeof f=="string"&&f.trim()?f.trim():qi.schedule}if(l==="manual")return qi.manual;if(l.startsWith("email"))return`When mail arrives in ${Oh((d=e.config)==null?void 0:d.account,n)}`;if(Mw(e)){const f=Ph(e,t),m=ku(l),p=(f==null?void 0:f.label)||(m==="feed"?"a feed":m==="webhook"?"a webhook":"a connection");return Tj(p,l)}return qi.something}const Ij=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function kf(e,t){const n=new Date(e),s=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).format(n),i=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).format(n),[,l,u]=s.split("-"),d=`${Number(u)} ${Ij[Number(l)-1]??l}`;return{day:s,clock:i,label:d}}function Mj(e){const t=typeof e=="string"?e.trim():"";if(!t)return null;try{return new Intl.DateTimeFormat("en-GB",{timeZone:t}),t}catch{return null}}function oh(e,t={}){if(!e)return"";const n=Date.parse(e);if(Number.isNaN(n))return"";const s=Mj(t.timeZone),i=s??"UTC",l=s?"":" UTC",u=t.nowMs??Date.now(),d=kf(n,i),f=kf(u,i).day,m=kf(u-864e5,i).day;return d.day===f?`${t.style==="day"?"today ":""}${d.clock}${l}`:d.day===m?`yesterday ${d.clock}${l}`:`${d.label} ${d.clock}${l}`}function Xs(e){return typeof e=="string"?e.trim():""}function Rc(e){return e?`: “${e}”`:""}function Ic(e,t,n){return`${e} ${e===1?t:n}`}function Lj(e,t={}){var p,g,b;if(!e||typeof e!="object"||Array.isArray(e))return null;const n=e,s=Xs(n.type),i=/^abstract\.(.+)\.v(\d+)$/.exec(s),l=i?i[1]:"";if(!l||l==="schedule"||l==="manual")return null;const u=n.data&&typeof n.data=="object"&&!Array.isArray(n.data)?n.data:{},d=oh(Xs(n.time),{timeZone:t.timeZone,nowMs:t.nowMs});let f="",m="";if(l.startsWith("email")){const v=Array.isArray(u.messages)?u.messages:[],C=typeof u.count=="number"?u.count:v.length;if(!C)return null;f=Oh((g=(p=t.trigger)==null?void 0:p.config)==null?void 0:g.account,t.mailboxes),m=`${Ic(C,"new message","new messages")}${Rc(Xs((b=v[0])==null?void 0:b.subject))}`}else{const v=Array.isArray(u.events)?u.events:[],C=typeof u.count=="number"?u.count:v.length;if(!C)return null;const x=v[0]&&typeof v[0]=="object"?v[0]:{},N=x.data&&typeof x.data=="object"&&!Array.isArray(x.data)?x.data:{},k=Xs(u.connection_id)||Xs(n.connectionid),T={source_id:l,config:{connection_id:k}},$=Ph(k?T:t.trigger,t.connections),j=ku(l);f=($==null?void 0:$.label)||Rj(k?T:t.trigger??T,t.connections,t.mailboxes);const A=S=>{var M;return!!S&&typeof S=="object"&&((M=S.data)==null?void 0:M.test)===!0};v.length&&v.every(A)?m=C===1?"Test event":`${C} test events`:j==="webhook"?m=`${Ic(C,"call","calls")}${Rc(Xs(x.subject))}`:j==="feed"?m=`${Ic(C,"new item","new items")}${Rc(Xs(N.title)||Xs(x.subject))}`:m=`${Ic(C,"new event","new events")}${Rc(Xs(x.subject))}`}return{source:f,what:m,at:d,text:[f,m,d].filter(Boolean).join(" · ")}}const Oj=/^([1-9][0-9]*)([smhd])$/,Pj={s:["second","seconds"],m:["minute","minutes"],h:["hour","hours"],d:["day","days"]};function il(e){if(typeof e!="string")return null;const t=Oj.exec(e);return t?{amount:Number(t[1]),unit:t[2]}:null}function Dj(e){const t=il(e);if(!t)return`every ${e}`;const[n,s]=Pj[t.unit];return t.amount===1?`every ${n}`:`every ${t.amount} ${s}`}function eu(e){if(!e)return"";const t=Date.parse(e);if(Number.isNaN(t))return e;const n=new Date(t).toISOString(),s=n.slice(17,19);return`${n.slice(0,10)} ${n.slice(11,16)}${s==="00"?"":`:${s}`} UTC`}function Ow(e,t,n){return Dh(e,n==null?void 0:n.connections,n==null?void 0:n.mailboxes,t)}function Pw(e){return e==="growing"?"Growing — each run sees the previous runs":"Independent — each run starts fresh"}const Fj={active:"Active",paused:"Paused",completed:"Completed",failed:"Failed",archived:"Archived"},Ze=Lh.email,Dw="email.received",Fw=1,zj="1h",Bj="60s",zw=60,Fh=100,ih=1e3,Lg=200,Og=200,Pg=50;function ll(e){return!!e&&e.source_id===Dw&&e.source_version===Fw}function zh(e){return!!e&&e.effective_enabled===!0}function Bw(e){const t=[];for(const n of String(e??"").split(/[\s,;]+/)){const s=n.trim().toLowerCase();s&&!t.includes(s)&&t.push(s)}return t}const Wj=/[\s<>,;:"()[\]]/;function lh(e){const t=e.trim().toLowerCase(),n=t.indexOf("@");return n<=0||n===t.length-1?!1:!t.slice(n+1).includes("@")&&!Wj.test(t)}function Uj(e){const t=e.trim().toLowerCase();return!!t&&!t.includes("@")&&t.includes(".")&&!t.startsWith(".")&&!t.endsWith(".")&&!/[\s<>,;:"()[\]/*]/.test(t)}const Bh={usesModel:!0,every:null,maxBatch:null,fromIn:"",fromDomainIn:"",toIn:"",subjectContains:"",hasAttachment:"any"};function Wh(e){return e?zj:Bj}function Ww(e){const t=il(e);return t?t.amount*{s:1,m:60,h:3600,d:86400}[t.unit]:null}function jf(e,t,n,s,i){const l=Bw(e);if(!l.length)return null;const u=l.filter(d=>!n(d));return u.length&&i.push(`${t}: ${u.join(", ")} ${u.length===1?"is not":"are not"} ${s}.`),l.length>Lg&&i.push(`${t}: at most ${Lg} entries.`),l}function Uw(e){const t=[],n={uses_model:e.usesModel};e.every===null?n.every=Wh(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&&(Ww(n.every)??0)<zw&&t.push("The check interval is at least 60 seconds."),e.maxBatch===null?n.max_batch=Fh:!Number.isInteger(e.maxBatch)||e.maxBatch<1||e.maxBatch>ih?t.push(`At most this many emails per run: a whole number from 1 to ${ih}.`):n.max_batch=e.maxBatch;const s={},i=jf(e.fromIn,Ze.from_in,lh,"an email address",t);i&&(s.from_in=i);const l=jf(e.fromDomainIn,Ze.from_domain_in,Uj,"a domain like example.com",t);l&&(s.from_domain_in=l);const u=jf(e.toIn,Ze.to_in,lh,"an email address",t);u&&(s.to_in=u);const d=e.subjectContains.trim();return d&&(d.length>Og||/[\r\n]/.test(d)?t.push(`${Ze.subject_contains}: one line of at most ${Og} characters.`):s.subject_contains=d),e.hasAttachment==="yes"?s.has_attachment=!0:e.hasAttachment==="no"&&(s.has_attachment=!1),Object.keys(s).length&&(n.filter=s),{config:n,errors:t}}function Vw(e){const t=e,n=t.filter??{},s=["when an email arrives"],i=[...n.from_in??[],...n.from_domain_in??[]];i.length&&s.push(`from ${i.join(", ")}`),n.to_in&&n.to_in.length&&s.push(`to ${n.to_in.join(", ")}`),typeof n.subject_contains=="string"&&n.subject_contains&&s.push(`subject contains “${n.subject_contains}”`),n.has_attachment===!0&&s.push("with attachments"),n.has_attachment===!1&&s.push("without attachments");const l=typeof t.every=="string"?t.every:Wh(t.uses_model!==!1);s.push(`checked ${Dj(l)}`);const u=typeof t.max_batch=="number"?t.max_batch:Fh;return s.push(`up to ${u} per run`),s.join(" · ")}const Yi={mode:"self",addresses:""};function ch(e){if(e.mode==="self")return{recipients:["self"],errors:[]};const t=[],n=Bw(e.addresses).filter(i=>i!=="self");n.length||t.push("Name at least one address the automation may email, or choose Only me.");const s=n.filter(i=>!lh(i));return s.length&&t.push(`${Ze.recipients_list}: ${s.join(", ")} ${s.length===1?"is not an email address":"are not email addresses"}.`),n.length+1>Pg&&t.push(`At most ${Pg-1} addresses.`),{recipients:["self",...n],errors:t}}function Vj(e){const t=(e??[]).filter(n=>n!=="self");return t.length?{mode:"list",addresses:t.join(", ")}:{mode:"self",addresses:""}}function Hj(e){const t=(e??["self"]).filter(n=>n!=="self");return t.length?`Me and ${t.join(", ")}`:"Only me"}function Hw(e,t=["self"]){return{channels:e?["console","email"]:["console"],...t.some(n=>n!=="self")?{recipients:t}:{}}}function Gw(e){return!!e&&Array.isArray(e.channels)&&e.channels.includes("email")}function Gj(e){return Gw(e)?"In the console and by email":"In the console"}const Tt={pause:"automation.pause",resume:"automation.resume",run_now:"automation.run_now",stop_current:"automation.stop_current",archive:"automation.archive",unarchive:"automation.unarchive"},Kj=new Set(["running","waiting","backoff"]);function Jj(e,t=[]){return e.current_occurrence!=null}function qj(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 Yj(e,t){var n;return e.next_run_at&&e.next_run_local?`${tv(e.next_run_local,e.time_zone)} (${Qj(e.next_run_at,t)})`:e.status==="paused"?"none while paused":e.status==="active"&&e.trigger&&Lw(e.trigger)?Dg.event:e.status==="active"&&((n=e.trigger)==null?void 0:n.source_id)==="manual"?Dg.manual:"none scheduled"}const Dg={event:"when something new arrives",manual:"when someone presses Run now"};function Qj(e,t){const n=Date.parse(e);if(Number.isNaN(n))return"";const s=Math.round((n-t)/6e4);if(s<=0)return"due now";if(s<60)return`in ${s} min`;const i=Math.floor(s/60);return i<24?`in ${i} h${s%60?` ${s%60} min`:""}`:`in ${Math.floor(i/24)} d${i%24?` ${i%24} h`:""}`}function Co(e,t=[],n=!1){const s=new Set(e.capabilities),i=e.status,l=Jj(e,t),u=(p,g,b)=>n?{enabled:!1,reason:"Working…"}:e.legacy?{enabled:!1,reason:"Legacy schedule: managed with its existing controls."}:s.has(p)?i==="archived"?{enabled:!1,reason:"Archived: history is kept, nothing runs."}:g?{enabled:!0}:{enabled:!1,reason:b}:{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?s.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&&!l,l?"An occurrence is in progress.":"The automation has ended."),stop_current:u("stop_current",l,"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."}:s.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."}:s.has("discuss")?{enabled:!0}:{enabled:!1,reason:"Discussion is not permitted for this automation."}}}function Kw(e){return e.status==="active"?Tt.pause:Tt.resume}function Xj(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 Zj(e){return[...e].sort((t,n)=>t.index-n.index).map(t=>{const n=Xj(t),s=`${t.attempts} ${t.attempts===1?"attempt":"attempts"}`,i=n==="failed"?`Failed after ${s}`:n==="waiting"?"Waiting for you":n==="notified"?"Notified":n==="running"?"Running":null,l=t.status==="completed"&&t.attempts>1?`completed after ${s}`:t.status;return{row:t,tone:n,notable:n==="failed"||n==="waiting"||n==="notified",badge:i,statusText:l,canDiscuss:!Kj.has(t.status)}})}function eS(e){const t=e.attention.items;return t.length?t[t.length-1].cursor:null}function tS(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 nS={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 Ro(e){return{title:nS[e.code]??`The gateway refused the request (${e.code}).`,detail:e.message}}function cl(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 Jw(e,t){var l,u,d;const n=e.trigger,s=n.source_id==="schedule"||ll(n)?n.config.every:void 0,i=t?t.target.input_data.prompt:void 0;return{title:e.title,every:typeof s=="string"?s:null,calendar:sS(n)?lS(n.config):null,context:e.context_mode,growingMaxTokens:Number(((u=(l=t==null?void 0:t.context)==null?void 0:l.growing)==null?void 0:u.max_tokens)??e.growing_max_tokens??tl),prompt:typeof i=="string"?i:null,toolApproval:t?t.policy.tool_approval:null,tools:xu(t==null?void 0:t.target.input_data),notifyEmail:t?Gw(t.notify):null,emailRecipients:t?Vj((d=t.notify)==null?void 0:d.recipients):null}}function qw(e,t,n){var f;const s=[],i={},l=t.title.trim();l?l.length>120?s.push("Title is at most 120 characters."):l!==e.title&&(i.title=l):s.push("Title is required.");const u=Jw(e,n);if(t.every!==u.every&&t.every!==null){const m=ll(e.trigger);if(!il(t.every))s.push("Interval must be a whole number of minutes, hours or days.");else if(m&&(Ww(t.every)??0)<zw)s.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=Vh(t.calendar);if(!m.config)s.push(...m.errors);else{const p=e.trigger.config,g={...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:g}}}const d=t.context==="growing"?t.growingMaxTokens??u.growingMaxTokens:u.growingMaxTokens;if(Xw(d)||s.push(Qw),(t.context!==e.context_mode||d!==u.growingMaxTokens)&&(i.context=Zw(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}}:s.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:Mh(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=ch(t.notifyEmail?t.emailRecipients??Yi:u.emailRecipients??Yi),p=ch(u.emailRecipients??Yi).recipients;m.errors.length?s.push(...m.errors):(t.notifyEmail!==u.notifyEmail||JSON.stringify(m.recipients)!==JSON.stringify(p))&&(i.notify=Hw(t.notifyEmail,m.recipients))}if(s.length)return{errors:s};if(n&&t.target&&ah(t.target)!==ah(n.target)){const m=((f=i.target)==null?void 0:f.input_data)||n.target.input_data;i.target={...t.target,input_data:kj(m)}}return Object.keys(i).length?i:null}const tl=5e4,Yw="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.",Qw="Max growing context must be a positive whole number of tokens.";function Xw(e){return Number.isSafeInteger(e)&&e>0}function Zw(e,t){return{mode:e,...t!==tl?{growing:{max_tokens:t}}:{}}}const ut=Lh.schedule,tu=["mon","tue","wed","thu","fri","sat","sun"],ev=["daily","weekly","monthly"],Uh=2;function sS(e){return e.source_id==="schedule"&&e.source_version===Uh}function rS(e,t=Uh){const n=e==null?void 0:e.schedule_rule_text;return typeof n=="string"&&n?n:qi.schedule}const aS=/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2})/;function tv(e,t){if(!e)return"";const n=aS.exec(e);return n?`${n[1]} ${n[2]}${t?` ${t}`:""}`:e}function oS(e,t="account"){return(t==="account"?ut.time_zone_line:ut.time_zone_line_automation).replace("{time_zone}",e)}const iS=/^([01][0-9]|2[0-3]):[0-5][0-9]$/;function nv(e){return ev.includes(e.kind)}function Vh(e){const t=[];if(iS.test(e.at)||t.push(ut.error_at),e.kind==="weekly"){const n=tu.filter(s=>e.days.includes(s));return n.length||t.push(ut.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(ut.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 lS(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)?tu.filter(s=>t.days.includes(s)):[]}:t.kind==="monthly"?{kind:"monthly",at:n,day:t.day==="last"?"last":Number(t.day)}:null}const cS=[{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 sv(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 uS(e){const t=e.trim().split(`
|
|
56
|
-
`)[0].trim();return t.length>120?`${t.slice(0,119)}…`:t}const dS=/^\d{4}-\d{2}-\d{2}T([01][0-9]|2[0-3]):[0-5][0-9]$/;function Fg(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 s=sv(e.until);s?n.until=s:t.push("Stop at must be a date and time (UTC).")}return n}function fS(e){const t=[],n=e.when;if(n.kind==="once"){const d=(n.at||"").trim().slice(0,16);return dS.test(d)?{config:{kind:"once",at:d},errors:t}:{config:null,errors:[ut.error_once]}}if(nv(n)){const d=Vh(n),f=Fg(e,d.errors);return d.config&&!d.errors.length?{config:{...d.config,...f},errors:[]}:{config:null,errors:d.errors}}const s=n.amount;let i=null;!Number.isInteger(s)||s<1?t.push("The interval must be a whole number of at least 1."):i=`${s}${n.unit}`;let l=null;e.startAt&&(l=sv(e.startAt),l||t.push("First run must be a date and time (UTC)."));const u=Fg(e,t);return t.length||!i?{config:null,errors:t}:{config:{kind:"every",every:i,...l?{start_at:l}:{},...u},errors:t}}function rv(e){const t=fS(e);return t.config?{trigger:{source_id:"schedule",source_version:Uh,config:t.config},errors:[]}:{trigger:null,errors:t.errors}}function hS(e){return e.kind==="every"||e.kind==="once"||nv(e)}function mS(e){if(e.trigger==="email"){const t=Uw(e.email??Bh);return t.errors.length?"":Vw(t.config)}return""}function pS(e,t){const n=[];t.target||n.push("Choose what to run.");const s=e.prompt.trim();s||n.push("Write the task to run.");const i=(e.title??"").trim()||uS(s);i.length>120&&n.push("Title is at most 120 characters.");const l=e.trigger==="email",u=l?Uw(e.email??Bh):null,d=l?null:rv(e);n.push(...u?u.errors:d.errors);const f=e.notifyEmail&&e.emailRecipients&&e.emailRecipients.mode==="list"?ch(e.emailRecipients):null;f&&n.push(...f.errors);const m=e.growingMaxTokens??tl;if(e.context==="growing"&&!Xw(m)&&n.push(Qw),n.length||!t.target)return{ok:!1,errors:n};const p={...t.target,input_data:{...t.target.input_data??{},prompt:s}},g={request_id:t.requestId,title:i,target:p,trigger:u?{source_id:Dw,source_version:Fw,config:u.config}:d.trigger,context:Zw(e.context,e.context==="growing"?m:tl),policy:{tool_approval:e.toolApproval??"auto"}};return e.notifyEmail===!0&&(g.notify=Hw(!0,f==null?void 0:f.recipients)),{ok:!0,body:g}}const gS="Tools run without asking (you approve them now by creating this automation)";function yS(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 s=n;if(typeof s.name!="string"||!s.arguments||typeof s.arguments!="object"||Array.isArray(s.arguments)||s.call_id!==void 0&&typeof s.call_id!="string")return null;t.push({name:s.name,arguments:s.arguments,...typeof s.call_id=="string"?{call_id:s.call_id}:{}})}return t}function wS(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 av={ask_user:"Question for you",tool_approval:"Approval needed",event:"Waiting for an event"};class ov{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||vS(n.error))&&this.open.delete(t)}}function vS(e){return cl(e)&&e.status>0&&e.code!=="invalid_response"}function iv(){return Dr()}class _S{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 zg(e,t){if(!e)return null;for(const n of t){const s=e.querySelector(n);if(s&&s.disabled!==!0&&typeof s.focus=="function")return s}return null}const bS="08:00",xS=["mon"],lv={at:bS,days:[...xS],day:1};function cv(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 Hh(e,t){return{...e,at:t.at,...t.kind==="weekly"?{days:[...t.days]}:{},...t.kind==="monthly"?{day:t.day}:{}}}function Bg(e){return Hh(lv,e)}const kS=[...Array.from({length:31},(e,t)=>String(t+1)),"last"];function uv(e){const t=e.value,n=s=>{if(t.kind!=="weekly")return;const i=t.days.includes(s);e.onChange({...t,days:tu.filter(l=>l===s?!i:t.days.includes(l))})};return a.jsxs("div",{className:"af-schedule__calendar","data-calendar-kind":t.kind,children:[t.kind==="weekly"?a.jsxs("div",{className:"af-auto__row af-schedule__days",role:"group","aria-label":ut.days_legend,children:[a.jsx("span",{children:ut.days_legend}),tu.map(s=>a.jsx(pk,{className:"af-schedule__day",pressed:t.days.includes(s),disabled:e.disabled,onClick:()=>n(s),tone:"accent",children:a.jsx("span",{"data-day":s,children:ut.days[s]})},s))]}):null,a.jsxs("div",{className:"af-auto__row",children:[t.kind==="monthly"?a.jsxs(a.Fragment,{children:[a.jsx("label",{htmlFor:`${e.idBase}-month-day`,children:ut.day_label}),a.jsx("select",{id:`${e.idBase}-month-day`,name:"calendar_day",value:String(t.day),disabled:e.disabled,onChange:s=>e.onChange({...t,day:s.target.value==="last"?"last":Number(s.target.value)}),children:kS.map(s=>a.jsx("option",{value:s,children:s==="last"?ut.last_day:s},s))})]}):null,a.jsx("label",{htmlFor:`${e.idBase}-at`,children:ut.at_label}),a.jsx("input",{id:`${e.idBase}-at`,name:"calendar_at",type:"time",step:60,required:!0,value:t.at,disabled:e.disabled,"aria-label":ut.time_label,onChange:s=>e.onChange({...t,at:s.target.value.slice(0,5)})})]})]})}function jS(e){return a.jsxs("p",{className:"af-schedule__tz","data-time-zone":e.timeZone,children:[a.jsx(Qc,{content:ut.time_zone_hint,children:a.jsx("span",{tabIndex:0,className:"af-schedule__tz-text",children:oS(e.timeZone,e.whose??"account")})}),e.onOpenPreferences&&(e.whose??"account")==="account"?a.jsxs(a.Fragment,{children:[" · ",a.jsx(Qc,{content:ut.time_zone_change_hint,children:a.jsx("button",{type:"button",className:"af-auto__link af-schedule__tz-change",onClick:e.onOpenPreferences,children:ut.time_zone_change})})]}):null]})}function SS(e){const t=e;return typeof(t==null?void 0:t.message)=="string"&&t.message?t.message:String(e)}function dv(e,t,n=250){const s=e?JSON.stringify(e):"",[i,l]=y.useState({phase:"idle"}),u=y.useRef(0),d=y.useRef(t);return d.current=t,y.useEffect(()=>{const f=++u.current;if(!s){l({phase:"idle"});return}l({phase:"loading"});const m=setTimeout(()=>{d.current(JSON.parse(s)).then(p=>{u.current===f&&l({phase:"ok",description:p})},p=>{u.current===f&&l({phase:"error",message:SS(p)})})},n);return()=>clearTimeout(m)},[s,n]),i}function fv(e){const t=e.state;return t.phase==="ok"?a.jsxs(a.Fragment,{children:[e.showZone===!1?null:a.jsx(jS,{timeZone:t.description.time_zone,whose:e.whose,onOpenPreferences:e.onOpenPreferences}),a.jsx("p",{className:"af-schedule__preview","aria-live":"polite","data-preview":"served",children:t.description.first_run_sentence})]}):t.phase==="error"?a.jsx("p",{className:"af-schedule__preview af-auto__warn",role:"alert","data-preview":"error",children:t.message}):a.jsx("p",{className:"af-schedule__preview","aria-live":"polite","data-preview":t.phase,children:t.phase==="loading"?ut.describing:e.incompleteText??ut.incomplete})}function Wg(e){const t=Array.from(new Set(e.map(n=>String(n||"").trim()).filter(Boolean)));return t.sort((n,s)=>n.localeCompare(s)),t}function NS(e){const t=e.disabled===!0,n=y.useMemo(()=>Wg([...e.options||[],...e.value||[]]),[e.options,e.value]),s=y.useMemo(()=>Wg(e.value||[]),[e.value]),[i,l]=y.useState(!1),[u,d]=y.useState(""),f=y.useMemo(()=>{const g=u.trim().toLowerCase();return g?n.filter(b=>b.toLowerCase().includes(g)):n},[n,u]),m=y.useMemo(()=>new Set(s),[s]),p=typeof e.max_list_height_px=="number"?e.max_list_height_px:220;return a.jsxs("div",{className:"af_multi_select",children:[a.jsxs("div",{className:"af_multi_select_row",children:[a.jsxs("button",{className:"btn",type:"button",onClick:()=>l(g=>!g),disabled:t||!n.length,"aria-expanded":i,children:[i?"Hide":"Select"," • ",s.length>0?`${s.length} of ${n.length}`:e.placeholder||"(none)"]}),a.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange(n.slice()),disabled:t||!n.length||s.length===n.length,title:"Select all",children:"All"}),a.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange([]),disabled:t||s.length===0,title:"Clear selection",children:"Clear"})]}),s.length>0?a.jsx("div",{className:"af_multi_select_chips",children:s.map(g=>a.jsxs("button",{type:"button",disabled:t,"aria-label":`Remove ${g}`,className:"af_multi_select_chip",title:g,onClick:()=>{if(t)return;const b=new Set(m);b.delete(g),e.onChange(Array.from(b.values()))},children:[g,t?null:a.jsx("span",{className:"af_multi_select_chip_x",children:"×"})]},g))}):null,i?a.jsxs("div",{className:"af_multi_select_panel",children:[a.jsx("input",{className:"mono",value:u,onChange:g=>d(String(g.target.value||"")),placeholder:"filter…","aria-label":"Filter options",disabled:t}),a.jsxs("div",{className:"af_multi_select_list",style:{maxHeight:`${p}px`},children:[f.map(g=>{const b=m.has(g);return a.jsxs("label",{className:`af_multi_select_item mono ${b?"checked":""}`,children:[a.jsx("input",{type:"checkbox",checked:b,disabled:t,onChange:v=>{const C=new Set(m);v.target.checked?C.add(g):C.delete(g),e.onChange(Array.from(C.values()))}}),a.jsx("span",{children:g})]},g)}),f.length?null:a.jsx("div",{className:"mono muted",children:"(no matches)"})]})]}):null]})}function hv(e){return a.jsxs("div",{className:"af-auto__field","data-field":"tool-selection",children:[a.jsxs("label",{children:[a.jsx("input",{type:"checkbox",checked:e.value===null,disabled:e.disabled,onChange:t=>e.onChange(t.target.checked?null:[])})," Use the flow's default tools"]}),e.value!==null?a.jsx(NS,{options:e.availableTools,value:e.value,disabled:e.disabled,placeholder:"No tools enabled",onChange:e.onChange}):null,a.jsx("p",{className:"af-auto__hint",children:"Choose which tools this automation can use. An empty selection disables tools. Gateway restrictions always apply."})]})}const ju="@default",mv="No workflows available for this app — ask your admin.",pv={shared:"Shared",mine:"Mine"};class $r extends Error{constructor(t){super(t),this.name="WorkflowPickerContractError"}}function gv(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 CS(e={}){return e.allVersions?"bundles?all_versions=true":"bundles"}function ES(e,t={}){return e===null?CS(t):gv(e,t)}function qn(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Gt(e){return typeof e=="string"?e.trim():""}const Mc="update the gateway";function AS(e,t){var d,f;const n=qn(e.default_agent_workflows);if(!n)return{status:"unavailable",reason:"the gateway does not report a default workflow"};const s=qn(n[t]);if(!s)return{status:"unavailable",reason:Gt((f=qn((d=qn(e.default_agent_workflows_unavailable))==null?void 0:d[t]))==null?void 0:f.reason)||`no default workflow for ${t}`};const i=Gt(s.bundle_id),l=Gt(s.flow_id);if(!i||!l)return{status:"unavailable",reason:"the gateway's default workflow is missing its bundle or flow"};const u=Gt(s.bundle_version);return{status:"ok",name:Gt(s.name)||l,bundleId:i,bundleVersion:u,flowId:l,workflowId:Gt(s.workflow_id)||`${i}${u?`@${u}`:""}:${l}`}}function $S(e,t){return yv(e,t)}function yv(e,t,n={}){var d,f;const s=qn(e);if(!s)throw new $r("The gateway's workflow list is not a JSON object.");const i=Gt(s.executable_for);if(t===null){if(i)throw new $r(`Asked for every workflow, the gateway listed only ${i}.`)}else if(i!==t)throw new $r(i?`The gateway listed workflows for ${i}, not ${t}.`:`This gateway does not filter workflows per app (no executable_for in its answer): ${Mc}.`);if(!Array.isArray(s.items))throw new $r("The gateway's workflow list has no items.");const l=[];for(const m of s.items){const p=qn(m),g=Gt(p==null?void 0:p.bundle_id);if(!p||!g)throw new $r("The gateway listed a workflow without a bundle id.");const b=qn(p.owner),v=Gt(b==null?void 0:b.kind);if(v!=="gateway"&&v!=="user")throw new $r(`The gateway did not say who owns ${g} (owner missing): ${Mc}.`);if(typeof p.shipped!="boolean")throw new $r(`The gateway did not say whether ${g} ships with it (shipped missing): ${Mc}.`);const C=Gt(p.bundle_version),x=Array.isArray(p.entrypoints)?p.entrypoints:[];for(const N of x){const k=qn(N),T=Gt(k==null?void 0:k.flow_id);if(!k||!T)continue;const $=Array.isArray(k.interfaces)?k.interfaces.map(Gt).filter(Boolean):[],j=LS((d=qn(p.automation_defaults))==null?void 0:d[T]),A=k.triggerable===!0||!!j;if(t===null){if(!$.length&&!A)continue}else if(!$.includes(t))throw new $r(`The gateway offered ${g}:${T}, which does not declare ${t}: ${Mc}.`);l.push({value:Gt(k.workflow_id)||`${g}${C?`@${C}`:""}:${T}`,bundleId:g,bundleVersion:C,flowId:T,name:Gt(k.name)||Gt((f=qn(p.metadata))==null?void 0:f.name)||g,description:Gt(k.description)||Gt(p.description),registryScope:Gt(p.registry_scope)||"private",group:v==="user"?"mine":"shared",shipped:p.shipped,interfaces:$,...t===null?{showInterfaces:!0}:{},...j?{automationTrigger:j}:{},...A?{triggerable:!0}:{}})}}const u=n.defaultInterface??t;return{interfaceId:t,entries:l,gatewayDefault:u?AS(s,u):{status:"unavailable",reason:"no interface named for the gateway default"}}}function TS(e){const t=(n,s)=>n.name.localeCompare(s.name)||s.bundleVersion.localeCompare(n.bundleVersion,void 0,{numeric:!0})||n.value.localeCompare(s.value);return["shared","mine"].map(n=>({id:n,label:pv[n],entries:e.filter(s=>s.group===n).sort(t)})).filter(n=>n.entries.length>0)}const RS={"abstractcode.agent.v1":"Code agent","abstractassistant.agent.v1":"Assistant","abstractcode.coding.v1":"Coding",tools:"tools",event:"event",chat:"chat"};function IS(e){return RS[e]??e}function MS(e,t=[]){const n=e.bundleVersion?`@${e.bundleVersion}`:"";return e.showInterfaces?!e.interfaces.length&&e.automationTrigger?[Dh(e.automationTrigger),n].filter(Boolean).join(" · "):[[...new Set(e.interfaces.map(IS))].join(", "),n].filter(Boolean).join(" · "):n}function LS(e){var l;const t=qn((l=qn(e))==null?void 0:l.trigger),n=Gt(t==null?void 0:t.source_id);if(!t||!n||typeof t.source_version!="number")return;const s=qn(t.config)??{},i=Gt(t.connection_id);return{source_id:n,source_version:t.source_version,config:s,...i?{connection_id:i}:{}}}function OS(e){return e.value}function PS(e){return e?e.status==="unavailable"?e.reason:`${e.name}${e.bundleVersion?` @${e.bundleVersion}`:""}`:""}function DS(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 FS(e,t=!0){const n=(e==null?void 0:e.entries)??[],s=[];t&&s.push({key:"default",value:ju,name:"Gateway default",detail:PS((e==null?void 0:e.gatewayDefault)??null),group:null,entry:null});for(const i of TS(n))for(const l of i.entries)s.push({key:l.value,value:l.value,name:l.name,detail:MS(l,n),title:OS(l),group:i.id,entry:l});return s}async function zS(e,t,n){var l;const s=await fetch(ct(e,we(t)),{credentials:"include",headers:{Accept:"application/json"},signal:n}),i=await s.json().catch(()=>null);if(!s.ok){const u=((l=i==null?void 0:i.detail)==null?void 0:l.message)||(i==null?void 0:i.message)||(typeof(i==null?void 0:i.detail)=="string"?i.detail:"");throw new Error(u||`The gateway answered ${s.status}.`)}return i}function BS(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 WS(e){const{interfaceId:t,defaultInterface:n,allVersions:s=!1,enabled:i=!0,gatewayBaseUrl:l,reloadKey:u}=e,d=y.useRef(e.request);d.current=e.request;const[f,m]=y.useState(0),[p,g]=y.useState({status:"idle",data:null,error:""});y.useEffect(()=>{if(!i){g({status:"idle",data:null,error:""});return}const v=new AbortController;g(N=>({...N,status:"loading",error:""}));const C=ES(t,{allVersions:s});return(d.current?d.current(C,{signal:v.signal}):zS(l,C,v.signal)).then(N=>{v.signal.aborted||g({status:"ready",data:yv(N,t,{defaultInterface:n}),error:""})}).catch(N=>{v.signal.aborted||g({status:"error",data:null,error:BS(N)})}),()=>v.abort()},[t,n,s,i,l,u,f]);const b=y.useCallback(()=>m(v=>v+1),[]);return{...p,reload:b}}function US(e){if(!e||typeof window>"u")return{};const t=e.getBoundingClientRect(),n=window.innerWidth,s=window.innerHeight,i=Math.min(Math.max(t.width,300),440,n-32),l=Math.max(16,Math.min(t.left,n-16-i)),u=s-t.bottom-16;return u>=220||u>=t.top?{position:"fixed",left:l,width:i,top:t.bottom+4,maxHeight:Math.max(160,u)}:{position:"fixed",left:l,width:i,bottom:s-t.top+4,maxHeight:Math.max(160,t.top-16)}}function wv(...e){return e.filter(Boolean).join(" ")}function vv(e){const t=WS({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,s=e.showDefault!==!1&&(e.interfaceId!==null||!!e.defaultInterface),i=y.useId().replace(/:/g,""),l=`${i}-list`,[u,d]=y.useState(!1),[f,m]=y.useState(-1),p=y.useRef(null),g=y.useRef(null),[b,v]=y.useState({}),C=e.entryDetail,x=y.useMemo(()=>FS(n.data,s).map(I=>{const z=I.entry&&C?C(I.entry):null;return z?{...I,detail:z}:I}),[n.data,s,C]),N=x.find(I=>I.value===e.value),k=N?{name:N.name,detail:N.detail}:e.currentLabel?{name:e.currentLabel.name,detail:e.currentLabel.detail||""}:n.status==="loading"?{name:"Loading flows…",detail:""}:{name:e.value===ju?"Gateway default":"Choose a flow",detail:""},T=String(e.unavailableReason||"").trim(),$=!T&&n.status==="ready",j=y.useCallback(()=>{d(!1),m(-1)},[]),A=y.useCallback(()=>{if(!$)return;v(US(g.current)),d(!0);const I=x.findIndex(z=>z.value===e.value);m(I>=0?I:0)},[$,x,e.value]),S=y.useCallback(I=>{var z;j(),I.value!==e.value&&e.onChange(I.value,I.entry),(z=g.current)==null||z.focus()},[j,e]);y.useEffect(()=>{if(!u)return;const I=V=>{p.current&&!p.current.contains(V.target)&&j()},z=()=>j();return document.addEventListener("mousedown",I),document.addEventListener("touchstart",I),window.addEventListener("resize",z),()=>{document.removeEventListener("mousedown",I),document.removeEventListener("touchstart",I),window.removeEventListener("resize",z)}},[u,j]),y.useEffect(()=>{var z;if(!u||f<0)return;const I=typeof document<"u"?document.getElementById(`${i}-opt-${f}`):null;(z=I==null?void 0:I.scrollIntoView)==null||z.call(I,{block:"nearest"})},[u,f,i]);const M=I=>{if(!u){["Enter"," ","ArrowDown","ArrowUp"].includes(I.key)&&(I.preventDefault(),A());return}if(I.key==="Escape"){I.preventDefault(),j();return}if(I.key==="Tab"){j();return}if(I.key==="Enter"||I.key===" "){I.preventDefault(),f>=0&&x[f]&&S(x[f]);return}const z=DS(I.key,f,x.length);z!==null&&(I.preventDefault(),m(z))};return a.jsxs("div",{ref:p,className:wv("af-workflow-picker",e.className),"data-interface":e.interfaceId??"any",children:[a.jsxs("button",{ref:g,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":l,"aria-activedescendant":u&&f>=0?`${i}-opt-${f}`:void 0,"aria-disabled":$?void 0:!0,title:T||void 0,onClick:()=>u?j():A(),onKeyDown:M,children:[a.jsxs("span",{className:"af-workflow-picker__value",id:`${i}-value`,children:[a.jsx("span",{className:"af-workflow-picker__name",children:k.name}),k.detail?a.jsx("span",{className:"af-workflow-picker__detail",children:k.detail}):null]}),a.jsx("span",{className:"af-workflow-picker__caret","aria-hidden":"true"})]}),u?a.jsx(VS,{id:l,idBase:i,rows:x,value:e.value,highlight:f,ariaLabel:e.ariaLabel||"Workflow",style:b,onHighlight:m,onChoose:S}):null,n.status==="error"?a.jsx("span",{className:"af-workflow-picker__error",role:"alert",children:n.error}):n.status==="ready"&&x.every(I=>!I.entry)&&!s?a.jsx("span",{className:"af-workflow-picker__empty",role:"status",children:mv}):null]})}function VS(e){const t=(l,u)=>a.jsxs("div",{id:`${e.idBase}-opt-${u}`,role:"option","aria-selected":l.value===e.value,"data-value":l.value,title:l.title,className:wv("af-workflow-picker__option",u===e.highlight&&"af-workflow-picker__option--highlighted",l.value===e.value&&"af-workflow-picker__option--selected"),onMouseEnter:()=>e.onHighlight(u),onMouseDown:d=>d.preventDefault(),onClick:()=>e.onChoose(l),children:[a.jsx("span",{className:"af-workflow-picker__name",children:l.name}),l.detail?a.jsx("span",{className:"af-workflow-picker__detail",children:l.detail}):null]},l.key),n=e.rows.map((l,u)=>({row:l,index:u})),s=n.filter(l=>l.row.group===null),i=["shared","mine"].map(l=>({g:l,items:n.filter(u=>u.row.group===l)})).filter(l=>l.items.length>0);return a.jsxs("div",{id:e.id,role:"listbox","aria-label":e.ariaLabel,className:"af-workflow-picker__list",style:e.style,children:[s.map(l=>t(l.row,l.index)),i.map(({g:l,items:u})=>a.jsxs("div",{role:"group","aria-labelledby":`${e.idBase}-g-${l}`,"data-group":l,children:[a.jsx("div",{id:`${e.idBase}-g-${l}`,className:"af-workflow-picker__group",role:"presentation",children:pv[l]}),u.map(d=>t(d.row,d.index))]},l)),i.length===0?a.jsx("p",{className:"af-workflow-picker__empty",children:mv}):null]})}function _v(e){const t=ah(e.target);return a.jsxs("div",{className:"af-auto__field",children:[a.jsx("span",{children:"Flow"}),a.jsx(vv,{...e.options,ariaLabel:"Automation flow",value:t,currentLabel:{name:HS(t,e.options)},onChange:(n,s)=>e.onChange(n==="@default"?{flow_id:"@default",interface:e.options.interfaceId||e.options.defaultInterface||"abstractcode.agent.v1"}:{bundle_ref:`${s.bundleId}@${s.bundleVersion}`,flow_id:s.flowId})})]})}function HS(e,t){var f,m,p;const n=((m=(f=t.workflows)==null?void 0:f.data)==null?void 0:m.entries)??[],s=n.find(g=>g.value===e);if(s)return s.name;const i=e.indexOf("@"),l=e.lastIndexOf(":"),u=i>0?e.slice(0,i):l>0?e.slice(0,l):e,d=l>0?e.slice(l+1):"";return((p=n.find(g=>g.bundleId===u&&(!d||g.flowId===d)))==null?void 0:p.name)||u||e}async function GS(e,t){var b,v;const n=e.flow_id==="@default"?(v=(b=t.workflows)==null?void 0:b.data)==null?void 0:v.gatewayDefault:null,s="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(!s||!i||!t.request)throw new Error("Workflow inputs could not be checked. Refresh the workflow list and try again.");const l=s.lastIndexOf("@"),u=l<0?s:s.slice(0,l),d=l<0?"":s.slice(l+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[C,x]of Object.entries(m.properties))x&&"default"in x&&(p[C]=x.default);Object.assign(p,e.input_data||{});const g=(Array.isArray(m.required)?m.required:[]).filter(C=>p[C]===void 0);if(g.length)throw new Error(`This workflow needs additional inputs: ${g.join(", ")}. Configure a new automation from that workflow's input form, or choose a compatible workflow.`);return{...e,input_data:p}}function uh(e){if(zh(e.status))return null;const t=Ze.not_set_up,n=Ze.open_my_email,s=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 a.jsxs("p",{className:"af-auto__hint af-email__notice",role:"note","data-email-setup":"missing",children:[s,e.onOpenMyEmail?a.jsx("button",{type:"button",className:"af-auto__linkbtn","data-action":"open-my-email",onClick:e.onOpenMyEmail,children:n}):n,i?a.jsxs("span",{className:"af-email__cause",children:[" (",i,")"]}):null]})}function KS(e){const t=e.value,n=d=>e.onChange({...t,...d}),s=d=>`${e.idBase}-email-${d}`,i=il(Wh(t.usesModel)),l=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 a.jsxs("div",{className:"af-email__trigger","data-field":"email-trigger",children:[a.jsxs("div",{className:"af-auto__row",children:[a.jsx("span",{children:Ze.every_label}),a.jsx("input",{type:"number",min:1,step:1,value:String(l.amount),disabled:u,"aria-label":"Check interval amount",name:"email_every_amount",onChange:d=>n({every:{amount:Number(d.target.value),unit:l.unit}})}),a.jsxs("select",{value:l.unit,disabled:u,"aria-label":"Check interval unit",name:"email_every_unit",onChange:d=>n({every:{amount:l.amount,unit:d.target.value}}),children:[a.jsx("option",{value:"m",children:"minutes"}),a.jsx("option",{value:"h",children:"hours"}),a.jsx("option",{value:"d",children:"days"})]})]}),a.jsx("p",{className:"af-auto__hint","data-email-rule":"interval",children:Ze.interval_rule}),a.jsxs("label",{className:"af-auto__field",htmlFor:s("batch"),children:[a.jsx("span",{children:Ze.max_batch_label}),a.jsx("input",{id:s("batch"),name:"email_max_batch",type:"number",min:1,max:ih,step:1,disabled:u,value:String(t.maxBatch??Fh),onChange:d=>n({maxBatch:d.target.value.trim()===""?null:Number(d.target.value)})})]}),a.jsx("p",{className:"af-auto__hint",children:Ze.max_batch_hint}),a.jsxs("fieldset",{className:"af-auto__field af-email__filters",disabled:u,children:[a.jsx("legend",{children:Ze.filters_legend}),a.jsxs("label",{className:"af-auto__field",htmlFor:s("from"),children:[a.jsx("span",{children:Ze.from_in}),a.jsx("input",{id:s("from"),name:"email_from_in",value:t.fromIn,spellCheck:!1,placeholder:"alice@example.com, billing@example.org",onChange:d=>n({fromIn:d.target.value})})]}),a.jsxs("label",{className:"af-auto__field",htmlFor:s("domain"),children:[a.jsx("span",{children:Ze.from_domain_in}),a.jsx("input",{id:s("domain"),name:"email_from_domain_in",value:t.fromDomainIn,spellCheck:!1,placeholder:"example.com",onChange:d=>n({fromDomainIn:d.target.value})})]}),a.jsxs("label",{className:"af-auto__field",htmlFor:s("to"),children:[a.jsx("span",{children:Ze.to_in}),a.jsx("input",{id:s("to"),name:"email_to_in",value:t.toIn,spellCheck:!1,onChange:d=>n({toIn:d.target.value})})]}),a.jsxs("label",{className:"af-auto__field",htmlFor:s("subject"),children:[a.jsx("span",{children:Ze.subject_contains}),a.jsx("input",{id:s("subject"),name:"email_subject_contains",value:t.subjectContains,maxLength:200,onChange:d=>n({subjectContains:d.target.value})})]}),a.jsxs("label",{className:"af-auto__field",htmlFor:s("attach"),children:[a.jsx("span",{children:Ze.has_attachment}),a.jsxs("select",{id:s("attach"),name:"email_has_attachment",value:t.hasAttachment,onChange:d=>n({hasAttachment:d.target.value}),children:[a.jsx("option",{value:"any",children:Ze.has_attachment_any}),a.jsx("option",{value:"yes",children:Ze.has_attachment_yes}),a.jsx("option",{value:"no",children:Ze.has_attachment_no})]})]}),a.jsx("p",{className:"af-auto__hint",children:Ze.list_hint})]})]})}function JS(e){const t=s=>`${e.idBase}-email-${s}`,n=e.disabled===!0;return a.jsxs("div",{className:"af-email__options","data-field":"email-options",children:[a.jsx(Br,{variant:"row",action:"notify-email",label:Ze.notify_label,checked:e.notifyEmail,unavailableReason:n?"Connect a mailbox first.":null,onChange:s=>e.onNotifyEmailChange(s)}),a.jsxs("p",{className:"af-auto__hint",children:[Ze.notify_hint," Turn on Email result to choose yourself or other email addresses."]}),e.notifyEmail?a.jsxs("fieldset",{className:"af-auto__field",disabled:n,"data-field":"email-recipients",children:[a.jsx("legend",{children:Ze.recipients_legend}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:t("rcpt"),value:"self",checked:e.recipients.mode==="self",onChange:()=>e.onRecipientsChange({...e.recipients,mode:"self"})})," ",Ze.recipients_self]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:t("rcpt"),value:"list",checked:e.recipients.mode==="list",onChange:()=>e.onRecipientsChange({...e.recipients,mode:"list"})})," ",Ze.recipients_list]}),e.recipients.mode==="list"?a.jsx("textarea",{name:"email_recipient_list","aria-label":Ze.recipients_list,rows:2,spellCheck:!1,value:e.recipients.addresses,placeholder:"colleague@example.com",onChange:s=>e.onRecipientsChange({mode:"list",addresses:s.target.value})}):null,a.jsx("p",{className:"af-auto__hint",children:Ze.recipients_hint})]}):null]})}const qS={active:"play",paused:"pause",completed:"check",failed:"error",archived:"archive"};function YS(e){const t=String(e.status),n=qS[t];return a.jsxs("span",{className:`af-auto__status af-auto__status--${t}${e.className?` ${e.className}`:""}`,"data-state":t,children:[a.jsx("span",{className:"af-auto__status-word",children:Fj[t]??t}),n?a.jsx(de,{name:n,size:e.iconSize??11,className:"af-auto__status-icon"}):null]})}const Ug="Discuss this run",Su=e=>a.jsx("div",{className:"af-auto-text","data-unformatted":"true",children:e});function QS(e){return cl(e)?e:{status:0,code:"client_error",message:e&&typeof e=="object"&&"message"in e?String(e.message):String(e)}}function XS(e){const t=e.path.split(new RegExp("(?<=[/\\\\_-])"));return a.jsx("code",{className:"af-auto__path-text",children:t.map((n,s)=>a.jsxs(gt.Fragment,{children:[n,s<t.length-1?a.jsx("wbr",{}):null]},s))})}function bv(e,t){const n=e.trigger,s=t.find(i=>i.id===n.source_id&&i.version===n.source_version);return s?"available"in s&&s.available===!1?`Trigger source ${n.source_id}@${n.source_version} is unavailable${s.unavailable_reason?`: ${s.unavailable_reason}`:"."}`:null:`This gateway does not list the trigger source ${n.source_id}@${n.source_version}.`}function ZS(e){const t=e.summary,n=qj(t),s=bv(t,e.triggerSources),i=Yj(t,e.nowMs??Date.now());return a.jsxs("header",{className:"af-auto__head",children:[a.jsxs("div",{className:"af-auto__titlebar",children:[a.jsx("h2",{className:"af-auto__title",id:e.titleId,tabIndex:-1,children:t.title}),a.jsx(YS,{status:t.status}),t.legacy?a.jsx("span",{className:"af-auto__legacy",children:"Legacy schedule"}):null]}),a.jsxs("dl",{className:"af-auto__facts",children:[e.workflowLabel?a.jsxs(a.Fragment,{children:[a.jsx("dt",{children:"Flow"}),a.jsx("dd",{"data-fact":"workflow",children:e.workflowLabel})]}):null,a.jsx("dt",{children:"When"}),a.jsxs("dd",{"data-fact":"trigger",children:[Ow(t.trigger,t,{connections:e.triggerConnections,mailboxes:e.mailboxes}),s?a.jsxs("span",{className:"af-auto__warn",role:"note",children:[" ",s]}):null]}),a.jsx("dt",{children:"Context"}),a.jsx("dd",{"data-fact":"context",children:Pw(t.context_mode)}),n?a.jsxs(a.Fragment,{children:[a.jsx("dt",{children:"Now"}),a.jsx("dd",{"data-fact":"current",className:"is-notable",children:n})]}):null,a.jsx("dt",{children:"Next run"}),a.jsx("dd",{"data-fact":"next",children:i}),a.jsx("dt",{children:"Runs"}),a.jsx("dd",{"data-fact":"count",children:t.occurrence_count}),t.workspace_root&&e.onOpenWorkspace?a.jsxs(a.Fragment,{children:[a.jsx("dt",{children:"Files"}),a.jsx("dd",{"data-fact":"workspace",className:"af-auto__workspace",children:a.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 files",onClick:()=>{var l;return(l=e.onOpenWorkspace)==null?void 0:l.call(e,t.automation_id)},children:[a.jsx(de,{name:"folder",size:14,className:"af-auto__path-icon"}),a.jsx("span",{children:"Browse its files"})]})})]}):null,a.jsx("dt",{children:"Attention"}),a.jsx("dd",{"data-fact":"attention",className:t.attention.unread||t.attention.pending_waits?"is-notable":void 0,children:tS(t)})]})]})}function e0(e){var u,d;const t=e.definition,n=e.renderText??Su,s=t.target.input_data.prompt,i=t.policy.retry,l=t.policy.tool_approval;return a.jsxs("details",{className:"af-auto__definition","data-definition-revision":t.revision,open:e.open,children:[a.jsxs("summary",{children:[a.jsx(de,{name:"chevronRight",size:14,className:"af-auto__definition-chevron"}),a.jsx(de,{name:"file",size:14}),a.jsx("span",{className:"af-auto__definition-title",children:"Details"})]}),a.jsxs("dl",{className:"af-auto__facts",children:[a.jsx("dt",{children:"Target"}),a.jsx("dd",{"data-def":"target",children:a.jsx("code",{children:t.target.workflow_id})}),typeof s=="string"&&s?a.jsxs(a.Fragment,{children:[a.jsx("dt",{children:"Task"}),a.jsx("dd",{"data-def":"prompt",children:n(s)})]}):null,a.jsx("dt",{children:"Trigger"}),a.jsxs("dd",{"data-def":"trigger",children:[t.trigger.source_id,"@",t.trigger.source_version," · ",Ow(t.trigger,e.served,{connections:e.triggerConnections,mailboxes:e.mailboxes}),ll(t.trigger)?a.jsx("div",{className:"af-auto__hint","data-def":"email_rule",children:Vw(t.trigger.config)}):null,a.jsx("pre",{className:"af-auto__json",children:JSON.stringify(t.trigger.config,null,2)})]}),a.jsx("dt",{children:"Context"}),a.jsxs("dd",{"data-def":"context",children:[Pw(t.context.mode),t.context.mode==="growing"?` · ${Number(((u=t.context.growing)==null?void 0:u.max_tokens)??5e4).toLocaleString()} tokens`:""]}),a.jsx("dt",{children:"Tools"}),a.jsx("dd",{"data-def":"tool_approval",children:l==="ask"?"Ask before each tool call (ask)":l==="auto"?"Run without asking (auto)":String(l)}),a.jsx("dt",{children:"Notify"}),a.jsx("dd",{"data-def":"notify",children:Gj(t.notify)}),(d=t.notify)!=null&&d.channels.includes("email")?a.jsxs(a.Fragment,{children:[a.jsx("dt",{children:"Recipients"}),a.jsx("dd",{"data-def":"email_recipients",children:Hj(t.notify.recipients)})]}):null,a.jsx("dt",{children:"Retries"}),a.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]}),t.workspace_root?a.jsxs(a.Fragment,{children:[a.jsx("dt",{children:"Folder"}),a.jsx("dd",{"data-def":"workspace",children:a.jsx(XS,{path:t.workspace_root})})]}):null,a.jsx("dt",{children:"Revision"}),a.jsx("dd",{"data-def":"revision",children:t.revision})]})]})}const ul=Lh,dh=ul.labels,xv={active:"play",pause:"pause",resume:"play",run_now:ul.icons.run_now.name,stop_current:"stop",revise:"edit",archive:"archive",unarchive:"unarchive",discuss:"chat"},fh=ul.hints,t0=ul.run_now_next_run_line,n0=ul.run_now_growing_line;function nl(e,t){const n=[fh[e]];return e==="run_now"&&t&&(t.next_run_local&&n.push(t0.replace("{time}",tv(t.next_run_local,t.time_zone))),t.context_mode==="growing"&&n.push(n0)),n.join(`
|
|
58
|
-
`)}function s0(e,t,n){const s=new Map;for(const u of t){const d=e[u];if(d.enabled)continue;const f=d.reason??"Not available now.";s.set(f,[...s.get(f)??[],u])}const i=[],l={};return[...s.entries()].forEach(([u,d],f)=>{const m=`${n}-why-${f}`;i.push({id:m,text:`${d.map(p=>dh[p]).join(", ")}: ${u}`});for(const p of d)l[p]=m}),{lines:i,describedBy:l}}function wn(e){return a.jsxs(a.Fragment,{children:[a.jsx(de,{name:e.icon,size:14,className:"af-auto__btn-icon"}),a.jsx("span",{children:e.label})]})}function r0(e){const t=Co(e.summary,e.occurrences,e.busy),n=e.summary.status==="archived",i=s0(t,["active","run_now","stop_current","revise",n?"unarchive":"archive"],e.idBase??`af-auto-${e.summary.automation_id}`),l=(u,d,f)=>{const m=nl(u,e.summary);return a.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:a.jsx(wn,{icon:xv[u],label:(f==null?void 0:f.label)??dh[u]})},u)};return a.jsxs("div",{className:"af-auto__controls-wrap",children:[a.jsxs("div",{className:"af-auto__actionbar",children:[a.jsxs("div",{className:"af-auto__controls",role:"toolbar","aria-label":"Automation controls",children:[a.jsx(Br,{className:"af-auto__switch",action:"active",label:dh.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:nl("active",e.summary),onChange:()=>e.onCommand(Kw(e.summary))},"active"),l("run_now",()=>e.onCommand(Tt.run_now)),l("stop_current",()=>e.onCommand(Tt.stop_current)),l("revise",e.onToggleRevise,{pressed:e.reviseOpen,action:"edit"}),n?l("unarchive",()=>e.onCommand(Tt.unarchive)):l("archive",e.onAskArchive,{danger:!0,label:"Archive…"})]}),a.jsx("span",{className:`af-auto__notice${e.notice?" af-auto__notice--on":""}`,role:"status",tabIndex:-1,children:e.notice?a.jsxs(a.Fragment,{children:[a.jsx(de,{name:"check",size:13}),a.jsx("span",{className:"af-auto__notice-text",children:e.notice}),e.onDismissNotice?a.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:a.jsx(de,{name:"x",size:12})}):null]}):null})]}),i.lines.length?a.jsxs("p",{className:"af-auto__reasons",children:[a.jsx(de,{name:"info",size:12,className:"af-auto__reasons-icon"}),i.lines.map(u=>a.jsx("span",{id:u.id,children:u.text},u.id))]}):null,e.summary.status==="paused"&&t.run_now.enabled?a.jsx("p",{className:"af-auto__hint",children:"Paused: scheduled runs are skipped. Run now works and keeps it paused."}):null,e.confirmingArchive&&!n?a.jsxs("div",{className:"af-auto__confirm",role:"group","aria-label":"Confirm archive",children:[a.jsxs("p",{children:["Archive “",e.summary.title,"”? Its history stays readable; it will not run again. The current run, if any, finishes."]}),a.jsxs("div",{className:"af-auto__row",children:[a.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--danger","data-action":"archive-confirm",disabled:!t.archive.enabled,onClick:()=>e.onCommand(Tt.archive),children:a.jsx(wn,{icon:"archive",label:"Archive"})}),a.jsx("button",{type:"button",className:"af-auto__btn","data-action":"archive-cancel",onClick:e.onCancelArchive,children:a.jsx(wn,{icon:"x",label:"Keep it"})})]})]}):null]})}const Vg=[["m","minutes"],["h","hours"],["d","days"]];function a0(e,t){const n=N=>{const k=e.elements.namedItem(N);return k&&typeof k.value=="string"?k.value:null},s=n("every_amount"),i=n("every_unit"),l=s!==null&&i!==null?`${s.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,g=e.elements.namedItem("notify_email"),b=g&&typeof g.checked=="boolean"?g.checked:t.notifyEmail??null,v=e.elements.namedItem("email_recipients"),C=n("email_recipient_list"),x=v&&(v.value==="self"||v.value==="list")?{mode:v.value,addresses:C??""}:t.emailRecipients??null;return{title:n("title")??t.title,every:l,context:d,growingMaxTokens:n("growing_max_tokens")===null?t.growingMaxTokens:Number(n("growing_max_tokens")),prompt:f??t.prompt??null,toolApproval:p,notifyEmail:b,emailRecipients:x}}function kv(e){var S;const t=Jw(e.summary,e.definition),[n,s]=y.useState(),[i,l]=y.useState(t.tools??null),[u,d]=y.useState(t.context),[f,m]=y.useState(!!t.notifyEmail),[p,g]=y.useState(((S=t.calendar)==null?void 0:S.kind)??null),[b,v]=y.useState(t.calendar?Bg(t.calendar):null),C=p&&b?cv(p,b):null,x=(()=>{if(!C)return null;const M=Vh(C);if(!M.config)return null;const I=e.summary.trigger.config.time_zone;return{source_id:e.summary.trigger.source_id,source_version:e.summary.trigger.source_version,config:{...M.config,...typeof I=="string"?{time_zone:I}:{}}}})(),N=dv(x,e.previewSchedule),k=t.every?il(t.every):null,T=k&&k.unit==="s"?[["s","seconds"],...Vg]:Vg,$=`af-auto-revise-${e.summary.automation_id}`,j=zh(e.emailStatus),A=ll(e.summary.trigger);return a.jsxs("form",{className:"af-auto__revise","aria-labelledby":`${$}-heading`,onSubmit:M=>{M.preventDefault(),e.onSubmit({...a0(M.currentTarget,t),...C?{calendar:C}:{},...n?{target:n}:{},...e.availableTools!==void 0?{tools:i}:{}})},onKeyDown:M=>{M.key==="Escape"&&e.onCancel&&(M.preventDefault(),e.onCancel())},children:[e.heading===null?a.jsx("span",{id:`${$}-heading`,hidden:!0,children:"Edit automation"}):a.jsxs("h3",{className:"af-auto__form-title",id:`${$}-heading`,children:[a.jsx(de,{name:"edit",size:14})," ",e.heading??"Edit automation"]}),e.definition&&e.workflowPickerOptions?a.jsx(_v,{target:n||e.definition.target,options:e.workflowPickerOptions,onChange:s}):null,a.jsxs("label",{className:"af-auto__field",htmlFor:`${$}-title`,children:[a.jsx("span",{children:"Title"}),a.jsx("input",{id:`${$}-title`,name:"title",defaultValue:t.title,maxLength:120,required:!0})]}),t.prompt!==null&&t.prompt!==void 0?a.jsxs("label",{className:"af-auto__field",htmlFor:`${$}-prompt`,children:[a.jsx("span",{children:"Task"}),a.jsx("textarea",{id:`${$}-prompt`,name:"prompt",defaultValue:t.prompt,rows:Math.min(10,Math.max(3,t.prompt.split(`
|
|
60
|
-
`).length+1)),required:!0})]}):null,k?a.jsxs("fieldset",{className:"af-auto__field",children:[a.jsx("legend",{children:A?Ze.every_label:"Repeat every (UTC)"}),a.jsxs("div",{className:"af-auto__row",children:[a.jsx("input",{name:"every_amount",type:"number",min:1,step:1,defaultValue:k.amount,"aria-label":"Interval amount"}),a.jsx("select",{name:"every_unit",defaultValue:k.unit,"aria-label":"Interval unit",children:T.map(([M,I])=>a.jsx("option",{value:M,children:I},M))})]}),A?a.jsx("p",{className:"af-auto__hint","data-email-rule":"interval",children:Ze.interval_rule}):null]}):C?a.jsxs("fieldset",{className:"af-auto__field","data-field":"calendar",children:[a.jsx("legend",{children:ut.legend}),a.jsx("div",{className:"af-auto__row",role:"radiogroup","aria-label":"Schedule kind",children:ev.map(M=>a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:`${$}-calendar-kind`,value:M,checked:C.kind===M,disabled:e.busy,onChange:()=>g(M)})," ",ut[`kind_${M}`]]},M))}),a.jsx(uv,{value:C,onChange:M=>v(I=>Hh(I??Bg(M),M)),idBase:$,disabled:e.busy}),a.jsx(fv,{state:N,whose:"automation"})]}):a.jsx("p",{className:"af-auto__hint",children:"This trigger has no interval to change."}),a.jsxs("fieldset",{className:"af-auto__field",children:[a.jsx("legend",{children:"Context"}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"context",value:"independent",defaultChecked:t.context==="independent",onChange:()=>d("independent")})," Independent — each run starts fresh"]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"context",value:"growing",defaultChecked:t.context==="growing",onChange:()=>d("growing")})," Growing — each run sees the previous runs"]}),a.jsx("div",{hidden:u!=="growing",children:a.jsxs("label",{className:"af-auto__field",children:[a.jsx("span",{children:"Max growing context (tokens)"}),a.jsx("input",{name:"growing_max_tokens",type:"number",min:1,step:1,disabled:e.busy||u!=="growing",defaultValue:t.growingMaxTokens}),a.jsx("span",{className:"af-auto__hint",children:Yw})]})})]}),t.toolApproval?a.jsxs("fieldset",{className:"af-auto__field",children:[a.jsx("legend",{children:"Tools"}),e.availableTools!==void 0?a.jsx(hv,{availableTools:e.availableTools,value:i,onChange:l,disabled:e.busy}):null,a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"tool_approval",value:"auto",defaultChecked:t.toolApproval==="auto"})," Run without asking"]}),a.jsxs("label",{children:[a.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?a.jsxs("fieldset",{className:"af-auto__field","data-field":"email",children:[a.jsx("legend",{children:"Mailbox"}),j?null:a.jsx(uh,{status:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail}),a.jsx(ek,{variant:"row",action:"notify-email",name:"notify_email",label:Ze.notify_label,defaultChecked:!!t.notifyEmail,onChange:m,unavailableReason:!j&&!t.notifyEmail?"Connect a mailbox first.":null}),a.jsxs("p",{className:"af-auto__hint",children:[Ze.notify_hint," Turn on Email result to choose yourself or other email addresses."]}),a.jsx("div",{hidden:!f,children:a.jsxs("fieldset",{className:"af-auto__field",disabled:!f,"data-field":"email-recipients",children:[a.jsx("legend",{children:Ze.recipients_legend}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"email_recipients",value:"self",defaultChecked:t.emailRecipients.mode==="self"})," ",Ze.recipients_self]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"email_recipients",value:"list",defaultChecked:t.emailRecipients.mode==="list",disabled:!j&&t.emailRecipients.mode!=="list"})," ",Ze.recipients_list]}),a.jsx("textarea",{name:"email_recipient_list","aria-label":Ze.recipients_list,rows:2,spellCheck:!1,defaultValue:t.emailRecipients.addresses,disabled:!j&&t.emailRecipients.mode!=="list"}),a.jsx("p",{className:"af-auto__hint",children:Ze.recipients_hint})]})})]}):null,a.jsx("p",{className:"af-auto__hint",children:"Changes apply from the next run; runs that a new schedule would have had in the past are not made up."}),e.errors.length?a.jsx("ul",{className:"af-auto__form-errors",role:"alert",children:e.errors.map(M=>a.jsx("li",{children:M},M))}):null,a.jsxs("div",{className:"af-auto__row",children:[a.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary","data-action":"edit-save",disabled:e.busy,children:a.jsx(wn,{icon:"check",label:e.submitLabel??"Save changes"})}),e.onCancel?a.jsx("button",{type:"button",className:"af-auto__btn","data-action":"edit-cancel",onClick:e.onCancel,children:a.jsx(wn,{icon:"x",label:"Cancel"})}):null]})]})}function o0(e,t){const n=typeof t=="string"?t.trim():"",s=typeof e=="string"?e:"",i=s.indexOf(`
|
|
61
|
-
`);if(!n||i<0||!s.startsWith("["))return null;const l=s.slice(i+1);return l===n||l.startsWith(`${n}
|
|
62
|
-
`)?n:null}function i0(e){var n;const t=String(((n=e.trigger)==null?void 0:n.source_id)||"");return t==="schedule"?"on schedule":t==="manual"?"run by hand":t.startsWith("email")?"new mail":t?"something arrived":""}const l0="What the agent received";function hh(e,t){const n=e.elements.namedItem(t);return n&&typeof n.value=="string"?n.value.trim():""}function c0(e){const t=e.wait,n=`${e.idBase}-${t.run_id}-${t.wait_key}-prompt`,s=u=>e.onAnswerWait(t.run_id,t.wait_key,u),i=e.renderText??Su,l=u=>a.jsxs("div",{className:"af-auto-wait__prompt",id:n,children:[a.jsx("span",{className:"af-auto-wait__kind",children:av[t.kind]??"Waiting"}),t.prompt?i(t.prompt):a.jsxs("span",{children:[" ",u]})]});if(t.kind==="tool_approval"){const u=yS(t);return a.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:[l("A tool call needs your approval."),u&&u.length?a.jsx("ul",{className:"af-auto-wait__calls","aria-label":"Tool calls to approve",children:u.map((d,f)=>a.jsxs("li",{"data-tool":d.name,children:[a.jsx("code",{className:"af-auto-wait__tool",children:d.name}),a.jsx("pre",{className:"af-auto-wait__args",children:JSON.stringify(d.arguments,null,2)})]},d.call_id??`${d.name}:${f}`))}):a.jsx("p",{className:"af-auto__hint",children:"The gateway did not list the tool calls; open the run to see them before approving."}),a.jsxs("div",{className:"af-auto__row",children:[a.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--primary","data-action":"wait-approve",disabled:e.busy,onClick:()=>s({approved:!0}),children:a.jsx(wn,{icon:"check",label:"Approve"})}),a.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--danger","data-action":"wait-deny",disabled:e.busy,onClick:()=>s({approved:!1}),children:a.jsx(wn,{icon:"x",label:"Deny"})})]})]})}return t.kind==="event"?a.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=wS(hh(u.currentTarget,"payload"));d.ok?s({payload:d.payload}):(f=e.onWaitError)==null||f.call(e,d.error)},children:[l("The run waits for an event."),a.jsx("textarea",{name:"payload",rows:3,"aria-label":"Event payload (JSON)",placeholder:'{"key": "value"}',disabled:e.busy}),a.jsx("div",{className:"af-auto__row",children:a.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary","data-action":"wait-send-event",disabled:e.busy,children:a.jsx(wn,{icon:"send",label:"Send event"})})})]}):t.kind==="ask_user"?a.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=hh(u.currentTarget,"response");d&&s({response:d})},children:[l("The run is waiting for your input."),t.choices&&t.choices.length?a.jsx("div",{className:"af-auto__row",role:"group","aria-label":"Choices",children:t.choices.map(u=>a.jsx("button",{type:"button",className:"af-auto__btn","data-action":"wait-choice",disabled:e.busy,onClick:()=>s({response:u}),children:u},u))}):null,a.jsxs("div",{className:"af-auto__row",children:[a.jsx("input",{name:"response","aria-label":"Your answer",placeholder:"Your answer",disabled:e.busy}),a.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary","data-action":"wait-answer",disabled:e.busy,children:a.jsx(wn,{icon:"send",label:"Answer"})})]})]}):a.jsxs("div",{className:"af-auto-wait",role:"group","data-wait-key":t.wait_key,"data-wait-kind":String(t.kind),"aria-labelledby":n,children:[l("The run is waiting."),a.jsxs("p",{className:"af-auto__hint",children:["This kind of wait (",String(t.kind),") cannot be answered here; open the run."]})]})}function u0(e){const{row:t,tone:n,badge:s,statusText:i}=e.view,l=`af-auto-occ-${t.run_id}`,u=e.renderText??Su,d=e.discuss.enabled&&e.view.canDiscuss&&!e.busy,f=e.discuss.enabled?e.view.canDiscuss?null:"Available once this run finishes.":e.discuss.reason??"Not available.",m=(N,k)=>e.renderTurn?e.renderTurn({kind:N,role:N==="trigger"?"user":"assistant",text:k,index:t.index,runId:t.run_id}):u(k),p=e.renderTurn?" af-auto-turn--card":"",g=typeof e.task=="string"?e.task.trim():"",b=o0(t.user_turn,g)!==null,v=i0(t),C=oh(t.fired_at,{timeZone:e.timeZone,nowMs:e.nowMs,style:"day"}),x=n==="failed"?t.failure?"No answer.":"No answer: the run failed.":n==="waiting"?"Waiting for your answer.":n==="running"?"Running…":"No answer.";return a.jsxs("li",{className:`af-auto-occ af-auto-occ--${n}`,"data-index":t.index,"data-tone":n,"aria-labelledby":`${l}-h`,children:[a.jsxs("div",{className:`af-auto-turn af-auto-turn--trigger${p}`,"data-turn":"trigger",children:[a.jsxs("div",{className:"af-auto-turn__meta",id:`${l}-h`,title:`${t.trigger.summary} · fired ${eu(t.fired_at)}`,children:[a.jsxs("span",{className:"af-auto-turn__index",children:["Run #",t.index]}),v?` · ${v}`:"",C?` · ${C}`:""]}),e.eventCard?a.jsxs("div",{className:"af-auto-event","data-event-card":"true",children:[a.jsx(de,{name:"inbox",size:14,className:"af-auto__btn-icon"}),a.jsxs("span",{className:"af-auto-event__text",children:[a.jsx("strong",{className:"af-auto-event__source",children:e.eventCard.source}),e.eventCard.what?a.jsxs("span",{children:[" · ",e.eventCard.what]}):null,e.eventCard.at?a.jsxs("span",{className:"af-auto-turn__muted",children:[" · ",e.eventCard.at]}):null]})]}):null,(b?g:t.user_turn).trim()?a.jsx("div",{className:"af-auto-turn__text",children:m("trigger",b?g:t.user_turn)}):null,b?a.jsxs("details",{className:"af-auto-received","data-received":"true",children:[a.jsx("summary",{children:l0}),a.jsx("div",{className:"af-auto-received__body",children:u(t.user_turn)})]}):null]}),a.jsxs("div",{className:`af-auto-turn af-auto-turn--answer${p}`,"data-turn":"answer",children:[a.jsxs("div",{className:"af-auto-turn__meta",children:[s?a.jsx("span",{className:`af-auto-badge af-auto-badge--${n}`,children:s}):null,a.jsx("span",{className:"af-auto-turn__status",children:i}),t.finished_at?a.jsxs("span",{title:eu(t.finished_at),children:[" · ",oh(t.finished_at,{timeZone:e.timeZone,nowMs:e.nowMs,style:"day"})]}):null]}),t.notify?a.jsxs("div",{className:"af-auto-notify","data-notify":"true",children:[a.jsx("strong",{children:t.notify.title}),t.notify.body?a.jsx("div",{className:"af-auto-notify__body",children:u(t.notify.body)}):null]}):null,t.failure?a.jsxs("div",{className:"af-auto-failure","data-failure":t.failure.reason_code,children:[a.jsx("strong",{children:t.failure.reason_code}),": ",t.failure.message," ",a.jsxs("span",{className:"af-auto-turn__muted",children:["(after ",t.failure.attempts," ",t.failure.attempts===1?"attempt":"attempts",")"]})]}):null,t.answer?a.jsx("div",{className:"af-auto-turn__text",children:m("answer",t.answer)}):a.jsx("div",{className:"af-auto-turn__empty",children:x}),t.artifacts.length?a.jsx("ul",{className:"af-auto-artifacts","aria-label":"Artifacts",children:t.artifacts.map(N=>a.jsxs("li",{children:[e.onOpenResource?a.jsxs("button",{type:"button",className:"af-auto__linkbtn","data-action":"open-artifact",onClick:()=>{var k;return(k=e.onOpenResource)==null?void 0:k.call(e,{kind:"artifact",url:N.url,name:N.name,mimeType:N.mime_type,runId:t.run_id})},children:[a.jsx(de,{name:"file",size:13,className:"af-auto__btn-icon"})," ",N.name]}):a.jsx("span",{className:"af-auto-artifact__name",children:N.name})," ",a.jsx("span",{className:"af-auto-turn__muted",children:N.mime_type})]},N.artifact_id))}):null,t.waits.map(N=>a.jsx(c0,{wait:N,busy:e.busy,idBase:l,onAnswerWait:e.onAnswerWait,onWaitError:e.onWaitError,renderText:e.renderText},`${N.run_id}:${N.wait_key}`))]}),a.jsxs("div",{className:"af-auto-occ__foot",children:[a.jsxs("details",{className:"af-auto-occ__details",children:[a.jsx("summary",{children:"Run details"}),a.jsxs("dl",{className:"af-auto__facts",children:[a.jsx("dt",{children:"Run"}),a.jsx("dd",{children:a.jsx("code",{children:t.run_id})}),a.jsx("dt",{children:"Attempts"}),a.jsx("dd",{children:t.attempts})]}),a.jsxs("div",{className:"af-auto__row",children:[a.jsx("button",{type:"button",className:"af-auto__btn","data-action":"open-run",onClick:()=>e.onOpenRun(t.run_id),children:a.jsx(wn,{icon:"list",label:"Open run ledger"})}),e.onOpenResource?a.jsx("button",{type:"button",className:"af-auto__btn","data-action":"open-ledger-json",onClick:()=>{var N;return(N=e.onOpenResource)==null?void 0:N.call(e,{kind:"ledger",url:t.ledger_url,name:`run-${t.run_id}-ledger.json`,runId:t.run_id})},children:a.jsx(wn,{icon:"file",label:"Ledger (JSON)"})}):null,t.workspace_url&&e.onOpenWorkspace?a.jsx("button",{type:"button",className:"af-auto__btn","data-action":"open-workspace",title:"Browse this run's folder",onClick:()=>{var N;return(N=e.onOpenWorkspace)==null?void 0:N.call(e,t.run_id)},children:a.jsx(wn,{icon:"folder",label:"Workspace"})}):null]})]}),e.discussOpen?a.jsxs("form",{className:"af-auto-discuss","aria-label":`${Ug}, from run ${t.index}`,onSubmit:N=>{N.preventDefault();const k=hh(N.currentTarget,"prompt");k&&e.onDiscussSubmit(t.index,k)},children:[a.jsxs("p",{className:"af-auto__hint",children:["Starts a new conversation from run #",t.index," with the automation's whole history (runs 1–",t.index,"). It works in its own folder; the automation's files can be read but not changed (by the file tools; shell commands are not sandboxed), and nothing is written back into the automation."]}),a.jsx("textarea",{name:"prompt",rows:3,"aria-label":"Your message",placeholder:"Ask about this result…",required:!0}),a.jsxs("div",{className:"af-auto__row",children:[a.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary","data-action":"discuss-submit",disabled:e.busy,children:a.jsx(wn,{icon:"send",label:"Start discussion"})}),a.jsx("button",{type:"button",className:"af-auto__btn","data-action":"discuss-cancel",onClick:e.onDiscussCancel,children:a.jsx(wn,{icon:"x",label:"Cancel"})})]})]}):a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--quiet","data-action":"discuss",disabled:!d,title:fh.discuss,"aria-description":fh.discuss,"aria-describedby":f?`${l}-discuss-why`:void 0,onClick:()=>e.onDiscussOpen(t.index),children:a.jsx(wn,{icon:xv.discuss,label:Ug})}),f?a.jsx("span",{className:"af-auto__reasons",id:`${l}-discuss-why`,children:f}):null]})]})]})}const d0=5e3,f0={[Tt.pause]:"Automation paused.",[Tt.resume]:"Automation active.",[Tt.run_now]:"Run requested.",[Tt.stop_current]:"Stop requested.",[Tt.unarchive]:"Unarchived: it is paused until you make it active."};function h0(e){var ve,Ne;const{summary:t,busy:n}=e,s=e.renderText??Su,i=y.useId(),l=y.useRef(null),[u,d]=y.useState(!1),f=e.editOpen!==void 0,p=Co(t,e.occurrences,!1).revise.enabled&&(f?e.editOpen===!0:u),g=y.useRef(null);p?(!g.current||g.current.summary.automation_id!==t.automation_id)&&(g.current={summary:t,definition:e.definition}):g.current=null;const b=g.current,v=y.useRef(e.onEditOpenChange);v.current=e.onEditOpenChange;const C=q=>{var be;f||d(q),(be=v.current)==null||be.call(v,q)},[x,N]=y.useState([]),[k,T]=y.useState(!1),[$,j]=y.useState(null),[A,S]=y.useState(null),[M,I]=y.useState(null);y.useEffect(()=>{if(!M)return;const q=setTimeout(()=>I(null),d0);return()=>clearTimeout(q)},[M]),y.useEffect(()=>{var be;if(!p)return;N([]);const q=zg(l.current,['.af-auto__revise [name="title"]']);q==null||q.focus(),(be=q==null?void 0:q.scrollIntoView)==null||be.call(q,{block:"nearest"})},[p,t.automation_id]);const[z,V]=y.useState(null);y.useEffect(()=>{var q;z&&((q=zg(l.current,[...z,".af-auto__notice",".af-auto__title"]))==null||q.focus(),V(null))},[z]);const Z=y.useRef(null);Z.current||(Z.current=new ov(e.newId??iv));const ie=Z.current,F=q=>S(QS(q)),D=(q,be,xe)=>{S(null),I(null),be(ie.idFor(q)).then(Pe=>{ie.settle(q,{ok:!0}),xe(Pe)},Pe=>{ie.settle(q,{ok:!1,error:Pe}),F(Pe)})},L=eS(t),J=y.useRef(e.onSeen);J.current=e.onSeen;const B=y.useRef(null);B.current||(B.current=new _S),y.useEffect(()=>{const q=B.current,be=L?`${t.automation_id}|${L}`:null;if(!L||!q.next(be,t))return;const xe=t;J.current(L).then(()=>q.succeeded(be),Pe=>{q.failed(be,xe),F(Pe)})});const Y=Co(t,e.occurrences,n),te=Zj(e.occurrences),W=(Ne=(ve=e.definition)==null?void 0:ve.target.input_data)==null?void 0:Ne.prompt,R=q=>e.occurrenceEvents&&q in e.occurrenceEvents?Lj(e.occurrenceEvents[q],{trigger:t.trigger,connections:e.triggerConnections,mailboxes:e.mailboxes,timeZone:t.time_zone,nowMs:e.nowMs}):null,K=t.occurrence_count-e.occurrences.length,ne=A??e.error??null,ue=ne?Ro(ne):null,oe=t.attention;return a.jsxs("section",{ref:l,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:a.jsxs(a.Fragment,{children:[a.jsx(ZS,{summary:t,workflowLabel:e.workflowName,triggerSources:e.triggerSources,titleId:i,nowMs:e.nowMs,onOpenWorkspace:e.onOpenWorkspace,triggerConnections:e.triggerConnections,mailboxes:e.mailboxes}),a.jsx(r0,{summary:t,occurrences:e.occurrences,busy:n,confirmingArchive:k,reviseOpen:p,notice:M,onDismissNotice:()=>I(null),idBase:`${i}-ctl`,onCommand:q=>D(`command:${q}`,be=>e.onCommand(q,void 0,{command_id:be}),()=>{q===Tt.archive?(T(!1),I("Archive requested."),V(['[data-action="archive"]'])):I(f0[q]??"Command sent.")}),onToggleRevise:()=>{N([]),C(!p)},onAskArchive:()=>T(!0),onCancelArchive:()=>{T(!1),V(['[data-action="archive"]'])}})]}),p&&b?a.jsx(kv,{summary:b.summary,definition:b.definition,busy:n,errors:x,availableTools:e.availableTools,workflowPickerOptions:e.workflowPickerOptions,emailStatus:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail,previewSchedule:e.previewSchedule,onCancel:()=>{C(!1),V(['[data-action="edit"]'])},onSubmit:q=>{const be=b.summary,xe=qw(be,q,b.definition);if(xe===null){N(["Nothing changed."]);return}if("errors"in xe){N(xe.errors);return}N([]),D(`revise:${be.revision}:${JSON.stringify(xe)}`,async Pe=>{const Qe=q.target&&xe.target?{...xe,target:await(e.prepareTarget?e.prepareTarget(xe.target):GS(xe.target,e.workflowPickerOptions))}:xe;return e.onRevise(Qe,be.revision,{command_id:Pe})},()=>{I("Saved; applies from the next run."),C(!1),V(['[data-action="edit"]'])})}}):e.definition?a.jsx(e0,{definition:e.definition,renderText:s,served:t,triggerConnections:e.triggerConnections,mailboxes:e.mailboxes}):null,ue?a.jsxs("div",{className:"af-auto__error",role:"alert","data-code":ne==null?void 0:ne.code,children:[a.jsx(de,{name:"error",size:14,className:"af-auto__btn-icon"}),a.jsxs("span",{className:"af-auto__error-text",children:[a.jsx("strong",{children:ue.title})," ",a.jsx("span",{children:ue.detail})]}),A?a.jsx("button",{type:"button",className:"af-auto__icon-btn af-auto__icon-btn--bare","data-action":"dismiss-error","aria-label":"Dismiss",title:"Dismiss",onClick:()=>S(null),children:a.jsx(de,{name:"x",size:12})}):null]}):null,oe.items.length||oe.waits.length?a.jsx("section",{className:"af-auto__attention","aria-label":"Needs attention",children:a.jsxs("ul",{children:[oe.items.map(q=>a.jsxs("li",{className:`af-auto__attention-item af-auto__attention-item--${q.kind}`,"data-cursor":q.cursor,children:[a.jsx("span",{className:`af-auto-badge af-auto-badge--${q.kind==="failure"?"failed":"notified"}`,children:q.kind==="failure"?"Failed":"Notified"})," ",a.jsx("strong",{children:q.title})," ",a.jsxs("span",{className:"af-auto-turn__muted",children:["#",q.index," · ",eu(q.at)]}),q.body?a.jsx("div",{className:"af-auto__attention-body",children:s(q.body)}):null]},q.cursor)),oe.waits.map(q=>a.jsxs("li",{className:"af-auto__attention-item af-auto__attention-item--wait",children:[a.jsx("span",{className:"af-auto-badge af-auto-badge--waiting","data-wait-kind":q.kind,children:av[q.kind]??"Waiting for you"})," ",a.jsxs("span",{className:"af-auto-turn__muted",children:["#",q.index]}),q.prompt?a.jsx("div",{className:"af-auto__attention-body",children:s(q.prompt)}):null]},`${q.run_id}:${q.wait_key}`))]})}):null,K>0?a.jsx("button",{type:"button",className:"af-auto__btn af-auto__more","data-action":"load-more",disabled:n,onClick:e.onLoadMore,children:a.jsx(wn,{icon:"history",label:`Load earlier runs (${K} more)`})}):null,te.length?a.jsx("ol",{className:"af-auto__timeline","aria-label":"Runs",children:te.map(q=>{const be=`[data-index="${q.row.index}"]`;return a.jsx(u0,{view:q,busy:n,eventCard:R(q.row.run_id),task:typeof W=="string"?W:void 0,timeZone:t.time_zone,nowMs:e.nowMs,discuss:Y.discuss,renderText:s,renderTurn:e.renderTurn,onOpenWorkspace:e.onOpenWorkspace,onOpenResource:e.onOpenResource?xe=>{var Pe;S(null);try{Promise.resolve((Pe=e.onOpenResource)==null?void 0:Pe.call(e,xe)).catch(F)}catch(Qe){F(Qe)}}:void 0,discussOpen:$===q.row.index,onOpenRun:e.onOpenRun,onAnswerWait:(xe,Pe,Qe)=>{S(null),e.onAnswerWait(xe,Pe,Qe).then(()=>I("Answer sent."),F)},onWaitError:xe=>S({status:0,code:"invalid_payload",message:xe}),onDiscussOpen:j,onDiscussCancel:()=>{j(null),V([`${be} [data-action="discuss"]`])},onDiscussSubmit:(xe,Pe)=>D(`discuss:${xe}:${Pe}`,Qe=>e.onDiscuss(xe,Pe,{request_id:Qe}),()=>{j(null),I("Discussion started in a new conversation."),V([`${be} [data-action="discuss"]`])})},q.row.run_id)})}):a.jsx("p",{className:"af-auto__empty",children:"No runs yet."})]})}function m0(e,t){return e==="email"||!hS(t.when)?null:rv({...t}).trigger}function p0(e){return e==="daily"||e==="weekly"||e==="monthly"||e==="once"}function g0(e){var Q,_e;const t=y.useId(),n=y.useId(),s=y.useRef(null),i=y.useRef(null),l=y.useRef(e.onClose);l.current=e.onClose;const u=e.initialTools??xu((Q=e.target)==null?void 0:Q.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=ae=>f(je=>({...je,value:ae})),[g,b]=y.useState(e.initialPrompt??""),[v,C]=y.useState("every"),[x,N]=y.useState(lv),k=cv(v==="weekly"||v==="monthly"?v:"daily",x),[T,$]=y.useState(Bh),[j,A]=y.useState(!1),[S,M]=y.useState(Yi),[I,z]=y.useState("24"),[V,Z]=y.useState("h"),[ie,F]=y.useState(""),[D,L]=y.useState(String(tl)),[J,B]=y.useState("independent"),[Y,te]=y.useState("auto"),[W,R]=y.useState(e.initialTitle??""),[K,ne]=y.useState(""),[ue,oe]=y.useState(""),[ve,Ne]=y.useState(""),[q,be]=y.useState([]),xe=y.useRef(null);xe.current||(xe.current=new ov(()=>(e.newRequestId??iv)())),y.useEffect(()=>{var Le;if(!e.open)return;const ae=document.activeElement;(Le=i.current)==null||Le.focus();const je=Fe=>{if(!Fe.defaultPrevented){if(Fe.key==="Escape"){Fe.preventDefault(),l.current();return}ww(Fe,s.current,document.activeElement)}};return window.addEventListener("keydown",je),()=>{window.removeEventListener("keydown",je),ae&&typeof ae.focus=="function"&&ae.focus()}},[e.open]);const Pe=v==="once"?{kind:"once",at:ie}:v==="daily"||v==="weekly"||v==="monthly"?k:{kind:"every",amount:Number(I),unit:V},Qe={...v==="every"&&K?{startAt:K}:{},...v!=="once"&&ue.trim()?{count:Number(ue)}:{},...v!=="once"&&ve?{until:ve}:{}},He=dv(e.open?m0(v,{when:Pe,...Qe}):null,e.previewSchedule);if(!e.open)return null;const qe=zh(e.emailStatus),ge=v==="email"&&qe,$e=v==="email"&&!qe?"every":v,nt=$e==="daily"||$e==="weekly"||$e==="monthly",et=ae=>C(ae),Rt={prompt:g,when:v==="once"?{kind:"once",at:ie}:nt?k:{kind:"every",amount:Number(I),unit:V},...ge?{trigger:"email",email:{...T,usesModel:e.targetUsesModel!==!1}}:{},...qe&&j?{notifyEmail:!0}:{},...qe&&S.mode==="list"?{emailRecipients:S}:{},context:J,growingMaxTokens:Number(D),toolApproval:Y,title:W,...$e==="every"&&K?{startAt:K}:{},...($e==="every"||nt)&&ue.trim()?{count:Number(ue)}:{},...($e==="every"||nt)&&ve?{until:ve}:{}},ce=mS(Rt),fe=e.busy===!0,G=e.error?Ro(e.error):null,le=ae=>`${n}-${ae}`,he=ae=>{ae.preventDefault();const je=pS(Rt,{target:e.target,requestId:""});if(!je.ok){be(je.errors);return}be([]);const Le=xe.current,Fe=e.availableTools===void 0?je.body:{...je.body,target:{...je.body.target,input_data:Mh(je.body.target.input_data||{},m)}},Xe=JSON.stringify(Fe),Ie={...Fe,request_id:Le.idFor(Xe)};Promise.resolve(e.onSubmit(Ie)).then(()=>Le.settle(Xe,{ok:!0}),Ge=>Le.settle(Xe,{ok:!1,error:Ge}))};return a.jsx("div",{className:"af-appearance-overlay af-schedule-overlay",onClick:e.onClose,role:"presentation",children:a.jsxs("div",{ref:s,className:"af-appearance af-schedule",role:"dialog","aria-modal":"true","aria-labelledby":t,onClick:ae=>ae.stopPropagation(),children:[a.jsx("div",{className:"af-appearance__title",id:t,children:e.title??"Schedule a task"}),a.jsxs("form",{className:"af-schedule__form",onSubmit:he,"aria-busy":fe,children:[a.jsxs("fieldset",{className:"af-auto__field",children:[a.jsx("legend",{children:"What"}),e.workflowPicker?a.jsx("div",{className:"af-schedule__picker",children:e.workflowPicker}):null,e.target?null:a.jsx("p",{className:"af-auto__hint",children:"Choose what to run."}),a.jsxs("label",{className:"af-auto__field",htmlFor:le("prompt"),children:[a.jsx("span",{children:"Task"}),a.jsx("textarea",{id:le("prompt"),ref:i,rows:3,value:g,onChange:ae=>b(ae.target.value),placeholder:"e.g. Check the price of ACME shares and notify me if it moved more than 2%.",required:!0})]})]}),a.jsxs("fieldset",{className:"af-auto__field",children:[a.jsx("legend",{children:ut.legend}),a.jsxs("div",{className:"af-auto__row",role:"radiogroup","aria-label":"Schedule kind",children:[a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("kind"),value:"every",checked:$e==="every",onChange:()=>et("every")})," ",ut.kind_every]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("kind"),value:"daily",checked:v==="daily",onChange:()=>et("daily")})," ",ut.kind_daily]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("kind"),value:"weekly",checked:v==="weekly",onChange:()=>et("weekly")})," ",ut.kind_weekly]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("kind"),value:"monthly",checked:v==="monthly",onChange:()=>et("monthly")})," ",ut.kind_monthly]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("kind"),value:"once",checked:v==="once",onChange:()=>et("once")})," ",ut.kind_once]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("kind"),value:"email",checked:ge,disabled:!qe,onChange:()=>et("email")})," ",Ze.trigger_label]})]}),qe?null:a.jsx(uh,{status:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail}),ge?a.jsx(KS,{value:{...T,usesModel:e.targetUsesModel!==!1},onChange:$,idBase:n}):nt?a.jsx(uv,{value:k,onChange:ae=>N(je=>Hh(je,ae)),idBase:n,disabled:fe}):$e==="every"?a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"af-auto__row af-schedule__presets",role:"group","aria-label":"Presets",children:cS.map(ae=>ae.when.kind==="every"?a.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--quiet","aria-pressed":Number(I)===ae.when.amount&&V===ae.when.unit,onClick:()=>{ae.when.kind==="every"&&(z(String(ae.when.amount)),Z(ae.when.unit))},children:ae.label},ae.label):null)}),a.jsxs("div",{className:"af-auto__row",children:[a.jsx("span",{children:ut.every_label}),a.jsx("input",{type:"number",min:1,step:1,value:I,onChange:ae=>z(ae.target.value),"aria-label":"Interval amount"}),a.jsxs("select",{value:V,onChange:ae=>Z(ae.target.value),"aria-label":"Interval unit",children:[a.jsx("option",{value:"m",children:"minutes"}),a.jsx("option",{value:"h",children:"hours"}),a.jsx("option",{value:"d",children:"days"})]})]})]}):a.jsxs("label",{className:"af-auto__field",htmlFor:le("once"),children:[a.jsx("span",{children:ut.once_label}),a.jsx("input",{id:le("once"),type:"datetime-local",value:ie,onChange:ae=>F(ae.target.value)})]}),$e!=="email"?a.jsx(fv,{state:He,onOpenPreferences:e.onOpenPreferences,showZone:p0($e)}):a.jsx("p",{className:"af-schedule__preview","aria-live":"polite","data-preview":"true",children:ce?`Runs ${ce}.`:ge?"Incomplete email trigger.":ut.incomplete})]}),a.jsxs("fieldset",{className:"af-auto__field",children:[a.jsx("legend",{children:"Context"}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("ctx"),value:"independent",checked:J==="independent",onChange:()=>B("independent")})," Independent — each run starts fresh"]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("ctx"),value:"growing",checked:J==="growing",onChange:()=>B("growing")})," Growing — each run sees the previous runs"]}),J==="growing"?a.jsxs("label",{className:"af-auto__field",children:[a.jsx("span",{children:"Max growing context (tokens)"}),a.jsx("input",{type:"number",min:1,step:1,required:!0,disabled:fe,value:D,onChange:ae=>L(ae.target.value)}),a.jsx("span",{className:"af-auto__hint",children:Yw})]}):null]}),a.jsxs("fieldset",{className:"af-auto__field","data-field":"tool-approval",children:[a.jsx("legend",{children:"Tools"}),e.availableTools!==void 0?a.jsx(hv,{availableTools:e.availableTools,value:m,onChange:p,disabled:fe}):null,a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("tools"),value:"auto",checked:Y==="auto",onChange:()=>te("auto")})," Run without asking"]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:le("tools"),value:"ask",checked:Y==="ask",onChange:()=>te("ask")})," Ask me before each tool call (the run waits for you)"]}),ge?a.jsx("p",{className:"af-auto__hint","data-email-rule":"untrusted",children:Ze.untrusted_hint}):null,Y==="auto"?a.jsxs("p",{className:"af-schedule__consent","data-consent":"true",children:[gS,e.targetTools&&e.targetTools.length?`: ${e.targetTools.join(", ")}.`:"."]}):a.jsx("p",{className:"af-auto__hint",children:"Each tool call waits for your approval in the automation's timeline."})]}),e.workspaces?a.jsx("div",{className:"af-auto__field","data-field":"workspaces",role:"group","aria-label":"Workspaces",children:e.workspaces}):null,a.jsxs("fieldset",{className:"af-auto__field","data-field":"email",children:[a.jsx("legend",{children:"Mailbox"}),qe?null:a.jsx(uh,{status:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail}),a.jsx(JS,{notifyEmail:qe&&j,onNotifyEmailChange:A,recipients:qe?S:Yi,onRecipientsChange:M,disabled:!qe,idBase:n})]}),a.jsxs("fieldset",{className:"af-auto__field","data-field":"limits",children:[a.jsx("legend",{children:"Title and limits"}),a.jsxs("label",{className:"af-auto__field",htmlFor:le("title"),children:[a.jsx("span",{children:"Title"}),a.jsx("input",{id:le("title"),value:W,maxLength:120,onChange:ae=>R(ae.target.value),placeholder:"Defaults to the task's first line"})]}),$e==="every"||nt?a.jsxs(a.Fragment,{children:[$e==="every"?a.jsxs("label",{className:"af-auto__field",htmlFor:le("start"),children:[a.jsx("span",{children:"First run at (UTC; empty = now)"}),a.jsx("input",{id:le("start"),type:"datetime-local",value:K,onChange:ae=>ne(ae.target.value)})]}):null,a.jsxs("label",{className:"af-auto__field",htmlFor:le("count"),children:[a.jsx("span",{children:"Stop after this many runs"}),a.jsx("input",{id:le("count"),type:"number",min:1,step:1,value:ue,onChange:ae=>oe(ae.target.value)})]}),a.jsxs("label",{className:"af-auto__field",htmlFor:le("until"),children:[a.jsx("span",{children:"Stop at (UTC)"}),a.jsx("input",{id:le("until"),type:"datetime-local",value:ve,onChange:ae=>Ne(ae.target.value)})]})]}):null]}),q.length?a.jsx("ul",{className:"af-auto__form-errors",role:"alert",children:q.map(ae=>a.jsx("li",{children:ae},ae))}):null,G?a.jsxs("div",{className:"af-auto__error",role:"alert","data-code":(_e=e.error)==null?void 0:_e.code,children:[a.jsx("strong",{children:G.title})," ",a.jsx("span",{children:G.detail})]}):null,a.jsxs("div",{className:"af-appearance__actions af-auto__row",children:[a.jsx("button",{type:"button",className:"af-auto__btn",onClick:e.onClose,children:"Cancel"}),a.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary",disabled:fe,children:"Create automation"})]})]})]})})}const nu=6e4,mh=60*nu,Hg=24*mh;function su(e){const t=Math.abs(e);return Number.isFinite(t)?t<nu?"<1 min":t<mh?`${Math.floor(t/nu)} min`:t<2*Hg?`${Math.floor(t/mh)} h`:`${Math.floor(t/Hg)} d`:""}function y0(e,t,n){return e.source_id==="schedule"?rS(t,e.source_version):e.source_id==="manual"?"manual":ll(e)?"on new email":Dh(e,n==null?void 0:n.connections,n==null?void 0:n.mailboxes,t)}function Gc(e){if(!e)return null;const t=Date.parse(e);return Number.isNaN(t)?null:t}function w0(e,t){var i;if(e.current_occurrence&&(((i=e.attention)==null?void 0:i.pending_waits)??0)>0){const l=e.last_occurrence&&e.last_occurrence.index===e.current_occurrence.index?Gc(e.last_occurrence.fired_at):null;return l===null?"":`waiting since ${su(Math.max(0,t-l))}`}if(e.current_occurrence)return"running now";const n=e.last_occurrence,s=Gc(n==null?void 0:n.finished_at)??Gc(n==null?void 0:n.fired_at);return s===null?"last never":`last ${su(Math.max(0,t-s))} ago`}function v0(e,t){const n=Gc(e.next_run_at);return n===null?null:n-t<nu?"next due now":`next in ${su(n-t)}`}function jv(e,t){const n=y0(e.trigger,e),s=w0(e,t),i=v0(e,t);return{cadence:n,last:s,next:i,line:[n,s,i].filter(Boolean).join(" · ")}}const Cn={min:300,max:960,default:420,step:16,bigStep:64};function ru(e,t=Cn.min,n=Cn.max,s=Cn.default){return Number.isFinite(e)?Math.round(Math.min(n,Math.max(t,e))):Math.min(n,Math.max(t,s))}function _0(e,t,n,s=Cn.min,i=Cn.max,l="right"){const u=n?Cn.bigStep:Cn.step,d=l==="left"?"ArrowRight":"ArrowLeft",f=l==="left"?"ArrowLeft":"ArrowRight";return t===d?ru(e+u,s,i):t===f?ru(e-u,s,i):t==="Home"?s:t==="End"?i:null}function b0(e,t,n,s=Cn.min,i=Cn.max){return ru(n==="left"?e+t:e-t,s,i)}function x0(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 k0(e,t){return e===t?null:t}function Qi(e){return e.side==="left"?"left":"right"}function Gg(e,t,n){const s=e==null?null:typeof e=="string"?e:e[t]??null;if(!s)return null;const i=n.find(l=>l.id===s);return i&&Qi(i)===t?s:null}function j0(e){const t=String(e||"");if(!t)return null;const n=t.indexOf("#"),s=n<0?t:t.slice(0,n);return s?{id:s,nonce:n<0?"":t.slice(n+1)}:null}function S0(e,t,n){return e.id===t||e.keepAlive==="always"||n.has(e.id)}function N0(e){const t={widths:{},active:{}},n=String(e??"").trim();if(!n)return t;if(/^\d+(\.\d+)?$/.test(n))return{...t,legacyWidth:Number(n)};try{const s=JSON.parse(n);if(!s||typeof s!="object"||Array.isArray(s))return t;const i={};if(s.widths&&typeof s.widths=="object")for(const[d,f]of Object.entries(s.widths))typeof f=="number"&&Number.isFinite(f)&&(i[d]=f);const l={};if(s.active&&typeof s.active=="object")for(const d of["left","right"]){const f=s.active[d];(typeof f=="string"||f===null)&&(l[d]=f)}const u=typeof s.legacy=="number"&&Number.isFinite(s.legacy)?s.legacy:void 0;return u===void 0?{widths:i,active:l}:{widths:i,active:l,legacyWidth:u}}catch{return t}}function C0(e){return JSON.stringify({v:1,widths:e.widths,active:e.active,...e.legacyWidth!==void 0?{legacy:e.legacyWidth}:{}})}function Kg(e,t,n){const s=t.minWidth??(n==null?void 0:n.min)??Cn.min,i=t.maxWidth??(n==null?void 0:n.max)??Cn.max,l=t.defaultWidth??(n==null?void 0:n.width)??Cn.default,u=e.widths[t.id]??e.legacyWidth;return ru(u??l,s,i,l)}function E0(e,t,n,s){if(n)return null;const i=e.active[t];if(!i)return null;const l=s.find(u=>u.id===i);return l&&Qi(l)===t?i:null}function A0(e){if(e==="auto")return"var(--af-topbar-h, 0px)";if(typeof e=="number"&&Number.isFinite(e))return`${Math.max(0,Math.round(e))}px`}const Sv=y.createContext(void 0);function $0(e){const t=y.useContext(Sv);return t===void 0?a.jsx(a.Fragment,{children:e.children}):t===null?null:al.createPortal(e.children,t)}class Jg extends gt.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromError(t){return{error:t instanceof Error?t:new Error(String(t))}}render(){const{error:t}=this.state;if(!t)return this.props.children;if(this.props.variant==="inline"){const n=`The ${this.props.label} panel's actions stopped: ${t.message||"unknown error"}`;return a.jsx("span",{className:"af-rail__error-inline",role:"img","aria-label":n,"data-af-tip":n,"data-panel-error":"actions",children:a.jsx(de,{name:"warning",size:16})})}return a.jsxs("div",{className:"af-rail__error",role:"alert","data-panel-error":"",children:[a.jsxs("p",{className:"af-rail__error-text",children:["The ",this.props.label," panel stopped: ",t.message||"unknown error"]}),a.jsx("button",{type:"button",className:"af-rail__error-retry",onClick:()=>this.setState({error:null}),children:"Try again"})]})}}function T0(e){if(!e||typeof window>"u")return{widths:{},active:{}};try{return N0(window.localStorage.getItem(e))}catch{return{widths:{},active:{}}}}function qg(e,t){if(!(!e||typeof window>"u"))try{window.localStorage.setItem(e,C0(t))}catch{}}function R0(e){const{panel:t}=e,[n,s]=y.useState(null),i=e.mounted?t.content:null;return a.jsxs("section",{id:`${e.idBase}-panel-${t.id}`,role:"tabpanel","aria-labelledby":t.mode==="drawer"?void 0:`${e.idBase}-tab-${t.id}`,"aria-label":t.mode==="drawer"?t.label:void 0,className:"af-rail__section","data-panel":t.id,hidden:!e.open,children:[a.jsxs("header",{className:"af-rail__head",children:[a.jsx("h2",{className:"af-rail__title",children:t.label}),a.jsxs("span",{className:"af-rail__head-actions",children:[t.headerActions===void 0||t.headerActions===null?null:t.errorBoundary===!1?t.headerActions:a.jsx(Jg,{label:t.label,variant:"inline",children:t.headerActions}),a.jsx("span",{className:"af-rail__head-slot",ref:s}),a.jsx("button",{type:"button",className:"af-rail__icon-btn","data-action":"collapse-panel","aria-label":`Collapse ${t.label}`,title:"Collapse",onClick:e.onCollapse,children:a.jsx(de,{name:e.overlay?"x":"chevronRight",size:16})})]})]}),a.jsx("div",{className:`af-rail__body${t.fill?" af-rail__body--fill":""}`,"data-fill":t.fill?"":void 0,children:a.jsx(Sv.Provider,{value:n,children:t.errorBoundary===!1?i:a.jsx(Jg,{label:t.label,children:i})})})]})}function I0(e){const{side:t,panels:n,activeId:s,overlay:i,onActiveChange:l}=e,u=n.find(D=>D.id===s)||null,d=n.filter(D=>D.mode!=="drawer"),[f,m]=y.useState(()=>new Set(s?[s]:[])),p=y.useRef(null),g=y.useRef(null),b=y.useRef(null),v=y.useRef(null),C=u?e.width(u):Cn.default,x=y.useRef(C);x.current=C;const N=(u==null?void 0:u.minWidth)??Cn.min,k=(u==null?void 0:u.maxWidth)??Cn.max;y.useEffect(()=>{s&&m(D=>D.has(s)?D:new Set([...D,s]))},[s]);const T=u?u.id:null,$=y.useRef(l);$.current=l,y.useEffect(()=>{if(!i||!T)return;const D=L=>{L.key!=="Escape"||L.defaultPrevented||(L.preventDefault(),$.current(null))};return window.addEventListener("keydown",D),()=>window.removeEventListener("keydown",D)},[i,T]),y.useEffect(()=>{var D,L,J;if(i)if(T)!b.current&&typeof document<"u"&&(b.current=document.activeElement),(D=g.current)==null||D.focus({preventScroll:!0});else{const B=b.current;b.current=null;const Y=typeof document<"u"?document.activeElement:null;B&&(!Y||Y===document.body||(L=g.current)!=null&&L.contains(Y))&&((J=B.focus)==null||J.call(B))}},[i,T]);const j=D=>{var Y,te;const L=Array.from(((Y=p.current)==null?void 0:Y.querySelectorAll('[role="tab"]'))||[]),J=L.findIndex(W=>W===document.activeElement),B=x0(L.length,J<0?0:J,D.key);B!==null&&(D.preventDefault(),(te=L[B])==null||te.focus())},A=D=>{if(!u)return;const L=_0(x.current,D.key,D.shiftKey,N,k,t);L!==null&&(D.preventDefault(),e.setWidth(u,L,!0))},S=D=>{var L,J;D.button!==0&&D.pointerType==="mouse"||(v.current={startX:D.clientX,startW:x.current,pointerId:D.pointerId},(J=(L=D.currentTarget).setPointerCapture)==null||J.call(L,D.pointerId),D.preventDefault())},M=D=>{const L=v.current;!L||L.pointerId!==D.pointerId||!u||e.setWidth(u,b0(L.startW,D.clientX-L.startX,t,N,k),!1)},I=D=>{var J,B;const L=v.current;!L||L.pointerId!==D.pointerId||(v.current=null,(B=(J=D.currentTarget).releasePointerCapture)==null||B.call(J,D.pointerId),u&&e.setWidth(u,x.current,!0))},z=!!u,V=e.railLabelStyle==="vertical-text",Z=i&&e.top!==void 0,ie={"--af-rail-panel-width":`${C}px`,"--af-panel-w":`${C}px`,...e.top!==void 0?{"--af-drawers-top":e.top}:{}},F=d.length>0?a.jsx("div",{ref:p,className:"af-rail__rail",role:"tablist","aria-orientation":"vertical","aria-label":e.ariaLabel,onKeyDown:j,children:d.map(D=>{const L=D.id===s,J=`${L?`Collapse ${D.label}`:D.label}${D.hint?` · ${D.hint}`:""}`;return a.jsxs("button",{type:"button",role:"tab",id:`${e.idBase}-tab-${D.id}`,"aria-selected":L,"aria-controls":`${e.idBase}-panel-${D.id}`,"aria-label":D.label,title:J,className:`af-rail__tab${V?" af-rail__tab--text":""}${L?" is-active":""}`,"data-rail":D.id,onClick:B=>{b.current=B.currentTarget,l(k0(s,D.id))},children:[V?a.jsx("span",{className:"af-rail__vlabel","aria-hidden":"true",children:D.label}):a.jsx(de,{name:D.icon,size:19}),typeof D.badge=="number"&&D.badge>0?a.jsx("span",{className:"af-rail__badge","aria-hidden":"true",children:D.badge>99?"99+":D.badge}):D.badge===!0?a.jsx("span",{className:"af-rail__dot","aria-hidden":"true"}):null]},D.id)})}):null;return a.jsxs("div",{className:`af-rail${t==="left"?" af-rail--left":""}${z?" af-rail--open":" af-rail--collapsed"}${i?" af-rail--overlay":" af-rail--docked"}${Z?" af-rail--anchored":""}${F?"":" af-rail--no-rail"}${V?" af-rail--vertical-text":""}${e.className?` ${e.className}`:""}`,style:ie,"data-active":s||"","data-side":t,children:[t==="left"?F:null,i&&z?a.jsx("div",{className:"af-rail__backdrop","aria-hidden":"true",onClick:()=>l(null)}):null,a.jsxs("div",{className:"af-rail__panel-wrap",hidden:!z,style:!i&&z?{width:C}:void 0,children:[!i&&z?a.jsx("div",{className:"af-rail__resize",role:"separator","aria-orientation":"vertical","aria-label":`Resize the ${(u==null?void 0:u.label)||""} panel`,"aria-valuemin":N,"aria-valuemax":k,"aria-valuenow":C,tabIndex:0,title:"Drag to resize",onKeyDown:A,onPointerDown:S,onPointerMove:M,onPointerUp:I,onPointerCancel:I}):null,a.jsx("div",{ref:g,className:"af-rail__panel",role:i?"dialog":void 0,"aria-label":i?u==null?void 0:u.label:void 0,tabIndex:i?-1:void 0,children:n.map(D=>a.jsx(R0,{panel:D,idBase:e.idBase,open:D.id===s,mounted:S0(D,s,f),overlay:i,side:t,onCollapse:()=>l(null)},D.id))})]}),t==="right"?F:null]})}function M0(e){const t=Vc(e.overlayBelow||Uc.md),n=e.overlay??t,s=e.idBase||"af-rail",{panels:i,onActiveChange:l,storageKey:u}=e,[d,f]=y.useState(()=>T0(u)),m=y.useRef(d);m.current=d;const p=y.useRef(e.onResize);p.current=e.onResize;const g=i.filter(S=>Qi(S)==="left"),b=i.filter(S=>Qi(S)==="right"),v=Gg(e.active,"left",i),C=Gg(e.active,"right",i),x=y.useCallback(S=>Kg(d,S),[d]),N=y.useCallback((S,M,I)=>{var V;const z={...m.current,widths:{...m.current.widths,[S.id]:Kg({widths:{[S.id]:M}},S)}};m.current=z,f(z),I&&(qg(u,z),(V=p.current)==null||V.call(p,S.id,z.widths[S.id]))},[u]),k=y.useRef(!1);y.useEffect(()=>{if(!k.current&&(k.current=!0,e.restoreActive!==!1))for(const S of["left","right"]){const M=S==="left"?v:C,I=E0(m.current,S,n,i);!M&&I&&l(I,S)}},[]);const T=y.useRef(!1);y.useEffect(()=>{if(!T.current){T.current=!0;return}if(n||!u)return;const S={...m.current,active:{left:v,right:C}};m.current=S,qg(u,S)},[v,C,n,u]),y.useEffect(()=>{const S=j0(e.request);if(!S)return;const M=i.find(z=>z.id===S.id);if(!M)return;const I=Qi(M);(I==="left"?v:C)!==S.id&&l(S.id,I)},[e.request]);const $=n?A0(e.topOffset):void 0,j=e.railLabelStyle||"icon",A=(S,M,I)=>M.length?a.jsx(I0,{side:S,panels:M,activeId:I,onActiveChange:z=>l(z,S),overlay:n,width:x,setWidth:N,ariaLabel:g.length&&b.length?`${e.ariaLabel} (${S})`:e.ariaLabel,idBase:s,railLabelStyle:j,top:$,className:e.children===void 0?e.className:void 0}):null;return e.children===void 0&&!g.length?A("right",b,C)||a.jsx(a.Fragment,{}):a.jsxs("div",{className:`af-drawers${n?" af-drawers--overlay":""}${e.className?` ${e.className}`:""}`,children:[A("left",g,v),a.jsx("div",{className:"af-drawers__main",children:e.children}),A("right",b,C)]})}const Nv=72;function L0(e,t=Nv){const n=Math.max(1,Math.floor(t)),s=new Array(n).fill(0),i=e.length;if(!i)return s;const l=i/n;let u=0;for(let d=0;d<n;d+=1){const f=Math.floor(d*l),m=Math.max(f+1,Math.floor((d+1)*l));let p=0;for(let g=f;g<m&&g<i;g+=1){const b=Math.abs(Number(e[g])||0);b>p&&(p=b)}s[d]=p,p>u&&(u=p)}return u<=0?s:s.map(d=>d/u)}function Lc(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"--:--";const t=Math.floor(e),n=Math.floor(t/3600),s=Math.floor(t%3600/60),i=String(t%60).padStart(2,"0");return n>0?`${n}:${String(s).padStart(2,"0")}:${i}`:`${s}:${i}`}function O0(e,t,n){return!(t>0)||!(n>0)?0:Math.min(n,Math.max(0,e/t*n))}function P0(e,t){const[n,s]=y.useState({peaks:t??null,note:""});return y.useEffect(()=>{if(t){s({peaks:t,note:""});return}let i=!0;s({peaks:null,note:""});const l=typeof window<"u"?window.AudioContext||window.webkitAudioContext:void 0;if(!e||!l||typeof fetch!="function"){s({peaks:null,note:"Waveform unavailable in this browser."});return}return(async()=>{let u=null;try{const d=await(await fetch(e)).arrayBuffer();u=new l;const f=await u.decodeAudioData(d);i&&s({peaks:L0(f.getChannelData(0)),note:""})}catch(d){i&&s({peaks:null,note:`Waveform unavailable: ${d instanceof Error?d.message:String(d)}`})}finally{u&&u.close().catch(()=>{})}})(),()=>{i=!1}},[e,t]),n}function Cv(e){const t=y.useRef(null),n=y.useRef(null),[s,i]=y.useState(!1),[l,u]=y.useState(0),[d,f]=y.useState(null),[m,p]=y.useState(""),{peaks:g,note:b}=P0(e.src,e.peaks),v=g??new Array(Nv).fill(0),C=d&&d>0?Math.min(1,l/d):0,x=e.name?`Audio ${e.name}`:"Audio",N=y.useCallback(()=>{const j=t.current;j&&(j.paused?j.play().catch(A=>p(A instanceof Error?A.message:String(A))):j.pause())},[]),k=y.useCallback(j=>{const A=t.current;!A||!Number.isFinite(j)||(A.currentTime=j,u(j))},[]),T=j=>{var S;const A=(S=n.current)==null?void 0:S.getBoundingClientRect();!A||!d||k(O0(j-A.left,A.width,d))},$=j=>{if(!d)return;const A=j.key==="ArrowRight"||j.key==="ArrowUp"?5:j.key==="ArrowLeft"||j.key==="ArrowDown"?-5:0;A?(j.preventDefault(),k(Math.min(d,Math.max(0,l+A)))):j.key==="Home"?(j.preventDefault(),k(0)):j.key==="End"?(j.preventDefault(),k(d)):(j.key===" "||j.key==="Enter")&&(j.preventDefault(),N())};return a.jsxs("div",{className:`af-audio${e.className?` ${e.className}`:""}`,"data-playing":s?"true":"false",children:[a.jsx("audio",{ref:t,src:e.src,preload:"metadata",onPlay:()=>i(!0),onPause:()=>i(!1),onEnded:()=>i(!1),onTimeUpdate:j=>u(j.currentTarget.currentTime),onLoadedMetadata:j=>f(Number.isFinite(j.currentTarget.duration)?j.currentTarget.duration:null),onDurationChange:j=>f(Number.isFinite(j.currentTarget.duration)?j.currentTarget.duration:null),onError:()=>p("This audio cannot be played in this browser. Use Download to open it.")}),a.jsx("button",{type:"button",className:"af-audio__play","data-action":s?"pause-audio":"play-audio","aria-label":s?`Pause ${x}`:`Play ${x}`,title:s?"Pause":"Play",onClick:N,children:a.jsx(de,{name:s?"pause":"play",size:16})}),a.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(l),"aria-valuetext":`${Lc(l)} of ${Lc(d)}`,title:b||void 0,"data-waveform":g?"decoded":"flat",onKeyDown:$,onPointerDown:j=>{var A,S;(S=(A=j.currentTarget).setPointerCapture)==null||S.call(A,j.pointerId),T(j.clientX)},onPointerMove:j=>{j.buttons&1&&T(j.clientX)},children:a.jsx("svg",{viewBox:`0 0 ${v.length*2} 32`,preserveAspectRatio:"none","aria-hidden":"true",focusable:"false",children:v.map((j,A)=>{const S=Math.max(1.5,j*30),M=(A+.5)/v.length<=C;return a.jsx("rect",{className:M?"af-audio__bar af-audio__bar--played":"af-audio__bar",x:A*2+.3,y:16-S/2,width:1.4,height:S,rx:.6},A)})})}),a.jsxs("span",{className:"af-audio__time","aria-hidden":"true",children:[Lc(l)," / ",Lc(d)]}),m?a.jsx("p",{className:"af-audio__error",role:"alert",children:m}):null]})}const xa=e=>new Set(e.split(/\s+/).filter(Boolean)),D0=xa("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"),F0=xa("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"),z0=xa("if then else elif fi for while do done case esac in function return export local readonly set unset echo exit source"),B0=xa("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"),Yg=xa("true false null yes no on off"),W0={c:{line:["//"],block:["/*","*/"],strings:['"',"'","`"],keywords:D0},python:{line:["#"],strings:['"',"'"],triple:!0,keywords:F0},shell:{line:["#"],strings:['"',"'"],keywords:z0},sql:{line:["--"],block:["/*","*/"],strings:["'",'"'],keywords:B0},data:{line:["#"],strings:['"',"'"],keywords:Yg},json:{line:[],strings:['"'],keywords:Yg},css:{line:[],block:["/*","*/"],strings:['"',"'"],keywords:xa("")},markup:{line:[],block:["<!--","-->"],strings:['"',"'"],keywords:xa("")}},U0={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 Gh(e){const t=String(e||"").trim().toLowerCase(),n=t.split("/").pop()||t;if(n==="dockerfile"||n==="makefile")return"shell";const s=n.lastIndexOf("."),i=s>=0?n.slice(s+1):n;return U0[i]||""}const V0=e=>e>="0"&&e<="9",H0=e=>/[A-Za-z_$]/.test(e),Qg=e=>/[A-Za-z0-9_$]/.test(e);function Ev(e,t){const n=String(e??""),s=W0[t];if(!s)return n?[{kind:"plain",text:n}]:[];const i=[];let l="";const u=(f,m)=>{if(m){if(f==="plain"){l+=m;return}l&&i.push({kind:"plain",text:l}),l="",i.push({kind:f,text:m})}};let d=0;for(;d<n.length;){const f=n[d];if(s.line.find(p=>n.startsWith(p,d))){const p=n.indexOf(`
|
|
63
|
-
`,d),g=p===-1?n.length:p;u("comment",n.slice(d,g)),d=g;continue}if(s.block&&n.startsWith(s.block[0],d)){const p=n.indexOf(s.block[1],d+s.block[0].length),g=p===-1?n.length:p+s.block[1].length;u("comment",n.slice(d,g)),d=g;continue}if(s.strings.includes(f)){const p=s.triple&&n.startsWith(f.repeat(3),d)?f.repeat(3):"";if(p){const v=n.indexOf(p,d+3),C=v===-1?n.length:v+3;u("string",n.slice(d,C)),d=C;continue}let g=d+1;for(;g<n.length&&n[g]!==f&&(f==="`"||n[g]!==`
|
|
64
|
-
`);)g+=n[g]==="\\"?2:1;const b=Math.min(n.length,g+1);u("string",n.slice(d,b)),d=b;continue}if(V0(f)&&!(d>0&&Qg(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(H0(f)){let p=d+1;for(;p<n.length&&Qg(n[p]);)p+=1;const g=n.slice(d,p),b=t==="sql"?s.keywords.has(g.toLowerCase()):s.keywords.has(g);u(b?"keyword":"plain",g),d=p;continue}u("plain",f),d+=1}return l&&i.push({kind:"plain",text:l}),i}function Oc({text:e,language:t="",lineNumbers:n=!0,className:s,ariaLabel:i}){const l=Gh(t),u=Ev(e,l),d=n?String(e??"").split(`
|
|
65
|
-
`).length:0;return a.jsx("pre",{className:`af-code${n?" af-code--numbered":""}${s?` ${s}`:""}`,"data-language":l||"text","aria-label":i,style:n?{"--af-code-gutter":`${String(d).length+1}ch`}:void 0,children:a.jsx("code",{children:n?G0(u).map((f,m)=>a.jsxs("span",{className:"af-code__line","data-line":m+1,children:[f.map((p,g)=>Xg(p,g)),`
|
|
66
|
-
`]},m)):u.map((f,m)=>Xg(f,m))})})}function Xg(e,t){return e.kind==="plain"?a.jsx(gt.Fragment,{children:e.text},t):a.jsx("span",{className:`af-code__${e.kind}`,children:e.text},t)}function G0(e){const t=[[]];for(const n of e)n.text.split(`
|
|
67
|
-
`).forEach((i,l)=>{l>0&&t.push([]),i&&t[t.length-1].push({kind:n.kind,text:i})});return t}const Av=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],zi=6e4,Bi=60*zi,Pc=24*Bi;function dl(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)?dl(Number(t)):Date.parse(t)}function Zg(e){return e<10?`0${e}`:String(e)}function ey(e,t){const n=dl(e);if(!Number.isFinite(n))return"";const s=new Date(n),i=s.getFullYear()===new Date(t).getFullYear();return`${Av[s.getMonth()]} ${s.getDate()}${i?"":`, ${s.getFullYear()}`}`}function Io(e){const t=dl(e);if(!Number.isFinite(t))return"";const n=new Date(t);return`${Av[n.getMonth()]} ${n.getDate()}, ${n.getFullYear()}, ${Zg(n.getHours())}:${Zg(n.getMinutes())}`}function Eo(e,t){const n=dl(e);if(!Number.isFinite(n)||!Number.isFinite(t))return"";const s=t-n;if(s<0){const l=-s;if(l<zi)return"due now";if(l<Bi)return`in ${Math.round(l/zi)} min`;if(l<Pc)return`in ${Math.round(l/Bi)} h`;const u=Math.round(l/Pc);return u<7?`in ${u} ${u===1?"day":"days"}`:ey(n,t)}if(s<zi)return"just now";if(s<Bi)return`${Math.floor(s/zi)} min ago`;if(s<Pc)return`${Math.floor(s/Bi)} h ago`;const i=Math.floor(s/Pc);return i===1?"yesterday":i<7?`${i} days ago`:ey(n,t)}const K0=new Set("png jpg jpeg gif webp bmp ico avif".split(" ")),J0=new Set("mp3 wav ogg oga opus m4a aac flac weba".split(" ")),q0=new Set("mp4 m4v webm mov ogv mkv".split(" ")),Y0=new Set("mts cts".split(" ")),Q0=new Set(["video/mp2t"]),X0=new Set("txt log csv tsv rst adoc org tex diff patch lock".split(" "));function Z0(e){const t=String(e||"").split("/").pop()||"",n=t.lastIndexOf(".");return n>0?t.slice(n+1).toLowerCase():t.toLowerCase()}function sl(e,t=""){const n=Z0(e),s=String(t||"").split(";",1)[0].trim().toLowerCase();return n==="md"||n==="markdown"||s==="text/markdown"?"markdown":n==="json"||s==="application/json"||s.endsWith("+json")?"json":n==="pdf"||s==="application/pdf"?"pdf":K0.has(n)?"image":J0.has(n)?"audio":q0.has(n)?"video":Gh(e)||Y0.has(n)?"code":X0.has(n)?"text":s.startsWith("image/")&&s!=="image/svg+xml"?"image":s.startsWith("audio/")?"audio":s.startsWith("video/")&&!Q0.has(s)?"video":s.startsWith("text/")?"text":["application/javascript","application/xml","application/x-yaml","application/toml"].includes(s)?"code":"binary"}function au(e){return e==="markdown"||e==="code"||e==="json"||e==="text"}function fl(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,s=0;for(;n>=1024&&s<t.length-1;)n/=1024,s+=1;return`${n<10?n.toFixed(1):Math.round(n)} ${t[s]}`}function eN(e){const t=e.kind??sl(e.name,e.contentType),n=fl(e.sizeBytes),s=e.modified!==void 0?Eo(e.modified,e.nowMs):"";return a.jsxs("section",{className:`af-file-viewer${e.className?` ${e.className}`:""}`,"aria-label":`Preview of ${e.name}`,"data-kind":t,children:[a.jsxs("header",{className:"af-file-viewer__head",children:[a.jsx(de,{name:"file",size:15}),a.jsxs("span",{className:"af-file-viewer__title",children:[a.jsx("strong",{className:"af-file-viewer__name",title:e.path||e.name,children:e.name}),n||s?a.jsxs("span",{className:"af-file-viewer__meta",children:[n?a.jsx("span",{"data-meta":"size",children:n}):null,n&&s?a.jsx("span",{"aria-hidden":"true",children:" · "}):null,s?a.jsx("time",{"data-meta":"modified",title:Io(e.modified),dateTime:new Date(dl(e.modified)).toISOString(),children:s}):null]}):null]}),e.actions,e.onDownload?a.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:a.jsx(de,{name:"download",size:15})}):null,e.onClose?a.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:a.jsx(de,{name:"x",size:15})}):null]}),a.jsx("div",{className:"af-file-viewer__body",children:e.status==="loading"?a.jsx("p",{className:"af-file-viewer__muted",role:"status",children:"Loading preview…"}):e.status==="error"?a.jsx("p",{className:"af-file-viewer__error",role:"alert",children:e.error||"The preview could not be loaded."}):a.jsxs(a.Fragment,{children:[e.partialNote?a.jsx("p",{className:"af-file-viewer__muted",role:"status",children:e.partialNote}):null,a.jsx(tN,{kind:t,p:e})]})})]})}function tN({kind:e,p:t}){const n=t.text??"";switch(e){case"image":return t.url?a.jsx("img",{className:"af-file-viewer__image",src:t.url,alt:t.name}):a.jsx($i,{});case"audio":return t.url?a.jsx(Cv,{src:t.url,name:t.name}):a.jsx($i,{});case"video":return t.url?a.jsx("video",{className:"af-file-viewer__image af-file-viewer__video",src:t.url,controls:!0,playsInline:!0,preload:"metadata","aria-label":t.name}):a.jsx($i,{});case"pdf":return t.url?a.jsx("object",{className:"af-file-viewer__pdf",data:t.url,type:"application/pdf","aria-label":t.name,children:a.jsx("p",{className:"af-file-viewer__muted",children:"This browser cannot show PDFs inline. Use Download to open it."})}):a.jsx($i,{});case"markdown":return t.renderMarkdown?a.jsx("div",{className:"af-file-viewer__markdown",children:t.renderMarkdown(n)}):a.jsx(Oc,{text:n,language:""});case"json":{let s=n,i="";try{s=JSON.stringify(JSON.parse(n),null,2)}catch{i=t.partialNote?"":"Not valid JSON; shown as text."}return a.jsxs(a.Fragment,{children:[i?a.jsx("p",{className:"af-file-viewer__muted",children:i}):null,a.jsx(Oc,{text:s,language:"json"})]})}case"code":return a.jsx(Oc,{text:n,language:t.name});case"text":return a.jsx(Oc,{text:n,language:"",lineNumbers:!1});default:return a.jsx($i,{})}}function $i(){return a.jsx("p",{className:"af-file-viewer__muted",children:"No preview for this file type. Use Download to open it."})}function Wi(e){const t=y.useId(),n=`${e.id||t}-title`;return a.jsxs("section",{className:`af-settings-group${e.variant==="flat"?" af-settings-group--flat":""}${e.className?` ${e.className}`:""}`,"aria-labelledby":n,id:e.id,children:[a.jsxs("div",{className:"af-settings-group__head",children:[a.jsx("h3",{className:"af-settings-group__title",id:n,children:e.title}),e.aside?a.jsx("span",{className:"af-settings-group__aside",children:e.aside}):null]}),e.help?a.jsx("p",{className:"af-settings-group__help",children:e.help}):null,a.jsx("div",{className:"af-settings-group__rows",children:e.children})]})}function Fr(e){const t=e.htmlFor?"label":"span";return a.jsxs("div",{className:`af-setting-row${e.stack?" af-setting-row--stack":""}${e.className?` ${e.className}`:""}`,"data-setting":e.setting,children:[a.jsxs("div",{className:"af-setting-row__label",children:[a.jsx(t,{className:"af-setting-row__name",...e.htmlFor?{htmlFor:e.htmlFor}:{},children:e.label}),e.help?a.jsx("span",{className:"af-setting-row__help",children:e.help}):null]}),e.children!==void 0||e.trailing?a.jsxs("div",{className:"af-setting-row__control",children:[e.children,e.trailing?a.jsx("span",{className:"af-setting-row__trailing",children:e.trailing}):null]}):null]})}function ph(e){const t=!!e.overrideSummary,n=y.useId(),s=t?`${e.overrideSummary}${e.overrideOwner?` — ${e.overrideOwner}`:""}`:`Gateway default${e.defaultSummary?` · ${e.defaultSummary}`:""}`;return a.jsxs("div",{className:"af-override","data-setting":e.setting,"data-overridden":t?"true":"false",children:[a.jsx(Fr,{label:e.label,help:e.help,trailing:a.jsxs(a.Fragment,{children:[a.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?a.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:a.jsx("span",{className:"af-override__summary",title:s,children:s})}),a.jsx("div",{className:"af-override__editor",id:n,hidden:!e.open,children:e.open?e.children:null})]})}const lt={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."},En=lt;function nN(e){return e==="any_except_denied"?En.postureAnyExceptDenied:En.postureAllowedOnly}function sN(e){return e==="any_except_denied"?En.postureAnyExceptDeniedHelp:En.postureAllowedOnlyHelp}function ty(e){return e==="ro"?En.accessRead:e==="deny"?En.accessDenied:En.accessReadWrite}function rN(e){return e==="gateway"?En.gatewayHelp:e==="account"?En.accountHelp:e==="session"?En.sessionHelp:En.runHelp}const ny={deny:0,ro:1,rw:2},Sf=["rw","ro","deny"];function aN(e){if(e===null)return{allowed:[...Sf],reasons:{}};const t=e==="deny"?En.capRefused:En.capReadOnly,n=Sf.filter(i=>ny[i]<=ny[e]),s={};for(const i of Sf)n.includes(i)||(s[i]=t);return{allowed:n,reasons:s}}function oN(e,t){const{policy:n}=t,s=t.effective;if(e==="gateway"?typeof n.summary!="string":!s)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,l=t.can_edit===!1,u=new Map(((s==null?void 0:s.folders)??[]).map(v=>[v.path,v.cap])),d=s,f=i?d.folders.map(v=>({path:v.path,mode:v.mode})):n.folders,m=i?d.posture:n.posture,p=i?d.default_mode??n.default_mode:n.default_mode,g=!i&&!l,b=f.map(v=>{const C=e==="gateway"?null:u.get(v.path)??null,{allowed:x,reasons:N}=aN(C);return{path:v.path,mode:v.mode,cap:C,allowed:x,reasons:N,builtin:!1,editable:g}});if(e==="gateway")for(const v of n.builtin_refused??[])b.push({path:v,mode:"deny",cap:null,allowed:[],reasons:{},builtin:!0,editable:!1});return{level:e,posture:m,following:i,rows:b,everythingElse:m==="any_except_denied"?{mode:p,editable:g}:null,canAdd:g,gatewayLine:e==="gateway"?null:`${En.gatewayPrefix} ${d.gateway_summary}`,summary:e==="gateway"?n.summary:d.summary,locked:l}}function iN(e,t){return t==="any_except_denied"?"deny":e==="gateway"?"rw":"ro"}function hl(e,t){const n={posture:t.posture,default_mode:t.default_mode,folders:t.folders.map(s=>({path:s.path,mode:s.mode}))};return e==="gateway"?n:{configured:!0,...n}}function lN(e,t,n,s){return hl(e,{...t,folders:t.folders.map(i=>i.path===n?{path:n,mode:s}:i)})}function cN(e,t,n){return hl(e,{...t,posture:n})}function uN(e,t,n){return hl(e,{...t,default_mode:n})}function dN(e,t,n,s){const i=String(n).trim();return hl(e,{...t,folders:[...t.folders,{path:i,mode:iN(e,t.posture)}]})}function fN(e,t,n){return hl(e,{...t,folders:t.folders.filter(s=>s.path!==n)})}function hN(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(s=>({path:s.path,mode:s.mode}))}}function $v(e){let t=String(e||"");for(;t.endsWith("/");)t=t.slice(0,-1);return t}function mN(e,t=zr){const n=$v(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 pN(e="me",t=zr){return`${$v(t)}/workspace/effective/${encodeURIComponent(e)}`}const gh=e=>e==="ro"||e==="rw"||e==="deny",Tv=e=>e==="ro"||e==="rw",Rv=e=>e==="allowed_only"||e==="any_except_denied",gN=e=>Array.isArray(e)&&e.every(t=>t&&typeof t.path=="string"&&gh(t.mode)),ou="The gateway answered with an older workspace model (it needs the round-11 workspace API).";function yN(e,t){const n=e&&typeof e=="object"?e:{},s=n.policy&&typeof n.policy=="object"?n.policy:{};if("shared_workspace"in s||"shared_workspace"in n)throw new Error(ou);if(!(Rv(s.posture)&&Tv(s.default_mode)&&gN(s.folders)&&(t==="gateway"?typeof s.summary=="string":typeof s.configured=="boolean")&&(s.builtin_refused===void 0||Array.isArray(s.builtin_refused)&&s.builtin_refused.every(l=>typeof l=="string"))))throw new Error(`The gateway answered without a workspace policy (policy.posture, default_mode, folders, ${t==="gateway"?"summary":"configured"}). ${ou}`);return{...typeof s.account=="string"?{account:s.account}:{},...t==="gateway"?{summary:s.summary}:{configured:s.configured},posture:s.posture,default_mode:s.default_mode,folders:s.folders.map(l=>({path:l.path,mode:l.mode})),...Array.isArray(s.builtin_refused)?{builtin_refused:[...s.builtin_refused]}:{}}}function Iv(e){const t=e&&typeof e=="object"?e:{};if("shared_workspace"in t)throw new Error(ou);if(!(Rv(t.posture)&&(Tv(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(s=>s&&typeof s.path=="string"&&gh(s.mode)&&gh(s.cap))))throw new Error(`The gateway answered without the effective workspaces (posture, default_mode, folders with cap, summary, gateway_summary). ${ou}`);return{posture:t.posture,default_mode:t.default_mode,folders:t.folders.map(s=>({path:s.path,mode:s.mode,cap:s.cap,source:s.source})),summary:t.summary,gateway_summary:t.gateway_summary}}function sy(e,t){const n=yN(e,t),s=e;return{policy:n,effective:t==="gateway"?null:Iv(s.effective),...typeof s.can_edit=="boolean"?{can_edit:s.can_edit}:{}}}function ry(e,t,n=zr){const s=mN(t,n);return{path:s,load:async()=>sy(await e(s,{method:"GET"}),t.level),save:async i=>sy(await e(s,{method:"PUT",body:i}),t.level)}}function yh(e,t="me",n=zr){const s=pN(t,n);return async(i,l)=>Iv(await e(s,{method:"POST",body:l?{workspace:i,session:l}:{workspace:i}}))}function Kh(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 ay(e){const t=Kh(e).trim()||"The gateway refused the change.";return`${t}${/[.!?]$/.test(t)?"":"."} ${En.notSaved}`}const wN=e=>!!e&&typeof e=="object"&&"policy"in e&&"effective"in e;function vN(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 Jh(e){To();const t=e.idPrefix||"af-workspace",[n,s]=y.useState(null),[i,l]=y.useState({}),[u,d]=y.useState(null),[f,m]=y.useState(""),[p,g]=y.useState(null),b=String(e.unavailableReason||"").trim(),v=e.level,C=e.level==="run"?vN(e.value,e.effective):e.state,x=e.level==="run"?e.effective:e.state,N=p&&p.base===x?p.value:C,k=N?oN(v,N):null,T=L=>{if(e.level==="run"){const J=e,B=L.configured===!1?null:{posture:L.posture,default_mode:L.default_mode,folders:L.folders};return Promise.resolve(J.onChange(B))}return e.save(L)};async function $(L,J){if(n!==null||b)return!1;s(L),d(null),l(B=>{const Y={...B};return delete Y[L],Y});try{const B=await T(J);return wN(B)&&g({base:x,value:B}),d(L),!0}catch(B){return l(Y=>({...Y,[L]:ay(B)})),!1}finally{s(null)}}const j=L=>i[L]?a.jsx("span",{className:"af-workspace__refusal",role:"alert","data-workspace":"refusal",children:i[L]}):u===L?a.jsx("span",{className:"af-workspace__saved",role:"status","data-workspace":"saved",children:lt.saved}):null,A=(L,J)=>a.jsx("span",{className:"af-workspace__access-tag","data-workspace":"access","data-access":L,"data-af-tip":J,tabIndex:J?0:void 0,children:ty(L)}),S=(L,J,B,Y,te)=>a.jsx("span",{className:"af-workspace__access",role:"group","aria-label":L,"data-workspace":te,"data-access":J,children:B.map(W=>{const R=!!W.reason||!!b;return a.jsx("button",{type:"button",className:"af-workspace__access-btn","aria-pressed":J===W.value?"true":"false","aria-disabled":R?"true":void 0,"data-af-tip":W.reason||void 0,"data-action":`${te}-${W.value}`,onClick:()=>R||n!==null||W.value===J?void 0:Y(W.value),children:W.text},W.value)})}),M=L=>{if(L.builtin)return A("deny",lt.builtinRefused);if(!L.editable||!N)return A(L.mode);const J=N.policy;return a.jsxs(a.Fragment,{children:[S(`${lt.accessLabel} ${L.path}`,L.mode,["rw","ro","deny"].map(B=>({value:B,text:ty(B),reason:L.reasons[B]})),B=>void $(L.path,lN(v,J,L.path,B)),"workspace-mode"),a.jsx("button",{type:"button",className:"af-workspace__icon-btn","data-action":"workspace-remove","aria-label":`${lt.remove} ${L.path}`,"data-af-tip":`${lt.remove} ${L.path}`,"aria-disabled":b||n!==null?"true":void 0,onClick:()=>b||n!==null?void 0:void $(L.path,fN(v,J,L.path)),children:a.jsx(de,{name:"x",size:16})})]})};async function I(L){if(!N||!k||!k.canAdd)return;const J=L.trim();J&&await $("add",dN(v,N.policy,J))&&m("")}async function z(){if(!e.choose||n!==null||b)return;let L;try{L=await e.choose()}catch(J){l(B=>({...B,add:ay(J)}));return}L&&await I(L)}const V=k?k.rows.filter(L=>L.mode!=="deny"):[],Z=k?k.rows.filter(L=>L.mode==="deny"):[],ie=L=>a.jsxs("li",{className:"af-workspace__row","data-workspace":L.builtin?"builtin":"row","data-path":L.path,"data-mode":L.mode,"data-cap":L.cap??void 0,children:[a.jsx("code",{className:"af-workspace__path",children:L.path}),a.jsx("span",{className:"af-workspace__controls",children:M(L)}),j(L.path)]},`${L.builtin?"builtin:":""}${L.path}`),F=v==="account"?lt.followGateway:lt.useDefault,D=v==="account"?lt.followGatewayHelp:lt.useDefaultHelp;return a.jsx(Wi,{id:t,className:`af-workspace af-workspace--${v}${e.className?` ${e.className}`:""}`,title:v==="gateway"?lt.gatewayTitle:lt.title,help:rN(v),children:e.loadError?a.jsx("p",{className:"af-workspace__refusal",role:"alert","data-workspace":"load-error",children:e.loadError}):!k||!N?a.jsx("p",{className:"af-workspace__note","data-workspace":"loading",children:lt.loading}):a.jsxs("div",{className:"af-workspace__body","data-level":v,"data-following":k.following?"true":"false",children:[k.gatewayLine?a.jsx("p",{className:"af-workspace__gateway","data-workspace":"gateway-line",children:k.gatewayLine}):null,b?a.jsx("p",{className:"af-workspace__note",id:`${t}-blocked`,"data-workspace":"blocked",children:b}):null,v!=="gateway"?a.jsxs("div",{className:"af-workspace__follow","data-workspace":"follow",children:[a.jsx(Br,{variant:"row",label:F,description:D,checked:k.following,busy:n==="follow",unavailableReason:b||(k.locked?lt.locked:null),reasonVisible:!1,describedBy:b?`${t}-blocked`:void 0,action:v==="account"?"workspace-follow-gateway":"workspace-use-default",onChange:L=>void $("follow",hN(N,L))}),j("follow")]}):null,a.jsxs("div",{className:"af-workspace__posture","data-workspace":"posture","data-posture":k.posture,children:[k.following||k.locked?a.jsx("span",{className:"af-workspace__badge",children:nN(k.posture)}):S(lt.postureLabel,k.posture,[{value:"allowed_only",text:lt.postureAllowedOnly},{value:"any_except_denied",text:lt.postureAnyExceptDenied}],L=>void $("posture",cN(v,N.policy,L)),"workspace-posture"),a.jsx("span",{className:"af-workspace__note","data-workspace":"posture-help",children:sN(k.posture)}),j("posture")]}),a.jsxs("ul",{className:"af-workspace__list","aria-label":lt.title,"data-workspace":"list",children:[V.length?a.jsx("li",{className:"af-workspace__caption","data-workspace":"caption-allowed",children:lt.allowedTitle}):null,V.map(ie),Z.length?a.jsx("li",{className:"af-workspace__caption","data-workspace":"caption-refused",children:lt.deniedTitle}):null,Z.map(ie),k.everythingElse?a.jsxs("li",{className:"af-workspace__row","data-workspace":"everything-else","data-mode":k.everythingElse.mode,children:[a.jsx("span",{className:"af-workspace__name",children:lt.everythingElse}),a.jsx("span",{className:"af-workspace__controls",children:k.everythingElse.editable?S(`${lt.accessLabel} ${lt.everythingElse}`,k.everythingElse.mode,[{value:"rw",text:lt.accessReadWrite},{value:"ro",text:lt.accessRead}],L=>void $("everything-else",uN(v,N.policy,L)),"workspace-default"):A(k.everythingElse.mode)}),j("everything-else")]}):null,k.canAdd?a.jsxs("li",{className:"af-workspace__add","data-workspace":"add",children:[a.jsx("input",{type:"text",className:"af-workspace__input","aria-label":lt.addPlaceholder,placeholder:lt.addPlaceholder,value:f,disabled:!!b||n==="add",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",onChange:L=>m(L.target.value),onKeyDown:L=>{L.key==="Enter"?(L.preventDefault(),I(f)):L.key==="Escape"&&(L.preventDefault(),m(""),l(J=>{const B={...J};return delete B.add,B}))}}),a.jsx("button",{type:"button",className:"af-workspace__add-btn","data-action":"workspace-add",disabled:!!b||!f.trim()||n!==null,onClick:()=>void I(f),children:lt.add}),e.choose?a.jsx("button",{type:"button",className:"af-workspace__add-btn","data-action":"workspace-choose",disabled:!!b||n!==null,onClick:()=>void z(),children:lt.choose}):null,j("add")]}):null]}),k.posture==="allowed_only"&&!V.length?a.jsx("p",{className:"af-workspace__note","data-workspace":"empty",children:lt.emptyAllowed}):null,v==="session"||v==="run"?a.jsx("p",{className:"af-workspace__note","data-workspace":"private",children:lt.privateNote}):null,a.jsx("p",{className:"af-workspace__effective","data-workspace":"effective",children:k.summary}),e.footer?a.jsx("div",{className:"af-workspace__footer",children:e.footer}):null]})})}const Nf=e=>`${Math.round(e*100)} %`,_N="Safari does not let a page choose the output device: replies play on the system output (change it in the system sound settings).";function bN(e){var S,M,I;const t=!!e.unavailableReason,n=e.outputSelectable??$w(),s=y.useId(),[i,l]=y.useState({devices:[],labelled:!0}),[u,d]=y.useState({text:"",tone:"info"}),f=y.useRef(!0);y.useEffect(()=>(f.current=!0,()=>{f.current=!1}),[]);const m=e.value,p=z=>e.onChange({...m,...z}),g=_a(m.reply_volume),b=m.reply_muted===!0,v=e.showMute!==!1||b,C=e.listDevices||xw,x=y.useRef(C);x.current=C;const N=()=>{n&&x.current("audiooutput").then(z=>f.current&&l(z)).catch(()=>f.current&&l({devices:[],labelled:!1}))};y.useEffect(()=>{t||N()},[n,t,e.devicesKey]);const k=()=>{d({text:"Playing a short chime…",tone:"info"}),Qk({deviceId:n&&m.output_device||"",volume:g}).then(()=>{if(!f.current)return;const z="Chime played. Heard nothing? Pick another output or raise the volume.";d({text:b?`${z} Replies are muted: unmute them to hear them.`:z,tone:"ok"})}).catch(z=>f.current&&d({text:`The speaker test failed: ${String((z==null?void 0:z.message)||z).replace(/\.$/,"")}.`,tone:"error"}))},T=m.output_device||"",$=[{value:"",label:"System default"},...i.devices.map(z=>({value:z.id,label:z.label})),...T&&!i.devices.some(z=>z.id===T)?[{value:T,label:"Saved speaker (not connected)"}]:[]],j=((S=e.labels)==null?void 0:S.device)||"Output device",A=((M=e.labels)==null?void 0:M.volume)||"Reply volume";return a.jsxs("div",{className:`af-voice-output${e.className?` ${e.className}`:""}`,"data-voice-output":!0,children:[a.jsx(Fr,{label:j,setting:"output-device",help:n?void 0:_N,trailing:a.jsx("button",{type:"button",className:"af-setting-btn","data-action":"test-speaker",disabled:t,onClick:k,children:((I=e.labels)==null?void 0:I.test)||"Test"}),children:a.jsx(_n,{ariaLabel:j,placeholder:"System default",value:n?T:"",options:$,disabled:t||!n,searchable:!1,onOpen:N,onChange:z=>p({output_device:z})})}),u.text?a.jsx("p",{className:`af-voice-note af-voice-note--${u.tone}`,role:"status","data-voice-note":"speaker",children:u.text}):null,a.jsxs(Fr,{label:A,setting:"reply-volume",htmlFor:s,trailing:v?a.jsx("button",{type:"button",className:"af-setting-btn","data-action":"mute-replies",disabled:t,onClick:()=>p({reply_muted:!b}),children:b?"Unmute":"Mute"}):void 0,children:[a.jsx("input",{id:s,className:"af-voice-range",type:"range",min:0,max:100,step:5,value:Math.round(g*100),disabled:t,"aria-valuetext":b?`Muted (${Nf(g)})`:Nf(g),onChange:z=>p({reply_volume:Number(z.currentTarget.value)/100})}),a.jsx("span",{className:"af-voice-range__value","data-voice-volume":b?"muted":"on",children:b?"Muted":Nf(g)})]})]})}function xN(e){const[t,n]=y.useState(0),s=e==null?void 0:e.subscribe_level;return y.useEffect(()=>{if(!s){n(0);return}return s(i=>n(Math.min(1,Math.max(0,Number(i)||0))))},[s]),t}function Mv(e){const t=xN(e.level===void 0?e.source:null),n=Math.min(1,Math.max(0,e.level===void 0?t:Number(e.level)||0)),s=e.inline?"span":"div";return a.jsx(s,{className:`af-voice-meter${e.className?` ${e.className}`:""}`,"data-voice-meter":!0,"data-voice-meter-source":e.origin||"live",role:"meter","aria-label":e.label||"Microphone level","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n*100),children:a.jsx("span",{className:"af-voice-meter__fill",style:{width:`${Math.round(n*100)}%`}})})}const Cf=e=>`${Math.round(e*100)} %`;function qh(e){const t=Number(e);return e==null||e===""||!Number.isFinite(t)||t<=0?1:Math.min(1.5,Math.max(.5,t))}function kN(e){var Z,ie,F;const t=!!e.unavailableReason,n=y.useId(),[s,i]=y.useState({devices:[],labelled:!0}),[l,u]=y.useState(""),[d,f]=y.useState({phase:"idle",message:"",tone:"info"}),[m,p]=y.useState(0),g=y.useRef(!0);y.useEffect(()=>(g.current=!0,()=>{g.current=!1}),[]);const b=jw(),v=e.value,C=D=>e.onChange({...v,...D}),x=qh(v.input_gain),N=e.listDevices||xw,k=y.useRef(N);k.current=N;const T=()=>{k.current("audioinput").then(D=>g.current&&i(D)).catch(()=>g.current&&i({devices:[],labelled:!1}))};y.useEffect(()=>{t||T()},[t]);const $=()=>{u(""),Yk().then(()=>{var D;T(),(D=e.onDevicesChanged)==null||D.call(e)}).catch(D=>g.current&&u(Zc(D)))},j=()=>{f({phase:"recording",message:"Recording 3 seconds — say something.",tone:"info"}),Cw({deviceId:v.input_device||"",ms:3e3,gain:x,onLevel:D=>g.current&&p(D)}).then(async({blob:D,peak:L})=>{var J,B,Y;if(g.current){if(L<Nw){f({phase:"idle",message:"The microphone recorded silence. Pick another input, or raise its level in the system sound settings.",tone:"error"});return}f({phase:"playing",message:"Playing it back…",tone:"info"}),await Ew(D,{deviceId:((J=e.playOn)==null?void 0:J.deviceId)||"",volume:(B=e.playOn)==null?void 0:B.volume}),g.current&&(f({phase:"idle",message:`The microphone works (peak level ${Cf(L)}).`,tone:"ok"}),T(),(Y=e.onDevicesChanged)==null||Y.call(e))}}).catch(D=>g.current&&f({phase:"idle",message:Zc(D),tone:"error"}))},A=v.input_device||"",S=[{value:"",label:"System default"},...s.devices.map(D=>({value:D.id,label:D.label})),...A&&!s.devices.some(D=>D.id===A)?[{value:A,label:"Saved microphone (not connected)"}]:[]],M=d.phase!=="idle",I=d.phase==="recording",z=((Z=e.labels)==null?void 0:Z.device)||"Input device",V=((ie=e.labels)==null?void 0:ie.gain)||"Input level";return a.jsxs("div",{className:`af-voice-input${e.className?` ${e.className}`:""}`,"data-voice-input":!0,children:[a.jsx(Fr,{label:z,setting:"input-device",trailing:a.jsx("button",{type:"button",className:"af-setting-btn","data-action":"test-microphone",disabled:t||M,onClick:j,children:d.phase==="recording"?"Recording…":d.phase==="playing"?"Playing…":((F=e.labels)==null?void 0:F.test)||"Test"}),children:a.jsx(_n,{ariaLabel:z,placeholder:"System default",value:A,options:S,disabled:t,searchable:!1,onOpen:T,onChange:D=>C({input_device:D})})}),a.jsx(Mv,{source:I?null:e.levelSource,level:I?m:e.level,origin:I?"test":"live"}),d.message?a.jsx("p",{className:`af-voice-note af-voice-note--${d.tone}`,role:"status","data-voice-note":"microphone",children:d.message}):null,!s.labelled&&!t?a.jsxs("p",{className:"af-voice-note","data-voice-note":"labels",children:["Device names appear once the microphone is allowed."," ",a.jsx("button",{type:"button",className:"af-setting-btn af-setting-btn--quiet","data-action":"show-device-names",onClick:$,children:"Show names"})]}):null,l?a.jsx("p",{className:"af-voice-note af-voice-note--error",role:"status",children:l}):null,b?a.jsxs(Fr,{label:V,setting:"input-gain",htmlFor:n,help:"Raises a quiet microphone.",children:[a.jsx("input",{id:n,className:"af-voice-range",type:"range",min:50,max:150,step:10,value:Math.round(x*100),disabled:t,"aria-valuetext":Cf(x),onChange:D=>C({input_gain:Number(D.currentTarget.value)/100})}),a.jsx("span",{className:"af-voice-range__value",children:Cf(x)})]}):null]})}function jN(e){return{output_device_id:e.output_device||"",volume:_a(e.reply_volume),muted:e.reply_muted===!0,input_device_id:e.input_device||"",input_gain:qh(e.input_gain),capture_mode:No(e.capture_mode)}}const SN=["provider","model","voice","profile","speed","quality_preset","instructions"];function NN(e){const t={};for(const n of SN){const s=e[n];s!==void 0&&s!==""&&s!==null&&(t[n]=s)}return t}function CN(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 EN=[{value:"",label:"Detect automatically"},...Object.keys(Rw).map(e=>({value:e,label:ba(e)}))],AN=[{value:"hold",label:"Hold to talk"},{value:"toggle",label:"Tap to talk"}];function $N(e){return[e.provider,e.model,e.profile||e.voice].filter(Boolean).join(" · ")}function TN(e){return[e.stt_provider,e.stt_model].filter(Boolean).join(" · ")}const RN=[{value:"",label:"Gateway default"},{value:"standard",label:"Balanced"},{value:"low",label:"Faster (lower quality)"},{value:"high",label:"Higher quality (slower)"}],oy=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 IN(e){var oe,ve,Ne,q,be,xe,Pe,Qe,He,qe;const t=e.overrideOwner||"this app",n=!!e.unavailableReason,s=e.rows||{},i=y.useRef(e.fetchCatalog);i.current=e.fetchCatalog;const l=y.useRef(e.fetchDefaults);l.current=e.fetchDefaults;const u=y.useRef(e.fetchLanguages);u.current=e.fetchLanguages;const[d,f]=y.useState({}),[m,p]=y.useState({value:null,failed:!1}),g=e.defaults!==void 0?{value:e.defaults,failed:!1}:m,b=e.defaults!==void 0,[v,C]=y.useState(""),[x,N]=y.useState(0),[k,T]=y.useState(null),$=e.outputSelectable??$w(),j=e.value,A=e.nested?"flat":"card",S=ge=>e.onChange({...j,...ge}),M=_a(j.reply_volume),I=qh(j.input_gain),z=s.tts!==!1&&!e.ttsSlot,V=s.stt!==!1,Z=z||V||!!e.ttsSlot,ie=e.voiceLibrary||e.createVoice;y.useEffect(()=>{if(n)return;let ge=!0;return i.current().then($e=>ge&&f($e||{})).catch(()=>ge&&f({})),b||l.current().then($e=>ge&&p({value:$e||{},failed:!1})).catch(()=>ge&&p({value:null,failed:!0})),()=>{ge=!1}},[n,b]);const F=j.stt_provider||((ve=(oe=g.value)==null?void 0:oe.stt)!=null&&ve.configured?String(g.value.stt.provider||""):""),D=!!e.fetchLanguages;y.useEffect(()=>{const ge=u.current;if(n||!ge||s.microphone===!1)return;let $e=!0;return ge("stt",F||void 0).then(nt=>$e&&T(Array.isArray(nt)?nt.map(et=>String(et).toLowerCase()).filter(Boolean):[])).catch(()=>$e&&T(null)),()=>{$e=!1}},[n,D,F,s.microphone]);const L=$g(g.value,"tts",g.failed),J=$g(g.value,"stt",g.failed),B=[(Ne=g.value)==null?void 0:Ne.tts,(q=g.value)==null?void 0:q.stt].map(ge=>ge&&!ge.configured?ge.note:"").filter(Boolean),Y=[(be=g.value)==null?void 0:be.tts,(xe=g.value)==null?void 0:xe.stt].map(ge=>{var $e;return ge&&ge.configured?String((($e=ge.hint)==null?void 0:$e.sentence)||"").trim():""}).filter(Boolean),te=!!((Qe=(Pe=d.controls)==null?void 0:Pe.quality_preset)!=null&&Qe.supported),W={deviceId:$&&j.output_device||"",volume:M},R=k&&k.length?[{value:"",label:"Detect automatically"},...k.map(ge=>({value:ge,label:ba(ge)}))]:[...EN],K=j.stt_language||"";K&&!R.some(ge=>ge.value===K)&&R.push({value:K,label:`${ba(K)} (saved)`});const ne=No(j.capture_mode??((He=e.captureDefaults)==null?void 0:He.capture_mode)),ue=j.auto_send??((qe=e.captureDefaults)==null?void 0:qe.auto_send)??!1;return a.jsxs("div",{className:`af-voice-section${e.className?` ${e.className}`:""}`,children:[e.unavailableReason?a.jsx("p",{className:"af-settings-group__help",role:"status",children:e.unavailableReason}):null,Z?a.jsxs(Wi,{variant:A,title:"Engines",help:"Which engines speak and listen.",children:[e.ttsSlot?a.jsx("div",{className:"af-voice-section__tts-slot","data-voice-slot":"tts",children:e.ttsSlot}):null,z?a.jsx(ph,{label:"Text → speech",setting:"tts",defaultSummary:L,overrideSummary:$N(j),overrideOwner:t,open:v==="tts",onToggle:()=>C(v==="tts"?"":"tts"),onReset:()=>S({provider:"",model:"",voice:"",profile:""}),disabled:n,children:a.jsx(cj,{value:j,onChange:ge=>e.onChange({...j,...ge}),fetchCatalog:e.fetchCatalog,intro:null,quality:!1,showReset:!1,voiceDefaultLabel:"Gateway default",voiceLibrary:ie,previewVoice:e.previewVoice?(ge,$e,nt)=>e.previewVoice({...j,...ge},$e,nt):void 0,previewOn:W,recordFrom:{deviceId:j.input_device||"",gain:I}})}):null,V?a.jsx(ph,{label:"Speech → text",setting:"stt",defaultSummary:J,overrideSummary:TN(j),overrideOwner:t,open:v==="stt",onToggle:()=>C(v==="stt"?"":"stt"),onReset:()=>S({stt_provider:"",stt_model:""}),disabled:n,children:a.jsx(yu,{value:{provider:j.stt_provider||"",model:j.stt_model||""},onChange:ge=>S({stt_provider:ge.provider,stt_model:ge.model}),fetchProviders:async()=>{const ge=await i.current();return oy(ge.stt_providers).map($e=>({name:$e}))},fetchModels:async ge=>{var nt;const $e=await i.current(ge);return oy(((nt=$e.stt_models_by_provider)==null?void 0:nt[ge])||$e.stt_models)},inheritLabel:"Gateway default",providerLabel:"Transcription provider",modelLabel:"Transcription model"})}):null,g.failed?a.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,B.map(ge=>a.jsx("p",{className:"af-settings-group__help","data-voice-note":"unset",children:ge},ge)),Y.map(ge=>a.jsx("p",{className:"af-settings-group__help","data-voice-note":"hint",role:"note",children:ge},ge))]}):null,s.output!==!1?a.jsx(Wi,{variant:A,title:"Output",children:a.jsx(bN,{value:j,onChange:e.onChange,listDevices:e.listDevices,outputSelectable:$,showMute:s.mute===!0,unavailableReason:e.unavailableReason,devicesKey:x})}):null,s.microphone!==!1?a.jsxs(Wi,{variant:A,title:"Microphone",children:[a.jsx(kN,{value:j,onChange:e.onChange,levelSource:e.levelSource,listDevices:e.listDevices,playOn:W,onDevicesChanged:()=>N(ge=>ge+1),unavailableReason:e.unavailableReason}),a.jsx(Fr,{label:"Spoken language",setting:"stt-language",help:"Naming it skips detection: transcription is faster.",children:a.jsx(_n,{ariaLabel:"Spoken language",placeholder:"Detect automatically",value:K,options:R,disabled:n,searchable:!1,onChange:ge=>S({stt_language:ge})})}),s.capture===!0?a.jsxs(a.Fragment,{children:[a.jsx(Fr,{label:"Microphone button",setting:"capture-mode",children:a.jsx(_n,{ariaLabel:"Microphone button",value:ne,options:AN,disabled:n,searchable:!1,onChange:ge=>S({capture_mode:ge==="toggle"?"toggle":"hold"})})}),a.jsx("div",{className:"af-setting-row af-setting-row--switch","data-setting":"auto-send",children:a.jsx(Br,{label:"Send what you say automatically",description:"Off: what you say lands in the message box for you to review.",variant:"row",checked:ue,unavailableReason:n?e.unavailableReason:null,reasonVisible:!1,onChange:ge=>S({auto_send:ge})})})]}):null]}):null,s.replies!==!1?a.jsxs(Wi,{variant:A,title:"Replies",children:[a.jsx("div",{className:"af-setting-row af-setting-row--switch","data-setting":"read-aloud",children:a.jsx(Br,{label:"Read aloud",description:"Speak each new reply.",variant:"row",checked:j.read_aloud===!0,unavailableReason:n?e.unavailableReason:null,reasonVisible:!1,onChange:ge=>S({read_aloud:ge})})}),a.jsx(Fr,{label:"Voice latency",setting:"latency",help:te?"Trades quality for a faster first word.":"This gateway's voice engine has no latency control.",children:a.jsx(_n,{ariaLabel:"Voice latency",placeholder:"Gateway default",value:te&&j.quality_preset||"",options:RN,disabled:n||!te,searchable:!1,onChange:ge=>S({quality_preset:ge})})})]}):null]})}const wh="@gateway-default";function MN(e){return[{value:wh,label:ut.time_zone_default.replace("{time_zone}",e.gateway_default)},...e.choices.map(t=>({value:t,label:t}))]}function LN(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 a.jsxs("div",{className:"af-tz-picker","data-time-zone-preference":t.value??"",children:[a.jsxs("div",{className:"af-tz-picker__head",children:[a.jsx("label",{className:"af-tz-picker__label",htmlFor:e.id,children:t.label}),t.help?a.jsx(Qc,{content:t.help,children:a.jsx("span",{className:"af-tz-picker__help",tabIndex:0,"aria-label":t.help,children:"?"})}):null]}),a.jsxs("div",{className:"af-tz-picker__control",children:[a.jsx(_n,{id:e.id,value:t.value??wh,options:MN(t),searchable:!0,searchPlaceholder:ut.time_zone_search,ariaLabel:t.label,disabled:e.disabled,onChange:n=>e.onChange(n&&n!==wh?n:null)}),e.note?a.jsx("span",{className:`af-tz-picker__note ${e.note.ok?"is-ok":"is-error"}`,role:"status","aria-live":"polite",children:e.note.text}):null]})]})}const Tr={hold:"Hold to talk",toggle:"Tap to talk",recordingHold:"Recording — release to send",recordingToggle:"Recording — tap to stop",holdHint:"Hold the button while you speak — release to send.",unavailable:"Speech to text is not available here.",modeMismatch:"The microphone is set up for the other way of talking. Reload the page.",transcriptMismatch:"The microphone cannot deliver what you say here. Reload the page."};function ON(e){const[t,n]=y.useState(()=>Date.now());return y.useEffect(()=>{if(!e)return;n(Date.now());const s=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(s)},[e]),t}function PN(e){const{voice:t}=e,n=No(e.mode),s=t.voice_capture_mode&&t.voice_capture_mode!==n?"mode":e.onTranscript&&typeof t.add_transcript_listener!="function"?"transcript":"";y.useEffect(()=>{s==="mode"?console.error(`AfVoiceMicButton mode "${n}" needs useGatewayVoice({ capture_mode: "${n}" }) (the hook records in "${t.voice_capture_mode}" mode): pass the same voiceCaptureMode(prefs) to both.`):s==="transcript"&&console.error("AfVoiceMicButton onTranscript needs the voice returned by useGatewayVoice (add_transcript_listener).")},[s,n,t.voice_capture_mode]);const i=y.useRef(!1),l=y.useRef(0),u=y.useRef(!0),d=y.useRef(t.voice_ptt_recording);d.current=t.voice_ptt_recording;const f=y.useRef(t);f.current=t;const m=y.useRef(e.onTranscript);m.current=e.onTranscript;const[p,g]=y.useState(!1),b=!!e.onTranscript;y.useEffect(()=>(u.current=!0,()=>{var V,Z;u.current=!1,(i.current||d.current)&&((Z=(V=f.current).cancel_voice_ptt_recording)==null||Z.call(V)),i.current=!1}),[]),y.useEffect(()=>{if(!(!b||!t.add_transcript_listener))return t.add_transcript_listener((V,Z)=>{var ie;return(ie=m.current)==null?void 0:ie.call(m,V,Z)})},[t.add_transcript_listener,b]),y.useEffect(()=>{if(!p)return;const V=setTimeout(()=>g(!1),4e3);return()=>clearTimeout(V)},[p]);const v=s==="mode"?Tr.modeMismatch:s==="transcript"?Tr.transcriptMismatch:e.unavailableReason||(t.voice_ptt_supported?null:Tr.unavailable),C=t.voice_ptt_busy,x=t.voice_ptt_recording,N=()=>{const V=f.current;v||V.voice_ptt_busy||i.current||(i.current=!0,l.current=Date.now(),g(!1),V.start_voice_ptt_recording().then(()=>{var Z,ie;(!i.current||!u.current)&&((ie=(Z=f.current).cancel_voice_ptt_recording)==null||ie.call(Z))}))},k=()=>{var V,Z;if(i.current){if(i.current=!1,Date.now()-l.current<Aw){(Z=(V=f.current).cancel_voice_ptt_recording)==null||Z.call(V),u.current&&g(!0);return}f.current.stop_voice_ptt_recording()}},T=()=>{var V,Z;i.current&&(i.current=!1,(Z=(V=f.current).cancel_voice_ptt_recording)==null||Z.call(V))};y.useEffect(()=>{if(n==="hold")return window.addEventListener("pointerup",k),window.addEventListener("pointercancel",k),window.addEventListener("blur",T),()=>{window.removeEventListener("pointerup",k),window.removeEventListener("pointercancel",k),window.removeEventListener("blur",T)}},[n]);const $=()=>{const V=f.current;if(V.voice_ptt_recording){V.stop_voice_ptt_recording();return}v||V.voice_ptt_busy||(g(!1),V.start_voice_ptt_recording())},j=t.voice_ptt_since||0,A=ON(!!j),S=e.label||(n==="hold"?Tr.hold:Tr.toggle),M=x?n==="hold"?Tr.recordingHold:Tr.recordingToggle:S,I=x?`Recording… ${j?bw(j,A):""}`.trim():C?qk(j||A,A,e.routeText||""):p?Tr.holdHint:"",z=n==="hold"?{onPointerDown:V=>{V.button===0&&N()},onPointerUp:k,onPointerCancel:k,onKeyDown:V=>{[" ","Enter"].includes(V.key)&&!V.repeat&&(V.preventDefault(),N())},onKeyUp:V=>{[" ","Enter"].includes(V.key)&&(V.preventDefault(),k())}}:{onClick:$};return a.jsxs("span",{className:`af-voice-mic${x?" af-voice-mic--recording":""}${e.className?` ${e.className}`:""}`,"data-voice-mic":!0,"data-mode":n,"data-voice-mic-error":s||void 0,children:[a.jsx("button",{type:"button",className:"af-voice-mic__button","data-action":"voice-mic","aria-label":M,"aria-pressed":x,title:v||M,disabled:!!v||C,...z,children:a.jsx(de,{name:C?"loader":"mic",size:15})}),x?a.jsx(Mv,{source:t,inline:!0,className:"af-voice-mic__meter"}):null,e.showStatus!==!1&&(I||v)?a.jsx("span",{role:"status",className:"af-voice-mic__status","data-voice-status":!0,children:I||v}):null]})}function DN(e,t=""){const n=y.useRef(e);n.current=e;const[s,i]=y.useState({value:null,failed:!1}),[l,u]=y.useState(0),d=!!e;y.useEffect(()=>{const m=n.current;if(!m){i(g=>g.value===null&&!g.failed?g:{value:null,failed:!1});return}let p=!0;return m().then(g=>p&&i({value:g||{},failed:!1})).catch(()=>p&&i({value:null,failed:!0})),()=>{p=!1}},[d,t,l]);const f=y.useCallback(()=>u(m=>m+1),[]);return{value:s.value,failed:s.failed,reload:f}}const Kc=new Map,Lv=()=>{try{return globalThis.localStorage||null}catch{return null}},Ov=e=>{try{const t=e?JSON.parse(e):null;return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}};function Ef(e){var t;return Ov((t=Lv())==null?void 0:t.getItem(e))}function FN(e,t){var s;const n=t&&typeof t=="object"?t:{};try{(s=Lv())==null||s.setItem(e,JSON.stringify(n))}catch{}for(const i of Array.from(Kc.get(e)||[]))i(n)}function zN(e){const[t,n]=y.useState(()=>({key:e,prefs:e?Ef(e):{}})),s=t.key===e?t:{key:e,prefs:e?Ef(e):{}};s!==t&&n(s),y.useEffect(()=>{var m;if(!e)return;const l=p=>n({key:e,prefs:p});let u=Kc.get(e);u||Kc.set(e,u=new Set),u.add(l);const d=p=>{p.key!==null&&p.key!==e||n({key:e,prefs:p.key===null?Ef(e):Ov(p.newValue)})},f=globalThis;return(m=f.addEventListener)==null||m.call(f,"storage",d),()=>{var p;u.delete(l),u.size||Kc.delete(e),(p=f.removeEventListener)==null||p.call(f,"storage",d)}},[e]);const i=y.useCallback(l=>{e?FN(e,l):n({key:null,prefs:l||{}})},[e]);return[s.prefs,i]}function Nu(e,t){const n=typeof e=="string"?e.trim().toLowerCase():"";if(n==="off"||n==="ask"||n==="auto")return n;if(n==="approve")return t==="entity"?"ask":t==="desktop"?"auto":void 0;if(n==="disabled"&&t==="desktop")return"off"}function _o(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Yt(e){return typeof e=="string"?e.trim():""}function iy(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function BN(e){const t=_o(e),n=t==null?void 0:t.items,s=Yt(t==null?void 0:t.error);if(!Array.isArray(n))throw new Error(`The gateway's tool catalog has no items${s?`: ${s}`:""}.`);if(!n.length&&s)throw new Error(`The gateway could not list its tools: ${s}`);const i=_o(t==null?void 0:t.command_sandbox),l=Yt(i==null?void 0:i.sentence),u=new Set,d=[];for(const f of n){const m=_o(f),p=Yt(m==null?void 0:m.name);if(!m||!p||u.has(p))continue;u.add(p);const g=m.enabled!==!1&&m.available!==!1,b=Yt(m.approval_default).toLowerCase(),v=Nu(m.default_approval,"desktop"),C=b?b==="auto"?"auto":"ask":v==="auto"?"auto":"ask",x=_o(m.risk),N=iy(m.risk_rank)??iy(x==null?void 0:x.rank),k=Yt(m.risk_tier)||Yt(x==null?void 0:x.tier),T=Yt(m.sandbox),$=T&&typeof m.sandboxed=="boolean"?{label:T,...l?{tooltip:l}:{},tone:m.sandboxed?"ok":Yt(i==null?void 0:i.state)==="unsandboxed"?"danger":"warn"}:void 0,j=Yt(m.why_disabled)||Yt(m.enable_gate);d.push({name:p,...Yt(m.description)?{description:Yt(m.description)}:{},...Yt(m.when_to_use)?{whenToUse:Yt(m.when_to_use)}:{},toolset:Yt(m.toolset)||"other",offered:g,gatewayDefault:g?C:"off",...g&&!b&&!v?{defaultUnserved:!0}:{},...N!==void 0?{riskRank:N}:{},...k?{riskTier:k}:{},...m.model_controlled_destination===!0?{modelControlledDestination:!0}:{},...m.risk_refiner!==void 0&&m.risk_refiner!==null?{refined:!0}:{},...!g&&j?{whyDisabled:j}:{},...Yt(m.approval_note)?{approvalNote:Yt(m.approval_note)}:{},...$?{state:$}:{}})}return d.sort((f,m)=>f.toolset===m.toolset?f.name.localeCompare(m.name):f.toolset.localeCompare(m.toolset)),d}function WN(e){const t=_o(e),n=Array.isArray(t==null?void 0:t.catalog_warnings)?t.catalog_warnings.map(Yt).filter(Boolean):[],s=Yt(t==null?void 0:t.error);return s&&Array.isArray(t==null?void 0:t.items)&&t.items.length?[s,...n]:n}function iu(e,t){if(!(!e||!Object.prototype.hasOwnProperty.call(e,t)))return Nu(e[t])}function Yh(e,t={}){const n={};for(const s of e){if(!s.offered){n[s.name]={mode:"off",source:"gateway",inherited:"off"};continue}const i=s.gatewayDefault,l=iu(t.app,s.name),u=iu(t.session,s.name);u!==void 0?n[s.name]={mode:u,source:"session",inherited:l??i}:l!==void 0?n[s.name]={mode:l,source:"app",inherited:i}:n[s.name]={mode:i,source:"gateway",inherited:i}}return n}function vh(e,t,n,s){const i={...e||{}};return t.offered?(n===s?delete i[t.name]:i[t.name]=n,i):(delete i[t.name],i)}const Pv=2;function Mo(e){return e.offered&&(e.riskRank??4)<=Pv&&e.modelControlledDestination!==!0}function UN(e,t,n,s){let i={...e||{}};const l=[];for(const u of t)if(u.offered){if(n==="auto"&&!Mo(u)){l.push(u.name);continue}i=vh(i,u,n,s[u.name]??u.gatewayDefault)}return{layer:i,skipped:l}}function Lo(e,t={}){const n={},s={};for(const i of e){if(!i.offered)continue;const l=iu(t.app,i.name);l!==void 0&&l!==i.gatewayDefault&&(n[i.name]=l);const u=n[i.name]??i.gatewayDefault,d=iu(t.session,i.name);d!==void 0&&d!==u&&(s[i.name]=d)}return{app:n,session:s}}function lu(e,t={}){const n=Lo(e,t);return Object.keys(n.app).length>0||Object.keys(n.session).length>0}function Jc(e,t={},n={}){const s=Yh(e,t),i=Array.isArray(n.ceiling)?new Set(n.ceiling):null,l=[],u=[],d=[];for(const f of[...e].sort((m,p)=>m.name.localeCompare(p.name))){const m=i&&!i.has(f.name)?"off":s[f.name].mode;m!=="off"&&(l.push(f.name),m==="auto"?u.push(f.name):f.refined||d.push(f.name))}return{tools:l,allowed_tools:[...l],...lu(e,t)?{tool_policy:{auto_approve_tools:[...u],require_approval_tools:[...d]}}:{},approval:{auto:u,ask:d}}}function Dv(e,t){const n={...e||{}},s={..._o(n._runtime)||{}};return s.allowed_tools=[...t.allowed_tools],t.tool_policy?s.tool_policy={auto_approve_tools:[...t.tool_policy.auto_approve_tools],require_approval_tools:[...t.tool_policy.require_approval_tools]}:delete s.tool_policy,{...n,tools:[...t.tools],_runtime:s}}function VN(e){return{enabledTools:[...e.tools],autoApproveTools:[...e.approval.auto]}}const Qh="The gateway cannot store chat tool policies",HN="The gateway did not return a policy revision; refusing an unguarded write";class GN extends Error{constructor(){super(`${Qh} (it does not advertise capabilities.session_tool_policy).`),this.code="unsupported",this.name="SessionToolPolicyUnsupportedError"}}class KN extends Error{constructor(t){super(`${HN}${t?` (${t})`:""}.`),this.code="no_revision",this.name="SessionToolPolicyRevisionError"}}class JN extends Error{constructor(t,n){super(t||"This chat's tool policy was changed elsewhere. Reload it and try again."),this.code="revision_conflict",this.name="SessionToolPolicyConflictError",typeof n=="number"&&(this.revision=n)}}const vn=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:void 0,nr=e=>typeof e=="string"?e.trim():"",jo=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[];function qN(e){const t=vn(e),n=vn(t==null?void 0:t.capabilities)??t,s=vn(n==null?void 0:n.session_tool_policy);return s?{supported:s.supported===!0,...typeof s.version=="number"?{version:s.version}:{},...nr(s.endpoint)?{endpoint:nr(s.endpoint)}:{},...Array.isArray(s.methods)?{methods:jo(s.methods)}:{},...Array.isArray(s.approve)?{approve:jo(s.approve)}:{},...Array.isArray(s.deny)?{deny:jo(s.deny)}:{},...typeof s.ask=="boolean"?{ask:s.ask}:{},...nr(s.record)?{record:nr(s.record)}:{},...nr(s.reason)?{reason:nr(s.reason)}:{}}:null}const ly=e=>{const t=vn(e);if(!t)return null;const n={};for(const[s,i]of Object.entries(t))typeof i=="string"&&(n[s]=i);return n};function cy(e){const t=vn(e),n=ly(t==null?void 0:t.approve),s=ly(t==null?void 0:t.deny);if(!t||typeof t.version!="number"||typeof t.revision!="number"||typeof t.session_id!="string"||!n||!s||!Array.isArray(t.ask))throw new Error("The gateway answered without a chat tool policy (policy.version, revision, session_id, approve, deny, ask).");const i=Array.isArray(t.clamped)?t.clamped.map(vn).filter(u=>!!u).map(u=>({selector:String(u.selector??""),name:String(u.name??""),reason:String(u.reason??"")})):void 0,l=vn(t.set_by);return{version:t.version,session_id:t.session_id,revision:t.revision,approve:n,deny:s,ask:jo(t.ask),..."request"in t?{request:t.request}:{},...i?{clamped:i}:{},...l?{set_by:{...typeof l.tenant_id=="string"?{tenant_id:l.tenant_id}:{},...typeof l.user_id=="string"?{user_id:l.user_id}:{},...typeof l.client=="string"?{client:l.client}:{}}}:{},...typeof t.set_at=="string"?{set_at:t.set_at}:{}}}function Af(e){const t=vn(e);if(!t)return;const n={};return typeof t.approve=="string"&&t.approve.trim()&&(n.approve=t.approve),typeof t.deny=="string"&&t.deny.trim()&&(n.deny=t.deny),n.approve||n.deny?n:void 0}function YN(e){const t=vn(e)??(e instanceof Error?e:void 0);if(!t)return null;const n=vn(t.body),s=vn(t.detail)??vn(n==null?void 0:n.detail)??n,i=nr(s==null?void 0:s.reason_code)||nr(t.reason_code);if(i!=="revision_conflict"&&!(t.status===409&&!i))return null;const l=s==null?void 0:s.revision;return new JN(nr(s==null?void 0:s.message),typeof l=="number"?l:void 0)}function QN(e,t,n,s={}){const i=String(t??"");if(!uw.test(i))throw new Error(`A session id is 1-256 characters [A-Za-z0-9_.:-], not only dots, got ${JSON.stringify(i)}.`);const l=(n==null?void 0:n.supported)===!0,u=we(Mx(i));let d,f;const m=v=>f?{...v,scope:f}:v,p=async(v,C,x="")=>{if(!l)throw new GN;if(n!=null&&n.methods&&!n.methods.includes(v))throw new Error(`${Qh} with ${v} (the gateway advertises ${n.methods.join(", ")}).`);try{return vn(await e(`${u}${x}`,C===void 0?{method:v}:{method:v,body:C}))}catch(N){throw YN(N)??N}},g=v=>s.client&&v.client===void 0?{...v,client:s.client}:v,b=v=>{const C=cy(v==null?void 0:v.policy);return d=C.revision,f=Af(v==null?void 0:v.scope),m(C)};return{supported:l,sessionId:i,get revision(){return d},get scope(){return f},async get(){const v=await p("GET");if(!v||!("policy"in v))throw new Error("The gateway answered without `policy` for this chat.");const C=v.policy===null?null:cy(v.policy);return d=typeof v.revision=="number"?v.revision:C?C.revision:void 0,f=Af(v.scope),C?m(C):null},replace:async v=>b(await p("PUT",g(v))),merge:async v=>b(await p("POST",g(v))),async reset(v){if(v!==void 0&&!Number.isInteger(v))throw new Error(`reset(ifRevision) takes an integer revision, got ${JSON.stringify(v)}.`);const C=await p("DELETE",void 0,v===void 0?"":`?if_revision=${v}`);return d=typeof(C==null?void 0:C.revision)=="number"?C.revision:void 0,f=Af(C==null?void 0:C.scope),{...d===void 0?{}:{revision:d},...f?{scope:f}:{}}}}}function XN(e,t,n={}){var g;const s=new Set,i=new Set,l=new Set,u=new Set(t.filter(b=>b.offered).map(b=>b.name)),d=b=>e&&Object.prototype.hasOwnProperty.call(e,b)?Nu(e[b]):void 0;for(const b of u){const v=d(b);v==="auto"?s.add(b):v==="off"?i.add(b):v==="ask"&&l.add(b)}const f=n.base,m={};if(f){for(const[x,N]of Object.entries(f.approve))!u.has(x)&&N==="tool"&&s.add(x);for(const[x,N]of Object.entries(f.deny))!u.has(x)&&N==="tool"&&i.add(x);for(const x of f.ask)u.has(x)||l.add(x);for(const[x,N]of Object.entries(f.approve)){if(!u.has(x)||N==="tool")continue;(d(x)??((g=n.inherited)==null?void 0:g[x]))==="ask"&&l.add(x)}const b=vn(f.request),v=vn(b==null?void 0:b.approve),C=vn(b==null?void 0:b.deny);Array.isArray(v==null?void 0:v.kinds)&&v.kinds.length&&(m.approve={kinds:jo(v.kinds)}),(v==null?void 0:v.all)===!0&&(m.approve={...m.approve||{},all:!0}),typeof(v==null?void 0:v.max_risk_rank)=="number"&&(m.approve={...m.approve||{},max_risk_rank:v.max_risk_rank}),Array.isArray(C==null?void 0:C.kinds)&&C.kinds.length&&(m.deny={kinds:jo(C.kinds)})}const p=b=>[...b].sort();return{approve:{tools:p(s),...m.approve||{}},deny:{tools:p(i),...m.deny||{}},ask:p(l)}}function ZN(e){var t,n,s,i,l,u,d,f,m,p;return!((n=(t=e.approve)==null?void 0:t.tools)!=null&&n.length)&&!((i=(s=e.approve)==null?void 0:s.kinds)!=null&&i.length)&&((l=e.approve)==null?void 0:l.all)!==!0&&!((d=(u=e.deny)==null?void 0:u.tools)!=null&&d.length)&&!((m=(f=e.deny)==null?void 0:f.kinds)!=null&&m.length)&&!((p=e.ask)!=null&&p.length)}function e1(e,t){const n={};if(!e)return n;const s=new Set(t.filter(i=>i.offered).map(i=>i.name));for(const i of Object.keys(e.approve))s.has(i)&&(n[i]="auto");for(const i of e.ask)s.has(i)&&(n[i]="ask");for(const i of Object.keys(e.deny))s.has(i)&&(n[i]="off");return n}function t1(e){return((e==null?void 0:e.clamped)||[]).map(t=>`Not covered: ${t.name}${t.selector&&t.selector!=="tools"?` (${t.selector})`:""} (${t.reason})`)}const n1={off:"Off",ask:"Ask",auto:"Auto",on:"On"},s1={app:"Use the gateway's",session:"Use my defaults"},r1="Off = denied for every run of this chat, automations included",a1="The gateway did not say where this policy applies",uy={app:"this app",session:"this chat"},dy=`Auto for a whole group reaches the tools that read or make changes (risk ${Pv} or lower) and whose destination the assistant does not choose. Set the others to Auto one at a time.`;function o1(e){const t=e.split("_");return t.map((n,s)=>s<t.length-1?a.jsxs(gt.Fragment,{children:[n,"_",a.jsx("wbr",{})]},s):a.jsx(gt.Fragment,{children:n},s))}function fy(e){var i,l;if(!e)return"";const t=((i=e.set_by)==null?void 0:i.user_id)||"",n=((l=e.set_by)==null?void 0:l.client)||"",s=Io(e.set_at);return!t&&!s?"":`Set${t?` by ${t}`:""}${n?` (${n})`:""}${s?` on ${s}`:""}`}function i1(e){var L,J,B,Y,te;const t={...n1,...e.labels||{}},n=e.disabled===!0,s=e.allowListOnly===!0,i=e.value||{},[l,u]=y.useState(""),[d,f]=y.useState(!1),m=W=>{var R;return W.offered?((R=e.inherited)==null?void 0:R[W.name])??W.gatewayDefault:"off"},p=W=>{if(!W.offered)return"off";const R=i[W.name];return R==="off"||R==="ask"||R==="auto"?R:m(W)},g=y.useMemo(()=>{const W={};for(const R of e.catalog)W[R.name]=m(R);return W},[e.catalog,e.inherited]),b=y.useMemo(()=>{const W=l.trim().toLowerCase(),R=new Map;for(const K of e.catalog){if(W&&![K.name,K.description||"",K.toolset].some(ue=>ue.toLowerCase().includes(W)))continue;const ne=R.get(K.toolset)||[];ne.push(K),R.set(K.toolset,ne)}return[...R.entries()].sort(([K],[ne])=>K==="other"?1:ne==="other"?-1:K.localeCompare(ne)).map(([K,ne])=>({toolset:K,items:[...ne].sort((ue,oe)=>ue.offered===oe.offered?ue.name.localeCompare(oe.name):ue.offered?-1:1)}))},[e.catalog,l]),v=W=>{n||e.onChange(W)},C=W=>{const R=m(W);return R!=="off"?R:W.gatewayDefault!=="off"?W.gatewayDefault:"ask"},x=(W,R)=>v(vh(i,W,R,m(W))),N=(W,R)=>{if(R==="on"){let K=i;for(const ne of W)ne.offered&&p(ne)==="off"&&(K=vh(K,ne,C(ne),m(ne)));v(K);return}v(UN(i,W,R,g).layer)},k=e.catalog.filter(W=>W.offered),T={auto:0,ask:0};for(const W of k){const R=p(W);R==="auto"?T.auto+=1:R==="ask"&&(T.ask+=1)}const $=T.auto+T.ask,j=W=>{if(!W.offered||!Object.prototype.hasOwnProperty.call(i,W.name))return!1;const R=i[W.name];return(R==="off"||R==="ask"||R==="auto")&&R!==m(W)},A=e.catalog.filter(j).map(W=>W.name),S=ak(e.toolMode,e.toolModeLabel,e.toolModeDetail),M=e.scope??((L=e.policy)==null?void 0:L.scope)??null,I=s?["off","on"]:["off","ask","auto"],z=W=>t[W],V=a.jsxs("div",{className:`af-tool-modes${e.className?` ${e.className}`:""}`,"data-layer":e.layer,"data-allowlist":s?"true":void 0,children:[S?a.jsxs("div",{className:`af-tool-policy__mode is-${S.tone}`,children:[a.jsx("div",{className:"af-tool-policy__mode-badge",children:"Tool mode"}),a.jsx("div",{className:"af-tool-policy__mode-value",children:S.label}),a.jsx("div",{className:"af-tool-policy__mode-detail",children:S.detail})]}):null,e.note?a.jsx("div",{className:"af-tool-policy__note",children:e.note}):null,(J=e.warnings)!=null&&J.length?a.jsx("div",{className:"af-tool-modes__warnings",role:"status","data-catalog-warnings":"",children:e.warnings.map((W,R)=>a.jsxs("div",{children:["Gateway warning: ",W]},R))}):null,a.jsxs("div",{className:"af-tool-modes__top",children:[a.jsx("input",{type:"search",className:"af-tool-modes__search",placeholder:"Search tools","aria-label":"Search tools",value:l,onChange:W=>u(W.target.value)}),a.jsx("span",{className:"af-tool-modes__count","data-tool-count":"",children:s?`${$} of ${k.length} tools on`:`${$} of ${k.length} tools on · ${T.auto} run without asking · ${T.ask} ask first`}),e.onReset&&Object.keys(i).length?a.jsx("button",{type:"button",className:"af-setting-btn af-setting-btn--quiet","data-action":"reset-layer",disabled:n,onClick:e.onReset,children:s1[e.layer]}):null,e.storage?a.jsx("span",{className:"af-tool-modes__saved","data-storage":e.storage.kind,children:e.storage.where}):e.savedWhere?a.jsx("span",{className:"af-tool-modes__saved",children:e.savedWhere}):null]}),(B=e.storage)!=null&&B.note?a.jsx("div",{className:"af-tool-modes__warnings",role:"status","data-storage-note":e.storage.kind,children:e.storage.note}):null,e.layer==="session"&&((Y=e.storage)==null?void 0:Y.kind)==="gateway"?a.jsx("div",{className:"af-tool-modes__policy","data-session-off-help":"",children:r1}):null,((te=e.storage)==null?void 0:te.kind)==="gateway"||e.policy?a.jsx("div",{className:"af-tool-modes__policy","data-policy-scope":M?"served":"unsaid",children:M?a.jsxs(a.Fragment,{children:[M.approve?a.jsxs("div",{children:["Approve applies to: ",M.approve]}):null,M.deny?a.jsxs("div",{children:["Deny applies to: ",M.deny]}):null]}):a1}):null,e.policy?a.jsxs("div",{className:"af-tool-modes__policy","data-session-policy":e.policy.revision,children:[fy(e.policy)?a.jsx("div",{"data-policy-set":"",children:fy(e.policy)}):null,t1(e.policy).map((W,R)=>a.jsx("div",{"data-policy-clamped":"",children:W},R))]}):null,e.catalog.length?null:a.jsx("div",{className:"af-tool-policy__empty",children:"The gateway offers no tools."}),e.catalog.length&&!b.length?a.jsx("div",{className:"af-tool-policy__empty",children:"No tools match the search."}):null,b.map(W=>{const R=W.items.filter(oe=>oe.offered),K=new Set(R.map(oe=>s?p(oe)==="off"?"off":"on":p(oe))),ne=K.size===1?[...K][0]:void 0,ue=s?[]:R.filter(oe=>!Mo(oe));return a.jsxs("section",{className:"af-tool-modes__group","data-toolset":W.toolset,children:[a.jsxs("div",{className:"af-tool-modes__group-head",children:[a.jsx("span",{className:"af-tool-modes__group-name",children:W.toolset}),R.length?a.jsx("span",{className:"af-tool-modes__group-state","data-group-state":ne??"mixed",children:ne?z(ne):"Mixed"}):null,a.jsx("div",{className:"af-tool-modes__seg",role:"group","aria-label":`All ${W.toolset} tools`,children:I.map(oe=>a.jsx("button",{type:"button",className:`af-tool-modes__seg-btn${ne===oe?" is-active":""}`,"aria-pressed":ne===oe,"data-group-mode":`${W.toolset}:${oe}`,disabled:n||!R.length||oe==="auto"&&ue.length===R.length,title:oe==="auto"&&ue.length?dy:void 0,onClick:()=>N(W.items,oe),children:z(oe)},oe))})]}),ue.length?a.jsxs("div",{className:"af-tool-modes__cap","data-bulk-cap":W.toolset,children:[dy," ",ue.length===1?"1 tool here stays":`${ue.length} tools here stay`," as it is: ",ue.map(oe=>oe.name).join(", "),"."]}):null,W.items.map(oe=>{const ve=p(oe),Ne=s&&ve!=="off"?"on":ve,q=j(oe),be=m(oe);return a.jsxs("div",{className:`af-tool-mode-row${oe.offered?"":" is-unavailable"}`,"data-tool":oe.name,"data-mode":ve,"data-overridden":q?"true":"false",children:[a.jsxs("div",{className:"af-tool-mode-row__meta",children:[a.jsxs("div",{className:"af-tool-row__title",children:[a.jsx("span",{className:"af-tool-row__name",children:o1(oe.name)}),oe.riskTier?a.jsx("span",{className:"af-tool-row__badge","data-risk":oe.riskRank??"",title:oe.riskRank!==void 0?`Risk ${oe.riskRank}`:void 0,children:oe.riskTier}):null,q?a.jsxs("span",{className:"af-tool-mode-row__default","data-default-chip":oe.name,title:e.layer==="app"||be===oe.gatewayDefault?"The gateway's default":"Your default for this app",children:["Default: ",s?be==="off"?t.off:t.on:z(be)]}):null]}),oe.state?a.jsx("div",{className:"af-tool-row__state-line",children:a.jsx(Qc,{content:oe.state.tooltip||"",children:a.jsx("span",{className:`af-tool-row__state${oe.state.tone?` is-${oe.state.tone}`:""}`,"data-tool-state":oe.name,tabIndex:oe.state.tooltip?0:void 0,"aria-label":oe.state.tooltip?`${oe.state.label}. ${oe.state.tooltip}`:void 0,children:oe.state.label})})}):null,oe.description?a.jsx("div",{className:"af-tool-row__desc",children:oe.description}):null,oe.whenToUse?a.jsx("div",{className:"af-tool-row__hint",children:oe.whenToUse}):null,oe.offered&&oe.defaultUnserved?a.jsx("div",{className:"af-tool-mode-row__why","data-default-unserved":oe.name,children:"The gateway did not say whether this tool asks first; Ask is assumed."}):null,oe.offered?null:a.jsx("div",{className:"af-tool-mode-row__why","data-why-disabled":oe.name,children:oe.whyDisabled?`Not offered by the gateway: ${oe.whyDisabled}`:"Not offered by the gateway."})]}),a.jsx("div",{className:"af-tool-modes__seg",role:"group","aria-label":`Mode for ${oe.name}`,children:I.map(xe=>a.jsx("button",{type:"button",className:`af-tool-modes__seg-btn${Ne===xe?" is-active":""}`,"aria-pressed":Ne===xe,"data-tool-mode":`${oe.name}:${xe}`,disabled:n||!oe.offered,onClick:()=>x(oe,xe==="on"?C(oe):xe),children:z(xe)},xe))})]},oe.name)})]},W.toolset)})]});if(e.rowLabel===void 0)return V;const Z=e.layer==="session"&&k.some(W=>m(W)!==W.gatewayDefault),ie=A.length?`${A.length} tool${A.length===1?"":"s"} changed`:Z?"Your defaults":"",F=A.length?uy[e.layer]:uy.app,D=e.open??d;return a.jsx(ph,{label:e.rowLabel,help:e.rowHelp,defaultSummary:s?`${$} of ${k.length} tools on`:`${$} tools on, ${T.auto} without asking`,overrideSummary:ie,overrideOwner:F,open:D,onToggle:e.onToggle??(()=>f(W=>!W)),disabled:n,setting:`tools-${e.layer}`,children:V})}const Fv="Saved in this browser",l1="Saved for this chat on the gateway",c1=`${Qh}, so this chat's tool choices are kept in this browser.`,u1=100;function $f(e,t,n){const s=e&&typeof e=="object"?e:{},i={};for(const[l,u]of Object.entries(s)){const d=Nu(u,t);l.trim()&&d?i[l.trim()]=d:l.trim()&&(n==null||n.push(l.trim()))}return i}function d1(e,t={}){const n=String(e||"").trim();if(!n)throw new Error("createToolLayerStore needs the gateway identity (toolIdentityKey).");const s=()=>{if(t.storage!==void 0)return t.storage;try{return globalThis.localStorage??null}catch{return null}},i=A=>{var S;try{const M=(S=s())==null?void 0:S.getItem(A);return M?JSON.parse(M):void 0}catch{return}},l=(A,S)=>{try{const M=s();if(!M)return;S===null?M.removeItem(A):M.setItem(A,JSON.stringify(S))}catch{}},u=`af.tools.sessions.${n}`,d=A=>{const S=String(A||"").trim();if(!S)throw new Error("The app layer needs the app's interface id.");return`af.tools.app.${S}.${n}`},f=A=>{const S=String(A||"").trim();if(!S)throw new Error("The session layer needs a session id.");return`af.tools.session.${n}.${S}`},m=`af.tools.session.${n}.`,p=()=>{var I;const A=i(u);if(Array.isArray(A))return A.filter(z=>typeof z=="string"&&!!z);const S=s(),M=[];try{const z=typeof(S==null?void 0:S.length)=="number"?S.length:0;for(let V=0;V<z;V+=1){const Z=(I=S==null?void 0:S.key)==null?void 0:I.call(S,V);Z&&Z.startsWith(m)&&M.push(Z.slice(m.length))}}catch{}return M},g=A=>{var I,z;const S=[],M=$f((I=i(A))==null?void 0:I.modes,t.dialect,S);return S.length&&((z=t.onDropped)==null||z.call(t,A,S)),M},b=new Map,v=new Map,C=(A,S)=>{const M=A.revision;return typeof M=="number"?M:S?S.revision:void 0},x=A=>{const S=b.get(A);if(S===void 0)throw new KN(v.has(A)?"the last read carried none":"load this chat's policy before saving it");return S},N=A=>({kind:"browser",where:Fv,...A?{note:A}:{}}),k=A=>{var M;const S=((M=t.sessionPolicy)==null?void 0:M.call(t,A))??null;return(S==null?void 0:S.supported)===!0?{client:S,storage:{kind:"gateway",where:l1}}:{client:null,storage:N(S?c1:void 0)}},T=(A,S,M,I,z,V)=>(z===void 0?b.delete(A):b.set(A,z),v.set(A,M),{storage:S,layer:e1(M,I),policy:M,...V?{scope:V}:{}}),$=(A,S)=>A.scope??(S==null?void 0:S.scope),j={identityKey:n,appKey:d,sessionKey:f,readApp:A=>g(d(A)),writeApp(A,S){const M=$f(S);l(d(A),Object.keys(M).length?{modes:M}:null)},readSession:A=>g(f(A)),writeSession(A,S){const M=String(A||"").trim(),I=$f(S),z=!Object.keys(I).length;l(f(M),z?null:{modes:I});const V=p().filter(Z=>Z!==M);z||V.unshift(M);for(const Z of V.splice(u1))l(f(Z),null);l(u,V.length?V:null)},sessions:p,sessionStorage:A=>k(A).storage,async loadSession(A,S){const{client:M,storage:I}=k(A);if(!M)return{storage:I,layer:j.readSession(A),policy:null};const z=await M.get();return T(A,I,z,S,C(M,z),$(M,z))},async saveSession(A,S,M,I={}){const{client:z,storage:V}=k(A);if(!z)return j.writeSession(A,S),{storage:V,layer:j.readSession(A),policy:null};const Z=XN(S,M,{base:v.get(A)??null,inherited:I.inherited});if(ZN(Z))return j.resetSession(A);const ie=await z.replace({...Z,if_revision:x(A)});return T(A,V,ie,M,C(z,ie),$(z,ie))},async resetSession(A){const{client:S,storage:M}=k(A);if(!S)return j.writeSession(A,null),{storage:M,layer:{},policy:null};const I=await S.reset(x(A));return T(A,M,null,[],typeof I.revision=="number"?I.revision:C(S,null),$(S,null))}};return j}function zv(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 f1(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function h1(e){const t=String(e.role||"message").trim()||"message",n=String(e.title||"").trim(),s=String(e.ts||"").trim(),i=[t];return n&&i.push(n),s&&i.push(s),i.join(" · ")}function m1(e){return e.endsWith(`
|
|
68
|
-
`)?e:`${e}
|
|
69
|
-
`}function p1(e){return String(e||"").trimStart().startsWith("```")}function g1(e,t){const s=[`# ${String((t==null?void 0:t.heading)||"Chat").trim()||"Chat"}`,""];for(const i of e){const l=h1(i);s.push(`## ${l}`,"");const u=String(i.content||""),d=zv(u);d!==null&&!p1(u)?s.push("```json",f1(d).trimEnd(),"```",""):s.push(m1(u).trimEnd(),""),s.push("---","")}for(;s.length&&!s[s.length-1].trim();)s.pop();return s.length&&s[s.length-1]==="---"&&s.pop(),`${s.join(`
|
|
70
|
-
`).trimEnd()}
|
|
71
|
-
`}async function ml(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 s=document.createElement("textarea");s.value=t,s.style.position="fixed",s.style.left="-9999px",document.body.appendChild(s),s.select();const i=document.execCommand("copy")===!0;return document.body.removeChild(s),i}catch{return!1}}function y1(e){const t=String(e.filename||"").trim()||"export.txt",n=String(e.text||""),s=String(e.mime),i=new Blob([n],{type:s}),l=URL.createObjectURL(i),u=document.createElement("a");u.href=l,u.download=t,document.body.appendChild(u),u.click(),u.remove(),window.setTimeout(()=>URL.revokeObjectURL(l),1e3)}const w1=3,v1=Number.MAX_SAFE_INTEGER;function Bv(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Wv(e){return Array.isArray(e)}function _1(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function bo({kind:e,children:t}){return a.jsx("span",{className:`pc-json-token ${e}`,children:t})}function b1(e){const t=JSON.stringify(e.value),n=t.length>96||t.includes("\\n")||t.includes("\\r")||t.includes("\\t"),[s,i]=y.useState(!n||e.expansionMode==="unfolded");return y.useEffect(()=>{n&&i(e.expansionMode==="unfolded")},[n,e.expansionMode,e.expansionVersion]),n?a.jsxs("span",{className:`pc-json-string ${s?"open":"collapsed"}`,children:[a.jsx("button",{type:"button",className:"pc-json-string__toggle",onClick:()=>i(l=>!l),"aria-label":s?"Collapse string value":"Expand string value","aria-expanded":s,children:s?"▾":"▸"}),s?a.jsx("span",{className:"pc-json-token string pc-json-string__value",children:t}):a.jsxs("button",{type:"button",className:"pc-json-string__preview",onClick:()=>i(!0),"aria-label":"Expand string value",children:[a.jsx("span",{className:"pc-json-token string pc-json-string__preview_text",children:t}),a.jsx("span",{className:"pc-json-string__suffix",children:"(...)"})]})]}):a.jsx(bo,{kind:"string",children:t})}function x1(e,t,n){return e===null?a.jsx(bo,{kind:"null",children:"null"}):typeof e=="string"?a.jsx(b1,{value:e,expansionMode:t,expansionVersion:n}):typeof e=="number"?a.jsx(bo,{kind:"number",children:String(e)}):typeof e=="boolean"?a.jsx(bo,{kind:"boolean",children:e?"true":"false"}):a.jsx(bo,{kind:"string",children:JSON.stringify(String(e))})}function k1(e){return Wv(e)?e.length===1?"1 item":`${e.length} items`:Bv(e)?Object.keys(e).length===1?"1 key":`${Object.keys(e).length} keys`:""}function Uv(e){const{label:t,value:n,depth:s,collapseAfterDepth:i,expansionMode:l,expansionVersion:u,trailingComma:d}=e,f=s*14,m=Bv(n),p=Wv(n),g=m||p,b=s<i,[v,C]=y.useState(b);y.useEffect(()=>{C(b)},[b,u]);const x=t?a.jsxs(a.Fragment,{children:[a.jsx(bo,{kind:"key",children:JSON.stringify(t)}),": "]}):null;if(!g)return a.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:f},children:[x,x1(n,l,u),d?",":""]});const N=p?"[":"{",k=p?"]":"}",T=k1(n),$=v?`${N}`:`${N}…${k}${T?` (${T})`:""}`,j=p?n.map((A,S)=>({key:String(S),label:void 0,value:A})):Object.entries(n).map(([A,S])=>({key:A,label:A,value:S}));return a.jsxs("details",{className:"pc-json-viewer__details",open:v,onToggle:A=>C(A.currentTarget.open),children:[a.jsxs("summary",{className:"pc-json-viewer__summary",style:{paddingLeft:f},children:[x,a.jsx("span",{className:"pc-json-viewer__caret","aria-hidden":"true",children:v?"▾":"▸"}),a.jsx("span",{className:"pc-json-viewer__punct",children:$}),!v&&d?a.jsx("span",{className:"pc-json-viewer__punct",children:","}):null]}),v?a.jsx("div",{className:"pc-json-viewer__children",children:j.length===0?a.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:f},children:[a.jsx("span",{className:"pc-json-viewer__punct",children:k}),d?",":""]}):a.jsxs(a.Fragment,{children:[j.map((A,S)=>{const M=S===j.length-1;return a.jsx(Uv,{label:A.label,value:A.value,depth:s+1,collapseAfterDepth:i,expansionMode:l,expansionVersion:u,trailingComma:!M},`${s}:${t||"root"}:${A.key}`)}),a.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:f},children:[a.jsx("span",{className:"pc-json-viewer__punct",children:k}),d?",":""]})]})}):null]})}function j1(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 So(e){const{value:t,className:n,showCopy:s=!0}=e,[i,l]=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):w1,m=i.mode==="unfolded"?v1:f,p=y.useMemo(()=>typeof t=="string"?j1(t):t,[t]),g=y.useMemo(()=>_1(t),[t]),b=["pc-json-viewer",n].filter(Boolean).join(" ");y.useEffect(()=>{l(C=>({mode:"folded",version:C.version+1}))},[p]);const v=()=>{l(C=>({mode:C.mode==="unfolded"?"folded":"unfolded",version:C.version+1}))};return a.jsxs("div",{className:b,children:[a.jsxs("div",{className:"pc-json-viewer__toolbar",children:[a.jsx("button",{type:"button",className:"pc-btn pc-json-viewer__toggle-all",onClick:v,"aria-expanded":i.mode==="unfolded",children:i.mode==="unfolded"?"Fold all":"Unfold all"}),s?a.jsx("button",{type:"button",className:"pc-btn pc-json-viewer__copy",onClick:()=>void ml(g).then(C=>{d(C?"copied":"failed"),window.setTimeout(()=>d("idle"),2e3)}),children:u==="copied"?"Copied":u==="failed"?"Copy failed — select and copy":"Copy JSON"}):null]}),a.jsx("div",{className:"pc-json-viewer__tree",role:"tree","aria-label":"JSON viewer",children:a.jsx(Uv,{value:p,depth:0,collapseAfterDepth:m,expansionMode:i.mode,expansionVersion:i.version,trailingComma:!1})})]})}function S1({code:e,lang:t}){const[n,s]=y.useState("idle"),i=y.useRef(null);y.useEffect(()=>()=>{i.current!==null&&window.clearTimeout(i.current)},[]);const l=Ev(e,Gh(t));return a.jsxs("div",{className:"pc-md_codeblock",children:[a.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 ml(e);s(u?"copied":"failed"),i.current!==null&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>s("idle"),900)},children:a.jsx(de,{name:n==="copied"?"check":"copy",size:14})}),a.jsx("pre",{className:"pc-md_pre",children:a.jsx("code",{className:t?`language-${t}`:void 0,children:l.map((u,d)=>u.kind==="plain"?a.jsx(gt.Fragment,{children:u.text},d):a.jsx("span",{className:`af-code__${u.kind}`,children:u.text},d))})})]})}function Ti(e,t){const n=String(e??"");if(!t||!t.needles.length)return[n];const s=[],i=n.toLowerCase();let l=0;for(;l<n.length;){let u=-1,d="";for(let p=0;p<t.needlesLower.length;p++){const g=t.needlesLower[p];if(!g)continue;const b=i.indexOf(g,l);if(b===-1)continue;const v=t.needles[p]||"";v&&(u===-1||b<u||b===u&&v.length>d.length)&&(u=b,d=v)}if(u===-1||!d){s.push(n.slice(l));break}u>l&&s.push(n.slice(l,u));const f=t.hits===0&&t.id?t.id:void 0,m=n.slice(u,u+d.length);s.push(a.jsx("span",{id:f,className:t.className,children:m},`hl:${t.hits}`)),t.hits+=1,l=u+d.length}return s}function Vv(e){const t=String(e||"").trim();if(t&&/^(https?:|mailto:|tel:|#|\/)/i.test(t))return t}const _h="http://same-origin.invalid/";function N1(e){try{const t=new URL(e,_h);return t.protocol==="http:"&&t.origin===new URL(_h).origin}catch{return!1}}function Hv(e){const t=String(e||"").trim();return Vv(t)??(t&&N1(t)?t:void 0)}let ga=null;function C1(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 s=n??_h;let i,l;try{i=new URL(s).origin,l=new URL(t,s)}catch{return!1}return l.protocol!=="http:"&&l.protocol!=="https:"?!1:l.origin===i}function Gv(e,t,n){return a.jsx("a",{className:"pc-md_link pc-md_image_link",href:t,target:"_blank",rel:"noopener noreferrer",children:`image: ${n||t}`},e)}function hy(e){return!!e&&/[\p{L}\p{N}]/u.test(e)}function sr(e,t){const n=[],s=String(e??"");let i=0,l="";const u=()=>{if(l){for(const d of Ti(l,t))n.push(d);l=""}};for(;i<s.length;){const d=s[i];if(d==="!"&&s[i+1]==="["){const f=s.indexOf("]",i+2);if(f!==-1&&s[f+1]==="("){const m=s.indexOf(")",f+2);if(m!==-1){const p=s.slice(i+2,f),g=Hv(s.slice(f+2,m));if(g&&ga&&!ga(g)){u(),n.push(Gv(`img:${i}`,g,p)),i=m+1;continue}if(g){u(),n.push(a.jsxs("span",{className:"pc-md_image_inline",children:[a.jsx("img",{className:"pc-md_img",src:g,alt:p,loading:"lazy"}),p?a.jsx("span",{className:"pc-md_img_caption",children:t?Ti(p,t):p}):null]},`img:${i}`)),i=m+1;continue}}}}if(d==="["){const f=s.indexOf("]",i+1);if(f!==-1&&s[f+1]==="("){const m=s.indexOf(")",f+2);if(m!==-1){const p=s.slice(i+1,f),g=Vv(s.slice(f+2,m));if(g){u(),n.push(a.jsx("a",{className:"pc-md_link",href:g,target:g.startsWith("#")?void 0:"_blank",rel:"noreferrer",children:sr(p,t)},`link:${i}`)),i=m+1;continue}}}}if(d==="`"){const f=s.indexOf("`",i+1);if(f!==-1){u();const m=s.slice(i+1,f);n.push(a.jsx("code",{children:t?Ti(m,t):m},`code:${i}`)),i=f+1;continue}}if(d==="_"&&!hy(s[i-1])){const f=s[i+1]==="_"?"__":"_",m=f.length;if(s[i+m]&&!/\s/.test(s[i+m])&&s[i+m]!=="_"){let p=s.indexOf(f,i+m);for(;p!==-1&&(/\s/.test(s[p-1]||" ")||hy(s[p+m])||m===1&&s[p+1]==="_");)p=s.indexOf(f,p+1);if(p!==-1&&p>i+m){u();const g=s.slice(i+m,p),b=sr(g,t);n.push(m===2?a.jsx("strong",{children:b},`ubold:${i}`):a.jsx("em",{children:b},`uem:${i}`)),i=p+m;continue}}}if(d==="*"&&s[i+1]==="*"){const f=s.indexOf("**",i+2);if(f!==-1){u();const m=s.slice(i+2,f);n.push(a.jsx("strong",{children:t?Ti(m,t):m},`bold:${i}`)),i=f+2;continue}}if(d==="*"&&s[i+1]!=="*"){const f=s.indexOf("*",i+1);if(f!==-1){u();const m=s.slice(i+1,f);n.push(a.jsx("em",{children:t?Ti(m,t):m},`em:${i}`)),i=f+1;continue}}l+=d,i+=1}return u(),n}function E1(e){return String(e??"").replace(/\r\n/g,`
|
|
72
|
-
`).replace(/\r/g,`
|
|
73
|
-
`).split(`
|
|
74
|
-
`)}function qc(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 A1(e){const t=[];for(const i of e){const l=qc(i);l?t.push(l):t.length>0&&i.trim()&&(t[t.length-1].content+=` ${i.trim()}`)}const n=[],s=[];for(const i of t){for(;s.length>0&&i.indent<s[s.length-1].indent;)s.pop();let l=s.length>0?s[s.length-1]:null;if(l&&i.indent>l.indent){const u=l.node.items,d=u[u.length-1];if(d){const f={ordered:i.ordered,start:i.start,items:[]};d.children.push(f),s.push({indent:i.indent,node:f}),l=s[s.length-1]}}else if(l&&l.node.ordered!==i.ordered){s.pop();const u=s.length>0?s[s.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);s.push({indent:i.indent,node:d}),l=s[s.length-1]}if(!l){const u={ordered:i.ordered,start:i.start,items:[]};n.push(u),s.push({indent:i.indent,node:u}),l=s[s.length-1]}l.node.items.push({content:i.content,children:[]})}return n}function Kv(e,t,n){const s=e.items.map((i,l)=>a.jsxs("li",{children:[sr(i.content,t),i.children.map((u,d)=>Kv(u,t,`${n}:${l}:${d}`))]},`${n}:li:${l}`));return e.ordered?a.jsx("ol",{className:"pc-md_ol",start:e.start!==1?e.start:void 0,children:s},n):a.jsx("ul",{className:"pc-md_ul",children:s},n)}function $1(e,t,n){return A1(e).map((s,i)=>Kv(s,t,`${n}:${i}`))}function my(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 py(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(s=>String(s??"").trim());return n.length<2?!1:n.every(s=>/^:?-{3,}:?$/.test(s))}const gy=/^(#{1,5})\s+(.*)$/;function yy(e){return e.trim().startsWith("```")}function wy(e){return e.trimStart().startsWith(">")}function Jv(e){const t=ga;ga=e.images==="link"?e.inlineImage||C1:null;try{return T1(e)}finally{ga=t}}function T1({text:e,className:t,highlight:n,highlights:s,highlightClassName:i,highlightId:l}){const u=E1(e),d=[],f=[];Array.isArray(s)&&f.push(...s),typeof n=="string"&&n.trim()&&f.push(n);const m=Array.from(new Set(f.map(v=>String(v??"").trim()).filter(Boolean))).filter(v=>v.length>=4),p=m.length?{needles:m,needlesLower:m.map(v=>v.toLowerCase()),className:i||"pc-md_hl",id:l,hits:0}:null;let g=0;for(;g<u.length;){const v=String(u[g]??"");if(!v.trim()){g+=1;continue}const C=v.trim();if(/^([-_*])(\s*\1){2,}$/.test(C)){d.push(a.jsx("hr",{className:"pc-md_hr"},`hr:${g}`)),g+=1;continue}const x=v.match(/^\s*!\[([^\]]*)\]\(([^)]+)\)\s*$/);if(x){const T=Hv(x[2]||"");if(T&&ga&&!ga(T)){d.push(a.jsx("p",{className:"pc-md_p",children:Gv(`img:${g}`,T,x[1]||"")},`p:${g}`)),g+=1;continue}if(T){const $=x[1]||"";d.push(a.jsxs("figure",{className:"pc-md_figure",children:[a.jsx("img",{className:"pc-md_img",src:T,alt:$,loading:"lazy"}),$?a.jsx("figcaption",{children:sr($,p)}):null]},`figure:${g}`)),g+=1;continue}}if(yy(v)){const $=v.trim().replace(/```/g,"").trim(),j=[];for(g+=1;g<u.length&&!String(u[g]??"").trim().startsWith("```");)j.push(String(u[g]??"")),g+=1;g<u.length&&(g+=1);const A=j.join(`
|
|
75
|
-
`);d.push(a.jsx(S1,{code:A,lang:$},`pre:${g}`));continue}const N=v.match(gy);if(N){const T=N[1].length,$=N[2]||"",j=sr($,p);T===1?d.push(a.jsx("h1",{children:j},`h1:${g}`)):T===2?d.push(a.jsx("h2",{children:j},`h2:${g}`)):T===3?d.push(a.jsx("h3",{children:j},`h3:${g}`)):T===4?d.push(a.jsx("h4",{children:j},`h4:${g}`)):d.push(a.jsx("h5",{children:j},`h5:${g}`)),g+=1;continue}if(wy(v)){const T=[];for(;g<u.length&&String(u[g]??"").trimStart().startsWith(">");){const j=String(u[g]??"").trimStart();T.push(j.replace(/^>\s?/,"")),g+=1}d.push(a.jsx("blockquote",{className:"pc-md_quote",children:T.map(($,j)=>a.jsxs(gt.Fragment,{children:[sr($,p),j<T.length-1?a.jsx("br",{}):null]},`q:${g}:${j}`))},`quote:${g}`));continue}if(v.includes("|")&&g+1<u.length&&py(String(u[g+1]??""))){const T=my(v),$=Math.max(1,T.length),j=[];for(g+=2;g<u.length;){const A=String(u[g]??"");if(!A.trim()||!A.includes("|"))break;const S=my(A),M=[];for(let I=0;I<$;I++)M.push(S[I]??"");j.push(M),g+=1}d.push(a.jsx("div",{className:"pc-md_table_wrap",children:a.jsxs("table",{className:"pc-md_table",children:[a.jsx("thead",{children:a.jsx("tr",{children:T.slice(0,$).map((A,S)=>a.jsx("th",{children:sr(A,p)},`th:${g}:${S}`))})}),a.jsx("tbody",{children:j.map((A,S)=>a.jsx("tr",{children:A.map((M,I)=>a.jsx("td",{children:sr(M,p)},`td:${g}:${S}:${I}`))},`tr:${g}:${S}`))})]})},`table:${g}`));continue}if(qc(v)){const T=[];for(;g<u.length;){const $=String(u[g]??"");if(!$.trim()||$.trimStart().startsWith("```"))break;if(qc($)||/^\s{2,}\S/.test($)){T.push($),g+=1;continue}break}d.push(a.jsx(gt.Fragment,{children:$1(T,p,`list:${g}`)},`list:${g}`));continue}const k=[];for(;g<u.length&&String(u[g]??"").trim()&&!(k.length>0&&qc(String(u[g]??"")));){const T=String(u[g]??"");if(k.length>0&&(gy.test(T)||yy(T)||wy(T))||k.length>0&&T.includes("|")&&g+1<u.length&&py(String(u[g+1]??"")))break;k.push(T),g+=1}d.push(a.jsx("p",{className:"pc-md_p",children:k.map((T,$)=>a.jsxs(gt.Fragment,{children:[sr(T,p),$<k.length-1?a.jsx("br",{}):null]},`pl:${g}:${$}`))},`p:${g}`))}const b=["pc-md",t].filter(Boolean).join(" ");return a.jsx("div",{className:b,children:d})}function qv(e){const t=String(e.text??""),n=y.useMemo(()=>zv(t),[t]),s=["pc-chat-content",e.className].filter(Boolean).join(" ");return n!==null?a.jsx("div",{className:s,children:a.jsx(So,{value:n,collapseAfterDepth:e.jsonCollapseAfterDepth})}):e.renderMarkdown?a.jsx("div",{className:s,children:e.renderMarkdown(t)}):a.jsx("div",{className:s,children:a.jsx(Jv,{text:t,images:e.images,inlineImage:e.inlineImage})})}const R1=new Set("html htm xhtml xht shtml svg svgz xml xsl xslt mht mhtml".split(" ")),I1=new Set(["application/pdf","application/json","text/plain","text/markdown","text/csv","text/tab-separated-values","text/x-python","text/javascript","application/javascript","text/css","text/x-c","text/x-shellscript","text/x-typescript","image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","video/mp4","video/webm","video/quicktime","audio/mpeg","audio/mp4","audio/aac","audio/wav","audio/x-wav","audio/ogg","audio/webm","audio/flac"]);function Yv(e){const t=String(e??"");if(!t.trim())return!1;try{const n=typeof window<"u"&&window.location?window.location.href:"http://same-origin.invalid/",s=new URL(t,n).protocol;return s==="blob:"||s==="data:"}catch{return!0}}function M1(e,t){const n=String(t||"").split("/").pop()||"",s=n.lastIndexOf(".");if(s>0&&R1.has(n.slice(s+1).toLowerCase()))return!1;const i=String(e||"").split(";",1)[0].trim().toLowerCase();return!i||i==="text/html"||i.includes("xml")?!1:I1.has(i)}function L1(e){const t=n=>!!n&&(!Yv(n)||M1(e.contentType,e.name));if(t(e.href))return e.href;if(t(e.src))return e.src}const cu=1024*1024,O1="1 MiB",P1=25*1024*1024,Qv=(e,t)=>`${we(`runs/${encodeURIComponent(e)}/workspace`)}/content?${new URLSearchParams({path:t})}`;function Xv(e){const t=e.headers.get("content-range"),n=t?Number(t.split("/")[1]):NaN;if(Number.isFinite(n))return n;const s=Number(e.headers.get("content-length"));return e.status===200&&Number.isFinite(s)&&e.headers.has("content-length")?s:void 0}async function D1(e,t,n){var m;const s=new TextDecoder;let i="",l=0;const u=(m=e.body)==null?void 0:m.getReader();if(u){for(;l<t;){const{done:p,value:g}=await u.read();if(p)break;const b=g.subarray(0,t-l);l+=b.length,i+=s.decode(b,{stream:!0})}await u.cancel().catch(()=>{})}else i=(await e.text()).slice(0,t),l=i.length;const d=Xv(e)??n,f=d!==void 0?d>l:l>=t;return{text:i,received:l,total:d,partial:f}}function Zv(e){return`Showing the first ${O1} of ${e!==void 0?fl(e):"a file of unknown size"}; download for the rest.`}function F1(e){try{return decodeURIComponent(e)}catch{return e}}function z1(e,t,n){const s=`${we(`runs/${encodeURIComponent(t)}/workspace`)}/content?`,i=n.split("/").slice(0,-1),l=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(F1(p));return m.length?Qv(t,m.join("/")):null},u=f=>{let m="",p=0;for(;p<f.length;){if(f[p]==="!"&&f[p+1]==="["){const g=f.indexOf("]",p+2);if(g!==-1&&f[g+1]==="("){const b=f.indexOf(")",g+2);if(b!==-1){const v=f.slice(p+2,g),C=f.slice(g+2,b).trim(),x=C.startsWith(s)?C:l(C);m+=x?``:`[image: ${v||C}](${C})`,p=b+1;continue}}}m+=f[p],p+=1}return m};let d=!1;return e.split(`
|
|
76
|
-
`).map(f=>/^\s*(```|~~~)/.test(f)?(d=!d,f):d?f:u(f)).join(`
|
|
77
|
-
`)}function B1(e,t,n,s){const[i,l]=y.useState({status:"idle"});return y.useEffect(()=>{if(!n||!t){l({status:"idle"});return}const u=new AbortController;let d="";const f=sl(n.name);if(f==="binary"){l({status:"ready",kind:"binary",contentType:"",partial:!1});return}if((f==="image"||f==="audio"||f==="video"||f==="pdf")&&typeof n.size_bytes=="number"&&n.size_bytes>P1){l({status:"error",kind:f,message:`Too large to preview (${fl(n.size_bytes)}); use Download.`});return}l({status:"loading",kind:f});const m=au(f);return(async()=>{var p;try{const g=await e(Qv(t,n.path),{signal:u.signal,...m?{headers:{Range:`bytes=0-${cu-1}`}}:{}});if(!g.ok)throw new Error(`Preview failed (HTTP ${g.status}): ${await g.text().catch(()=>"")||g.statusText||"no reason given"}`);const b=g.headers.get("content-type")||"",v=sl(n.name,b);if(au(v)){const C=await D1(g,cu,n.size_bytes);if(u.signal.aborted)return;l({status:"ready",kind:v,contentType:b,text:v==="markdown"?z1(C.text,t,n.path):C.text,partial:C.partial,total:C.total});return}if(v==="image"||v==="audio"||v==="video"||v==="pdf"){const C=await g.blob();if(u.signal.aborted)return;d=URL.createObjectURL(C.type?C:new Blob([C],{type:v==="pdf"?"application/pdf":b})),l({status:"ready",kind:v,contentType:b,url:d,partial:!1});return}await((p=g.body)==null?void 0:p.cancel().catch(()=>{})),u.signal.aborted||l({status:"ready",kind:"binary",contentType:b,partial:!1})}catch(g){u.signal.aborted||l({status:"error",kind:f,message:String((g==null?void 0:g.message)||g)})}})(),()=>{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,s]),i}function Xh(e){const{markdownImages:t,inlineImage:n,renderMarkdown:s,...i}=e;return a.jsx(eN,{...i,nowMs:e.nowMs??Date.now(),renderMarkdown:s||(l=>a.jsx(Jv,{text:l,...t?{images:t}:{},...n?{inlineImage:n}:{}}))})}function W1(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:Zv(e.total)}:{}}}function Ui(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Lr(e){return typeof e=="string"?e.trim():""}function U1(e){var i;const t=Ui(e);if(!t)return null;const n=Ui(t.sandbox);if(n&&Lr(n.kind))return n;const s=Ui((i=Ui(t.output))==null?void 0:i.sandbox);return s&&Lr(s.kind)?s:null}function vy(e){const t=U1(e);if(!t)return null;const n=Lr(t.kind),s=Lr(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:s,line:`Sandbox: ${s} — refused`,rows:[],builtinRefused:0};const l=[],u=Lr(t.private_workspace);u&&l.push({path:u,mode:"Read & write",private:!0});for(const f of Array.isArray(t.allowed)?t.allowed:[]){const m=Ui(f),p=Lr(m==null?void 0:m.path);p&&l.push({path:p,mode:Lr(m==null?void 0:m.mode)==="ro"?"Read-only":"Read & write"})}for(const f of Array.isArray(t.refused)?t.refused:[]){const m=Lr(f);m&&l.push({path:m,mode:"Refused"})}if(n==="unsandboxed")return{state:"unsandboxed",kind:n,label:s,line:`Sandbox: ${s}`,rows:[],builtinRefused:0};const d=l.length;return{state:"sandboxed",kind:n,label:s,line:`Sandbox: ${s} · ${d} ${d===1?"workspace":"workspaces"} enforced`,rows:l,builtinRefused:i}}function V1({sandbox:e,className:t}){return e?a.jsxs("div",{className:`pc-tool-sandbox is-${e.state}${t?` ${t}`:""}`,"data-sandbox-kind":e.kind,children:[a.jsx("div",{className:"pc-tool-sandbox__line",children:e.line}),e.rows.length?a.jsxs("ul",{className:"pc-tool-sandbox__rows","aria-label":"Workspaces the sandbox enforced",children:[e.rows.map((n,s)=>a.jsxs("li",{children:[a.jsx("code",{children:n.path}),a.jsx("span",{className:"pc-tool-sandbox__mode",children:n.private?`${n.mode} · this run's folder`:n.mode})]},`${n.mode}:${n.path}:${s}`)),e.builtinRefused?a.jsxs("li",{className:"pc-tool-sandbox__builtin",children:[e.builtinRefused," built-in protected ",e.builtinRefused===1?"folder":"folders"," refused"]}):null]}):null]}):null}const Tf=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:null,Dn=e=>typeof e=="string"?e.trim():typeof e=="number"?String(e):"";function H1(e){const t=Dn(e==null?void 0:e.decision);if(t!=="auto_approved"&&t!=="denied")return null;const n=Tf(e==null?void 0:e.policy),s=Tf(n==null?void 0:n.set_by),i=Dn(s==null?void 0:s.user_id)||Dn(s==null?void 0:s.client),l=typeof(n==null?void 0:n.revision)=="number"?n.revision:void 0,u={decision:t,...Dn(e==null?void 0:e.source)?{source:Dn(e==null?void 0:e.source)}:{},...l!==void 0?{revision:l}:{},...i?{setBy:i}:{},...Dn(n==null?void 0:n.set_at)?{setAt:Dn(n==null?void 0:n.set_at)}:{}},d=(Array.isArray(e==null?void 0:e.tool_calls)?e.tool_calls:[]).map(f=>Tf(f)).filter(f=>!!(f&&Dn(f.call_id))).map(f=>({callId:Dn(f.call_id),name:Dn(f.name),...Dn(f.matched)?{matched:Dn(f.matched)}:{}}));return d.length?{provenance:u,calls:d}:null}function bh(e){if(e.decision==="denied")return"Denied by this chat's policy";const t=e.setAt?Io(e.setAt):"",s=[e.setBy?`set by ${e.setBy}`:"",t?`at ${t}`:""].filter(Boolean).join(" ");return`Allowed by this chat's policy${s?` (${s})`:""}`}function _y(e){const t=new Map;for(const n of e||[]){const s=Dn(n==null?void 0:n.name);if(!s)continue;const i=Dn(n==null?void 0:n.reason).replace(/_/g," ")||"not stored";t.set(i,[...t.get(i)||[],s])}return t.size?`Not covered: ${[...t].map(([n,s])=>`${s.join(", ")} (${n})`).join("; ")}`:""}function e_(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function t_(e){const t=e_(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(l=>n.find(([u])=>u===l)).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 n_({tool:e,showCopy:t=!0}){const[n,s]=y.useState(!1),i=e_(e.arguments),l=t_(e.arguments),u=["file path","path"].includes(l.label)&&l.value.length>60?`${l.value.split(/[\\/]/).pop()} · ${l.value.slice(0,24)}…`:l.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 a.jsxs("details",{className:`pc-tool-activity pc-tool-activity--${e.status}`,children:[a.jsxs("summary",{className:"pc-tool-activity__summary",children:[a.jsx("span",{className:"pc-tool-activity__state-icon","aria-hidden":"true",children:a.jsx(de,{name:e.status==="completed"?"check":e.status==="failed"?"x":e.status==="waiting"?"warning":"loader",size:15})}),a.jsx("strong",{children:e.name}),a.jsx("span",{className:"pc-tool-activity__preview",title:l.value,children:l.value?a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"pc-tool-activity__key",children:l.label}),u]}):"No parameters"}),a.jsx("span",{className:"pc-tool-activity__status",children:f[e.status]}),e.policy?a.jsx("span",{className:"pc-tool-activity__policy","data-policy":e.policy.decision,title:bh(e.policy),children:e.policy.decision==="denied"?"Denied by this chat's policy":"Allowed by this chat's policy"}):null,Number.isFinite(m)&&m>=0?a.jsxs("span",{className:"pc-tool-activity__duration",children:[(m/1e3).toFixed(1),"s"]}):null,a.jsx("span",{className:"pc-tool-activity__chevron","aria-hidden":"true",children:a.jsx(de,{name:"chevronRight",size:13})}),e.error?a.jsx("span",{className:"pc-tool-activity__error",title:e.error,children:d}):null]}),a.jsxs("div",{className:"pc-tool-activity__detail",children:[e.policy?a.jsxs("p",{className:"pc-tool-activity__policy-line","data-policy":e.policy.decision,children:[bh(e.policy),e.policy.matched?` · matched ${e.policy.matched}`:""]}):null,a.jsx(V1,{sandbox:e.sandbox}),e.error?a.jsxs(a.Fragment,{children:[a.jsx("h4",{children:"Error"}),a.jsx("pre",{className:"pc-tool-activity__output",children:e.error})]}):null,a.jsxs("div",{className:"pc-tool-activity__detail-heading",children:[a.jsx("h4",{children:"Parameters"}),t?a.jsxs("button",{type:"button",onClick:async()=>s(await ml(JSON.stringify(e,null,2))),children:[a.jsx(de,{name:"copy",size:13}),n?"Copied":"Copy details"]}):null]}),p?a.jsx("dl",{className:"pc-tool-activity__parameters",children:p.map(([g,b])=>a.jsxs(gt.Fragment,{children:[a.jsx("dt",{children:g}),a.jsx("dd",{children:b&&typeof b=="object"?a.jsx(So,{value:b}):a.jsx("code",{children:typeof b=="string"?b:JSON.stringify(b)})})]},g))}):e.arguments===void 0?a.jsx("p",{children:"Arguments are unavailable in this ledger."}):a.jsx(So,{value:i}),e.output!==void 0?a.jsxs(a.Fragment,{children:[a.jsx("h4",{children:"Result"}),typeof e.output=="string"?a.jsx("pre",{className:"pc-tool-activity__output",children:e.output}):a.jsx("div",{className:"pc-tool-activity__output",children:a.jsx(So,{value:e.output})})]}):null]})]})}function Zh({tools:e,showCopy:t}){const n=s=>e.filter(i=>i.status===s).length;return a.jsxs("section",{className:"pc-tool-group","aria-label":"Tool activity",children:[a.jsxs("div",{className:"pc-tool-group__heading",children:[a.jsx(de,{name:"terminal",size:14}),a.jsx("strong",{children:"Tools"}),a.jsxs("span",{children:[e.length," ",e.length===1?"call":"calls"]}),a.jsx("div",{}),n("running")?a.jsxs("span",{className:"pc-tool-group__running",children:[n("running")," running"]}):null,n("waiting")?a.jsxs("span",{className:"pc-tool-group__waiting",children:[n("waiting")," need approval"]}):null,n("failed")?a.jsxs("span",{className:"pc-tool-group__failed",children:[n("failed")," failed"]}):null,n("completed")?a.jsxs("span",{className:"pc-tool-group__completed",children:[n("completed")," done"]}):null]}),e.map(s=>a.jsx(n_,{tool:s,showCopy:t},s.id))]})}const on="not reported",Nn=e=>e===void 0?on:Math.round(e).toLocaleString(),Fn=e=>{if(e===void 0)return on;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`},s_=e=>e===void 0?on:`${Math.round(e).toLocaleString()} tok/s`,G1=(e,t)=>t>0?`${Math.round(e/t*100)}%`:"",ya=(e,t,n=`${t}s`)=>`${e.toLocaleString()} ${e===1?t:n}`,K1=e=>{const t=e.split("#")[0].replace(/\/+$/,"");return t.slice(t.lastIndexOf("/")+1)||e};function J1(e){const t=new Map;for(const n of e)n&&t.set(n,(t.get(n)||0)+1);return[...t].map(([n,s])=>s>1?`${n} ×${s}`:n).join(" · ")}function uu(e){const t=[],n=(e.models||[]).map(K1),s=e.providers||[];return(n.length||s.length)&&t.push([n.join(", ")||"model not reported",s.join(", ")].filter(Boolean).join(" · ")),t.push("From the run ledger; summed across this turn and its child runs."),t}function q1(e){const t=e.modelCalls||[],n=[],s=[{label:"Input",value:Nn(e.inputTokens)},{label:"Output",value:Nn(e.outputTokens)}];if(e.reasoningTokens!==void 0&&s.push({label:"Reasoning",value:Nn(e.reasoningTokens),hint:"part of output"}),s.push({label:"Total",value:Nn(e.totalTokens)}),n.push({heading:`Usage · ${ya(e.llmCalls,"model call")}`,rows:s}),e.measuredCacheCalls){const l=e.cachedTokens||0,u=e.fedTokens||0,d=[{label:"Reused from cache",value:`${Nn(l)}${l+u?` (${G1(l,l+u)})`:""}`},{label:"Newly processed",value:Nn(e.fedTokens)},{label:"Outcome",value:J1(t.map(f=>f.cacheOutcome))||(e.cacheOutcomes||[]).join(" · ")||on},{label:"Backend",value:(e.cacheBackends||[]).join(", ")||on}];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:on}]});const i=t.filter(l=>l.inputTokens!==void 0);return i.length===1&&t.length===1?n.push({heading:"Context",rows:[{label:"Prompt size",value:`${Nn(i[0].inputTokens)} tokens`}]}):i.length>1&&n.push({heading:"Context",rows:[{label:"First → last call",value:`${Nn(i[0].inputTokens)} → ${Nn(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((l,u)=>[String(u+1),Nn(l.inputTokens),l.cachedTokens===void 0?"—":Nn(l.cachedTokens),l.fedTokens===void 0?"—":Nn(l.fedTokens),Nn(l.outputTokens),l.cacheOutcome||"—"])}}),{kind:"tokens",title:"Tokens",headline:e.totalTokens===void 0?on:`${e.totalTokens.toLocaleString()} total`,sections:n,footer:uu(e)}}function Dc(e,t,n,s){if(e===void 0)return on;const i=[Fn(e)];return t!==void 0&&i.push(`${t.toLocaleString()} ${s}${n!==void 0?` at ${s_(n)}`:""}`),i.join(" · ")}function Y1(e){var m,p,g;const t=e.modelCalls||[],n=[],s=e.durationMs,i=[{label:"Wall clock",value:Fn(s)}];if(i.push({label:"Model",value:e.genTimeMs===void 0?on:`${Fn(e.genTimeMs)} · ${ya(e.timedCalls||0,"call")}${e.timedCalls!==e.llmCalls?` (of ${e.llmCalls})`:""}`}),i.push({label:"Tools",value:e.toolTimeMs!==void 0?`${Fn(e.toolTimeMs)} · ${ya(e.toolBatches||0,"batch","batches")}`:e.toolCalls?on:"none",hint:e.toolTimeIncludesApproval?"includes approval wait":void 0}),s!==void 0&&e.genTimeMs!==void 0){const b=s-e.genTimeMs-(e.toolTimeMs||0);i.push({label:"Orchestration",value:b>=0?Fn(b):"overlaps (parallel runs)",hint:"wall − model − tools: routing, hand-offs, model load"})}n.push({heading:"Turn",rows:i});const l=[],u=e.ttftCalls||0,d=e.promptPhaseCalls||0;e.promptPhaseMs!==void 0?l.push({label:u&&u===d?"Prefill (TTFT)":"Prefill",value:Dc(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?l.push({label:"Prefill",value:Dc(e.prefillMs,e.prefillNewTokens,e.prefillNewTokensPerSecond,"new tok"),hint:"derived: prompt ÷ provider rate"}):e.prefillMs!==void 0?l.push({label:"Prefill",value:`${Fn(e.prefillMs)}${e.promptTokensPerSecond!==void 0?` at ${s_(e.promptTokensPerSecond)}`:""}`,hint:"provider rate over all prompt tokens, restored included"}):l.push({label:"Prefill",value:on}),e.cachedTokens&&(e.promptPhaseMs??e.prefillMs)!==void 0&&l.push({label:"Restored",value:`${e.cachedTokens.toLocaleString()} tok from cache`,hint:"not recomputed"}),l.push({label:"Generation",value:e.generationPhaseMs!==void 0?Dc(e.generationPhaseMs,e.generationPhaseTokens,e.generationPhaseTokensPerSecond,"tok"):Dc(e.decodeMs,e.outputTokens,e.generationTokensPerSecond,"tok")}),e.measuredSpeedCalls&&e.measuredSpeedCalls!==e.llmCalls&&l.push({label:"Speeds from",value:`${e.measuredSpeedCalls} of ${e.llmCalls} calls`}),n.push({heading:"Model",rows:l});const f=e.speculation;if(f){const b=(f.draftKinds||[]).map(C=>C.toUpperCase()).join(", "),v=[{label:"Mode",value:`${f.used?"on":"off"}${b?` · ${b}`:""}${(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?on:`${Math.round(f.acceptanceRate*100)}% · ${Nn(f.acceptedTokens)} of ${Nn(f.draftedTokens)} drafted`}];((p=f.draftLengths)!=null&&p.length||f.rounds!==void 0)&&v.push({label:"Draft length",value:`${(g=f.draftLengths)!=null&&g.length?`${f.draftLengths.join("/")} tok/round`:on}${f.rounds!==void 0?` · ${f.rounds.toLocaleString()} rounds`:""}`}),n.push({heading:"Speculation",rows:v})}return e.slowestToolBatch&&n.push({heading:"Tools",rows:[{label:"Total",value:`${Fn(e.toolTimeMs)} · ${ya(e.toolBatches||0,"batch","batches")}`},{label:"Slowest",value:`${Fn(e.slowestToolBatch.ms)} · ${r_(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,v)=>[String(v+1),b.promptMs===void 0?"—":`${Fn(b.promptMs)}${b.promptSource==="rate"?"*":""}`,b.promptNewTokensPerSecond===void 0?"—":Math.round(b.promptNewTokensPerSecond).toLocaleString(),b.generationMs===void 0?"—":Fn(b.generationMs),b.generationTokensPerSecond===void 0?"—":Math.round(b.generationTokensPerSecond).toLocaleString(),b.cacheOutcome||"—"])},note:t.some(b=>b.promptSource==="rate")?"* derived from the provider's prompt rate (no TTFT event).":void 0}),{kind:"time",title:"Time",headline:s===void 0?on:`${Fn(s)} wall clock`,sections:n,footer:uu(e)}}function r_(e){return e.tools.length===1?`${e.tools[0]} ×${e.calls}`:`${ya(e.calls,"call")} (${e.tools.join(", ")})`}function Q1(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:uu(e)};const s=[{label:"Succeeded",value:(e.toolCalls-(e.toolsFailed||0)).toLocaleString()},{label:"Failed",value:(e.toolsFailed||0).toLocaleString()}];e.toolsRunning&&s.push({label:"Running",value:e.toolsRunning.toLocaleString()}),e.toolsWaiting&&s.push({label:"Awaiting approval",value:e.toolsWaiting.toLocaleString(),hint:"not run yet — not a failure"}),t.push({heading:"Outcome",rows:s});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?`${Fn(f.ms)}${f.sharedBatches?" +shared":""}`:f.sharedBatches?"shared":on])},note:i.some(([,d])=>d.sharedBatches)?"A batch that mixed tools ran them together; its time is not split between them.":void 0});const l=i.filter(([,d])=>d.errors&&Object.keys(d.errors).length);l.length&&t.push({heading:"Failures",rows:l.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?on:`${Fn(e.toolTimeMs)} · ${ya(e.toolBatches||0,"batch","batches")}`}];return e.slowestToolBatch&&u.push({label:"Slowest batch",value:`${Fn(e.slowestToolBatch.ms)} · ${r_(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:`${ya(e.toolCalls,"call")}${e.toolsFailed?` · ${e.toolsFailed} failed`:""}`,sections:t,footer:uu(e)}}function Rf(e,t){return e==="tokens"?q1(t):e==="time"?Y1(t):Q1(t)}function X1(e){const t=e.detail;return a.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:[a.jsxs("div",{className:"pc-stat-detail-head",children:[a.jsx("span",{className:"pc-stat-detail-title",children:t.title}),a.jsx("span",{className:"pc-stat-detail-headline",children:t.headline})]}),t.sections.map(n=>{var s;return a.jsxs("div",{className:"pc-stat-detail-section",children:[a.jsx("div",{className:"pc-stat-detail-heading",children:n.heading}),(s=n.rows)!=null&&s.length?a.jsx("dl",{className:"pc-stat-detail-rows",children:n.rows.map(i=>a.jsxs(gt.Fragment,{children:[a.jsx("dt",{children:i.label}),a.jsxs("dd",{children:[a.jsx("span",{className:i.value===on?"pc-stat-detail-value pc-stat-detail-value--absent":"pc-stat-detail-value",children:i.value}),i.hint?a.jsx("span",{className:"pc-stat-detail-hint",children:i.hint}):null]})]},i.label))}):null,n.table?a.jsxs("table",{className:"pc-stat-detail-table",children:[a.jsx("thead",{children:a.jsx("tr",{children:n.table.columns.map(i=>a.jsx("th",{scope:"col",children:i},i))})}),a.jsx("tbody",{children:n.table.rows.map((i,l)=>a.jsx("tr",{children:i.map((u,d)=>a.jsx("td",{children:u},d))},l))})]}):null,n.note?a.jsx("p",{className:"pc-stat-detail-note",children:n.note}):null]},n.heading)}),a.jsx("div",{className:"pc-stat-detail-foot",children:t.footer.map(n=>a.jsx("div",{children:n},n))})]})}const Zs=8;function Z1(e){const[t,n]=y.useState(!!e.defaultOpen),[s,i]=y.useState(null),l=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]),g=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 N=l.current,k=u.current;if(!N||!k)return;const T=N.getBoundingClientRect(),$=k.offsetWidth,j=k.offsetHeight,A=window.innerWidth,S=window.innerHeight,M=T.top-Zs-j,I=T.bottom+Zs,z=M>=Zs?M:I+j<=S-Zs?I:Math.max(Zs,S-Zs-j),V=Math.min(Math.max(Zs,T.left),Math.max(Zs,A-Zs-$));i({top:z,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=N=>{N.key==="Escape"&&n(!1)};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[t]);const b=typeof e.onClick=="function",v=b?"button":"span",C=t?a.jsx(X1,{detail:e.detail,id:f,panelRef:u,onMouseEnter:m,onMouseLeave:g,style:{position:"fixed",top:(s==null?void 0:s.top)??0,left:(s==null?void 0:s.left)??0,visibility:s?"visible":"hidden"}}):null;return a.jsxs(a.Fragment,{children:[a.jsxs(v,{ref:l,...b?{type:"button"}:{tabIndex:0},className:["pc-chat-stat","pc-chat-stat--detail",b?"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:g,onFocus:p,onBlur:()=>n(!1),onKeyDown:x=>{x.key==="Escape"&&n(!1)},onClick:b?()=>{var x;return(x=e.onClick)==null?void 0:x.call(e)}:void 0,children:[e.icon?a.jsx("span",{className:"pc-chat-stat-icon","aria-hidden":"true",children:e.icon}):null,a.jsx("span",{className:"pc-chat-stat-label",children:e.label})]}),C&&typeof document<"u"?al.createPortal(C,document.body):C]})}function eC(e){const t=e.totalTokens!==void 0?Rf("tokens",e):null,n=Rf("tools",e),s=e.durationMs!==void 0?Rf("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(`
|
|
78
|
-
`)}]:[],...s?[{label:`${(e.durationMs/1e3).toFixed(e.durationMs<1e4?1:0)}s`,detail:s}]:[]]}function tC(e){const t=String(e.role||"").trim().toLowerCase()||"system",n=String(e.kind||"").trim().toLowerCase(),s=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()||(s==="error"?"Error":s==="warn"?"Warning":"System"),icon:s==="error"?"error":s==="warn"?"warning":"info",variant:s==="error"?"error":s==="warn"?"warn":"status"}}const nC=new Set(["blob:","data:","http:","https:"]);function du(e){const t=String(e||"").trim();if(t)try{const n=typeof window<"u"&&window.location?window.location.href:"http://same-origin.invalid/";return nC.has(new URL(t,n).protocol)?t:void 0}catch{return}}function a_(e,t){return Yv(e)?{href:e,download:t||"file"}:{href:e,target:"_blank",rel:"noopener noreferrer"}}function sC({item:e,onOpen:t,markdown:n}){const[s,i]=y.useState(!1),l=du(e.src),u=String(e.name||e.label||"").trim()||"File",d=L1({href:e.href?du(e.href):void 0,src:l,contentType:e.contentType,name:e.name||e.label}),f=sl(u,e.contentType),m=au(f),p=typeof e.text=="string";if(!l&&!d&&!p)return null;const g=fl(e.size),b=String(e.label||"").trim()||u;return a.jsxs("figure",{className:"pc-chat-media__item pc-chat-media__item--file","data-file-kind":f,children:[a.jsxs("div",{className:"pc-chat-media__file-row",children:[a.jsx(de,{name:"file",size:14}),a.jsx("span",{className:"pc-chat-media__file-name",title:u,children:b}),g?a.jsx("span",{className:"pc-chat-media__file-size",children:g}):null,t?a.jsx("button",{type:"button",className:"pc-chat-media__file-open","data-action":"open-file",onClick:()=>t({...e,src:l||"",...d?{href:d}:{href:void 0}}),children:"Open"}):a.jsx("button",{type:"button",className:"pc-chat-media__file-open","data-action":"toggle-file","aria-expanded":s,onClick:()=>i(v=>!v),children:s?"Close":"Open"}),d?a.jsx("a",{className:"pc-chat-media__link",...a_(d,String(e.name||"").trim()||b),children:"Raw file"}):null]}),s&&!t?a.jsx(Xh,{className:"pc-chat-media__viewer",name:u,kind:f,contentType:e.contentType,sizeBytes:e.size,status:m&&!p?"error":"ready",error:m&&!p?d?"No preview text was supplied for this file; open the raw file.":"No preview text was supplied for this file.":void 0,markdownImages:n.images||"link",...n.inlineImage?{inlineImage:n.inlineImage}:{},...n.renderMarkdown?{renderMarkdown:n.renderMarkdown}:{},...p?{text:e.text}:{},...l&&!m?{url:l}:{},onClose:()=>i(!1)}):null]})}function rC({item:e,onOpenFile:t,markdown:n}){const[s,i]=y.useState(!1);if(e.kind==="file")return a.jsx(sC,{item:e,onOpen:t,markdown:n||{}});const l=du(e.src),u=e.href?du(e.href):void 0,d=e.kind==="image"||e.kind==="audio"||e.kind==="video"?e.kind:null;if(!d||!l&&!u)return null;const f=d==="image"?"Image":d==="video"?"Video":"Audio",m=String(e.label||"").trim()||`Generated ${f.toLowerCase()}`,p=()=>i(!0);return a.jsxs("figure",{className:`pc-chat-media__item pc-chat-media__item--${d}`,children:[l&&d==="image"?a.jsx("img",{className:"pc-chat-media__image",src:l,alt:m,loading:"lazy",onError:p}):null,l&&d==="video"?a.jsx("video",{className:"pc-chat-media__video",src:l,controls:!0,playsInline:!0,preload:"metadata","aria-label":m,onError:p}):null,l&&d==="audio"?a.jsx(Cv,{className:"pc-chat-media__audio",src:l,name:m}):null,d==="audio"&&String(e.transcript||"").trim()?a.jsxs("details",{className:"pc-chat-media__transcript",children:[a.jsx("summary",{children:"Transcript"}),a.jsx("p",{className:"pc-chat-media__transcript-text",children:String(e.transcript).trim()})]}):null,s?a.jsxs("div",{className:"pc-chat-media__error",role:"note",children:[f," could not be decoded by this browser",u?"; open the raw file with the link.":"."]}):null,u?a.jsx("figcaption",{className:"pc-chat-media__caption",children:a.jsx("a",{className:"pc-chat-media__link",...a_(u,String(e.name||"").trim()||m),children:m})}):null]})}function o_(e){var S,M;const t=e.message,n=y.useMemo(()=>tC(t),[t.kind,t.level,t.role,t.title]),s=String(t.ts||"").trim(),i=y.useMemo(()=>{if(!s)return"";const I=new Date(s);return Number.isFinite(I.getTime())?I.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):""},[s]),[l,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&&((S=e.getSpeakState)==null?void 0:S.call(e,t))||"idle",g=p==="loading"?"loader":p==="playing"?"pause":"speaker",b=p==="loading"?"Generating audio…":p==="playing"?"Pause":p==="paused"?"Resume":"Speak (TTS)",v=e.showCopy!==!1,C=Array.isArray(e.attachments)?e.attachments:Array.isArray(t.attachments)?t.attachments:[],x=t.statistics,N=t.stats,k=y.useMemo(()=>Array.isArray(e.stats)?e.stats:Array.isArray(N)?N:x?eC(x):[],[e.stats,N,x]),T=Array.isArray(t.media)?t.media:[],$=String(f?f.reasoning||"":t.reasoning||""),j=!!String(t.content||"").trim();if(t.toolActivity)return a.jsx(n_,{tool:t.toolActivity,showCopy:e.showCopy});const A=e.renderFooter?e.renderFooter(t):null;if(((M=e.variant)==null?void 0:M.call(e,t))==="hint"||t.kind==="tool_policy_decision"){const I=String(t.level||"").trim().toLowerCase();return a.jsxs("div",{className:["pc-chat-hint",I==="warn"||I==="error"?`pc-chat-hint--${I}`:"",e.className].filter(Boolean).join(" "),role:"note","data-variant":"hint",children:[a.jsx("span",{className:"pc-chat-hint__text",children:String(t.content||"")}),A!=null&&A!==!1?a.jsx("div",{className:"pc-chat-footer",children:A}):null]})}return a.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:[a.jsxs("div",{className:"pc-chat-header",children:[a.jsx("div",{className:"pc-chat-avatar","aria-hidden":"true",children:a.jsx(de,{name:n.icon,size:14})}),a.jsx("span",{className:"pc-chat-role",children:n.label}),f?a.jsxs("span",{className:"pc-chat-live-indicator",title:f.label?`Pending: ${f.label}`:"The reply is still being written",children:[a.jsx("span",{className:"pc-chat-live-dot","aria-hidden":"true"}),f.label||"streaming"]}):null,f!=null&&f.caption?a.jsx("span",{className:"pc-chat-live-caption",children:f.caption}):null,a.jsx("span",{className:"pc-chat-header-spacer"}),i?a.jsx("span",{className:"pc-chat-time",children:i}):null,a.jsxs("div",{className:"pc-chat-header-actions",children:[m?a.jsx("button",{className:"pc-chat-icon-btn",type:"button","aria-label":b,title:b,onClick:()=>{var I;return(I=e.onSpeakToggle)==null?void 0:I.call(e,t)},children:a.jsx(de,{name:g,size:22,className:p==="loading"?"pc-chat-speak-spinner":void 0})}):null,v?a.jsx("button",{className:`pc-chat-icon-btn ${l!=="idle"?`pc-chat-icon-btn--${l}`:""}`.trim(),type:"button","aria-label":"Copy message",title:l==="idle"?"Copy":l==="copied"?"Copied":"Copy failed",onClick:async()=>{const I=await ml(String(t.content||""));u(I?"copied":"failed"),d.current!==null&&window.clearTimeout(d.current),d.current=window.setTimeout(()=>u("idle"),900)},children:a.jsx(de,{name:"copy",size:22})}):null]})]}),$.trim()?a.jsxs("details",{className:"pc-chat-thinking",children:[a.jsx("summary",{children:"Thinking"}),a.jsx("div",{className:"pc-chat-thinking-body",children:$})]}):null,j||!f&&!T.length?a.jsx("div",{className:"pc-chat-body",children:a.jsx(qv,{text:String(t.content||""),renderMarkdown:e.renderMarkdown,jsonCollapseAfterDepth:e.jsonCollapseAfterDepth,images:e.images||(n.variant==="user"?"inline":"link"),inlineImage:e.inlineImage})}):null,T.length?a.jsx("div",{className:"pc-chat-media",children:T.slice(0,24).map((I,z)=>a.jsx(rC,{item:I,onOpenFile:e.onOpenMedia,markdown:{renderMarkdown:e.renderMarkdown,images:e.images,inlineImage:e.inlineImage}},I.id||`${I.kind}:${I.src}:${z}`))}):null,C.length?a.jsx("div",{className:"pc-chat-attachments","aria-label":"Attachments",children:C.slice(0,24).map((I,z)=>{const V=String(I.label||"").trim()||"attachment",Z=String(I.target||"").trim(),ie=String(I.title||"").trim(),F=!!I.disabled||typeof I.onClick!="function";return a.jsxs("button",{type:"button",className:"pc-chat-attachment-chip",title:ie||V,onClick:F?void 0:I.onClick,disabled:F,children:[a.jsx(de,{name:"paperclip",size:14}),Z?a.jsx("span",{className:`pc-chat-attachment-target pc-chat-attachment-target--${Z}`,children:Z}):null,a.jsx("span",{className:"pc-chat-attachment-name",children:V})]},I.id||`${V}:${z}`)})}):null,k.length?a.jsx("div",{className:"pc-chat-stats","aria-label":"Stats",children:k.slice(0,12).map((I,z)=>{const V=String(I.label||"").trim();if(!V)return null;if(I.detail)return a.jsx(Z1,{label:V,detail:I.detail,icon:I.icon,onClick:I.onClick},I.id||`${V}:${z}`);const Z=String(I.title||"").trim(),ie=typeof I.onClick=="function",F=ie?"button":"span";return a.jsxs(F,{...ie?{type:"button"}:{},className:["pc-chat-stat",ie?"pc-chat-stat--clickable":""].filter(Boolean).join(" "),title:Z||void 0,onClick:ie?()=>{var D;return(D=I.onClick)==null?void 0:D.call(I)}:void 0,children:[I.icon?a.jsx("span",{className:"pc-chat-stat-icon","aria-hidden":"true",children:I.icon}):null,a.jsx("span",{className:"pc-chat-stat-label",children:V})]},I.id||`${V}:${z}`)})}):null,A!=null&&A!==!1?a.jsx("div",{className:"pc-chat-footer",children:A}):null]})}function aC(e,t){const n=Math.max(0,Math.trunc(t));return e.scrollHeight-e.scrollTop-e.clientHeight<=n}function i_(e){const t=typeof e.autoScrollThresholdPx=="number"&&Number.isFinite(e.autoScrollThresholdPx)?e.autoScrollThresholdPx:120,n=e.autoScroll!==!1,s=y.useRef(null),i=y.useRef(null),[l,u]=y.useState(!0),d=y.useMemo(()=>Array.isArray(e.messages)?e.messages:[],[e.messages]),f=y.useMemo(()=>{var g;const p=[];for(const b of d){const v=p[p.length-1];b.toolActivity&&((g=v==null?void 0:v[0])!=null&&g.toolActivity)&&v[0].runId===b.runId?v.push(b):p.push([b])}return p},[d]);y.useEffect(()=>{if(!n)return;const p=s.current;if(!p)return;const g=()=>{u(aC(p,t))};return p.addEventListener("scroll",g,{passive:!0}),g(),()=>p.removeEventListener("scroll",g)},[n,t]);const m=y.useMemo(()=>{let p=0;for(const g of d)if(p+=String(g.content??"").length,Array.isArray(g.media))for(const b of g.media)p+=String((b==null?void 0:b.src)??"").length+1;return`${d.length}:${p}:${String(e.afterKey??"")}`},[d,e.afterKey]);return y.useEffect(()=>{if(!n||!l)return;const p=s.current;p&&(p.scrollTop=p.scrollHeight)},[n,l,m]),y.useEffect(()=>{if(!n)return;const p=s.current;if(!p)return;const g=()=>{l&&(p.scrollTop=p.scrollHeight)};return p.addEventListener("load",g,!0),p.addEventListener("loadedmetadata",g,!0),()=>{p.removeEventListener("load",g,!0),p.removeEventListener("loadedmetadata",g,!0)}},[n,l]),a.jsxs("div",{ref:s,className:["pc-chat-thread",e.className].filter(Boolean).join(" "),children:[d.length?null:e.empty||null,f.map((p,g)=>{var C;const b=p[0],v=String(b.id||"")||String(b.ts||"")+":"+String(b.role||"")+":"+g;return b.toolActivity?a.jsx(Zh,{tools:p.map(x=>x.toolActivity),showCopy:(C=e.messageProps)==null?void 0:C.showCopy},v):a.jsx(o_,{message:b,...e.messageProps||{}},v)}),e.after,a.jsx("div",{ref:i})]})}const l_=gt.forwardRef(function(t,n){const s=typeof t.rows=="number"&&Number.isFinite(t.rows)?Math.max(1,Math.trunc(t.rows)):3,i=!!t.disabled,l=!!t.busy,u=!i&&!l&&!!String(t.value||"").trim();return a.jsxs("div",{className:["pc-composer",t.className].filter(Boolean).join(" "),children:[t.leading,a.jsx("textarea",{ref:n,className:["pc-composer__textarea",t.textareaClassName].filter(Boolean).join(" "),value:t.value,onChange:d=>t.onChange(d.target.value),rows:s,style:{"--pc-composer-rows":String(s)},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())}}),a.jsxs("div",{className:"pc-composer__row",children:[a.jsx("div",{className:"pc-composer__actions",children:t.actions}),a.jsx("button",{type:"button",className:t.sendButtonClassName||"pc-btn",disabled:!u,onClick:()=>t.onSubmit(),children:l?t.busyLabel||"Thinking…":t.sendLabel||"Send"})]}),t.overlay]})});function Vi(e){if(!e)return!1;for(let t=0;t<e.length;t+=1)if(e[t]==="Files")return!0;return!1}function by(e){var s;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)((s=t[i])==null?void 0:s.kind)==="file"&&(n+=1);return n>0?n:null}function xy(e){return e===1?"Drop file to attach":typeof e=="number"&&e>1?`Drop ${e} files to attach`:"Drop files to attach"}function em(e){const t=[],n=[],s=e==null?void 0:e.items;if(s&&s.length){for(let l=0;l<s.length;l+=1){const u=s[l];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 l=0;l<i.length;l+=1)i[l]&&t.push(i[l]);return{files:t,folders:n}}function c_(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 oC={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/heic":"heic","image/tiff":"tiff","image/bmp":"bmp"};function Ri(e){return String(e).padStart(2,"0")}function iC(e,t,n){const s=String(e||"").trim();if(s&&!/^image\.(png|jpe?g|gif|webp|heic|tiff?|bmp)$/i.test(s))return s;const i=oC[String(t||"").toLowerCase()]||s.split(".").pop()||"bin",l=`${n.getFullYear()}-${Ri(n.getMonth()+1)}-${Ri(n.getDate())} at ${Ri(n.getHours())}.${Ri(n.getMinutes())}.${Ri(n.getSeconds())}`;return`${String(t||"").startsWith("image/")||!s?"Pasted image":"Pasted file"} ${l}.${i}`}function u_(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:s}=em(e);return s.map(i=>{const l=iC(i.name,i.type,t);return l===i.name?i:new File([i],l,{type:i.type,lastModified:i.lastModified})})}class lC{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 Hi="llm.delta",yo="llm.delta_end";function cC(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function fa(e){return typeof e=="string"&&e.trim()!==""}function uC(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0}function d_(e){return"reason"in e}function f_(e,t){const n=cC(e),s=n==null?void 0:n.kind,i=t||(typeof s=="string"&&s?s:n&&"reason"in n?yo:Hi),l=f=>{throw new Error(`Malformed ${i} event from the gateway: ${f}`)};if(t!==void 0&&t!==Hi&&t!==yo&&l(`unknown event name ${JSON.stringify(t)}`),!n)return l("the payload is not an object");s!==void 0&&s!==Hi&&s!==yo&&l(`unknown kind ${JSON.stringify(s)}`),s!==void 0&&t!==void 0&&s!==t&&l(`kind ${JSON.stringify(s)} does not match the event name`),fa(n.run_id)||l("run_id is missing"),fa(n.call_id)||l("call_id is missing"),uC(n.seq)||l("seq is not a non-negative integer");const u=t||s?(t||s)===yo:"reason"in n;n.root_run_id!==void 0&&!fa(n.root_run_id)&&l("root_run_id is not a run id"),n.parent_run_id!==void 0&&n.parent_run_id!==null&&!fa(n.parent_run_id)&&l("parent_run_id is neither a run id nor null");const d={run_id:n.run_id,...fa(n.root_run_id)?{root_run_id:n.root_run_id}:{},...n.parent_run_id!==void 0?{parent_run_id:n.parent_run_id}:{},...fa(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))||l(`unknown reason ${JSON.stringify(n.reason)}`),n.detail!==void 0&&n.detail!==null&&typeof n.detail!="string"&&l("detail is not a string"),{kind:yo,...d,reason:n.reason,...fa(n.detail)?{detail:n.detail}:{}}):(typeof n.text!="string"&&l("text is not a string"),n.channel!=="content"&&n.channel!=="reasoning"&&l(`unknown channel ${JSON.stringify(n.channel)}`),typeof n.snapshot!="boolean"&&l("snapshot is not a boolean"),{kind:Hi,...d,text:n.text,channel:n.channel,snapshot:n.snapshot})}function h_(e,t){if(e!==Hi&&e!==yo)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 f_(n,e)}function dC(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 fC={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 hC(e){return`This reply is not streamed: ${e?fC[e]||`the gateway reported "${e}"`:"the gateway gave no reason"}. It appears when it is complete.`}const tm=e=>we(`runs/${encodeURIComponent(e)}/workspace`);function mC(e){return tm(e)}function pC(e,t){return`${tm(e)}/files?${new URLSearchParams({path:t,recursive:"false"})}`}function m_(e,t){return`${tm(e)}/content?${new URLSearchParams({path:t})}`}async function Oo(e,t){let n="";try{const s=await e.text();try{const i=JSON.parse(s),l=(i==null?void 0:i.detail)??(i==null?void 0:i.error)??(i==null?void 0:i.message);n=typeof l=="string"?l:l&&typeof l.message=="string"?l.message:s}catch{n=s}}catch{n=""}return new Error(`${t} (HTTP ${e.status}): ${n.trim()||e.statusText||"no reason given"}`)}function gC(e,t){const n=e&&typeof e=="object"&&!Array.isArray(e)?e:null,s=u=>{throw new Error(`Unexpected /workspace/files response from the gateway: ${u}.`)};if(!n)return s("not an object");Array.isArray(n.entries)||s("no `entries` list"),typeof n.truncated!="boolean"&&s("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")&&s(`entry ${d+1} lacks a name, path or file/dir type`),f}),l=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,...l?{hidden:l}:{}}}async function yC(e,t,n){const s=await e(mC(t),{signal:n});if(!s.ok)throw await Oo(s,"The workspace is not available");const i=await s.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 wC(e,t,n,s){const i=await e(pC(t,n),{signal:s});if(!i.ok)throw await Oo(i,"The folder could not be listed");return gC(await i.json(),n)}async function vC(e,t,n,s){const i=await e(m_(t,n),{signal:s});if(!i.ok)throw await Oo(i,"The file could not be read");return await i.blob()}async function _C(e,t,n,s){const i=await yC(e,t,s);return{where:i,listing:i.exists?await wC(e,t,n,s):null}}function bC(e){const t=String(e||"").split("/").filter(Boolean),n=[{label:"Workspace",path:""}];return t.forEach((s,i)=>n.push({label:s,path:t.slice(0,i+1).join("/")})),n}function fu(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,s=0;for(;n>=1024&&s<t.length-1;)n/=1024,s+=1;return`${n<10?n.toFixed(1):Math.round(n)} ${t[s]}`}function xC(e){return[...e].sort((t,n)=>t.type===n.type?t.name.localeCompare(n.name):t.type==="dir"?-1:1)}function kC(e){const t=e.hidden||{},n=Number(t.blocked||0)+Number(t.outside_links||0)+Number(t.other||0),s=[];return n>0&&s.push(`${n} ${n===1?"entry":"entries"} hidden by the gateway's workspace rules`),e.truncated&&s.push("the list is truncated"),s.join("; ")}const jC=new Set(["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","application/pdf","text/plain","application/json"]);function SC(e){const t=String(e||"").split(";",1)[0].trim().toLowerCase();return jC.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 p_(e,t,n){const s=n==="open"?SC(e.type):{mode:"download"},i=s.mode==="open"&&s.type!==e.type?new Blob([e],{type:s.type}):e,l=URL.createObjectURL(i);if(s.mode==="open")window.open(l,"_blank","noopener");else{const u=document.createElement("a");u.href=l,u.download=t,document.body.appendChild(u),u.click(),u.remove()}window.setTimeout(()=>URL.revokeObjectURL(l),6e4)}async function NC(e,t,n){const s=await e(Nx(t),{signal:n.signal});if(!s.ok)throw await Oo(s,`${n.name} could not be read`);p_(await s.blob(),n.name,n.mode??"open")}function CC(e){const t=String(e||"").split(/[\\/]/).filter(Boolean);return t.length?t[t.length-1]:String(e||"")}function EC(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 AC(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}function nm(e){var ie;const{fetchGateway:t,runId:n}=e,[s,i]=y.useState({runId:n,path:""}),l=s.runId===n?s.path:"",[u,d]=y.useState(null),[f,m]=y.useState(""),[p,g]=y.useState(""),[b,v]=y.useState(!!n),[C,x]=y.useState(""),[N,k]=y.useState(!1),[T,$]=y.useState(0),[j,A]=y.useState(null),S=j&&j.runId===n&&!e.onSelectFile?j.entry:null,M=B1(t,n,S,`${e.refreshKey??""}:${T}`);y.useEffect(()=>{if(!n)return;const F=new AbortController;return v(!0),m(""),(async()=>{try{const D=await _C(t,n,l,F.signal);F.signal.aborted||d({runId:n,...D})}catch(D){F.signal.aborted||m(String((D==null?void 0:D.message)||D))}finally{F.signal.aborted||v(!1)}})(),()=>F.abort()},[t,n,l,T,e.refreshKey]),y.useEffect(()=>g(""),[n]);const I=u&&u.runId===n?u:null,z=y.useCallback(async F=>{x(F.path),m("");try{p_(await vC(t,n,F.path),F.name,"download")}catch(D){m(String((D==null?void 0:D.message)||D))}finally{x("")}},[t,n]),V=(I==null?void 0:I.where.workspace_root)||"",Z=e.nowMs??Date.now();return a.jsx($C,{title:e.title,note:e.note,where:(I==null?void 0:I.where)??null,path:l,listing:(I==null?void 0:I.listing)??null,error:f,notice:p,loading:b,fileBusy:C,selectedPath:e.onSelectFile?e.selectedPath:S==null?void 0:S.path,className:e.className,nowMs:Z,openingFolder:N,onNavigate:F=>{A(null),i({runId:n,path:F})},onRefresh:()=>$(F=>F+1),onFile:F=>void z(F),onSelectFile:e.onSelectFile??(F=>A({runId:n,entry:F})),onClose:e.onClose,onCopyPath:V?()=>{(e.copyText||AC)(V).then(F=>g(F?"Path copied.":"Could not copy; select the path instead."))}:void 0,onOpenFolder:e.onOpenFolder&&EC(I==null?void 0:I.where)?()=>{k(!0),g(""),e.onOpenFolder().then(()=>g("Folder opened on this machine.")).catch(F=>g(`Open folder failed: ${String((F==null?void 0:F.message)||F)}`)).finally(()=>k(!1))}:void 0,preview:S?a.jsx(Xh,{name:S.name,path:S.path,sizeBytes:S.size_bytes,modified:S.mtime,nowMs:Z,...W1(M),actions:(ie=e.fileActions)==null?void 0:ie.call(e,S),onDownload:()=>void z(S),onClose:()=>A(null)}):null})}function $C(e){var l,u,d,f;const t=e.listing?kC(e.listing):"",n=(u=(l=e.where)==null?void 0:l.host)==null?void 0:u.hostname,s=((d=e.where)==null?void 0:d.workspace_root)||"",i=e.nowMs??Date.now();return a.jsxs("section",{className:`pc-ws${e.className?` ${e.className}`:""}`,"aria-label":e.title,"data-workspace-root":s||void 0,children:[a.jsxs("header",{className:"pc-ws__head",children:[a.jsxs("span",{className:"pc-ws__title",children:[a.jsx(de,{name:"folder",size:15})," ",e.title]}),a.jsx("span",{className:"pc-ws__spacer"}),a.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:a.jsx(de,{name:"refresh",size:14})}),e.onClose?a.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:a.jsx(de,{name:"x",size:14})}):null]}),e.where?a.jsxs("div",{className:"pc-ws__root",children:[a.jsx("span",{className:"pc-ws__root-name",title:s,"data-root-name":"true",children:CC(s)}),e.onOpenFolder?a.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:a.jsx(de,{name:"folder",size:14})}):null,e.onCopyPath?a.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:a.jsx(de,{name:"copy",size:14})}):null,n&&((f=e.where.host)==null?void 0:f.caller_is_this_machine)!==!0?a.jsxs("span",{className:"pc-ws__muted",children:[" on ",n]}):null]}):null,e.note?a.jsx("div",{className:"pc-ws__muted",children:e.note}):null,e.notice?a.jsx("div",{className:"pc-ws__muted",role:"status",children:e.notice}):null,e.error?a.jsx("div",{className:"pc-ws__error",role:"alert",children:e.error}):null,e.preview?a.jsx("div",{className:"pc-ws__preview",children:e.preview}):a.jsxs(a.Fragment,{children:[a.jsx("nav",{className:"pc-ws__crumbs","aria-label":"Folder",children:bC(e.path).map((m,p,g)=>p===g.length-1?a.jsx("span",{"aria-current":"page",children:m.label},m.path):a.jsxs(gt.Fragment,{children:[a.jsx("button",{type:"button",className:"pc-ws__crumb",onClick:()=>e.onNavigate(m.path),children:m.label}),a.jsx("span",{className:"pc-ws__muted",children:" / "})]},m.path))}),e.loading&&!e.listing?a.jsx("div",{className:"pc-ws__muted",role:"status",children:"Loading…"}):null,e.where&&!e.where.exists?a.jsx("div",{className:"pc-ws__muted",children:"The folder does not exist yet: nothing has been written."}):null,e.listing?e.listing.entries.length?a.jsx("ul",{className:"pc-ws__entries",children:xC(e.listing.entries).map(m=>a.jsx("li",{className:`pc-ws__entry${e.selectedPath===m.path?" is-selected":""}`,"data-type":m.type,"data-path":m.path,children:m.type==="dir"?a.jsxs("button",{type:"button",className:"pc-ws__name","data-action":"open-dir",onClick:()=>e.onNavigate(m.path),children:[a.jsx(de,{name:"folder",size:14})," ",a.jsxs("span",{className:"pc-ws__label",children:[m.name,"/"]})]}):a.jsxs(a.Fragment,{children:[e.onSelectFile?a.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:[a.jsx(de,{name:"file",size:14})," ",a.jsx("span",{className:"pc-ws__label",children:m.name})]}):a.jsxs("span",{className:"pc-ws__name",children:[a.jsx(de,{name:"file",size:14})," ",a.jsx("span",{className:"pc-ws__label",children:m.name})]}),a.jsxs("span",{className:"pc-ws__meta",children:[a.jsx("span",{className:"pc-ws__size",children:fu(m.size_bytes)}),m.mtime!==void 0&&Eo(m.mtime,i)?a.jsx("time",{className:"pc-ws__time",title:Io(m.mtime),"data-meta":"modified",children:Eo(m.mtime,i)}):null]}),e.onFile?a.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:a.jsx(de,{name:"download",size:14})}):null]})},m.path))}):a.jsx("div",{className:"pc-ws__muted",children:"This folder is empty."}):null,t?a.jsx("div",{className:"pc-ws__muted","data-hidden-note":"true",children:t}):null]})]})}const TC={registry_scope:"tenant_catalog",bundle_id:"docs-qa",bundle_version:"0.1.1",flow_id:"docsqa001"},g_="docs";function RC(e){return we(`docs/corpus?${new URLSearchParams({app:String(e||"")})}`)}function If(e){return`${String(e||"app")}-docs-assistant:${Dr()}`}function IC(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}),{...TC,session_id:e.sessionId,kind:g_,input_data:t}}function y_(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 MC(e){const t=e&&typeof e=="object"?e:{},n=d=>typeof d=="number"&&Number.isFinite(d)&&d>0?Math.trunc(d):0,s=n(t.dropped_messages);if(!s)return"";const i=n(t.replayed_messages),l=n(t.dropped_tokens),u=n(t.max_tokens);return`Earlier messages not replayed: ${s.toLocaleString("en-US")}${l?` (~${l.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*LC(e,t){const n=e.getReader(),s=new TextDecoder;let i="";const l=()=>{n.cancel().catch(()=>{})};t==null||t.addEventListener("abort",l,{once:!0});try{for(;;){const{value:u,done:d}=await n.read();if(d)break;i+=s.decode(u,{stream:!0}).replace(/\r\n/g,`
|
|
79
|
-
`);let f=i.indexOf(`
|
|
80
|
-
|
|
81
|
-
`);for(;f>=0;){const m=i.slice(0,f);i=i.slice(f+2);let p="message";const g=[];for(const b of m.split(`
|
|
82
|
-
`))b.startsWith("event:")?p=b.slice(6).trim():b.startsWith("data:")&&g.push(b.slice(5).replace(/^ /,""));g.length&&(yield{event:p,data:g.join(`
|
|
83
|
-
`)}),f=i.indexOf(`
|
|
84
|
-
|
|
85
|
-
`)}}}finally{t==null||t.removeEventListener("abort",l)}}function OC(e,t){return new Promise((n,s)=>{if(t.aborted)return s(new DOMException("Aborted","AbortError"));const i=setTimeout(()=>{t.removeEventListener("abort",l),n()},e),l=()=>{clearTimeout(i),s(new DOMException("Aborted","AbortError"))};t.addEventListener("abort",l,{once:!0})})}async function Pr(e,t){if(!e.ok)throw await Oo(e,t);return e.json()}function PC(e){const t=e.pollMs??1e3,n=e.timeoutMs??18e4;let s=null;return async(i,l)=>{var C;const{fetchGateway:u,source:d}=e;if(s===null){const x=await u(RC(d.app),{signal:l.signal,headers:{Accept:"application/json"}}),N=await Pr(x,`The ${d.name} documentation could not be read, so nothing was asked`),k=typeof(N==null?void 0:N.text)=="string"?N.text:"";if(!k.trim())throw new Error(`The gateway returned an empty ${d.name} documentation corpus, so nothing was asked.`);s=k}const f=String(s),m=[];for(const x of l.files||[]){const N=new FormData;N.append("session_id",l.sessionId),N.append("file",x,x.name||"upload.bin"),N.append("filename",x.name||"upload.bin"),x.type&&N.append("content_type",x.type);const k=await Pr(await u(we("attachments/upload"),{method:"POST",body:N,signal:l.signal}),`"${x.name}" could not be attached`),T=k==null?void 0:k.attachment;if(!T||typeof T.$artifact!="string"||!T.$artifact)throw new Error(`"${x.name}" could not be attached: the gateway returned no attachment reference.`);m.push(T)}const p=await Pr(await u(we("runs/start"),{method:"POST",signal:l.signal,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(IC({question:i,docs:f,appName:d.name,sessionId:l.sessionId,attachments:m}))}),"The docs-qa workflow could not start"),g=String((p==null?void 0:p.run_id)||"");if(!g)throw new Error("The gateway did not return a run id for the docs-qa workflow.");const b=new AbortController,v=()=>b.abort();l.signal.addEventListener("abort",v,{once:!0}),l.onText&&(async()=>{var x;try{const N=await u(we(`runs/${encodeURIComponent(g)}/ledger/stream?after=0`),{signal:b.signal,headers:{Accept:"text/event-stream"}});if(!N.ok||!N.body)return;let k="",T="";for await(const $ of LC(N.body,b.signal)){const j=h_($.event,$.data);!j||d_(j)||j.channel!=="content"||j.run_id!==g||(j.call_id!==k&&(k=j.call_id,T=""),T=j.snapshot?j.text:T+j.text,(x=l.onText)==null||x.call(l,T))}}catch{}})();try{const x=Date.now()+n;for(;;){await OC(t,l.signal);const N=await Pr(await u(we(`runs/${encodeURIComponent(g)}`),{signal:l.signal}),"The docs-qa run could not be read"),k=String((N==null?void 0:N.status)||"").toLowerCase();if(k==="completed"){(C=l.onHistory)==null||C.call(l,(N==null?void 0:N.session_history)??null);const T=y_(N);if(!T)throw new Error(`The docs-qa run ${g} completed without an answer.`);return T}if(k==="failed"||k==="cancelled"){const T=N==null?void 0:N.error,$=typeof T=="string"?T:typeof(T==null?void 0:T.message)=="string"?T.message:"";throw new Error(`The docs-qa run ${k}${$?`: ${$}`:""}.`)}if(k==="waiting")throw new Error(`The docs-qa run ${g} is waiting for input it should never need. Inspect it in Observer.`);if(Date.now()>=x)throw new Error(`The docs-qa run ${g} is still running after ${Math.round(n/1e3)} s. It stays in the gateway's history.`)}}finally{l.signal.removeEventListener("abort",v),b.abort()}}}async function DC(e,t,n={}){const s=new URLSearchParams({root_only:"true",kind:g_,limit:"500",include_ledger_len:"false"}),i=await Pr(await e(we(`runs?${s}`),{signal:n.signal}),"The docs assistant history could not be read"),l=`${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(l)||!(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 g=String(f.updated_at||f.created_at||"");g>p.updatedAt&&(p.updatedAt=g),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 b;const p=m.runs.sort((v,C)=>v.created<C.created?-1:1).map(v=>v.id);let g="";try{const v=await Pr(await e(we(`runs/${encodeURIComponent(p[0])}/input_data`),{signal:n.signal}),"");g=String(((b=v==null?void 0:v.input_data)==null?void 0:b.prompt)||"").trim()}catch{g=""}return{sessionId:f,title:g||"Untitled question",updatedAt:m.updatedAt,runIds:p}}))}async function FC(e,t,n,s){var l;const i=[];for(const u of t.runIds){const[d,f]=await Promise.all([Pr(await e(we(`runs/${encodeURIComponent(u)}/input_data`),{signal:s}),"A past question could not be read"),Pr(await e(we(`runs/${encodeURIComponent(u)}`),{signal:s}),"A past answer could not be read")]),m=String(((l=d==null?void 0:d.input_data)==null?void 0:l.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=y_(f),g=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:g==="completed"?"This answer was empty.":`No answer: the run is ${g||"unknown"}.`})}return i}function zC(e){const[t,n]=y.useState(null);return e.state==="loading"?a.jsx("div",{className:"pc-docs-history__note",role:"status",children:"Loading past conversations…"}):e.state==="error"?a.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?a.jsx("ul",{className:"pc-docs-history","aria-label":"Past conversations",children:e.items.map(s=>a.jsx("li",{className:`pc-docs-history__row${s.sessionId===e.activeSessionId?" is-active":""}`,children:t===s.sessionId?a.jsxs("div",{className:"pc-docs-history__confirm",children:[a.jsx("span",{children:"Archive this conversation? It stays in the gateway; it leaves this list."}),a.jsx("button",{type:"button",className:"pc-docs-history__btn pc-docs-history__btn--danger",onClick:()=>{n(null),e.onArchive(s)},children:"Archive"}),a.jsx("button",{type:"button",className:"pc-docs-history__btn",onClick:()=>n(null),children:"Cancel"})]}):a.jsxs(a.Fragment,{children:[a.jsxs("button",{type:"button",className:"pc-docs-history__open",onClick:()=>e.onOpen(s),title:s.title,children:[a.jsx("span",{className:"pc-docs-history__title",children:s.title}),a.jsxs("span",{className:"pc-docs-history__meta",children:[Eo(s.updatedAt,e.nowMs),s.runIds.length>1?` · ${s.runIds.length} questions`:""]})]}),a.jsx("button",{type:"button",className:"pc-docs-assistant__icon-btn","aria-label":`Archive "${s.title}"`,"data-af-tip":`Archive "${s.title}" (kept, hidden)`,onClick:()=>n(s.sessionId),children:a.jsx(de,{name:"archive",size:16})})]})},s.sessionId))}):a.jsx("div",{className:"pc-docs-history__note",children:"No past conversations yet."})}const BC=/^image\/(png|jpe?g|gif|webp|avif|bmp|svg\+xml)$/i;function WC(e){const t=y.useRef(null),[n,s]=y.useState(!1),i=!!e.blockedNotice,l=!!e.busy,u=e.files||[],d=typeof e.onAddFiles=="function"&&!i,f=a.jsxs("div",{className:"pc-docs-assistant__empty",children:[a.jsxs("p",{className:"pc-docs-assistant__empty-text",children:["Ask anything about ",e.source.name,"."]}),e.suggestions&&e.suggestions.length?a.jsx("div",{className:"pc-docs-assistant__suggestions",children:e.suggestions.map(m=>a.jsx("button",{type:"button",className:"pc-docs-assistant__suggestion",disabled:l||i,onClick:()=>{var p;return(p=e.onSuggestion)==null?void 0:p.call(e,m)},children:m},m))}):null]});return a.jsxs("div",{className:`pc-docs-assistant${n?" is-dragging":""}`,onDragOver:m=>{var p;!d||!Vi((p=m.dataTransfer)==null?void 0:p.types)||(m.preventDefault(),s(!0))},onDragLeave:()=>s(!1),onDrop:m=>{var g,b;if(!d)return;m.preventDefault(),s(!1);const p=em(m.dataTransfer);p.files.length&&((g=e.onAddFiles)==null||g.call(e,p.files)),p.folders.length&&((b=e.onNotice)==null||b.call(e,c_(p.folders)))},children:[a.jsx(i_,{className:"pc-docs-assistant__thread",messages:e.messages,autoScroll:!0,empty:f,messageProps:{showCopy:!0}}),i?a.jsx("div",{className:"pc-docs-assistant__blocked",role:"status",children:e.blockedNotice}):null,e.notice?a.jsx("div",{className:"pc-docs-assistant__notice",role:"status",children:e.notice}):null,a.jsx("div",{className:"pc-docs-assistant__composer",children:a.jsx(l_,{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:l,rows:1,sendLabel:"Send",busyLabel:"Answering…",onPaste:m=>{var g;if(!d)return;const p=u_(m.clipboardData);p.length&&(m.preventDefault(),(g=e.onAddFiles)==null||g.call(e,p))},leading:u.length?a.jsx("div",{className:"pc-chat-attachments pc-docs-assistant__files",role:"list","aria-label":"Attached files",children:u.map(m=>a.jsxs("span",{role:"listitem",className:"pc-chat-attachment-chip",children:[a.jsx(de,{name:"paperclip",size:14}),a.jsx("span",{className:"pc-chat-attachment-name",children:m.name}),e.onRemoveFile&&!l?a.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:a.jsx(de,{name:"x",size:12})}):null]},m.id))}):null,actions:a.jsxs(a.Fragment,{children:[d?a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"pc-docs-assistant__icon-btn","aria-label":"Attach files","data-af-tip":"Attach files to your question",disabled:l,onClick:()=>{var m;return(m=t.current)==null?void 0:m.click()},children:a.jsx(de,{name:"paperclip",size:16})}),a.jsx("input",{ref:t,type:"file",multiple:!0,hidden:!0,"aria-hidden":"true",tabIndex:-1,onChange:m=>{var g;const p=Array.from(m.currentTarget.files||[]);m.currentTarget.value="",p.length&&((g=e.onAddFiles)==null||g.call(e,p))}})]}):null,l&&e.onStop?a.jsx("button",{type:"button",className:"pc-docs-assistant__icon-btn","aria-label":"Stop","data-af-tip":"Stop the answer",onClick:e.onStop,children:a.jsx(de,{name:"stop",size:14})}):null]})})}),a.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 Fc(){return new Date().toISOString()}function UC(e){To();const{source:t}=e,n=y.useRef(e.fetchGateway);n.current=e.fetchGateway;const s=y.useMemo(()=>e.ask||PC({fetchGateway:(F,D)=>n.current(F,D),source:t}),[e.ask,t.app,t.name]),i=y.useRef(If(t.app)),[l,u]=y.useState([]),d=y.useRef(l);d.current=l;const[f,m]=y.useState(""),[p,g]=y.useState([]),[b,v]=y.useState(!1),[C,x]=y.useState(""),N=y.useRef(null),[k,T]=y.useState(!1),[$,j]=y.useState({state:"loading",items:[]});y.useEffect(()=>()=>{var F;return(F=N.current)==null?void 0:F.abort()},[]);const A=y.useCallback(async()=>{j(F=>({...F,state:"loading"}));try{const F=await DC((D,L)=>n.current(D,L),t.app);j({state:"ready",items:F})}catch(F){j({state:"error",items:[],error:String((F==null?void 0:F.message)||F)})}},[t.app]),S=y.useCallback(async F=>{var D;(D=N.current)==null||D.abort(),j(L=>({...L,state:"loading"}));try{const L=await FC((J,B)=>n.current(J,B),F,t.name);i.current=F.sessionId,u(L),x(""),T(!1),j(J=>({...J,state:"ready"}))}catch(L){j(J=>({...J,state:"error",error:String((L==null?void 0:L.message)||L)}))}},[t.name]),M=y.useCallback(async F=>{try{const D=await n.current(we(`sessions/${encodeURIComponent(F.sessionId)}/archive`),{method:"POST"});if(!D.ok)throw await Oo(D,"The conversation could not be archived");i.current===F.sessionId&&(i.current=If(t.app),u([])),j(L=>({...L,items:L.items.filter(J=>J.sessionId!==F.sessionId)}))}catch(D){j(L=>({...L,state:"error",error:String((D==null?void 0:D.message)||D)}))}},[t.app]);y.useEffect(()=>{var F;e.connected||(F=N.current)==null||F.abort()},[e.connected]),y.useEffect(()=>()=>{for(const F of p)F.preview&&URL.revokeObjectURL(F.preview)},[]);const I=y.useCallback(F=>{x(""),g(D=>[...D,...F.map(L=>({id:Dr(),file:L,preview:BC.test(L.type)&&typeof URL<"u"&&typeof URL.createObjectURL=="function"?URL.createObjectURL(L):void 0}))])},[]),z=y.useCallback(async F=>{const D=String(F||"").trim();if(!D||b||!e.connected)return;const L=p;m(""),g([]),x("");const J=L.filter(ue=>ue.preview).map(ue=>({kind:"image",src:ue.preview,label:ue.file.name})),B=L.map(ue=>({id:ue.id,label:ue.file.name,title:ue.file.name,disabled:!0})),Y={id:`u-${Dr()}`,role:"user",content:D,ts:Fc(),...J.length?{media:J}:{},...B.length?{attachments:B}:{}},te=`a-${Dr()}`,W=[...d.current,Y],R={id:te,role:"assistant",title:t.name,content:"",ts:Fc(),live:{callId:te,reasoning:"",label:"answering"}};u([...W,R]),v(!0);const K=new AbortController;N.current=K;const ne=ue=>u([...W,ue]);try{const ue=await s(D,{signal:K.signal,sessionId:i.current,files:L.map(oe=>oe.file),onText:oe=>{K.signal.aborted||ne({...R,content:oe,live:{callId:te,reasoning:"",label:"streaming"}})},onHistory:oe=>x(MC(oe))});K.signal.aborted||ne({id:te,role:"assistant",title:t.name,content:ue,ts:Fc()})}catch(ue){const oe=K.signal.aborted;ne({id:te,role:"assistant",title:t.name,level:oe?"warn":"error",content:oe?"Stopped. Nothing more will be shown for this question.":String((ue==null?void 0:ue.message)||ue||"The docs assistant failed."),ts:Fc()})}finally{N.current===K&&(N.current=null),v(!1)}},[s,b,p,e.connected,t.name]),V=()=>{var F;(F=N.current)==null||F.abort(),i.current=If(t.app),u([]),g([]),m(""),x("")},Z=a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:`pc-docs-assistant__icon-btn${k?" is-active":""}`,"aria-label":"Past conversations","data-af-tip":"Past conversations","aria-pressed":k,disabled:!e.connected||b,onClick:()=>{const F=!k;T(F),F&&A()},children:a.jsx(de,{name:"history",size:16})}),a.jsx("button",{type:"button",className:"pc-docs-assistant__icon-btn","aria-label":"New conversation","data-af-tip":"Start a new conversation",disabled:!l.length&&!f&&!p.length&&!k,onClick:()=>{V(),T(!1)},children:a.jsx(de,{name:"compose",size:16})})]}),ie=a.jsxs(a.Fragment,{children:[k?a.jsx("div",{className:"pc-docs-assistant pc-docs-assistant--history",children:a.jsx(zC,{items:$.items,state:$.state,error:$.error,nowMs:Date.now(),activeSessionId:i.current,onOpen:F=>void S(F),onArchive:F=>void M(F)})}):null,a.jsx("div",{hidden:k,style:{display:k?"none":"contents"},children:a.jsx(WC,{source:t,messages:l,draft:f,onDraftChange:m,onSend:()=>void z(f),onStop:()=>{var F;return(F=N.current)==null?void 0:F.abort()},busy:b,blockedNotice:e.connected?void 0:"Connect to the gateway to use the docs assistant.",files:p.map(F=>({id:F.id,name:F.file.name})),onAddFiles:I,onNotice:x,onRemoveFile:F=>g(D=>{const L=D.find(J=>J.id===F);return L!=null&&L.preview&&URL.revokeObjectURL(L.preview),D.filter(J=>J.id!==F)}),notice:C,suggestions:e.suggestions,onSuggestion:F=>void z(F),placeholder:e.placeholder})})]});return{headerActions:Z,body:ie}}function VC(e){const{headerActions:t,body:n}=UC(e);return a.jsxs("div",{className:"pc-docs-assistant-panel",children:[a.jsx($0,{children:t}),n]})}function HC(e,t,n){const{id:s,label:i,mode:l,side:u,defaultWidth:d,...f}=n;return{id:s||"docs",label:i||"Docs assistant",icon:"book",mode:l||"drawer",side:u||"right",keepAlive:"always",defaultWidth:d??420,content:a.jsx(VC,{source:e,fetchGateway:t,...f})}}const ht=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},Yc=e=>Array.isArray(e)?e.map(ht):[],st=e=>typeof e=="string"?e:"",Ii=e=>st(e.runtime_call_id||e.call_uid),er=e=>st(e.call_id||e.id);function w_(e,t){const n=t.record,s=ht(n.effect);if(s.type!=="tool_calls")return[];const i=ht(n.result),l=Yc(ht(s.payload).tool_calls),u=l.length||n.status!=="waiting"?l:Yc(ht(ht(i.wait).details).tool_calls),d=Yc(i.results),f=u.length?u:d,m=[];return f.forEach((p,g)=>{let b=Ii(p)?d.filter(S=>Ii(S)===Ii(p)):[];!b.length&&er(p)&&u.filter(S=>er(S)===er(p)).length===1&&(b=d.filter(S=>er(S)===er(p)));const v=u.length?b.length===1?b[0]:u.length===d.length?d[g]:{}:p,C=Ii(p)||Ii(v)||`${st(n.idempotency_key)||st(n.step_id)||t.cursor}:${g}`,x=`${t.runId}:${C}`,N=e.get(x),k=st(p.name||v.name)||(N==null?void 0:N.name);if(!k)return;const T=n.status==="completed"||n.status==="failed",$=n.status==="failed"||v.success===!1||!!v.error,j=p.arguments??v.arguments??(N==null?void 0:N.arguments),A={...N,id:x,runId:t.runId,name:k,arguments:j,status:T?$?"failed":"completed":n.status==="waiting"?"waiting":"running",...typeof v.success=="boolean"?{success:v.success}:{},...v.output!==void 0||v.result!==void 0?{output:v.output??v.result}:{},...v.error?{error:String(v.error)}:{},...vy(v)?{sandbox:vy(v)}:{},...er(p)||er(v)?{callId:er(p)||er(v)}:{},startedAt:(N==null?void 0:N.startedAt)||st(n.started_at)||void 0,endedAt:T&&st(n.ended_at)||(N==null?void 0:N.endedAt)};N&&["completed","failed"].includes(N.status)&&!T||(e.set(x,A),m.push(A))}),m}function wo(e){if(e==null||e===""||typeof e=="boolean")return;const t=Number(e);return Number.isFinite(t)&&t>=0?t:void 0}function Ls(e,t){for(const n of t){const s=e==null?void 0:e[n];if(s==null||s===""||typeof s=="boolean")continue;const i=Number(s);if(Number.isFinite(i)&&i>=0)return Math.trunc(i)}}function v_(e){if(typeof e=="string")try{return ht(JSON.parse(e))}catch{return{}}return ht(e)}function co(e,t){if(t===void 0||t==="")return e;const n=e||[];return n.includes(t)||n.push(t),n}function GC(e){return Ls(e,["reasoning_tokens","thinking_tokens"])??Ls(ht(e.completion_tokens_details),["reasoning_tokens"])??Ls(ht(e.output_tokens_details),["reasoning_tokens"])}function KC(e){const t=ht(typeof e=="string"&&e.trim().startsWith("{")?v_(e):e);return st(t.error_class)}function JC(e){const t=new Map;for(const n of e){const s=n.record;if(ht(s.effect).type!=="emit_event")continue;const i=ht(s.result);if(st(i.name)!=="abstract.progress")continue;const l=ht(i.payload);if(st(l.kind)!=="llm"||!st(l.step_id))continue;const u=`${st(l.run_id)||n.runId}:${st(l.step_id)}`,d=t.get(u)||{},f=wo(l.ttft_s);f!==void 0&&(d.ttftS=f),d.provider=d.provider||st(l.provider)||void 0,d.model=d.model||st(l.model)||void 0,t.set(u,d)}return t}function Xi(e){var x,N,k,T;const t=new Map,n=new Set,s=new Set,i={llmCalls:0,toolCalls:0,changedFiles:[]};let l=1/0,u=-1/0,d=!1,f=0,m=0,p=0;const g=JC(e),b=[],v=new Set;for(const $ of e){const j=$.record,A=`${$.runId}:${j.step_id||$.cursor}:${j.status}`;if(n.has(A))continue;n.add(A);for(const q of[j.started_at,j.ended_at]){const be=Date.parse(st(q));Number.isFinite(be)&&(l=Math.min(l,be),u=Math.max(u,be))}for(const q of w_(t,$))q.status==="waiting"&&v.add(q.id);if(ht(j.effect).type!=="llm_call"||j.status!=="completed")continue;i.llmCalls+=1;const S=ht(j.result),M=ht(S.output),I=ht(S.usage||S.token_usage||S.tokens||M.usage||M.token_usage||M.tokens),z=Ls(I,["input_tokens","prompt_tokens","prompt","input","in"]),V=Ls(I,["output_tokens","completion_tokens","completion","output","out"]),Z=Ls(I,["total_tokens","total"])??(z!==void 0||V!==void 0?(z||0)+(V||0):void 0);Z!==void 0&&(z===void 0||V===void 0||z+V!==Z)&&(d=!0),z!==void 0&&(i.inputTokens=(i.inputTokens||0)+z),V!==void 0&&(i.outputTokens=(i.outputTokens||0)+V),Z!==void 0&&(i.totalTokens=(i.totalTokens||0)+Z);const ie=wo(S.gen_time??M.gen_time);ie!==void 0&&(i.genTimeMs=(i.genTimeMs||0)+ie,i.timedCalls=(i.timedCalls||0)+1);const F=ht(S.metadata||M.metadata),D=ht(F.performance),L=wo(D.prompt_tokens_per_second),J=wo(D.generation_tokens_per_second),B=ht(F.prompt_cache),Y=wo(B.cached_tokens),te=wo(B.fed_tokens);if(L!==void 0||J!==void 0){if(i.measuredSpeedCalls=(i.measuredSpeedCalls||0)+1,L!==void 0&&L>0&&(i.promptTokensPerSecond=(i.promptTokensPerSecond||0)+L,z!==void 0)){const q=z/L*1e3;i.prefillMs=(i.prefillMs||0)+q,te!==void 0&&(f+=te,m+=q)}J!==void 0&&J>0&&(i.generationTokensPerSecond=(i.generationTokensPerSecond||0)+J,V!==void 0&&(i.decodeMs=(i.decodeMs||0)+V/J*1e3))}if(Y!==void 0||te!==void 0){i.measuredCacheCalls=(i.measuredCacheCalls||0)+1,i.cachedTokens=(i.cachedTokens||0)+(Y||0),i.fedTokens=(i.fedTokens||0)+(te||0);const q=st(B.outcome);if(q){const be=i.cacheOutcomes||[];be.includes(q)||be.push(q),i.cacheOutcomes=be}}const W=st(j.step_id)||void 0,R=W&&g.get(`${$.runId}:${W}`)||{},K=ht(S.route),ne={runId:$.runId};W&&(ne.stepId=W),st(j.started_at)&&(ne.startedAt=st(j.started_at));const ue=st(S.model||M.model)||st(K.model)||R.model,oe=st(K.provider)||st(ht(F._provider_request).provider)||R.provider||st(S.provider);ue&&(ne.model=ue),oe&&(ne.provider=oe),ue&&(i.models=co(i.models,ue)),oe&&(i.providers=co(i.providers,oe)),(Z===void 0||z!==void 0&&V!==void 0&&z+V===Z)&&(z!==void 0&&(ne.inputTokens=z),V!==void 0&&(ne.outputTokens=V)),Z!==void 0&&(ne.totalTokens=Z);const ve=GC(I);ve!==void 0&&(ne.reasoningTokens=ve,i.reasoningTokens=(i.reasoningTokens||0)+ve),Y!==void 0&&(ne.cachedTokens=Y),te!==void 0&&(ne.fedTokens=te),st(B.outcome)&&(ne.cacheOutcome=st(B.outcome)),st(B.backend)&&(ne.cacheBackend=st(B.backend),i.cacheBackends=co(i.cacheBackends,ne.cacheBackend)),ie!==void 0&&(ne.genTimeMs=ie),L!==void 0&&L>0&&(ne.promptTokensPerSecond=L),J!==void 0&&J>0&&(ne.generationTokensPerSecond=J),R.ttftS!==void 0?(ne.ttftMs=R.ttftS*1e3,ne.promptMs=ne.ttftMs,ne.promptSource="ttft",i.ttftMs=(i.ttftMs||0)+ne.ttftMs,i.ttftCalls=(i.ttftCalls||0)+1):ne.promptTokensPerSecond!==void 0&&z!==void 0&&(ne.promptMs=z/ne.promptTokensPerSecond*1e3,ne.promptSource="rate"),ne.promptMs!==void 0&&(i.promptPhaseMs=(i.promptPhaseMs||0)+ne.promptMs,i.promptPhaseCalls=(i.promptPhaseCalls||0)+1,te!==void 0&&ne.promptMs>0&&(ne.promptNewTokensPerSecond=te/(ne.promptMs/1e3),i.promptPhaseNewTokens=(i.promptPhaseNewTokens||0)+te,p+=ne.promptMs)),ne.ttftMs!==void 0&&ie!==void 0&&ie>=ne.ttftMs?ne.generationMs=ie-ne.ttftMs:ne.generationTokensPerSecond!==void 0&&V!==void 0&&(ne.generationMs=V/ne.generationTokensPerSecond*1e3),ne.generationMs!==void 0&&V!==void 0&&(i.generationPhaseMs=(i.generationPhaseMs||0)+ne.generationMs,i.generationPhaseTokens=(i.generationPhaseTokens||0)+V);const Ne=ht(F.speculation);if(Object.keys(Ne).length){const q={};st(Ne.mode)&&(q.mode=st(Ne.mode)),typeof Ne.used=="boolean"&&(q.used=Ne.used),st(Ne.draft_kind)&&(q.draftKind=st(Ne.draft_kind));const be=Ls(Ne,["accepted_tokens"]),xe=Ls(Ne,["drafted_tokens"]),Pe=Ls(Ne,["rounds"]),Qe=Ls(Ne,["num_draft_tokens"]);be!==void 0&&(q.acceptedTokens=be),xe!==void 0&&(q.draftedTokens=xe),be!==void 0&&xe&&(q.acceptanceRate=be/xe),Pe!==void 0&&(q.rounds=Pe),Qe!==void 0&&(q.draftLength=Qe),ne.speculation=q;const He=i.speculation||(i.speculation={calls:0,used:0});He.calls+=1,q.used&&(He.used+=1),q.mode&&(He.modes=co(He.modes,q.mode)),q.draftKind&&(He.draftKinds=co(He.draftKinds,q.draftKind)),be!==void 0&&xe!==void 0&&(He.acceptedTokens=(He.acceptedTokens||0)+be,He.draftedTokens=(He.draftedTokens||0)+xe),Pe!==void 0&&(He.rounds=(He.rounds||0)+Pe),Qe!==void 0&&(He.draftLengths=co(He.draftLengths,Qe))}b.push(ne)}b.length&&(b.every($=>$.startedAt)&&b.sort(($,j)=>Date.parse($.startedAt)-Date.parse(j.startedAt)),i.modelCalls=b),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 C=new Map;for(const $ of t.values()){if($.status==="waiting"){i.toolsWaiting=(i.toolsWaiting||0)+1;continue}if($.status==="running"){i.toolsRunning=(i.toolsRunning||0)+1;continue}if(!["completed","failed"].includes($.status))continue;i.toolCalls+=1;const j=$.status==="failed";j&&(i.toolsFailed=(i.toolsFailed||0)+1);const A=i.toolBreakdown||(i.toolBreakdown={}),S=A[$.name]||(A[$.name]={calls:0,failed:0});if(S.calls+=1,j){S.failed+=1;const Z=KC($.output);Z&&((S.errors||(S.errors={}))[Z]=(((N=S.errors)==null?void 0:N[Z])||0)+1)}const M=Date.parse(st($.startedAt)),I=Date.parse(st($.endedAt));if(Number.isFinite(M)&&Number.isFinite(I)&&I>=M){const Z=`${$.runId}|${$.startedAt}|${$.endedAt}`,ie=C.get(Z)||{ms:I-M,calls:0,names:new Map,waited:!1};ie.calls+=1,ie.names.set($.name,(ie.names.get($.name)||0)+1),v.has($.id)&&(ie.waited=!0),C.set(Z,ie)}if($.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($.name))continue;const z=v_($.arguments),V=st(z.destination||z.destination_path||z.file_path||z.path||z.filename);V&&s.add(V)}for(const $ of C.values()){i.toolBatches=(i.toolBatches||0)+1,i.toolTimeMs=(i.toolTimeMs||0)+$.ms,$.waited&&(i.toolTimeIncludesApproval=!0);const j=[...$.names.keys()].sort();(!i.slowestToolBatch||$.ms>i.slowestToolBatch.ms)&&(i.slowestToolBatch={ms:$.ms,calls:$.calls,tools:j});const A=(k=i.toolBreakdown)==null?void 0:k[j[0]];if(j.length===1&&A)A.ms=(A.ms||0)+$.ms;else for(const S of j){const M=(T=i.toolBreakdown)==null?void 0:T[S];M&&(M.sharedBatches=(M.sharedBatches||0)+1)}}return i.changedFiles=[...s],d&&(delete i.inputTokens,delete i.outputTokens),Number.isFinite(l)&&Number.isFinite(u)&&(i.durationMs=Math.max(0,u-l)),{tools:[...t.values()],statistics:i}}function qC(e){const t=ht(ht(e).ledgers);return Object.entries(t).flatMap(([n,s])=>Yc(ht(s).items).map((i,l)=>({runId:n,cursor:Number(i.cursor)||l+1,record:Object.keys(ht(i.record)).length?ht(i.record):i})))}const Mf=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{};function YC(e){var x,N,k,T;const{tools:t,statistics:n}=Xi(e.records),s={toolCalls:n.toolCalls,totalTokens:n.totalTokens,startedAt:String(((x=e.run)==null?void 0:x.created_at)||"")||void 0},i=($,j,A)=>({...s,label:$,detail:j,tone:A});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")&&(!((N=e.records)!=null&&N.length)||!!e.error))return i(e.connection==="reconnecting"?"Reconnecting":"Disconnected",String(e.error||"Live activity is unavailable"),"waiting");if(e.status==="paused"||((k=e.run)==null?void 0:k.paused)===!0)return i("Paused","Resume when you’re ready","waiting");const l=Mf((T=e.interaction)==null?void 0:T.wait),u=Mf(l.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(l.reason))return i("Your answer is needed",String(l.prompt||"The workflow has a question for you"),"waiting");if(!d&&(l.reason==="event"||String(l.wait_key||"").startsWith("evt:")))return i("Waiting for an event",String(l.prompt||"Listening for the workflow’s trigger"),"waiting");const m=t.filter($=>{var j;return $.status==="running"||f&&$.status==="waiting"&&$.runId===((j=e.interaction)==null?void 0:j.runId)});if(m.length)return i(m.length===1?"Running a tool":`Running ${m.length} tools`,[...new Set(m.map($=>$.name))].join(" · "),"working");const p=new Map;for(const $ of e.records){const j=`${$.runId}:${$.record.step_id||$.record.idempotency_key||$.cursor}`,A=p.get(j);A&&["completed","failed"].includes(String(A.record.status))||p.set(j,$)}if([...p.values()].reverse().find($=>Mf($.record.effect).type==="llm_call"&&["started","running"].includes(String($.record.status))))return i("Thinking","Generating the next response","working");const b=e.displayStatus.trim(),v=!/^(completed|complete|done|finished|ready|success|succeeded|failed|running|working|waiting|thinking|idle|paused|stopped|cancelled)$/i.test(b)&&!b.startsWith("{")?b:"",C=t[t.length-1];return i(e.status==="idle"?"Ready":"Working",v||(C?`Last tool: ${C.name} · ${C.status==="failed"?"failed":C.status==="completed"?"done":"waiting"}`:"Following the workflow"),e.status==="idle"?"neutral":"working")}const QC=3;function ky(e){return`${Math.round(e).toLocaleString("en-US")} bytes`}function sm(e,t){if(!t||!(t>0)||e.size<=t)return null;let n=fu(e.size),s=fu(t);return n===s&&(n=ky(e.size),s=ky(t)),`${e.name||"This file"} is ${n}; the gateway accepts files up to ${s}.`}function XC(e){return`Upload failed: ${String(e||"").replace(/^[a-z_]*upload failed:?\s*/i,"").trim()||"the gateway did not say why"}`}async function ZC(e,t,n){let s=0;const i=Array.from({length:Math.max(1,Math.min(Math.floor(t)||1,e.length))},async()=>{for(;s<e.length;){const l=e[s];s+=1,await n(l)}});await Promise.all(i)}const hu=e=>`${e} ${e===1?"file":"files"}`;function jy(e,t){const n=[];return e&&n.push(`${hu(e)} attached`),t&&n.push(`${hu(t)} could not be attached`),n.join(", ")}function __(e){const t=e.filter(i=>i.state==="queued"||i.state==="uploading").length;if(t)return`Wait for ${hu(t)} to finish uploading.`;const n=e.filter(i=>i.state==="failed"||i.state==="refused");if(!n.length)return null;const s=n.some(i=>i.state==="failed");return n.length===1?`"${n[0].name}" was not attached. ${s?"Retry or remove":"Remove"} it before sending.`:`${hu(n.length)} were not attached. ${s?"Retry or remove":"Remove"} them before sending.`}function eE(e){const[t,n]=y.useState([]),[s,i]=y.useState(""),l=y.useRef(e);l.current=e;const u=y.useRef(new Set),d=y.useRef(0),f=y.useRef(!0);y.useEffect(()=>(f.current=!0,()=>{f.current=!1,d.current+=1}),[]);const m=(k,T)=>n($=>$.map(j=>j.id===k?{...j,...T}:j)),p=async k=>{const T=d.current,$=S=>!f.current||d.current!==T||u.current.has(S);let j=0,A=0;await ZC(k,l.current.concurrency??QC,async S=>{if(!($(S.id)||!S.file)){m(S.id,{state:"uploading",error:void 0});try{const M=await l.current.upload(S.file);if($(S.id))return;m(S.id,{state:"attached",ref:M,error:void 0}),j+=1}catch(M){if($(S.id))return;m(S.id,{state:"failed",error:XC(M instanceof Error?M.message:String(M??""))}),A+=1}}}),f.current&&d.current===T&&(j||A)&&i(jy(j,A))},g=k=>{if(!k.length)return[];const{maxBytes:T,thumbnail:$}=l.current,j=k.map(S=>{const M=sm(S,T),I=$==null?void 0:$(S);return{id:Dr(),file:S,name:S.name||"Untitled file",size:S.size,state:M?"refused":"queued",...M?{error:M}:{},...I?{thumbnailUrl:I}:{}}});n(S=>[...S,...j]);const A=j.filter(S=>S.state==="refused").length;return A&&i(jy(0,A)),p(j.filter(S=>S.state==="queued")),j.map(S=>S.id)},b=k=>{const T=t.find(j=>j.id===k);if(!T||T.state!=="failed")return;const $={...T,state:"queued",error:void 0};n(j=>j.map(A=>A.id===k?$:A)),p([$])},v=k=>{u.current.add(k),n(T=>T.filter($=>$.id!==k))},C=()=>{d.current+=1,n([])},x=y.useMemo(()=>t.map(({id:k,name:T,size:$,state:j,thumbnailUrl:A,error:S})=>({id:k,name:T,size:$,state:j,...A?{thumbnailUrl:A}:{},...S?{error:S}:{}})),[t]),N=y.useMemo(()=>t.filter(k=>k.state==="attached").map(k=>k.ref),[t]);return{items:x,attached:N,add:g,remove:v,retry:b,clear:C,sendBlock:__(x),announcement:s}}const tE=new Set(["blob:","data:","http:","https:"]);function nE(e){const t=String(e||"").trim();if(t)try{const n=typeof window<"u"&&window.location?window.location.href:"http://same-origin.invalid/";return tE.has(new URL(t,n).protocol)?t:void 0}catch{return}}function sE(e){const t=typeof e.size=="number"?fu(e.size):"";if(e.state==="queued")return{meta:`Waiting${t?` · ${t}`:""}`,state:"waiting to upload"};if(e.state==="uploading")return{meta:`Uploading${t?` · ${t}`:""}`,state:"uploading"};if(e.state==="attached")return{meta:t,state:"attached"};const n=String(e.error||"").trim()||(e.state==="refused"?"Refused":"Upload failed");return{meta:n,state:`not attached: ${n}`}}function rE(e){const t=Array.isArray(e.items)?e.items:[];return t.length?a.jsx("div",{className:"pc-attachment-chips",role:"list","aria-label":"Attached files",children:t.map(n=>{const s=n.state==="queued"||n.state==="uploading",{meta:i,state:l}=sE(n),u=nE(n.thumbnailUrl);return a.jsxs("div",{role:"listitem",tabIndex:0,className:`pc-attachment-chip is-${n.state}`,"data-state":n.state,"aria-label":`${n.name}, ${l}`,"aria-busy":s||void 0,children:[a.jsx("span",{className:"pc-attachment-chip__icon","aria-hidden":"true",children:u?a.jsx("img",{className:"pc-attachment-chip__thumb",src:u,alt:"",loading:"lazy"}):s?a.jsx("span",{className:"pc-attachment-chip__spinner"}):n.state==="attached"?a.jsx(de,{name:"paperclip",size:13}):a.jsx(de,{name:"warning",size:13})}),a.jsxs("span",{className:"pc-attachment-chip__body",children:[a.jsx("span",{className:"pc-attachment-chip__name",title:n.name,children:n.name}),i?a.jsx("span",{className:"pc-attachment-chip__meta",children:i}):null]}),n.state==="failed"&&e.onRetry?a.jsxs("button",{type:"button",className:"pc-attachment-chip__action pc-attachment-chip__retry","data-action":"retry","aria-label":`Retry ${n.name}`,title:"Retry upload",disabled:e.disabled,onClick:()=>{var d;return(d=e.onRetry)==null?void 0:d.call(e,n.id)},children:[a.jsx(de,{name:"refresh",size:12}),a.jsx("span",{children:"Retry"})]}):null,e.onRemove?a.jsx("button",{type:"button",className:"pc-attachment-chip__action","data-action":"remove","aria-label":`Remove ${n.name}`,title:`Remove ${n.name}`,disabled:e.disabled,onClick:()=>{var d;return(d=e.onRemove)==null?void 0:d.call(e,n.id)},children:a.jsx(de,{name:"x",size:12})}):null]},n.id)})}):null}function aE(e,t){var n,s;if(e.kind==="ask-user"){if(t.kind==="choice"||t.kind==="free-text")return e.onSubmit(t.answer);if(t.kind==="skip"&&e.onSkip)return e.onSkip();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();if(t.kind==="approve-session"&&e.onApproveForSession)return e.onApproveForSession();if(t.kind==="deny-chat"){const i=(n=e.denyOptions)==null?void 0:n.find(l=>l.key===t.key);if(i)return i.onDeny()}if(t.kind==="approve-kind"){const i=(s=e.approveKinds)==null?void 0:s.find(l=>l.kind===t.toolset);if(i)return i.onApprove()}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")}const Gi={deny:"Deny",allowOnce:"Allow once",allowForChat:"Allow for this chat",allowAll:"Allow all enabled tools",allowKindForChat:e=>`Allow all ${e} tools for this chat`,allowForRun:"Allow for this run",localChatPolicyNote:"Allowed for this chat in this browser only — the gateway cannot store chat policies.",localRunPolicyNote:"Allowed until this run ends, in this browser only — the gateway cannot store chat policies.",denyToolForChat:e=>`Always deny ${e} in this chat`,denyKindForChat:e=>`Always deny ${e} tools in this chat`,denyForChatNote:"Always deny applies to every run of this chat, automations and runs that read other people's text included, until the policy is reset; a request shown before it is refused even if approved later.",noScopeNote:"The gateway did not say where this grant applies.",unavailablePolicyNote:e=>`Allow for this chat is unavailable: ${e||"the gateway's capabilities could not be read."} Allow once still works.`,decideLater:"Decide later",submit:"Submit",skip:"Continue without answering",keepWaiting:"Keep waiting",sendEvent:"Send event"};function Sy(e){return(e instanceof Error?e.message:String(e||"Unknown error")).trim()||"Unknown error"}function oE(e){return a.jsxs("div",{className:"pc-workflow-interaction__error",role:"alert",children:[a.jsxs("span",{children:["Could not complete that action: ",e.message]}),a.jsx("button",{type:"button",className:"pc-workflow-interaction__retry",onClick:e.onRetry,disabled:e.disabled,children:"Try again"})]})}const xs=Gi;function iE(e){var ie,F,D;const t=e.interaction,n=e.variant==="card",[s,i]=y.useState(""),[l,u]=y.useState(()=>t.kind==="event-wait"&&t.initialPayload||""),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,b]=y.useState(""),[v,C]=y.useState(null),x=`${t.kind}:${t.id}`,N=y.useRef(x),k=y.useRef(!1),T=y.useRef(!1),$=y.useRef(!0),j=y.useRef(0);N.current!==x&&(N.current=x,k.current=!1,T.current=!1,j.current+=1);const A=!!e.disabled||d!==null||m||k.current||T.current,S=async(L,J)=>{var te;if(e.disabled||k.current||T.current)return;const B=x,Y=++j.current;k.current=!0,C(null),b(""),f(L);try{const W=await J();if(!$.current||N.current!==B||j.current!==Y)return;T.current=!0,p(!0);const R=W&&typeof W=="object"&&typeof W.outcomeNote=="string"?String(W.outcomeNote):"";b(`Response sent. Waiting for the workflow to continue.${R?` ${R}`:""}`)}catch(W){if(!$.current||N.current!==B||j.current!==Y)return;C({submission:L,message:Sy(W)}),b("The action failed. You can try again."),(te=e.onError)==null||te.call(e,W)}finally{if(!$.current||N.current!==B||j.current!==Y)return;k.current=!1,f(null)}},M=async L=>{var B;if(e.disabled||k.current||T.current)return;const J=x;try{if(await L(),!$.current||N.current!==J)return;C(null),b(t.kind==="tool-approval"?"Left for later. Nothing was sent; the run keeps waiting for this decision.":"Left for later. Nothing was sent; the run keeps waiting for your answer.")}catch(Y){if(!$.current||N.current!==J)return;b(`Could not leave this for later: ${Sy(Y)}`),(B=e.onError)==null||B.call(e,Y)}};y.useEffect(()=>{i(""),u(t.kind==="event-wait"&&t.initialPayload||""),C(null),f(null),p(!1),b("")},[x]),y.useEffect(()=>($.current=!0,()=>{$.current=!1,j.current+=1,k.current=!1}),[]);const I=()=>{v&&S(v.submission,()=>aE(t,v.submission))},z=t.title||(t.kind==="tool-approval"?"Tool approval required":"Input required"),V=(L,J)=>L?a.jsx("button",{type:"button",className:"pc-workflow-interaction__defer","data-decision":"defer",disabled:A,onClick:()=>void M(L),children:J}):null;let Z;if(t.kind==="ask-user")Z=a.jsxs("div",{className:"pc-workflow-interaction__body",children:[a.jsx("div",{className:"pc-workflow-interaction__prompt",children:t.prompt}),(ie=t.choices)!=null&&ie.length?a.jsx("div",{className:"pc-workflow-interaction__choices","aria-label":"Choices",children:t.choices.map(L=>a.jsxs("button",{type:"button",className:"pc-workflow-interaction__choice","data-decision":"choice",disabled:A||L.disabled,onClick:()=>void S({kind:"choice",answer:L.id},()=>t.onSubmit(L.id)),children:[a.jsx("span",{children:L.label}),L.description?a.jsx("small",{children:L.description}):null]},L.id))}):null,t.allowFreeText!==!1?a.jsxs("div",{className:"pc-workflow-interaction__entry",children:[a.jsx("textarea",{"aria-label":"Response",value:s,onChange:L=>i(L.target.value),placeholder:t.freeTextPlaceholder||"Type a response",rows:n?1:2,disabled:A,onKeyDown:L=>{L.key!=="Enter"||L.shiftKey||L.nativeEvent.isComposing||L.keyCode===229||(L.preventDefault(),s.trim()&&S({kind:"free-text",answer:s},()=>t.onSubmit(s)))}},`${x}:text`),a.jsx("button",{type:"button",className:"pc-btn","data-decision":"submit",disabled:A||!s.trim(),onClick:()=>void S({kind:"free-text",answer:s},()=>t.onSubmit(s)),children:(d==null?void 0:d.kind)==="free-text"?"Sending…":t.submitLabel||xs.submit})]}):null,t.onSkip||t.onDefer?a.jsxs("div",{className:"pc-workflow-interaction__buttons pc-workflow-interaction__buttons--secondary",children:[V(t.onDefer,t.deferLabel||xs.keepWaiting),t.onSkip?a.jsx("button",{type:"button",className:"pc-workflow-interaction__skip","data-decision":"skip",disabled:A,onClick:()=>void S({kind:"skip"},t.onSkip),children:(d==null?void 0:d.kind)==="skip"?"Continuing…":t.skipLabel||xs.skip}):null]}):null]});else if(t.kind==="tool-approval"){const L=String(t.disabledReason||"").trim(),J=A||!!L;Z=a.jsxs("div",{className:"pc-workflow-interaction__body",children:[a.jsxs("div",{className:"pc-workflow-interaction__prompt",children:["Allow ",a.jsx("strong",{children:t.toolName})," to run?"]}),t.detail?n?a.jsxs("details",{className:"pc-workflow-interaction__review",children:[a.jsx("summary",{children:"Review"}),a.jsx("div",{className:"pc-workflow-interaction__detail",children:t.detail})]}):a.jsx("div",{className:"pc-workflow-interaction__detail",children:t.detail}):null,a.jsxs("div",{className:"pc-workflow-interaction__buttons",children:[V(t.onDefer,t.deferLabel||xs.decideLater),a.jsx("button",{type:"button",className:"pc-workflow-interaction__deny","data-decision":"deny",disabled:A,onClick:()=>void S({kind:"deny"},t.onDeny),children:(d==null?void 0:d.kind)==="deny"?"Denying…":t.denyLabel||xs.deny}),a.jsx("button",{type:"button",className:"pc-btn","data-decision":"approve",disabled:A,onClick:()=>void S({kind:"approve"},t.onApprove),children:(d==null?void 0:d.kind)==="approve"?"Allowing…":t.approveLabel||xs.allowOnce}),t.onApproveForSession?a.jsx("button",{type:"button",className:"pc-workflow-interaction__allow-session","data-decision":"approve-session",disabled:J,title:L||void 0,onClick:()=>void S({kind:"approve-session"},t.onApproveForSession),children:(d==null?void 0:d.kind)==="approve-session"?"Allowing…":t.approveForSessionLabel||xs.allowForChat}):null,(t.approveKinds||[]).map(B=>a.jsx("button",{type:"button",className:"pc-workflow-interaction__allow-session pc-workflow-interaction__allow-kind","data-decision":"approve-kind","data-kind":B.kind,disabled:J,title:L||void 0,onClick:()=>void S({kind:"approve-kind",toolset:B.kind},B.onApprove),children:(d==null?void 0:d.kind)==="approve-kind"&&d.toolset===B.kind?"Allowing…":B.label||xs.allowKindForChat(B.kind)},B.kind)),t.onApproveAll?a.jsx("button",{type:"button",className:"pc-workflow-interaction__allow-all","data-decision":"approve-all",disabled:J,title:L||void 0,onClick:()=>void S({kind:"approve-all"},t.onApproveAll),children:(d==null?void 0:d.kind)==="approve-all"?"Allowing…":t.approveAllLabel||xs.allowAll}):null]}),t.remember?a.jsxs("label",{className:"pc-workflow-interaction__remember",children:[a.jsx("input",{type:"checkbox",checked:t.remember.checked,disabled:A,onChange:B=>t.remember.onChange(B.target.checked)}),a.jsx("span",{children:t.remember.label})]}):null,t.deniedNote?a.jsx("p",{className:"pc-workflow-interaction__unavailable",role:"note","data-denied-note":"",children:t.deniedNote}):null,(F=t.denyOptions)!=null&&F.length?a.jsxs("details",{className:"pc-workflow-interaction__more","data-more":"",children:[a.jsx("summary",{children:"More"}),a.jsx("p",{className:"pc-workflow-interaction__scope",children:xs.denyForChatNote}),a.jsx("div",{className:"pc-workflow-interaction__buttons",children:t.denyOptions.map(B=>a.jsx("button",{type:"button",className:"pc-workflow-interaction__deny","data-decision":"deny-chat","data-key":B.key,disabled:A,onClick:()=>void S({kind:"deny-chat",key:B.key},B.onDeny),children:(d==null?void 0:d.kind)==="deny-chat"&&d.key===B.key?"Denying…":B.label},B.key))})]}):null,t.policySummary?a.jsx("p",{className:"pc-workflow-interaction__scope","data-policy-summary":"",children:t.policySummary}):null,t.scopeNote?a.jsx("p",{className:"pc-workflow-interaction__scope-note",role:"note","data-scope-note":"",children:t.scopeNote}):null,t.notCovered?a.jsx("p",{className:"pc-workflow-interaction__unavailable",role:"note","data-not-covered":"",children:t.notCovered}):null,L&&(t.onApproveAll||t.onApproveForSession||(D=t.approveKinds)!=null&&D.length)?a.jsx("p",{className:"pc-workflow-interaction__unavailable",role:"note",children:L}):null,!L&&t.onApproveForSession&&t.approveForSessionDescription?a.jsx("p",{className:"pc-workflow-interaction__scope",children:t.approveForSessionDescription}):null,!L&&t.onApproveAll&&t.approveAllDescription?a.jsx("p",{className:"pc-workflow-interaction__scope",children:t.approveAllDescription}):null]})}else Z=a.jsxs("div",{className:"pc-workflow-interaction__body",children:[a.jsx("div",{className:"pc-workflow-interaction__prompt",children:t.prompt}),a.jsxs("label",{className:"pc-workflow-interaction__entry",children:[a.jsx("span",{children:t.payloadLabel||(t.eventName?`Payload for ${t.eventName}`:"Event payload")}),a.jsx("textarea",{value:l,onChange:L=>u(L.target.value),placeholder:t.payloadPlaceholder||"Enter payload",rows:n?1:2,"aria-label":t.payloadLabel||(t.eventName?`Payload for ${t.eventName}`:"Event payload"),disabled:A},`${x}:payload`)]}),a.jsx("div",{className:"pc-workflow-interaction__buttons",children:a.jsx("button",{type:"button",className:"pc-btn","data-decision":"send-event",disabled:A,onClick:()=>void S({kind:"event",payload:l},()=>t.onSend(l)),children:(d==null?void 0:d.kind)==="event"?"Sending…":t.sendLabel||xs.sendEvent})})]});return a.jsxs("section",{className:["pc-workflow-interaction",n?"pc-workflow-interaction--card":""].filter(Boolean).join(" "),"data-variant":n?"card":"panel","aria-labelledby":`pc-workflow-interaction-${x}`,children:[a.jsxs("div",{className:"pc-workflow-interaction__heading",children:[a.jsx(de,{name:t.kind==="tool-approval"?"warning":t.kind==="event-wait"?"history":"info",size:n?14:16}),a.jsxs("div",{children:[a.jsx("h3",{tabIndex:-1,id:`pc-workflow-interaction-${x}`,children:z}),t.description?a.jsx("div",{className:"pc-workflow-interaction__description",children:t.description}):null]})]}),Z,v?a.jsx(oE,{message:v.message,onRetry:I,disabled:A}):null,a.jsx("div",{className:"pc-workflow-interaction__outcome","aria-live":"polite",children:g})]})}function uo(e){return(e instanceof Error?e.message:String(e||"Unknown error")).trim()||"Unknown error"}function lE(e){var le;To();const[t,n]=y.useState(!1),[s,i]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(null),[m,p]=y.useState(()=>{var he,Q;return((Q=(he=e.steer)==null?void 0:he.modes)==null?void 0:Q[0])||"guide"}),[g,b]=y.useState(null),[v,C]=y.useState("idle"),x=y.useRef(null),N=y.useRef(!0),k=y.useRef(!1),T=y.useRef(!1),$=y.useRef(!1),j=y.useRef(0),A=y.useRef(0),S=y.useRef(0);y.useEffect(()=>(N.current=!0,()=>{var he;N.current=!1,j.current+=1,A.current+=1,S.current+=1,k.current=!1,T.current=!1,$.current=!1,(he=x.current)==null||he.abort(),x.current=null}),[]);const M=!!e.blockedNotice,I=!!e.disabled||M,z=!!e.busy||t,V=t||!!e.busy&&!e.sendWhileBusy,Z=e.stopState||null,ie=(Z==null?void 0:Z.phase)==="stopping",F=e.steer&&typeof e.steer.onSteer=="function"?e.steer:null,D=F?(le=F.modes)!=null&&le.length?F.modes:["guide"]:[],L=D.includes(m)?m:D[0]||"guide",J=!!F&&!!e.busy,B=Array.isArray(e.attachmentItems)?e.attachmentItems:[];y.useEffect(()=>{b(null)},[!!e.busy]);const Y=typeof e.onFiles=="function",te=y.useRef(null),[W,R]=y.useState(null),[K,ne]=y.useState(""),ue=y.useRef(e.onFiles);ue.current=e.onFiles;const oe=y.useRef(I);oe.current=I;const ve=async(he,Q)=>{const _e=ue.current;if(_e){if(oe.current){f({action:"attach",message:"attachments are unavailable right now."});return}if(Q.length)f({action:"attach",message:c_(Q)});else if(he.length)f(null);else{f({action:"attach",message:"the drop contained no files."});return}if(he.length){ne(`Attaching ${he.length} ${he.length===1?"file":"files"}…`);try{await _e(he)}catch(ae){N.current&&f({action:"attach",message:uo(ae)})}}}},Ne=y.useRef(ve);Ne.current=ve,y.useEffect(()=>{if(!Y||typeof window>"u")return;const he=new lC;let Q=0;const _e=De=>!!(te.current&&De instanceof Node&&te.current.contains(De)),ae=()=>{he.reset(),Q&&window.clearInterval(Q),Q=0,R(null)},je=()=>{Q||(Q=window.setInterval(()=>{he.active(Date.now())||ae()},250))},Le=De=>{var kt;if(!Vi((kt=De.dataTransfer)==null?void 0:kt.types))return;he.enter(Date.now());const mt=_e(De.target),xt=by(De.dataTransfer);R(Lt=>Lt&&Lt.over===mt&&Lt.count===(xt??Lt.count)?Lt:{count:xt??(Lt==null?void 0:Lt.count)??null,over:mt}),je()},Fe=De=>{var xt;if(!Vi((xt=De.dataTransfer)==null?void 0:xt.types))return;De.preventDefault(),he.over(Date.now());const mt=_e(De.target);De.dataTransfer&&(De.dataTransfer.dropEffect=mt&&!oe.current?"copy":"none"),R(kt=>kt&&kt.over===mt?kt:{count:(kt==null?void 0:kt.count)??by(De.dataTransfer),over:mt}),je()},Xe=De=>{var mt;Vi((mt=De.dataTransfer)==null?void 0:mt.types)&&(he.leave(Date.now())||ae())},Ie=De=>{var ks;if(!Vi((ks=De.dataTransfer)==null?void 0:ks.types))return;const mt=_e(De.target),xt=De.defaultPrevented&&!mt;if(De.preventDefault(),ae(),xt)return;if(!mt){f({action:"attach",message:"drop files on the conversation to attach them."});return}const{files:kt,folders:Lt}=em(De.dataTransfer);Ne.current(kt,Lt)},Ge=De=>{De.key==="Escape"&&he.depth>0&&ae()};return window.addEventListener("dragenter",Le),window.addEventListener("dragover",Fe),window.addEventListener("dragleave",Xe),window.addEventListener("drop",Ie),window.addEventListener("dragend",ae),window.addEventListener("blur",ae),window.addEventListener("keydown",Ge),()=>{window.removeEventListener("dragenter",Le),window.removeEventListener("dragover",Fe),window.removeEventListener("dragleave",Xe),window.removeEventListener("drop",Ie),window.removeEventListener("dragend",ae),window.removeEventListener("blur",ae),window.removeEventListener("keydown",Ge),Q&&window.clearInterval(Q)}},[Y]);const q=he=>{if(!Y||I)return;const Q=u_(he.clipboardData);Q.length&&(he.preventDefault(),ve(Q,[]))},be=W?a.jsxs("div",{className:["pc-workflow-chat__dropzone",W.over?"is-over":"",I?"is-disabled":""].filter(Boolean).join(" "),"aria-hidden":"true",children:[a.jsx("span",{className:"pc-workflow-chat__dropzone-icon",children:a.jsx(de,{name:"paperclip",size:18})}),a.jsxs("span",{className:"pc-workflow-chat__dropzone-text",children:[a.jsx("strong",{children:I?"Attachments are unavailable right now":xy(W.count)}),I?null:a.jsx("span",{children:W.over?"Release to upload to this conversation":"Drop anywhere on the conversation"})]})]}):null,xe=W?I?"Attachments are unavailable right now":xy(W.count):K,Pe=async he=>{if(!F)return;const Q=L,_e=++j.current;k.current=!0,f(null),b(null),n(!0);try{const ae=await F.onSteer(he,Q);if(!N.current||j.current!==_e)return;if(!(ae!=null&&ae.accepted)&&!(ae!=null&&ae.duplicate)){f({action:"steer",message:"the gateway did not accept this message (accepted=false)."});return}b({mode:Q,...typeof ae.seq=="number"?{seq:ae.seq}:{},duplicate:!!ae.duplicate}),e.onDraftChange("")}catch(ae){N.current&&j.current===_e&&f({action:"steer",message:uo(ae)})}finally{N.current&&j.current===_e&&(k.current=!1,n(!1))}},Qe=async()=>{const he=String(e.draft||"");if(I||k.current||!he.trim())return;if(J)return void Pe(he);if(!e.sendWhileBusy&&e.busy)return;const Q=B.length?__(B):null;if(Q){f({action:"send",message:Q});return}const _e=++j.current,ae=new AbortController;x.current=ae,k.current=!0,f(null),b(null),n(!0);try{await e.onSend(he,{signal:ae.signal})}catch(je){N.current&&j.current===_e&&!ae.signal.aborted&&f({action:"send",message:uo(je)})}finally{x.current===ae&&(x.current=null),N.current&&j.current===_e&&(k.current=!1,n(!1))}},He=async()=>{if(I||T.current||!e.onCancel)return;const he=++A.current;T.current=!0,f(null),i(!0);const _e=x.current||new AbortController;_e.abort(new DOMException("Stopped by the user","AbortError"));try{await e.onCancel(_e.signal)}catch(ae){N.current&&A.current===he&&f({action:"cancel",message:uo(ae)})}finally{N.current&&A.current===he&&(T.current=!1,i(!1))}},qe=async()=>{if(I||$.current||!e.onAttach)return;const he=++S.current;$.current=!0,f(null),u(!0);try{await e.onAttach()}catch(Q){N.current&&S.current===he&&f({action:"attach",message:uo(Q)})}finally{N.current&&S.current===he&&($.current=!1,u(!1))}},ge=()=>{d&&((d.action==="send"||d.action==="steer")&&Qe(),d.action==="cancel"&&He(),d.action==="attach"&&qe())},$e=e.toolbar||null,nt=he=>g1((Array.isArray(e.messages)?e.messages:[]).filter(Q=>!Q.toolActivity&&!Q.live&&String(Q.content||"").trim()),he?{heading:he}:void 0),et=async he=>{if(!I){f(null);try{await he()}catch(Q){N.current&&f({action:"toolbar",message:uo(Q)})}}},Rt=async()=>{const he=await ml(nt());N.current&&(C(he?"copied":"failed"),typeof window<"u"&&window.setTimeout(()=>N.current&&C("idle"),1200))},ce=$e?a.jsxs("div",{className:"pc-workflow-chat__toolbar",role:"toolbar","aria-label":"Conversation actions",children:[$e.onNewSession?a.jsxs("button",{type:"button",className:"pc-workflow-chat__icon-button","data-toolbar":"new",disabled:I,onClick:()=>void et($e.onNewSession),children:[a.jsx(de,{name:"plus",size:14}),a.jsx("span",{children:"New chat"})]}):null,$e.onClear?a.jsxs("button",{type:"button",className:"pc-workflow-chat__icon-button","data-toolbar":"clear",disabled:I,onClick:()=>void et($e.onClear),children:[a.jsx(de,{name:"trash",size:14}),a.jsx("span",{children:"Clear"})]}):null,$e.copyTranscript?a.jsxs("button",{type:"button",className:"pc-workflow-chat__icon-button","data-toolbar":"copy",onClick:()=>void Rt(),children:[a.jsx(de,{name:v==="copied"?"check":"copy",size:14}),a.jsx("span",{children:v==="copied"?"Copied":v==="failed"?"Copy failed":"Copy"})]}):null,$e.exportTranscript?a.jsxs("button",{type:"button",className:"pc-workflow-chat__icon-button","data-toolbar":"export",onClick:()=>{const he=$e.exportTranscript;y1({filename:he.filename,text:nt(he.heading),mime:"text/markdown;charset=utf-8"})},children:[a.jsx(de,{name:"download",size:14}),a.jsx("span",{children:"Export"})]}):null]}):null,fe=L==="queue"?"Queue":"Steer",G=g?g.mode==="queue"?`Queued for the next turn${typeof g.seq=="number"?` (seq ${g.seq})`:""}.`:`${g.duplicate?"Already queued":"Queued"}${typeof g.seq=="number"?` (seq ${g.seq})`:""}. ${F!=null&&F.parked?"The run is waiting: your guidance delivers at its next wake (steers do not wake runs).":"Delivers at the run's next loop boundary."}`:"";return a.jsxs("section",{ref:te,className:["pc-workflow-chat",W?"pc-workflow-chat--dragging":"",W!=null&&W.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||ce?a.jsxs("header",{className:["pc-workflow-chat__header",ce?"pc-workflow-chat__header--toolbar":""].filter(Boolean).join(" "),children:[e.header?a.jsx("div",{className:"pc-workflow-chat__header-main",children:e.header}):null,ce]}):null,a.jsx("div",{className:"pc-workflow-chat__transcript",children:a.jsx(i_,{messages:Array.isArray(e.messages)?e.messages:[],empty:e.emptyState,autoScroll:!0,messageProps:{...e.messageProps,...e.renderMarkdown?{renderMarkdown:e.renderMarkdown}:{}},after:a.jsxs(a.Fragment,{children:[e.interaction?a.jsx(iE,{interaction:e.interaction,disabled:I}):null,M?a.jsx("div",{className:"pc-workflow-chat__blocked",role:"status",children:e.blockedNotice}):null]}),afterKey:`${e.interaction?`${e.interaction.kind}:${e.interaction.id}`:""}:${M?"blocked":""}`})}),d?a.jsxs("div",{className:"pc-workflow-chat__error",role:"alert",children:[a.jsxs("span",{children:["Could not"," ",d.action==="send"?"send this message":d.action==="steer"?L==="queue"?"queue this message":"steer the run":d.action==="attach"?"attach a file":d.action==="toolbar"?"complete that action":"stop the run",": ",d.message]}),d.action!=="toolbar"?a.jsx("button",{type:"button",onClick:ge,disabled:I,children:"Try again"}):null]}):null,a.jsxs("div",{className:"pc-workflow-chat__composer",children:[a.jsx(l_,{value:e.draft,onChange:e.onDraftChange,onSubmit:()=>void Qe(),placeholder:e.placeholder||"Send a message",ariaLabel:"Message",disabled:I,busy:J?t:V,sendLabel:J?fe:e.sendLabel,busyLabel:J?L==="queue"?"Queueing…":"Steering…":e.busyLabel,rows:2,leading:e.attachments||B.length?a.jsxs("div",{className:"pc-workflow-chat__attachments",children:[B.length?a.jsx(rE,{items:B,onRemove:e.onRemoveAttachment,onRetry:e.onRetryAttachment,disabled:I}):null,e.attachments]}):null,overlay:be,onPaste:Y?q:void 0,actions:a.jsxs(a.Fragment,{children:[e.onAttach?a.jsxs("button",{type:"button",className:"pc-workflow-chat__icon-button","aria-label":"Attach file","data-af-tip":"Attach a file",disabled:I||l,onClick:()=>void qe(),children:[a.jsx(de,{name:"paperclip",size:16}),a.jsx("span",{children:l?"Attaching…":"Attach"})]}):null,e.composerExtras,J&&D.length>1?a.jsx("span",{className:"pc-workflow-chat__steer-modes",role:"group","aria-label":"While the run is busy",children:D.map(he=>a.jsx("button",{type:"button",className:"pc-workflow-chat__steer-mode","data-steer-mode":he,"aria-pressed":L===he,disabled:I||t,onClick:()=>p(he),children:he==="queue"?"Queue next turn":"Guide this run"},he))}):null,z&&e.onCancel?a.jsxs("button",{type:"button",className:"pc-workflow-chat__stop",disabled:I||s||ie,onClick:()=>void He(),children:[a.jsx(de,{name:"x",size:14}),a.jsx("span",{children:s||ie?"Stopping…":"Stop"})]}):Z?a.jsx("span",{className:`pc-workflow-chat__stop-state pc-workflow-chat__stop-state--${Z.phase}`,role:"status","aria-live":"polite",children:Z.label}):null]})}),F?a.jsx("div",{className:"pc-workflow-chat__steer-status",role:"status","aria-live":"polite",children:G}):null,Y?a.jsx("div",{className:"pc-sr-only",role:"status","aria-live":"polite",children:xe}):null]}),e.footer?a.jsx("footer",{className:"pc-workflow-chat__footer",children:e.footer}):null]})}function cE(e){return e.toolApprovalGranted?null:e.interaction}const Lf={messages:[],records:[],run:null,interaction:null,status:"idle",displayStatus:"",loading:!1,error:null,connection:"idle",toolApprovalGranted:!1,stop:null};function Ve(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Oe(e){return typeof e=="string"?e.trim():e==null?"":typeof e=="number"||typeof e=="boolean"?String(e):""}function Ki(e){return Array.isArray(e)?e:[]}function uE(e){const t=Ve(e);return!!(t&&(t.code==="revision_conflict"||t.reason_code==="revision_conflict"||t.status===409||t.name==="SessionToolPolicyConflict"))}function Pn(e){return Oe(e==null?void 0:e.status).toLowerCase()||"unknown"}function Ht(e){return["completed","failed","cancelled"].includes(e.toLowerCase())}function Rr(e){const t=Ve(e),n=Number((t==null?void 0:t.status)??(t==null?void 0:t.statusCode));return n===401||n===403}function dE(e){const t=Ve(e);return Number((t==null?void 0:t.status)??(t==null?void 0:t.statusCode))}function Of(e){const t=n=>{if(Array.isArray(n))return n.map(t);const s=Ve(n);if(!s)return n;const i={};for(const l of Object.keys(s).sort())i[l]=t(s[l]);return i};try{return JSON.stringify(t(e))}catch{return"[unserializable]"}}function xh(e){if(typeof e=="string")return e.trim();const t=Ve(e);if(!t)return"";for(const n of["answer","response","message","text","content","output"]){const s=t[n];if(typeof s=="string"&&s.trim())return s.trim()}return""}function fo(e){const t=xh(e);if(t)return t;if(!Ve(e)&&!Array.isArray(e))return"";try{return JSON.stringify(e,null,2)}catch{return""}}function Ny(e){if(!e)return"";for(const s of["prompt","request","task","message","query","input"]){const i=Oe(e[s]);if(i)return i}const t=Ve(e.context);for(const s of["task","message"]){const i=Oe(t==null?void 0:t[s]);if(i)return i}const n=Ki(t==null?void 0:t.messages);for(let s=n.length-1;s>=0;s-=1){const i=Ve(n[s]);if(Oe(i==null?void 0:i.role).toLowerCase()!=="user")continue;const l=Oe(i==null?void 0:i.content);if(l)return l}return""}function b_(e){const t=Ve(e.result);return Ve(t==null?void 0:t.wait)}function Pf(e){return e?Oe(e.reason)==="subworkflow"||Oe(e.wait_key).startsWith("subworkflow:"):!1}function Cy(e,t){return!!(e&&e.runId===t.runId&&Oe(e.wait.wait_key)===Oe(t.wait.wait_key))}function kh(e){return Ve(e.effect)||{}}function fE(e,t){return Oe(e.run_id)||t}function Ey(e){return Oe(e.ended_at)||Oe(e.started_at)||void 0}function Ay(e){const t=new Set,n=m=>{const p=Oe(m);p&&t.add(p)},s=Ve(e.result);n(s==null?void 0:s.sub_run_id),n(s==null?void 0:s.subRunId),n(s==null?void 0:s.child_run_id);const i=kh(e),l=Ve(i.payload);Oe(i.type)==="start_subworkflow"&&(n(l==null?void 0:l.sub_run_id),n(l==null?void 0:l.subRunId),n(l==null?void 0:l.child_run_id));const u=b_(e),d=Ve(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=Oe(u==null?void 0:u.wait_key);return f.startsWith("subworkflow:")&&n(f.slice(12)),[...t]}class hE{constructor(t,n={}){this.transport=t,this.options=n,this.snapshot={...Lf},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,this.sessionToolPolicy=null,this.sessionPolicyUnavailableReason="",this.sessionPolicyState=null,this.sessionPolicyClamped=[],this.toolPolicyByCall=new Map;const s=n.liveRenderIntervalMs??60;if(typeof s!="number"||!Number.isFinite(s)||s<0)throw new Error(`liveRenderIntervalMs must be a non-negative number of milliseconds, got ${JSON.stringify(n.liveRenderIntervalMs)}`);this.liveRenderIntervalMs=s,this.sessionToolPolicy=n.sessionToolPolicy||null,this.sessionToolPolicy||(this.sessionPolicyUnavailableReason=Oe(n.sessionToolPolicyUnavailableReason)),this.snapshot=this.withSessionPolicy({...Lf})}sessionPolicyMode(){var t;return((t=this.sessionToolPolicy)==null?void 0:t.supported)===!0?"gateway":!this.sessionToolPolicy&&this.sessionPolicyUnavailableReason?"unavailable":"local-fallback"}sessionPolicyStatus(){const t=this.sessionPolicyMode();return{mode:t,...t==="unavailable"?{reason:this.sessionPolicyUnavailableReason}:{},clamped:this.sessionPolicyClamped,policy:this.sessionPolicyState}}setSessionToolPolicyClient(t,n={}){const s=t?"":Oe(n.reason);if(t===this.sessionToolPolicy&&s===this.sessionPolicyUnavailableReason)return;const i=!!(t&&this.sessionToolPolicy&&t.sessionId===this.sessionToolPolicy.sessionId);this.sessionToolPolicy=t,this.sessionPolicyUnavailableReason=s,i||(this.sessionPolicyState=null,this.sessionPolicyClamped=[]),this.set({...this.snapshot})}gatewayPolicy(){const t=this.sessionToolPolicy;if(this.sessionPolicyMode()==="unavailable")throw new Error(`${this.sessionPolicyUnavailableReason} Allow once still works.`);if(!t||t.supported!==!0)throw new Error("This gateway cannot store chat tool policies (session_tool_policy is not supported).");return t}adoptSessionPolicy(t){var n,s;this.sessionPolicyState=t,this.sessionPolicyClamped=Array.isArray(t==null?void 0:t.clamped)?t.clamped.filter(i=>i&&typeof i=="object"):[],this.set({...this.snapshot}),(s=(n=this.options).onSessionPolicy)==null||s.call(n,t,this.sessionPolicyClamped)}async loadSessionPolicy(){const t=await this.gatewayPolicy().get();return this.adoptSessionPolicy(t),t}requireRootSession(t){var s,i;const n=Oe((s=this.snapshot.run)==null?void 0:s.session_id)||Oe((i=this.runStates.get(this.rootRunId))==null?void 0:i.session_id);if(!n)throw new Error("This chat's session is not known yet: the policy is written to the root run's session.");if(n!==t.sessionId)throw new Error(`The tool policy client is bound to session ${t.sessionId}, but this chat's root run belongs to session ${n}: the policy is written to the root run's session.`)}async currentRevision(t){var i;if(typeof((i=this.sessionPolicyState)==null?void 0:i.revision)=="number")return this.sessionPolicyState.revision;const n=await this.loadSessionPolicy();if(typeof(n==null?void 0:n.revision)=="number")return n.revision;const s=t.revision;return typeof s=="number"?s:void 0}async policyWriteError(t){if(uE(t))return await this.loadSessionPolicy().catch(()=>null),new Error("Someone changed this chat's policy; re-read it before deciding again (it was refreshed).");const n=t instanceof Error?t.message:String(t);return new Error(`This chat's policy was not changed: ${n}`)}requireTarget(t){const n=this.requireInteraction();if(Ht(this.snapshot.status))throw new Error("This run has already ended.");if(n.runId!==t.runId||Oe(n.wait.wait_key)!==t.waitKey||t.stepId!==void 0&&n.stepId!==t.stepId)throw new Error("This approval request has changed. Review the current request before deciding.");if(!this.isToolApproval(n))throw new Error("This is not a tool approval request.");return n}async writeThenAnswer(t,n,s,i=[]){this.requireTarget(t);const l=this.gatewayPolicy();this.requireRootSession(l);const u=[...new Set(i.map(m=>Oe(m)).filter(Boolean))];let d={};if(n.deny){const m=await this.currentRevision(l);if(typeof m!="number")throw new Error("This chat's policy was not changed: the gateway did not return a policy revision to guard the deny with.");d={if_revision:m}}let f;try{f=await l.merge({...n,...u.length?{ask:u}:{},...d,client:n.client||"panel-chat"})}catch(m){throw await this.policyWriteError(m)}this.sessionToolPolicy===l&&this.adoptSessionPolicy(f);try{await this.approve(s,t)}catch(m){const p=m instanceof Error?m.message:String(m);throw new Error(`This chat's tool policy was saved, but this request was not answered: ${p} The policy does not answer requests that were already waiting.`)}return f}async approveAllForSession(t,n={}){const s=this.sessionPolicyMode();if(s==="unavailable")throw new Error(`${this.sessionPolicyUnavailableReason} Allow once still works.`);return s!=="gateway"?(await this.allowAllToolsForRun(t),null):this.writeThenAnswer(t,{approve:{all:!0,...typeof n.maxRiskRank=="number"?{max_risk_rank:n.maxRiskRank}:{}}},!0,n.ask)}approveKindForSession(t,n,s={}){return this.writeThenAnswer(t,{approve:{kinds:[n]}},!0,s.ask)}denyKindForSession(t,n,s={}){return this.writeThenAnswer(t,{deny:{kinds:[n]}},!1,s.ask)}denyToolForSession(t,n,s={}){return this.writeThenAnswer(t,{deny:{tools:[n]}},!1,s.ask)}async resetSessionPolicy(){if(this.sessionPolicyMode()==="unavailable")throw new Error(`${this.sessionPolicyUnavailableReason}`);if(this.sessionPolicyMode()!=="gateway"){this.revokeToolApproval();return}const t=this.gatewayPolicy();this.requireRootSession(t);const n=await this.currentRevision(t);if(typeof n!="number")throw new Error("This chat's policy was not reset: the gateway did not return a policy revision to guard the reset with.");try{await t.reset(n)}catch(s){throw await this.policyWriteError(s)}this.adoptSessionPolicy(null)}withSessionPolicy(t){const n=this.sessionPolicyMode(),{sessionPolicyReason:s,...i}=t;return{...i,sessionPolicyMode:n,...n==="unavailable"?{sessionPolicyReason:this.sessionPolicyUnavailableReason}:{},sessionPolicy:this.sessionPolicyState,sessionPolicyClamped:this.sessionPolicyClamped}}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.toolPolicyByCall.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({...Lf})}dispose(){this.reset(),this.subscribers.clear()}async load(t){const n=Oe(t);if(this.reset(),!n)return;const s=++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[l,u]=await Promise.all([this.transport.getRun(n,i.signal),this.transport.getHistory(n,i.signal)]);if(!this.live(s))return;const d=Ve(l),f=Ve(d==null?void 0:d.waiting),m=Pn(d);if(await this.ingestHistory(u,n,s),!this.live(s))return;if(this.set({...this.snapshot,run:d,status:m,loading:!1,...f&&!Ht(m)?{interaction:this.interactionWith({runId:n,wait:f})}:{}}),d&&this.updateRunState(n,d),f)for(const p of Ay({result:{wait:f}}))p!==n&&this.catchUpAndWatch(p,s);await this.catchUpAndWatch(n,s),this.pollRootLifecycle(n,s)}catch(l){!i.signal.aborted&&this.live(s)&&this.fail(l)}}async sendCommand(t,n={}){var p,g;t==="cancel"&&(this.toolApprovalStopped=!0,this.revokeToolApproval(),this.stopRequested=!0,this.recomputeStop());const s=Oe(n.wait_key),i=t==="resume"?s?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 l=t==="resume"&&s&&((p=this.snapshot.interaction)==null?void 0:p.stepId)||"",u=`${i}\0${t}\0${l}\0${Of(n)}`;let d=this.commandIds.get(u);d||(d=this.newCommandId(),this.commandIds.set(u,d));const f=this.generation,m=(g=this.controller)==null?void 0:g.signal;try{const b=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 b;const v=Ve(b);if(v&&v.accepted===!1)throw t==="cancel"&&(this.stopRequested=!1,this.recomputeStop()),new Error(Oe(v.detail)||"Gateway did not accept the command");return this.commandIds.delete(u),i===this.rootRunId&&["pause","resume","cancel"].includes(t)&&this.refreshRunState(i,f),b}catch(b){throw this.live(f)&&this.fail(b,!1),b}}resume(t,n){const s=this.requireInteraction();if(n&&(s.runId!==n.runId||Oe(s.wait.wait_key)!==n.waitKey||n.stepId!==void 0&&s.stepId!==n.stepId))throw new Error("This question has changed. Review the current question before answering.");return this.sendCommand("resume",{wait_key:Oe(s.wait.wait_key),payload:{response:t}})}approve(t,n){const s=this.requireInteraction();if(Ht(this.snapshot.status))throw new Error("This run has already ended.");if(n&&(s.runId!==n.runId||Oe(s.wait.wait_key)!==n.waitKey||n.stepId!==void 0&&s.stepId!==n.stepId))throw new Error("This approval request has changed. Review the current request before deciding.");if(t&&this.toolApprovalPolicy&&!this.toolCallsMatch(s,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:Oe(s.wait.wait_key),payload:{approved:!!t}}).then(l=>{if(!this.live(i))return l;const u=this.occurrenceKey(s);return this.approvedWaits.add(u),t&&this.isToolApproval(s)&&!this.grantedToolWaits.has(u)&&(this.grantedToolWaits.add(u),this.set({...this.snapshot})),l})}async approveWithPolicyChange(t,n){const s=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(s)||i!==this.approvalEpoch||this.toolApprovalStopped||Ht(this.snapshot.status))&&n()}async allowAllToolsForRun(t){const n=this.generation,s=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)||s!==this.approvalEpoch||Ht(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){Of(t)!==Of(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}:${Oe(t.wait.wait_key)}${t.stepId?`:${t.stepId}`:""}`}interactionWith(t){const n=this.snapshot.interaction;return n&&Pf(t.wait)&&!Pf(n.wait)?n:n&&Cy(n,t)&&t.stepId===void 0&&n.stepId!==void 0?{...t,stepId:n.stepId}:t}adoptDurableWait(t,n){const s=Ve(n.waiting);if(!s||Pn(n)!=="waiting"||Pf(s)||Ht(this.snapshot.status)||this.resolvedWaits.has(`${t}:${Oe(s.wait_key)}`))return;const i=this.interactionWith({runId:t,wait:s}),l=this.snapshot.interaction;l&&Cy(l,i)&&l.stepId===i.stepId||this.set({...this.snapshot,interaction:i})}coveredByStandingPermission(t,n){var s;return t.loading||this.toolApprovalStopped||this.toolApprovalSuspended||!this.toolApprovalPolicy&&!t.autoApproveTools||Ht(t.status)||((s=t.run)==null?void 0:s.paused)===!0||t.status==="paused"||!n||!this.isToolApproval(n)||this.toolApprovalPolicy&&(!this.toolCallsMatch(n,this.toolApprovalPolicy.enabledTools)||!this.toolCallsMatch(n,this.toolApprovalPolicy.autoApproveTools))?!1:!!Oe(n.wait.wait_key)}present(t){const n=t.interaction,s=n?this.occurrenceKey(n):"",i=!!(n&&this.isToolApproval(n)&&(this.grantedToolWaits.has(s)||!this.approvedWaits.has(s)&&this.coveredByStandingPermission({...t,loading:!1},n)));if(!i&&!this.snapshot.toolApprovalGranted&&!t.toolApprovalGranted)return t.toolApprovalGranted===!1?t:{...t,toolApprovalGranted:!1};let l=!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:(l=!0,this.toolMessage({...f,status:m}))});return{...t,toolApprovalGranted:i,...l?{messages:u}:{}}}toolCallsMatch(t,n){var i;const s=Ki((i=Ve(t.wait.details))==null?void 0:i.tool_calls);return s.length>0&&s.every(l=>{var d;const u=Oe((d=Ve(l))==null?void 0:d.name);return!!u&&n.includes(u)})}isToolApproval(t){const n=Ve(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:Oe(t.wait.wait_key),stepId:t.stepId},s=this.occurrenceKey(t);if(this.approvedWaits.has(s))return;this.approvedWaits.add(s),this.grantedToolWaits.add(s);const i=this.generation,l=this.approvalEpoch;this.approve(!0,n).catch(u=>{if(this.live(i)){if(this.grantedToolWaits.delete(s),l!==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(!Oe(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(this.withSessionPolicy(t));for(const n of this.subscribers)n();this.autoApproveCurrentWait()}async catchUpAndWatch(t,n){var s;if(!(!this.live(n)||this.watchedRuns.has(t))){this.watchedRuns.add(t);try{if(t!==this.rootRunId)try{const i=Ve(await this.transport.getRun(t,(s=this.controller)==null?void 0:s.signal));if(!this.live(n))return;i&&this.updateRunState(t,i)}catch(i){if(!this.live(n))return;if(Rr(i))throw i;this.fail(i,!1)}if(await this.catchUp(t,n),!this.live(n)||Ht(Pn(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(Rr(i)){this.fail(i);return}const l=(this.childCatchUpAttempts.get(t)||0)+1;if(this.childCatchUpAttempts.set(t,l),this.fail(i,!1),l>=5)return;await this.waitForRetry(Math.min(2e3,150*2**(l-1))),this.live(n)&&this.catchUpAndWatch(t,n)}}}async catchUp(t,n){var s;for(let i=0;i<100&&this.live(n);i+=1){const l=this.cursors.get(t)||0,u=await this.transport.getLedger(t,l,(s=this.controller)==null?void 0:s.signal);if(!this.live(n))return;const d=Ve(u),f=Array.isArray(u)?u:Ki(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<=l)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 s=0;for(;this.live(n)&&!Ht(Pn(this.runStates.get(t)||null));){const l=this.cursors.get(t)||0;this.set({...this.snapshot,connection:s?"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,l,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=Ve(await this.transport.getRun(t,(i=this.controller)==null?void 0:i.signal));if(!this.live(n))return;f&&this.updateRunState(t,f),s+=1}catch(u){if(!this.live(n))return;if(s+=1,this.fail(u,!1),Rr(u)){this.set({...this.snapshot,connection:"disconnected"});return}}if(s>=5||!this.live(n))break;await this.waitForRetry(Math.min(2e3,150*2**(s-1)))}if(this.live(n)){if(Ht(Pn(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,s){const i=Ve(t);if(!i)return;const l=Ve(i.session),u=Ki(l==null?void 0:l.turns).map(Ve).filter(m=>!!m);if(await this.hydrateHistoricalSessionRuns(u,n,s),!this.live(s))return;for(const m of u){const p=Oe(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=Ny(Ve(i.input_data));m&&this.addMessage({id:d,role:"user",content:m})}const f=Ve(i.ledgers);if(f)for(const[m,p]of Object.entries(f)){const g=Ve(p);for(const b of Ki(g==null?void 0:g.items))this.ingestItem(m,b)}}ingestSessionTurn(t,n,s){if(!t)return;const i=Oe(t.run_id)||n,l=Ve(t.input_data)||Ve(t.input)||{},u=Oe(t.prompt)||Ny(l);u&&this.addMessage({id:`turn:${i}:user`,role:"user",content:u,ts:Oe(t.created_at)||void 0});const d=this.historicalRunFailures.get(i);if(d){const g=Oe(t.answer)||xh(t.output),b=d.missing?"is unavailable because the run no longer exists":"could not be restored",v=g?` Saved reply (not verified as the final result): ${g}`:"";this.addMessage({id:`history:${i}:unavailable`,role:"system",level:"warn",title:"History",content:`The final output for an earlier turn ${b}.${v}`});return}const m=(s&&Ht(Pn(s))?fo(s.output):"")||(s?Oe(t.answer)||xh(t.output):""),p=this.historicalEvidence.get(i);for(const g of(p==null?void 0:p.tools)||[])this.upsertTool(g);m&&this.addRunAssistantMessage(i,{id:`final:${i}`,role:"assistant",content:m,runId:i,statistics:p==null?void 0:p.statistics,ts:Oe(t.updated_at)||void 0})}async hydrateHistoricalSessionRuns(t,n,s){const i=[...new Set(t.map(f=>Oe(f.run_id)).filter(f=>f&&f!==n&&!this.historicalRuns.has(f)&&!this.historicalRunFailures.has(f)))];if(!i.length||!this.live(s))return;let l=0,u=!1;const d=async()=>{var f,m,p;for(;!u&&this.live(s);){const g=i[l++];if(!g)return;try{const b=Ve(await this.transport.getRun(g,(f=this.controller)==null?void 0:f.signal));if(!this.live(s))return;if(b){this.historicalRuns.set(g,b);try{const v=await this.transport.getHistory(g,(m=this.controller)==null?void 0:m.signal);if(!this.live(s))return;this.historicalEvidence.set(g,Xi(qC(v)))}catch(v){if(!this.live(s))return;if(Rr(v))throw v;this.fail(new Error(`Earlier turn activity could not be restored: ${v instanceof Error?v.message:String(v)}`),!1)}}else this.historicalRuns.set(g,null),this.historicalRunFailures.set(g,{missing:!1,detail:"gateway returned an invalid historical run snapshot"})}catch(b){if(!this.live(s))return;const v=dE(b)===404;this.historicalRuns.set(g,null),this.historicalRunFailures.set(g,{missing:v,detail:b instanceof Error?b.message:Oe((p=Ve(b))==null?void 0:p.detail)||"request failed"}),Rr(b)&&(u=!0,this.fail(b))}}};if(await Promise.all(Array.from({length:Math.min(4,i.length)},()=>d())),u&&this.live(s))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 s=Ve(n),i=Ve(s==null?void 0:s.record)||s;if(!i)return;const l=fE(i,t),u=Number(s==null?void 0:s.cursor),d=Number.isFinite(u)&&u>0?u:(this.cursors.get(l)||0)+1,f=`${l}:${d}`;if(!this.seenRecords.has(f)){if(this.seenRecords.add(f),this.cursors.set(l,Math.max(this.cursors.get(l)||0,d)),this.set({...this.snapshot,records:[...this.snapshot.records,{cursor:d,record:i,runId:l}]}),this.foldRecord(l,i,f),this.snapshot.messages.some(m=>m.id===`final:${this.rootRunId}`)){const m=Xi(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 Ay(i))m!==l&&this.catchUpAndWatch(m,this.generation)}}foldRecord(t,n,s){var p,g,b;const i=kh(n),l=Oe(i.type).toLowerCase(),u=Ve(n.result),d=Oe(n.status).toLowerCase(),f=Ey(n);if(this.foldStopEvidence(t,n,l,d),["llm_call","tool_calls"].includes(l)&&["started","running"].includes(d)){const v=Date.parse(f||"");(!Number.isFinite(v)||v>=this.displayStatusAt)&&(Number.isFinite(v)&&(this.displayStatusAt=v),this.snapshot.displayStatus&&this.set({...this.snapshot,displayStatus:""}))}if(l==="answer_user"&&d==="completed"){const v=fo(u)||fo(Ve(i.payload));v&&this.addRunAssistantMessage(t,{id:`answer:${t}:${s}`,role:"assistant",content:v,ts:f})}if(l==="emit_event"&&d==="completed"){const v=Ve(i.payload)||{},C=Ve(u),x=Oe(v.name)||Oe(C==null?void 0:C.name),N=v.payload!==void 0?v.payload:C==null?void 0:C.payload;if(["abstract.message","abstractcode.message"].includes(x)){const k=fo(N);if(k){const T=Oe((p=Ve(N))==null?void 0:p.level).toLowerCase(),$=T==="error"?"error":["warn","warning"].includes(T)?"warn":"info";this.addMessage({id:`event:${t}:${s}`,role:"system",title:"Workflow",content:k,level:$,ts:f})}}if(["abstract.status","abstractcode.status"].includes(x)){const k=Ve(N),T=k?k.status??k.text??k.value:N,$=Date.parse(f||"");!Ht(this.snapshot.status)&&typeof T=="string"&&(!Number.isFinite($)||$>=this.displayStatusAt)&&(Number.isFinite($)&&(this.displayStatusAt=$),this.set({...this.snapshot,displayStatus:T.trim()}))}if(x==="abstract.tool_policy_decision"){const k=H1(Ve(N));if(k){this.addMessage({id:`policy:${t}:${s}`,role:"system",kind:"tool_policy_decision",title:"Tool policy",content:bh(k.provenance),ts:f});for(const T of k.calls){const $={...k.provenance,...T.matched?{matched:T.matched}:{}};this.toolPolicyByCall.set(`${t}:${T.callId}`,$);for(const j of this.toolActivities.values())j.runId===t&&j.callId===T.callId&&this.upsertTool(j)}}}if(["abstract.tool_execution","abstractcode.tool_execution","abstract.tool_result","abstractcode.tool_result"].includes(x)){const k=fo(N);k&&this.addMessage({id:`event:${t}:${s}`,role:"system",title:"Tool activity",content:k,ts:f})}}const m=b_(n);if(d==="waiting"&&m&&!Ht(this.snapshot.status)&&!Ht(Pn(this.runStates.get(t)||null))&&(this.resolvedWaits.delete(`${t}:${Oe(m.wait_key)}`),this.set({...this.snapshot,interaction:this.interactionWith({runId:t,wait:m,...Oe(n.step_id)?{stepId:Oe(n.step_id)}:{}})})),l==="tool_calls")for(const v of w_(this.toolActivities,{runId:t,cursor:this.cursors.get(t)||0,record:n}))this.upsertTool(v);if(l==="resume"&&(u==null?void 0:u.resumed)===!0){const v=Oe((g=Ve(i.payload))==null?void 0:g.wait_key);v&&this.resolvedWaits.add(`${t}:${v}`),((b=this.snapshot.interaction)==null?void 0:b.runId)===t&&(this.set({...this.snapshot,interaction:null}),this.refreshRunState(t,this.generation))}}foldStopEvidence(t,n,s,i){let l=!1;if(s==="llm_call"){const u=Oe(n.step_id);if(u){const d=`${t}:${u}`;i==="started"?(this.openLlmSteps.add(d),l=!0):["completed","failed","cancelled","waiting"].includes(i)&&(l=this.openLlmSteps.delete(d)||l),["completed","failed","cancelled"].includes(i)&&this.closeLiveReply(d)}}if(s==="emit_event"&&i==="completed"){const u=Ve(kh(n).payload)||{},d=Ve(n.result),f=Oe(u.name)||Oe(d==null?void 0:d.name),m=Ve(u.payload!==void 0?u.payload:d==null?void 0:d.payload);f==="abstract.status"&&Oe(m==null?void 0:m.killed_by)==="kill_switch"&&(this.forcedStop=m,l=!0)}l&&this.recomputeStop()}recomputeStop(){let t=null;this.forcedStop?t={phase:"forced",label:Oe(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 s=500,i=null;for(;this.live(t)&&((n=this.snapshot.stop)==null?void 0:n.phase)==="stopping";){if(await this.waitForRetry(s),!this.live(t))return;const l=[this.rootRunId,...[...this.watchedRuns].filter(d=>d!==this.rootRunId)];let u=!1;for(const d of l)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),s=Math.min(5e3,s*2)}}finally{this.generation===t&&(this.stopFollowing=!1)}}}addMessage(t){const n=Oe(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){const n=t.callId?this.toolPolicyByCall.get(`${t.runId}:${t.callId}`):void 0,s=n?{...t,policy:n}:t;return{id:`tool:${s.id}`,role:"system",kind:"tool_activity",title:"Tool activity",runId:s.runId,toolActivity:s,content:JSON.stringify({tool:s.name,status:s.status,arguments:s.arguments,output:s.output,error:s.error},null,2),ts:s.endedAt||s.startedAt}}upsertTool(t){const n=this.toolMessage(t),s=this.snapshot.messages.findIndex(l=>l.id===n.id);if(s<0){this.addMessage(n);return}const i=[...this.snapshot.messages];i[s]=n,this.set({...this.snapshot,messages:i})}addRunAssistantMessage(t,n){this.closeLiveRepliesOfRun(t);const s=`answer:${t}:`,i=`final:${t}`;this.snapshot.messages.some(l=>l.role==="assistant"&&l.content===n.content&&(l.id===i||String(l.id||"").startsWith(s)))||this.addMessage(n)}ingestDelta(t,n){let s;try{s=f_(n)}catch(f){this.fail(f,!1);return}const i=`${s.run_id}:${s.call_id}`;if(d_(s)){if(s.reason==="unavailable"){this.noteStreamUnavailable(s);return}if(s.reason==="cancelled"&&s.detail==="reinvoked"){this.closeLiveReply(i,"restarted");return}this.closeLiveReply(i,s.reason==="completed"?void 0:s.reason);return}if(this.closedLiveCalls.has(i)||this.runEnded(s.run_id)||this.runEnded(this.rootRunId))return;const l=this.liveReplies.get(i)||{runId:s.run_id,callId:s.call_id,nodeId:s.node_id||"",via:t,text:"",reasoning:"",seq:{content:-1,reasoning:-1}},u=s.channel==="reasoning"?"reasoning":"text",d=l.seq[s.channel];if(s.snapshot){if(s.seq<d)return;l[u]=s.text}else{if(s.seq<=d)return;l[u]+=s.text}l.seq[s.channel]=s.seq,l.via=t,this.liveReplies.set(i,l),this.liveDirty.add(i),this.scheduleLiveRender()}runEnded(t){return Ht(Pn(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 s=this.liveReplies.get(n);if(!s)continue;const i=this.liveMessage(s),l=t.findIndex(u=>u.id===i.id);l<0?t.push(i):t[l]=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 s=this.liveReplies.get(t);if(!s){n==="restarted"&&this.shownLiveCalls.has(t)&&this.addMessage(this.restartNote(t));return}this.liveReplies.delete(t),this.liveDirty.delete(t);const i=`live:${s.runId}:${s.callId}`,l=this.snapshot.messages.findIndex(d=>d.id===i);if(l<0)return;const u=[...this.snapshot.messages];if(n==="restarted"){const d=this.restartNote(t);this.seenMessages.add(String(d.id)),u[l]=d}else if(n){const d=`live-end:${s.runId}:${s.callId}`;this.seenMessages.add(d),u[l]={id:d,role:"system",level:"warn",title:"Reply",runId:s.runId,content:n==="failed"?"The reply stopped because the model call failed.":"The reply stopped because the model call was cancelled."}}else u.splice(l,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:hC(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 s of[...this.liveReplies.values()])(s.via===t||s.runId===t)&&this.closeLiveReply(`${s.runId}:${s.callId}`,n)}endLiveRepliesOfRun(t,n){const s=n==="failed"||n==="cancelled"?n:void 0;if(t===this.rootRunId){for(const i of[...this.liveReplies.values()])this.closeLiveReply(`${i.runId}:${i.callId}`,s);this.closedLiveCalls.clear(),this.shownLiveCalls.clear();return}this.closeLiveRepliesVia(t,s);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[s,i]of this.liveReplies)i.via===t&&(this.liveReplies.delete(s),this.liveDirty.delete(s),n.add(`live:${i.runId}:${i.callId}`));n.size&&this.set({...this.snapshot,messages:this.snapshot.messages.filter(s=>!n.has(String(s.id)))})}fail(t,n=!0){var s,i,l;Rr(t)&&(this.approvalEpoch+=1,this.toolApprovalStopped=!0,this.toolApprovalSuspended=!0,(i=(s=this.options).onAuthError)==null||i.call(s,t)),this.set({...this.snapshot,error:t instanceof Error?t.message:Oe((l=Ve(t))==null?void 0:l.detail)||String(t),...Rr(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 s=Array.from(n,i=>i.toString(16).padStart(2,"0")).join("");return`${s.slice(0,8)}-${s.slice(8,12)}-${s.slice(12,16)}-${s.slice(16,20)}-${s.slice(20)}`}return`workflow-${Date.now()}-${Math.random().toString(36).slice(2)}`}updateRunState(t,n){var l;if(this.runStates.set(t,n),Ht(Pn(n))&&this.endLiveRepliesOfRun(t,Pn(n)),t!==this.rootRunId){Ht(Pn(n))&&((l=this.snapshot.interaction)==null?void 0:l.runId)===t?this.set({...this.snapshot,interaction:null}):this.adoptDurableWait(t,n);return}const s=Pn(n),i=Ht(s);if(i){const u=fo(n.output);u&&this.upsertFinal(t,u,Ey(n))}this.set({...this.snapshot,run:n,status:s,...i?{interaction:null,autoApproveTools:!1,displayStatus:""}:{}}),i||this.adoptDurableWait(t,n),(this.stopRequested||this.forcedStop)&&this.recomputeStop()}upsertFinal(t,n,s){this.closeLiveRepliesOfRun(t);const i=`final:${t}`;this.seenMessages.add(i);const l={id:i,role:"assistant",content:n,ts:s,runId:t,statistics:Xi(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,l]});return}const d=[...this.snapshot.messages];d[u]=l,this.set({...this.snapshot,messages:d})}async refreshRunState(t,n){var s;try{const i=Ve(await this.transport.getRun(t,(s=this.controller)==null?void 0:s.signal));i&&this.live(n)&&this.updateRunState(t,i)}catch(i){this.live(n)&&this.fail(i,!1)}}async pollRootLifecycle(t,n){var s;for(;this.live(n)&&this.rootRunId===t&&!Ht(Pn(this.runStates.get(t)||null));){if(await this.waitForRetry(2e3),!this.live(n)||this.rootRunId!==t||Ht(Pn(this.runStates.get(t)||null)))return;try{const i=Ve(await this.transport.getRun(t,(s=this.controller)==null?void 0:s.signal));i&&this.live(n)&&this.rootRunId===t&&this.updateRunState(t,i)}catch(i){if(!this.live(n))return;if(Rr(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 s=n;return new Promise(l=>{const u=setTimeout(f,t),d=()=>{clearTimeout(u),f()};function f(){s.removeEventListener("abort",d),l()}s.addEventListener("abort",d,{once:!0})})}}function mE(e){const t=y.useMemo(()=>new hE(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()),s=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||!s){t.reset();return}return t.load(s),()=>t.reset()},[t,s,e.enabled]),{controller:t,snapshot:n}}function ha(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function gn(e){return typeof e=="string"?e.trim():e==null?"":typeof e=="number"||typeof e=="boolean"?String(e):""}function $y(e){return["session","workflow","run","global"].includes(e)?e:null}function Mr(e){return{scope:gn(e==null?void 0:e.scope).toLowerCase(),name:gn(e==null?void 0:e.name)||gn(e==null?void 0:e.event_name),scopeId:gn(e==null?void 0:e.scope_id)||gn(e==null?void 0:e.scopeId),sessionId:gn(e==null?void 0:e.session_id)||gn(e==null?void 0:e.sessionId),workflowId:gn(e==null?void 0:e.workflow_id)||gn(e==null?void 0:e.workflowId),runId:gn(e==null?void 0:e.run_id)||gn(e==null?void 0:e.runId)}}function pE(e,t){const n=e.wait,s=gn(n.wait_key),i=[Mr(n),Mr(ha(n.details))];for(const l of t){if(l.runId!==e.runId)continue;const u=l.record,d=ha(u.result),f=ha(d==null?void 0:d.wait),m=ha(u.effect),p=ha(m==null?void 0:m.payload);gn(f==null?void 0:f.wait_key)!==s&&gn(p==null?void 0:p.wait_key)!==s||i.push(Mr(u),Mr(p),Mr(ha(p==null?void 0:p.details)),Mr(f),Mr(ha(f==null?void 0:f.details)))}return i}function Df(e,t){return t.scopeId?t.scopeId:e==="session"?t.sessionId:e==="workflow"?t.workflowId:e==="run"?t.runId:"global"}function x_(e,t,n){return{scope:e,scopeId:t,name:n,...e==="session"?{sessionId:t}:{},...e==="workflow"?{workflowId:t}:{},...e==="run"?{runId:t}:{}}}function gE(e,t,n){if(!n)return null;const s=`evt:${t}:${n}:`;if(!e.startsWith(s))return null;const i=e.slice(s.length);return i?x_(t,n,i):null}function yE(e,t=[],n){if(!e)return{target:null,error:"No event wait is available."};const s=gn(e.wait.wait_key),i=/^evt:(session|workflow|run|global):/.exec(s);if(!i)return{target:null,error:"The gateway did not provide a canonical event wait key."};const l=$y(i[1]);if(!l)return{target:null,error:"The event wait uses an unsupported scope."};const u=pE(e,Array.isArray(t)?t:[]),d=new Map;for(const b of u){const v=$y(b.scope);if(!v||!b.name)continue;if(v!==l)return{target:null,error:"Event metadata conflicts with the canonical wait scope."};const C=`evt:${v}:`,x=`:${b.name}`;if(!s.startsWith(C)||!s.endsWith(x)||s.length<=C.length+x.length)return{target:null,error:"Event metadata does not exactly match the canonical wait key."};const N=s.slice(C.length,-x.length),k=Df(v,b);if(k&&k!==N)return{target:null,error:"Event metadata conflicts with the canonical wait target."};const T=x_(v,N,b.name);d.set(`${T.scope}\0${T.scopeId}\0${T.name}`,T)}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;l==="run"&&f.add(e.runId),l==="global"&&f.add("global");for(const b of u){const v=Df(l,b);v&&f.add(v)}if(gn(n==null?void 0:n.run_id)===e.runId){const b=Mr(n||null),v=Df(l,b);v&&f.add(v)}const p=[...f].map(b=>gE(s,l,b)).filter(b=>!!b),g=new Map(p.map(b=>[`${b.scope}\0${b.scopeId}\0${b.name}`,b]));return g.size===1?{target:[...g.values()][0]}:g.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 wE(e){return a.jsx(qv,{text:e,images:"link"})}const vE={trigger:"Trigger",answer:"Automation"};function k_(e,t){return a.jsx(o_,{...t,message:{id:`${e.runId}:${e.kind}`,role:e.role,content:e.text,title:vE[e.kind],runId:e.runId},images:"link"})}const _E={renderText:wE,renderTurn:k_};function bE(e){const{fetchGateway:t,messageProps:n,...s}=e,i=s.onOpenResource??(t?l=>NC(t,l.url,{name:l.name}):void 0);return a.jsx(h0,{...s,onOpenResource:i,..._E,renderTurn:l=>k_(l,n)})}function xE(e){const t=e;return!!(t&&typeof t=="object"&&typeof t.run_id=="string"&&typeof t.wait_key=="string"&&!("wait"in t))}function kE(e){const t={...e.details||{}};e.kind==="tool_approval"&&(t.kind="tool_approval",t.tool_calls=Array.isArray(e.tool_calls)?e.tool_calls:[]);const n={wait_key:e.wait_key,reason:e.kind==="ask_user"?"user":"tool_approval",details:t};return e.prompt!=null&&(n.prompt=e.prompt),Array.isArray(e.choices)&&(n.choices=e.choices),typeof e.allow_free_text=="boolean"&&(n.allow_free_text=e.allow_free_text),{runId:e.run_id,wait:n,...e.step_id?{stepId:e.step_id}:{}}}function jE(e,t,n={}){var m;if(!e)return null;const s=xE(e)?kE(e):e,i=s.wait,l=`${s.runId}:${i.wait_key}:${s.stepId||""}`,u=i.details||{};if(u.mode==="approval_required"||u.kind==="tool_approval"){const p=Array.isArray(u.tool_calls)?u.tool_calls:[],g={runId:s.runId,waitKey:String(i.wait_key||""),stepId:s.stepId},b=[...new Set(p.map(S=>String((S==null?void 0:S.name)||"tool")))],v=n.onPermissionsAll,C=n.onAllowForSession,x=String(n.approveAllScope||"").trim(),N=((m=n.remember)==null?void 0:m.call(n,b))||void 0,k=Gi,T=C?{approveForSessionLabel:k.allowForChat,approveForSessionDescription:"Allow for this chat approves this batch and the enabled tools for the rest of this chat. Unchecked tools stay unavailable; questions still need your answer.",onApproveForSession:async()=>{let S;await t.approveWithPolicyChange(g,()=>{S=C()}),S&&await S.catch(M=>{throw new Error(`This batch was allowed, but "Allow for this chat" could not be turned on: ${M instanceof Error?M.message:String(M)}`)})}}:{};let $=T,j=[];const A=n.sessionPolicy;if(A){const S=t.approveAllForSession,M=t.approveKindForSession,I=t.denyToolForSession,z=t.denyKindForSession,V=t.sessionPolicyStatus;if(typeof S!="function"||typeof M!="function"||typeof I!="function"||typeof z!="function"||typeof V!="function")throw new Error("presentInteraction: sessionPolicy needs a WorkflowSessionController (approveAllForSession, approveKindForSession, denyToolForSession, denyKindForSession, sessionPolicyStatus).");const Z=V.call(t),ie=A.ask?[...A.ask]:void 0,F=(B,Y)=>{var W;const te=String(((W=B==null?void 0:B.scope)==null?void 0:W[Y])||"").trim();return te?`Applies: ${te}`:k.noScopeNote},D=B=>({outcomeNote:[_y(B==null?void 0:B.clamped),F(B,"approve")].filter(Boolean).join(" ")}),L=B=>({outcomeNote:`${k.denyForChatNote} ${F(B,"deny")}`}),J=_y(Z.clamped);if(Z.mode==="unavailable")$={scopeNote:k.unavailablePolicyNote(Z.reason||"")};else if(Z.mode==="gateway"){const B=[...new Set(p.map(R=>{var K;return String((R==null?void 0:R.toolset)||"").trim()||String(((K=A.toolsetOf)==null?void 0:K.call(A,String((R==null?void 0:R.name)||"")))||"").trim()}).filter(Boolean))],Y=(ie||[]).map(R=>String(R).trim()).filter(Boolean),te=Y.length?`Tools set to Ask keep asking: ${Y.join(", ")}.`:"Nothing is set to Ask, so tools that reach destinations the model picks (fetch_url, browser_probe, send_email) are included.",W=Z.policy;j=W?b.filter(R=>Object.prototype.hasOwnProperty.call(W.deny||{},R)):[],$={approveForSessionLabel:k.allowForChat,approveForSessionDescription:`Allow for this chat (and Allow all <toolset> tools for this chat) approves this batch and stores a policy for this chat on the gateway: later tool calls of every run of this chat run without asking, until the policy is reset. ${te} Tools the gateway does not authorize stay uncovered.`,onApproveForSession:async()=>D(await S.call(t,g,{...A.maxRiskRank!==void 0?{maxRiskRank:A.maxRiskRank}:{},...ie?{ask:ie}:{}})),approveKinds:B.map(R=>({kind:R,label:k.allowKindForChat(R),onApprove:async()=>D(await M.call(t,g,R,ie?{ask:ie}:{}))})),denyOptions:[...b.map(R=>({key:`tool:${R}`,label:k.denyToolForChat(R),onDeny:async()=>L(await I.call(t,g,R,ie?{ask:ie}:{}))})),...B.map(R=>({key:`kind:${R}`,label:k.denyKindForChat(R),onDeny:async()=>L(await z.call(t,g,R,ie?{ask:ie}:{}))}))],...j.length?{deniedNote:`Denied by this chat's policy: ${j.join(", ")}. The gateway refuses ${j.length===1?"it":"them"} even if allowed once.`}:{},...W?{policySummary:`This chat's policy: ${Object.keys(W.approve||{}).length} tools allowed without asking, ${Object.keys(W.deny||{}).length} denied. ${F(W,"approve")}`}:{},...J?{notCovered:J}:{}}}else $=C?{...T,scopeNote:k.localChatPolicyNote}:{approveForSessionLabel:k.allowForRun,onApproveForSession:async()=>{await S.call(t,g,{})},scopeNote:k.localRunPolicyNote}}return{id:l,kind:"tool-approval",title:`${p.length||"Requested"} ${p.length===1?"action needs":"actions need"} permission`,toolName:b.join(", ")||"the requested tools",description:"Review the targets below. Allow once approves this batch only.",detail:a.jsxs("div",{className:"pc-approval-summary",children:[a.jsx(Zh,{tools:p.map((S,M)=>({id:String((S==null?void 0:S.call_id)||(S==null?void 0:S.id)||M),runId:s.runId,name:(S==null?void 0:S.name)||"Tool",arguments:S==null?void 0:S.arguments,status:"waiting"}))}),a.jsxs("details",{children:[a.jsx("summary",{children:"Review full tool arguments (JSON)"}),a.jsx(So,{value:p.length?p:u})]})]}),approveLabel:Gi.allowOnce,denyLabel:Gi.deny,approveAllLabel:v?Gi.allowAll:void 0,approveAllDescription:v?`Sets permissions: all${x?` ${x}`:""}, including future turns. Unchecked tools stay unavailable; explicit Ask overrides and Gateway restrictions remain enforced. Questions still need your answer.`:void 0,...$,...n.approveAllDisabledReason?{disabledReason:n.approveAllDisabledReason}:{},...N?{remember:N}:{},...n.onDefer?{onDefer:n.onDefer}:{},onApproveAll:v?async()=>{await t.approveWithPolicyChange(g,()=>{v()})}:void 0,onApprove:async()=>(await t.approve(!0,g),j.length?{outcomeNote:`The gateway refuses ${j.join(", ")}: denied by this chat's policy.`}:void 0),onDeny:async()=>{await t.approve(!1,g)}}}const d={runId:s.runId,waitKey:String(i.wait_key||""),stepId:s.stepId};if(i.reason==="user"||i.reason==="ask_user")return{id:l,kind:"ask-user",title:"A question for you",prompt:String(i.prompt||u.prompt||"How would you like to continue?"),allowFreeText:i.allow_free_text!==!1,choices:(Array.isArray(i.choices)?i.choices:[]).map(p=>typeof p=="object"&&p!==null?{id:String(p.value??p.id??p.label),label:String(p.label??p.text??p.value??p.id),description:p.description}:{id:String(p),label:String(p)}),onSubmit:async p=>{await t.resume(p,d)},...n.allowSkip?{onSkip:async()=>{await t.resume("",d)}}:{},...n.onDefer?{onDefer:n.onDefer}:{}};const f=String(i.wait_key||"");if(i.reason==="event"||f.startsWith("evt:")){const p=yE(s,n.records||[],n.currentRun??null),g=p.target,b=(g==null?void 0:g.name)||"";return{id:l,kind:"event-wait",title:g?"Waiting for an event":"Event routing unavailable",eventName:b,prompt:String(i.prompt||`This workflow will continue when “${b||"its trigger"}” arrives.`),description:g?"You can also send the expected event here.":`This event cannot be sent safely. ${p.error}`,initialPayload:"{}",payloadLabel:"Event data (JSON)",sendLabel:"Send event",onSend:async v=>{if(!g)throw new Error(p.error);const C=JSON.parse(v||"{}"),x={name:g.name,scope:g.scope,payload:C};g.scope==="session"?x.session_id=g.scopeId:g.scope==="workflow"?x.workflow_id=g.scopeId:g.scope==="run"&&(x.run_id=g.scopeId),await t.emitEvent(x)}}}return null}class j_{constructor(){Dt(this,"_buffer","");Dt(this,"_current",{data_lines:[]})}push(t,n){for(this._buffer+=t;;){const s=this._buffer.indexOf(`
|
|
86
|
-
`);if(s===-1)return;const i=this._buffer.slice(0,s);this._buffer=this._buffer.slice(s+1);const l=i.endsWith("\r")?i.slice(0,-1):i;if(l.startsWith(":"))continue;if(l===""){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(`
|
|
87
|
-
`)};n(m)}this._current={data_lines:[]};continue}const u=l.indexOf(":"),d=u===-1?l:l.slice(0,u),f=u===-1?"":l.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 dt(e){var s;const t=(e||"").trim(),n={};t&&(n.Authorization=`Bearer ${t}`);try{const i=(s=document.cookie.split(";").map(l=>l.trim()).find(l=>l.startsWith("abstractcode_gateway_csrf=")))==null?void 0:s.slice(26);i&&(n["X-AbstractCode-CSRF"]=decodeURIComponent(i))}catch{}return n}function SE(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 NE(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 l=i.detail;if(typeof l=="string"&&l.trim())return l.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 s=await e.text();return s!=null&&s.trim()?s.trim():`${e.status}`}catch{return`${e.status}`}}class S_ extends Error{constructor(n,s){super(n);Dt(this,"status");Dt(this,"retry_after_s");Dt(this,"body_text");this.name="GatewayHttpError",this.status=Number.isFinite(Number(s.status))?Number(s.status):0,this.retry_after_s=s.retry_after_s,this.body_text=s.body_text}}async function ft(e,t){const n=await NE(e);throw new S_(`${t}: ${n}`,{status:e.status,retry_after_s:SE(e),body_text:n})}class CE{constructor(t){Dt(this,"_cfg");this._cfg={...t,base_url:(t.base_url||"").trim()}}async start_run(t,n,s){const i=String((s==null?void 0:s.bundle_id)||"").trim(),l=(s==null?void 0:s.session_id)===null||(s==null?void 0:s.session_id)===void 0?"":String(s.session_id||"").trim(),u=String(t||"").trim(),d={input_data:n||{}};i&&(d.bundle_id=i),u&&(d.flow_id=u),l&&(d.session_id=l);const f=await fetch(ct(this._cfg.base_url.trim(),we("runs/start")),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(d)});if(!f.ok)return await ft(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 s=await fetch(ct(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(n)}`)),{headers:{...dt(this._cfg.auth_token)}});return s.ok?await s.json():await ft(s,"get_run failed")}async get_run_history_bundle(t,n){const s=String(t||"").trim();if(!s)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 l=ct(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(s)}/history_bundle?${i.toString()}`)),u=await fetch(l,{headers:{...dt(this._cfg.auth_token)}});return u.ok?await u.json():await ft(u,"get_run_history_bundle failed")}async list_runs(t){const n=new URLSearchParams,s=typeof(t==null?void 0:t.limit)=="number"?t.limit:50;n.set("limit",String(s));const i=String((t==null?void 0:t.status)||"").trim();i&&n.set("status",i);const l=String((t==null?void 0:t.workflow_id)||"").trim();l&&n.set("workflow_id",l);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=ct(this._cfg.base_url.trim(),we(`runs?${n.toString()}`)),f=await fetch(d,{headers:{...dt(this._cfg.auth_token)}});return f.ok?await f.json():await ft(f,"list_runs failed")}async get_ledger(t,n){const s=String(t||"").trim();if(!s)throw new Error("get_ledger: run_id is required");const i=Number((n==null?void 0:n.after)||0),l=Number((n==null?void 0:n.limit)||0),u=ct(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(s)}/ledger?after=${encodeURIComponent(String(i))}&limit=${encodeURIComponent(String(l))}`)),d=await fetch(u,{headers:{...dt(this._cfg.auth_token)}});if(!d.ok)return await ft(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 C;const s=String(t||"").trim();if(!s)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),l=n.on_step,u=n.signal,d=ct(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(s)}/ledger/stream?after=${encodeURIComponent(String(i))}`)),f=await fetch(d,{headers:{Accept:"text/event-stream",...dt(this._cfg.auth_token)},signal:u});if(!f.ok)return await ft(f,"stream_ledger failed");if(!f.body)throw new Error("stream_ledger: response body is missing");(C=n.on_open)==null||C.call(n);const m=f.body.getReader(),p=new TextDecoder("utf-8"),g=new j_,b=n.on_delta,v=n.on_delta_error;for(;;){const{value:x,done:N}=await m.read();if(N)return;const k=p.decode(x,{stream:!0});g.push(k,T=>{if(b&&v){const $=T.event||"message",j=T.data??"";let A;try{A=h_($,j)}catch(S){v(S instanceof Error?S:new Error(String(S)),{event:$,data:j});return}if(A){b(A);return}}if(!(T.event!=="step"||!T.data))try{const $=JSON.parse(T.data);$&&typeof $.cursor=="number"&&$.record&&l($)}catch{}})}}async list_bundles(){const t=await fetch(ct(this._cfg.base_url.trim(),we("bundles")),{headers:{...dt(this._cfg.auth_token)}});return t.ok?await t.json():await ft(t,"list_bundles failed")}async reload_bundles(){const t=await fetch(ct(this._cfg.base_url.trim(),we("bundles/reload")),{method:"POST",headers:{...dt(this._cfg.auth_token)}});return t.ok?await t.json():await ft(t,"reload_bundles failed")}async upload_bundle(t,n){const s=(n==null?void 0:n.overwrite)===!0,i=(n==null?void 0:n.reload)!==!1,l=new FormData;l.set("overwrite",s?"true":"false"),l.set("reload",i?"true":"false"),l.set("file",t,t.name||"upload.flow");const u=await fetch(ct(this._cfg.base_url.trim(),we("bundles/upload")),{method:"POST",headers:{...dt(this._cfg.auth_token)},body:l});return u.ok?await u.json():await ft(u,"upload_bundle failed")}async discovery_tools(){const t=await fetch(ct(this._cfg.base_url.trim(),we("discovery/tools")),{headers:{...dt(this._cfg.auth_token)}});return t.ok?await t.json():await ft(t,"discovery_tools failed")}async discovery_providers(t){const n=(t==null?void 0:t.include_models)===!0,s=ct(this._cfg.base_url.trim(),we(`discovery/providers?include_models=${encodeURIComponent(String(n))}`)),i=await fetch(s,{headers:{...dt(this._cfg.auth_token)}});return i.ok?await i.json():await ft(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 s=await fetch(ct(this._cfg.base_url.trim(),we(`discovery/providers/${encodeURIComponent(n)}/models`)),{headers:{...dt(this._cfg.auth_token)}});return s.ok?await s.json():await ft(s,"discovery_provider_models failed")}async discovery_model_capabilities(t,n=""){const s=String(t||"").trim();if(!s)throw new Error("discovery_model_capabilities: model_name is required");const i=new URLSearchParams({model_name:s});n.trim()&&i.set("provider",n.trim());const l=ct(this._cfg.base_url.trim(),we(`discovery/models/capabilities?${i}`)),u=await fetch(l,{headers:{...dt(this._cfg.auth_token)}});return u.ok?await u.json():await ft(u,"discovery_model_capabilities failed")}async workspace_policy(){const t=await fetch(ct(this._cfg.base_url.trim(),we("workspace/policy")),{headers:{...dt(this._cfg.auth_token)}});return t.ok?await t.json():await ft(t,"workspace_policy failed")}async files_search(t,n){const s=String(t||"").trim(),i=typeof(n==null?void 0:n.limit)=="number"&&Number.isFinite(n.limit)?Math.max(1,Math.trunc(n.limit)):20,l=new URLSearchParams;l.set("query",s),l.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&&l.set("workspace_root",m)}const d=ct(this._cfg.base_url.trim(),we(`files/search?${l.toString()}`)),f=await fetch(d,{headers:{...dt(this._cfg.auth_token)},signal:n==null?void 0:n.signal});return f.ok?await f.json():await ft(f,"files_search failed")}async list_run_artifacts(t,n){const s=String(t||"").trim();if(!s)throw new Error("list_run_artifacts: run_id is required");const i=typeof(n==null?void 0:n.limit)=="number"?n.limit:200,l=ct(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(s)}/artifacts?limit=${encodeURIComponent(String(i))}`)),u=await fetch(l,{headers:{...dt(this._cfg.auth_token)}});return u.ok?await u.json():await ft(u,"list_run_artifacts failed")}async get_run_artifact_blob(t,n,s){const i=String(t||"").trim(),l=String(n||"").trim();if(!i)throw new Error("get_run_artifact_blob: run_id is required");if(!l)throw new Error("get_run_artifact_blob: artifact_id is required");const u=ct(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(i)}/artifacts/${encodeURIComponent(l)}/content`)),d=await fetch(u,{headers:{...dt(this._cfg.auth_token)}});if(!d.ok)return await ft(d,"get_run_artifact_blob failed");const f=await d.blob(),m=typeof(s==null?void 0:s.max_bytes)=="number"&&Number.isFinite(s.max_bytes)?Math.max(0,Math.trunc(s.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,s){const{blob:i}=await this.get_run_artifact_blob(t,n,s);return await i.text()}async attachments_ingest(t,n,s){const i=String(t||"").trim(),l=String(n||"").trim();if(!i)throw new Error("attachments_ingest: session_id is required");if(!l)throw new Error("attachments_ingest: path is required");const u={session_id:i,path:l},d=s==null?void 0:s.scope;if(d&&typeof d=="object"){const b=String(d.workspace_root||"").trim();b&&(u.workspace_root=b)}const f=await fetch(ct(this._cfg.base_url.trim(),we("attachments/ingest")),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!f.ok)return await ft(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,s){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 l=String((s==null?void 0:s.filename)||"").trim()||String((n==null?void 0:n.name)||"").trim()||"upload.bin",u=String((s==null?void 0:s.content_type)||"").trim()||String((n==null?void 0:n.type)||"").trim(),d=new FormData;d.append("session_id",i),d.append("file",n,l),d.append("filename",l),u&&d.append("content_type",u);const f=await fetch(ct(this._cfg.base_url.trim(),we("attachments/upload")),{method:"POST",headers:{...dt(this._cfg.auth_token)},body:d});if(!f.ok)return await ft(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 s=String(t||"").trim();if(!s)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},l=(n==null?void 0:n.language)===null||(n==null?void 0:n.language)===void 0?"":String(n.language||"").trim();l&&(i.language=l),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(ct(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(s)}/audio/transcribe`)),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(i)});return u.ok?await u.json():await ft(u,"audio_transcribe 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:{}},s=String((t==null?void 0:t.ts)||"").trim();s&&(n.ts=s);const i=String((t==null?void 0:t.client_id)||"").trim();i&&(n.client_id=i);const l=await fetch(ct(this._cfg.base_url.trim(),we("commands")),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(n)});return l.ok?await l.json():await ft(l,"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)||"")},s=String((t==null?void 0:t.active_run_id)||"").trim();s&&(n.active_run_id=s);const i=String((t==null?void 0:t.workflow_id)||"").trim();i&&(n.workflow_id=i);const l=String((t==null?void 0:t.client)||"").trim();l&&(n.client=l);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 g=String((t==null?void 0:t.template)||"").trim();g&&(n.template=g);const b=t==null?void 0:t.context;b&&typeof b=="object"&&(n.context=b);const v=await fetch(ct(this._cfg.base_url.trim(),we("bugs/report")),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(n)});return v.ok?await v.json():await ft(v,"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)||"")},s=String((t==null?void 0:t.active_run_id)||"").trim();s&&(n.active_run_id=s);const i=String((t==null?void 0:t.workflow_id)||"").trim();i&&(n.workflow_id=i);const l=String((t==null?void 0:t.client)||"").trim();l&&(n.client=l);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 g=String((t==null?void 0:t.template)||"").trim();g&&(n.template=g);const b=t==null?void 0:t.context;b&&typeof b=="object"&&(n.context=b);const v=await fetch(ct(this._cfg.base_url.trim(),we("features/report")),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(n)});return v.ok?await v.json():await ft(v,"feature_report_create failed")}async prompt_cache_stats(t,n){const s=String(t||"").trim(),i=String(n||"").trim();if(!s||!i)throw new Error("prompt_cache_stats: provider and model are required");const l=ct(this._cfg.base_url.trim(),we(`prompt_cache/stats?provider=${encodeURIComponent(s)}&model=${encodeURIComponent(i)}`)),u=await fetch(l,{headers:{...dt(this._cfg.auth_token)}});return u.ok?await u.json():await ft(u,"prompt_cache_stats failed")}async prompt_cache_capabilities(t,n){const s=String(t||"").trim(),i=String(n||"").trim();if(!s||!i)throw new Error("prompt_cache_capabilities: provider and model are required");const l=ct(this._cfg.base_url.trim(),we(`prompt_cache/capabilities?provider=${encodeURIComponent(s)}&model=${encodeURIComponent(i)}`)),u=await fetch(l,{headers:{...dt(this._cfg.auth_token)}});return u.ok?await u.json():await ft(u,"prompt_cache_capabilities failed")}async prompt_cache_saved(t,n){const s=String(t||"").trim(),i=String(n||"").trim();if(!s||!i)throw new Error("prompt_cache_saved: provider and model are required");const l=ct(this._cfg.base_url.trim(),we(`prompt_cache/saved?provider=${encodeURIComponent(s)}&model=${encodeURIComponent(i)}`)),u=await fetch(l,{headers:{...dt(this._cfg.auth_token)}});return u.ok?await u.json():await ft(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()},s=(t==null?void 0:t.key)===null||(t==null?void 0:t.key)===void 0?"":String(t.key||"").trim();s&&(n.key=s);const i=await fetch(ct(this._cfg.base_url.trim(),we("prompt_cache/clear")),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(n)});return i.ok?await i.json():await ft(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)},s=await fetch(ct(this._cfg.base_url.trim(),we("prompt_cache/save")),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(n)});return s.ok?await s.json():await ft(s,"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)},s=await fetch(ct(this._cfg.base_url.trim(),we("prompt_cache/load")),{method:"POST",headers:{"Content-Type":"application/json",...dt(this._cfg.auth_token)},body:JSON.stringify(n)});return s.ok?await s.json():await ft(s,"prompt_cache_load failed")}}function Cu(){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 at(e,t={}){var i;if(!e.startsWith(`${zr}/`))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[l,u]of Object.entries(Cu()))n.set(l,u);const s=await fetch(e,{...t,headers:n,credentials:"same-origin"});if(!s.ok){const l=await s.text();let u=l;try{const d=JSON.parse(l);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 S_(u||`Gateway request failed (${s.status})`,{status:s.status,body_text:l})}if(s.status!==204)return s.json()}const Wr=new CE({base_url:""});function Ct(e){return e instanceof Error?e.message:String(e)}function wa(){return Dr()}async function EE(e,t,n){const{blob:s}=await Wr.get_run_artifact_blob(e,t),i=URL.createObjectURL(s),l=document.createElement("a");l.href=i,l.download=n.replace(/[\\/]/g,"_")||"artifact",l.click(),window.setTimeout(()=>URL.revokeObjectURL(i),1e3)}const AE={app:"code",name:"AbstractCode"},$E=["How do I change the model?","Where are my files and generated outputs?","How do I schedule an automation?"],TE=(e,t={})=>{const n=new Headers(t.headers||{}),s=String(t.method||"GET").toUpperCase();if(s!=="GET"&&s!=="HEAD")for(const[i,l]of Object.entries(Cu()))n.set(i,l);return fetch(e,{...t,headers:n,credentials:"same-origin"})};function RE(e){return HC(AE,TE,{connected:e,suggestions:$E,placeholder:"Ask about AbstractCode…"})}function Ao({children:e}){return a.jsxs("p",{className:"code-history-empty code-loading-status",role:"status",children:[a.jsx("span",{className:"code-loading-spinner","aria-hidden":"true"}),e]})}function IE(e,t,n,s){const i=y.useRef(null);y.useEffect(()=>{var d,f;if(!t)return;if(e){i.current=document.activeElement||null;const m=s(),p=window.setTimeout(()=>m==null?void 0:m.focus(),0);return()=>window.clearTimeout(p)}const l=n(),u=document.activeElement;i.current&&(!u||u===document.body||l&&l.contains(u))&&((f=(d=i.current).focus)==null||f.call(d)),i.current=null},[e,t])}function ME(e,t){return t?"drawers":e?"overlay":"docked"}function LE(e,t){return t==="drawers"?e:!1}function OE(e){return e.key!=="Escape"||e.defaultPrevented||e.overlayOpen?null:e.sidebarOpen?"sidebar":null}function PE(e=typeof document<"u"?document:void 0){return!!(e!=null&&e.querySelector('[role="dialog"], [role="alertdialog"]'))}function DE(e){const t=Number.parseFloat(String(e??"").trim());return Number.isFinite(t)&&t>0}let Mi=null;function FE(){var s;if(Mi)return Mi;if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};const e=document.documentElement,t=()=>{const i=DE(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"]}),(s=window.visualViewport)==null||s.addEventListener("resize",t),t(),Mi=()=>{var i;n.disconnect(),(i=window.visualViewport)==null||i.removeEventListener("resize",t),Mi=null},Mi}function zE(e){const t=e.isDrawer&&!e.open;return a.jsx("aside",{className:"code-sidebar","aria-label":"Conversations",...t?{inert:""}:{},children:e.children})}const Eu=(e,t)=>at(e,{method:t.method,...t.body!==void 0?{body:JSON.stringify(t.body)}:{}}),Au="Connect to your gateway to change workspaces.";function N_(e,t,n,s){const[i,l]=y.useState(null),[u,d]=y.useState(null),f=t?t.level==="session"?`session:${t.session}`:"account":"";y.useEffect(()=>{if(l(null),d(null),!e||!t)return;let p=!0;return ry(n,t).load().then(g=>p&&l(g)).catch(g=>p&&d(`Could not read the workspaces: ${Ct(g)}`)),()=>{p=!1}},[e,f,n,s]);const m=y.useCallback(async p=>{if(!t)throw new Error(Au);const g=await ry(n,t).save(p);return l(g),g},[f,n]);return{state:i,error:u,save:m}}function C_(e){return e.automation?a.jsx(VE,{...e,automation:e.automation}):a.jsx(BE,{...e})}function BE({connected:e,sessionId:t,onOpenDefaults:n,refreshKey:s,request:i=Eu}){const l=N_(e,t?{level:"session",session:t}:null,i,s),u=e?t?null:"Open a conversation to choose its workspaces.":Au;return a.jsxs(a.Fragment,{children:[a.jsx(Jh,{level:"session",idPrefix:"code-workspace-session",state:l.state,save:l.save,loadError:u??l.error,unavailableReason:u}),n?a.jsx("p",{className:"code-default-workspaces",children:a.jsx("button",{type:"button",className:"code-text-button","data-action":"open-default-workspaces",onClick:n,disabled:!e,children:"My default workspaces"})}):null]})}function WE({open:e,onClose:t,connected:n,onChanged:s,request:i=Eu}){const l=N_(n&&e,e?{level:"account"}:null,i),u=n?null:Au,d=y.useCallback(async f=>{const m=await l.save(f);return s==null||s(),m},[l,s]);return a.jsx(_k,{open:e,onClose:t,title:"My default workspaces",size:"narrow",children:a.jsx(Jh,{level:"account",idPrefix:"code-workspace-account",state:l.state,save:d,loadError:u??l.error,unavailableReason:u})})}function UE(e,t,n,s){const[i,l]=y.useState(null),[u,d]=y.useState(null),f=JSON.stringify(t);y.useEffect(()=>{if(d(null),!e){l(null);return}let p=!0;return yh(s)(t).then(g=>p&&l(g)).catch(g=>p&&d(`Could not read the workspaces: ${Kh(g)||Ct(g)}`)),()=>{p=!1}},[e,f,s]);const m=y.useCallback(async p=>{const g=await yh(s)(p);l(g),n(p)},[s,n]);return{effective:i,error:u,onChange:m}}function VE({connected:e,automation:t,idPrefix:n="code-workspace-automation",request:s=Eu}){const i=UE(e,t.value,t.onChange,s),l=e?null:Au;return a.jsx(Jh,{level:"run",idPrefix:n,value:t.value,effective:i.effective,onChange:i.onChange,loadError:l??i.error,unavailableReason:l})}const E_="abstractcode.sidebar.panels",Li={automations:!0,conversations:!0};function HE(e){try{const t=e==null?void 0:e.getItem(E_);if(!t)return{...Li};const n=JSON.parse(t);if(!n||typeof n!="object")return{...Li};const s=n;return{automations:typeof s.automations=="boolean"?s.automations:Li.automations,conversations:typeof s.conversations=="boolean"?s.conversations:Li.conversations}}catch{return{...Li}}}function GE(e,t){try{t==null||t.setItem(E_,JSON.stringify(e))}catch{}}function KE(e,t){return{...e,[t]:!e[t]}}function mu(){try{return typeof window<"u"?window.localStorage:null}catch{return null}}function JE(){const[e,t]=y.useState(()=>HE(mu())),n=y.useCallback(s=>{t(i=>{const l=KE(i,s);return GE(l,mu()),l})},[]);return[e,n]}const rm=e=>({toggle:`code-panel-${e}-toggle`,region:`code-panel-${e}`});function A_(e){const t=rm(e.panel);return a.jsxs("div",{className:"code-panel-header",children:[a.jsxs("button",{type:"button",className:"code-panel-toggle",id:t.toggle,"aria-expanded":e.open,"aria-controls":t.region,onClick:e.onToggle,children:[a.jsx(de,{name:"chevronDown",size:14}),a.jsx("span",{children:e.label})]}),e.actions?a.jsx("span",{className:"code-panel-actions",children:e.actions}):null]})}function qE(e){return a.jsx("div",{className:"code-sidebar-lists","data-automations":e.panels.automations?"open":"closed","data-conversations":e.panels.conversations?"open":"closed",children:e.children})}function YE(e){const t=rm("conversations");return a.jsxs("section",{className:"code-panel code-conversations","data-open":e.open?"true":"false",children:[a.jsx(A_,{panel:"conversations",label:"Conversations",open:e.open,onToggle:e.onToggle,actions:e.actions}),a.jsx("nav",{className:"code-sessions",id:t.region,"aria-labelledby":t.toggle,hidden:!e.open,children:e.children})]})}function QE(e){return e.split("/").filter(Boolean).pop()||"Gateway managed"}const $_="abstractcode.sidebar.archived",Ty={automations:!1,conversations:!1};function XE(e){try{const t=e==null?void 0:e.getItem($_),n=t?JSON.parse(t):null;return!n||typeof n!="object"?{...Ty}:{automations:n.automations===!0,conversations:n.conversations===!0}}catch{return{...Ty}}}function ZE(){const[e,t]=y.useState(()=>XE(mu())),n=y.useCallback(s=>{t(i=>{var u;const l={...i,[s]:!i[s]};try{(u=mu())==null||u.setItem($_,JSON.stringify(l))}catch{}return l})},[]);return[e,n]}function T_(e){const t=y.useRef(null),n=y.useRef(!1);if(y.useEffect(()=>{var i,l;!e.open||!n.current||(n.current=!1,(l=(i=t.current)==null?void 0:i.scrollIntoView)==null||l.call(i,{block:"nearest",behavior:"smooth"}))},[e.open]),!(e.count>0))return null;const s=`code-archived-${e.list}`;return a.jsxs("div",{className:"code-archived","data-list":e.list,"data-open":e.open?"true":"false",children:[a.jsxs("button",{type:"button",className:"code-archived-toggle","aria-expanded":e.open,"aria-controls":s,onClick:()=>{n.current=!0,e.onToggle()},children:[a.jsxs("span",{children:["Archived · ",e.count]}),a.jsx(de,{name:"chevronDown",size:12})]}),e.open?a.jsx("ul",{ref:t,className:"code-archived-list",id:s,"aria-label":`Archived ${e.list}`,children:e.children}):null]})}function R_(e){return a.jsxs("li",{className:"code-archived-row","data-id":e.id,children:[a.jsxs("button",{type:"button",className:"code-archived-name",title:e.title,onClick:e.onOpen,children:[a.jsx("strong",{children:e.title}),e.meta?a.jsx("small",{children:e.meta}):null]}),a.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?a.jsx(de,{name:"loader",size:12}):a.jsx(de,{name:"archive",size:12}),a.jsx("span",{children:"Unarchive"})]}),e.error?a.jsx("p",{className:"code-inline-error",role:"alert",children:e.error}):null]})}const eA="Archive this conversation? It stays searchable and auditable; it just leaves this list.";function tA(e){const t=y.useRef(null);return y.useEffect(()=>{var n;(n=t.current)==null||n.focus({preventScroll:!0})},[]),a.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:[a.jsx("p",{children:eA}),a.jsxs("span",{className:"code-archive-confirm-actions",children:[a.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?a.jsx(de,{name:"loader",size:12}):a.jsx(de,{name:"archive",size:12}),a.jsx("span",{children:"Archive"})]}),a.jsx("button",{type:"button",className:"code-subtle-button","data-action":"cancel-archive",disabled:e.busy,onClick:e.onCancel,children:"Cancel"})]}),e.error?a.jsx("p",{className:"code-inline-error",role:"alert",children:e.error}):null]})}const nA="abstractcode.agent.v1";function am(e){return!!(e!=null&&e.interfaces.some(t=>[nA,"abstractassistant.agent.v1"].includes(t)))}function pt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function jh(e){return Array.isArray(e)?e:[]}function ze(e){return typeof e!="string"?void 0:e.trim()||void 0}function sA(e){return jh(e).flatMap(t=>{const n=ze(t);return n?[n]:[]})}function Zi(e,t=0){if(typeof e!="number"||!Number.isFinite(e))return;const n=Math.trunc(e);return n>=t?n:void 0}function om(e,t){if(Array.isArray(e))return e;const n=pt(e);if(!n)return[];for(const s of t)if(Array.isArray(n[s]))return n[s];return[]}function I_(e){const t=pt(e);return t?{...t}:void 0}function Ry(e){const t=I_(e.input_schema??e.inputSchema??e.inputs_schema);if(t)return t;const n=pt(e.inputs);if(n&&("properties"in n||"type"in n||"$schema"in n))return{...n}}function rA(e){const t=ze(e.bundle_version??e.bundleVersion??e.version);if(t)return t;const n=ze(e.bundle_ref??e.bundleRef);if(!n)return;const s=n.lastIndexOf("@");return s>0&&s<n.length-1?n.slice(s+1):void 0}function aA(e,t,n){return e?`${e}${t?`@${t}`:""}:${n}`:n}function Iy(e,t,n){var d;const s=pt(e),i=ze((s==null?void 0:s.default_bundle_id)??(s==null?void 0:s.defaultBundleId)),l=om(e,["items","bundles"]),u=[];for(const f of l){const m=pt(f);if(!m)continue;const p=pt(m.actions);if((p==null?void 0:p.can_run)===!1)continue;const g=(d=ze(m.status))==null?void 0:d.toLowerCase();if(m.is_draft===!0||m.is_published===!1||m.version_channel==="draft"||g&&!["published","deprecated"].includes(g)||!n.includeDeprecated&&(g==="deprecated"||g==="deleted"||g==="disabled"))continue;const b=ze(m.bundle_id??m.bundleId??m.id),v=rA(m);if(v&&/(?:^|[.\-])draft(?:[.\-]|$)/i.test(v))continue;const C=ze(m.default_entrypoint??m.defaultEntrypoint),x=t==="private"&&(m.is_default===!0||m.isDefault===!0||!!b&&b===i);for(const N of jh(m.entrypoints)){const k=pt(N);if(!k||!n.includeDeprecated&&(k.deprecated===!0||k.enabled===!1))continue;const T=ze(k.flow_id??k.flowId??k.id);if(!T)continue;const $=sA(k.interfaces??k.interface_ids??k.interfaceIds);if(n.interfaceId&&!$.includes(n.interfaceId))continue;const j=ze(k.workflow_id??k.workflowId)??aA(b,v,T),A=C?C===T:jh(m.entrypoints).length===1;u.push({id:`${t}:${j}`,workflowId:j,...b?{bundleId:b}:{},...v?{bundleVersion:v}:{},flowId:T,name:ze(k.name??k.title)??T,description:ze(k.description)??"",interfaces:$,...Ry(k)?{inputSchema:Ry(k)}:{},registryScope:t,isPreferredVersion:t==="tenant_catalog"?m.is_default===!0||m.default_version===v:m.latest_published_version===v,...x&&A?{isDefault:!0}:{}})}}return u}function oA(e,t,n={}){const s=[...Iy(e,"private",n),...Iy(t,"tenant_catalog",n)],i=new Map;for(const l of s)i.set(l.id,l);return[...i.values()].sort((l,u)=>+!!u.isDefault-+!!l.isDefault||l.name.localeCompare(u.name)||l.id.localeCompare(u.id))}function iA(e){const t=pt(e);if(!t)return;const n=pt(t.workflow_selection??t.workflowSelection);if(n)return n;const s=pt(t._runtime),i=pt((s==null?void 0:s.workflow_policy)??(s==null?void 0:s.workflowPolicy));if(i)return i;const l=pt(t.input_data??t.inputData),u=pt(l==null?void 0:l._runtime);return pt((u==null?void 0:u.workflow_policy)??(u==null?void 0:u.workflowPolicy))}function lA(e,t){const n=iA(t.inputData);if(n){const l=ze(n.registry_scope??n.registryScope),u=ze(n.bundle_id??n.bundleId),d=ze(n.bundle_version??n.bundleVersion),f=ze(n.flow_id??n.flowId);if((l==="private"||l==="tenant_catalog")&&u&&f){const m=e.filter(p=>(p.registryScope??"private")===l&&p.bundleId===u&&p.flowId===f&&(!d||p.bundleVersion===d));if(m.length===1)return m[0]}return}const s=ze(t.runWorkflowId);if(!s)return;const i=e.filter(l=>(l.registryScope??"private")==="private"&&l.workflowId===s);return i.length===1?i[0]:void 0}function cA(e){const t=pt(e)??{},n=pt(t.policy)??t,s=Zi(n.max_attachment_bytes??n.maxAttachmentBytes,1);return{raw:{...n},...s!==void 0?{maxAttachmentBytes:s}:{}}}function My(e,t){const n=ze(e.sandbox);if(!n||typeof e.sandboxed!="boolean")return;const s=ze(t==null?void 0:t.sentence),i=e.sandboxed?"ok":ze(t==null?void 0:t.state)==="unsandboxed"?"danger":"warn";return{label:n,...s?{tooltip:s}:{},tone:i}}function uA(e){var l;const t=om(e,["items","tools"]),n=pt((l=pt(e))==null?void 0:l.command_sandbox),s=new Set,i=[];for(const u of t){const d=pt(u);if(!d)continue;const f=ze(d.name??d.tool_name??d.id);if(!f||s.has(f))continue;s.add(f);const m=d.enabled!==!1&&d.served_disabled!==!0&&d.servedDisabled!==!0,p=Zi(d.risk_rank??d.riskRank),g=I_(d.input_schema??d.inputSchema??d.parameters);i.push({name:f,description:ze(d.description)??"",...ze(d.toolset)?{toolset:ze(d.toolset)}:{},...ze(d.tier)?{tier:ze(d.tier)}:{},...ze(d.approval_default??d.default_approval??d.approvalDefault??d.defaultApproval??d.approval)?{approval:ze(d.approval_default??d.default_approval??d.approvalDefault??d.defaultApproval??d.approval)}:{},...p!==void 0?{riskRank:p}:{},enabled:m,servedDisabled:!m,...ze(d.enable_gate??d.enableGate)?{enableGate:ze(d.enable_gate??d.enableGate)}:{},...ze(d.why_disabled??d.whyDisabled)?{whyDisabled:ze(d.why_disabled??d.whyDisabled)}:{},...g?{inputSchema:g}:{},...My(d,n)?{sandboxState:My(d,n)}:{},raw:{...d}})}return i.sort((u,d)=>u.name.localeCompare(d.name))}function dA(e){var s;const t=(s=ze(e.status??e.state))==null?void 0:s.toLowerCase();return ze(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 Ly={waiting:4,running:3,failed:2,done:1,unknown:0};function ho(e){return ze(e.updated_at??e.updatedAt??e.finished_at??e.finishedAt??e.created_at??e.createdAt)}function mo(e){if(!e)return Number.NEGATIVE_INFINITY;const t=Date.parse(e);return Number.isFinite(t)?t:Number.NEGATIVE_INFINITY}function Oy(e){var u;const t=ze(e);if(t)return t;const n=pt(e);if(!n)return;const s=ze(n.prompt);if(s)return s;const i=pt(n.input_data??n.inputData),l=["prompt","request","task","message","query","input"].map(d=>ze(i==null?void 0:i[d])).find(Boolean);return l||ze((u=pt(i==null?void 0:i.context))==null?void 0:u.task)}function pu(e,t={}){const n=pt(e),s=(n==null?void 0:n.has_more)===!0||(n==null?void 0:n.hasMore)===!0,i=om(e,["items","runs"]),l=new Map;i.forEach((d,f)=>{const m=pt(d);if(!m||ze(m.parent_run_id??m.parentRunId))return;const p=ze(m.session_id??m.sessionId),g=ze(m.run_id??m.runId??m.id);if(!p||!g)return;const b=l.get(p)??[];b.push({run:m,index:f}),l.set(p,b)});const u=[];for(const[d,f]of l){const m=[...f].sort((x,N)=>mo(ho(N.run))-mo(ho(x.run))||x.index-N.index),p=[...f].sort((x,N)=>{const k=ze(x.run.created_at??x.run.createdAt)??ho(x.run),T=ze(N.run.created_at??N.run.createdAt)??ho(N.run);return mo(k)-mo(T)||x.index-N.index}),g=m.flatMap(({run:x})=>{const N=ze(x.run_id??x.runId??x.id);return N?[N]:[]});if(!g.length)continue;let b="unknown";for(const{run:x}of f){const N=dA(x);Ly[N]>Ly[b]&&(b=N)}let v;for(const{run:x}of p){const N=ze(x.run_id??x.runId??x.id);if(v=(N?Oy(t[N]):void 0)??Oy(x),v)break}let C=0;for(const{run:x}of f){const N=x.tool_calls;C=typeof N=="number"&&Number.isFinite(N)&&C!==void 0?C+N:void 0}u.push({sessionId:d,state:b,...ho(m[0].run)?{updatedAt:ho(m[0].run)}:{},firstRunId:ze(p[0].run.run_id??p[0].run.runId??p[0].run.id),latestRunId:g[0],runIds:g,turnCount:f.length,...C!==void 0?{toolCalls:C}:{},...v?{prompt:v}:{},truncated:s})}return u.sort((d,f)=>mo(f.updatedAt)-mo(d.updatedAt)||d.sessionId.localeCompare(f.sessionId))}function gu(e){return e?{...e}:{}}function Oi(e){if(e!==void 0)return e.flatMap(t=>{const n=ze(t);return n?[n]:[]})}function fA(e,t,n){var x,N,k,T,$,j,A;const s=(S,M)=>{var I,z;!am(t.workflow)&&!((z=pt((I=t.inputSchema)==null?void 0:I.properties))!=null&&z[S])||M!==void 0&&n&&(e[S]=M)},i=ze((x=t.model)==null?void 0:x.provider),l=ze((N=t.model)==null?void 0:N.model);if(!!i!=!!l)throw new Error("Choose both a provider and a model, or use the workflow / Gateway defaults.");s("provider",i),s("model",l),t.tools!==void 0&&s("tools",Oi(t.tools)??[]);const u=Oi(t.skills);u!=null&&u.length&&(e.skills=u);const d=ze((k=t.workspace)==null?void 0:k.root);d!==void 0&&(e.workspace_root=d),s("system",ze(t.system));const f=gu(pt(e._runtime)),m=(S,M)=>{M!==void 0&&n&&(f[S]=M)};if(m("provider",i),m("model",l),m("thinking",ze(t.reasoning)),m("speculation",t.speculation),t.streamReplies!==void 0&&m("stream",dC(t.streamReplies).stream),m("system_prompt_extra",ze(t.systemPromptExtra)),t.tools!==void 0){const S=Oi(t.tools)??[],M=Array.isArray(f.allowed_tools)?f.allowed_tools:null;f.allowed_tools=M?S.filter(I=>M.includes(I)):S}if(t.review!==void 0&&t.reviewCapable!==!1){m("review_mode",t.review.enabled);const S=t.review.enabled?Zi(t.review.maxRounds,1):void 0;m("review_max_rounds",S)}const p=Oi((T=t.toolPolicy)==null?void 0:T.autoApproveTools),g=Oi(($=t.toolPolicy)==null?void 0:$.requireApprovalTools);(((p==null?void 0:p.length)??0)>0||((g==null?void 0:g.length)??0)>0)&&m("tool_policy",{...p!=null&&p.length?{auto_approve_tools:p}:{},...g!=null&&g.length?{require_approval_tools:g}:{}}),t.promptCache!==void 0&&m("prompt_cache",t.promptCache),Object.keys(f).length&&(e._runtime=f);const b=gu(pt(e._limits)),v=Zi((j=t.limits)==null?void 0:j.maxIterations,1),C=Zi((A=t.limits)==null?void 0:A.maxTokens,1);v!==void 0&&n&&(b.max_iterations=v),C!==void 0&&n&&(b.max_tokens=C),Object.keys(b).length&&(e._limits=b),s("max_iterations",v),t.gatingMode==="auto"&&s("gating_mode","auto")}function hA(e){var s;const t=gu(e.schemaInputs),n=am(e.workflow);if(e.promptProperty){const i=ze(e.promptProperty);i&&((s=e.prompt)!=null&&s.trim())&&(t[i]=e.prompt)}if(n){const i=e.prompt??"";t.prompt=i;const l=gu(pt(t.context));l.task=i,delete l.messages,delete l.media;const u=(e.attachments??[]).map(d=>({...d}));u.length?l.attachments=u:delete l.attachments,t.use_context=!1,delete t.attachments,delete t.media,t.context=l,t.use_session_history=e.useSessionHistory??!0}return fA(t,e,!0),t}function mA(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 pA(e,t){const n=e?Date.parse(e):NaN;return Number.isNaN(n)?"":`${su(Math.max(0,t-n))} ago`}function M_(e){const t=mA(e.summary);if(!t)return null;const n=pA(t.at,e.nowMs);return a.jsxs("small",{className:`code-notif-line ${e.className??""}`.trim(),"data-field":"last-notification","data-status":"failed",children:[a.jsx(mk,{tone:"error",size:"sm",className:"code-notif-pill",title:t.at?`${t.text}
|
|
88
|
-
${eu(t.at)}`:t.text,children:t.text}),n?a.jsx("span",{className:"code-notif-time",children:n}):null]})}const Py=(e,t,n)=>`${e} ${e===1?t:n}`;function L_(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",Py(e.turnCount,"turn","turns")];return typeof e.toolCalls=="number"&&e.toolCalls>0&&i.push(Py(e.toolCalls,"tool","tools")),i.join(" · ")}function O_(e){return e.prompt||`Conversation ${e.sessionId.slice(0,8)}`}function gA(e){const{item:t}=e,n=O_(t);return a.jsxs("div",{className:`code-session-item${e.confirm?" is-confirming":""}`,"data-item-id":t.sessionId,children:[a.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:[a.jsxs("span",{children:[a.jsx("strong",{className:"code-card-title",children:n}),a.jsx("small",{className:"code-card-meta","data-field":"meta",children:L_(t)})]}),t.state==="running"||t.state==="waiting"?a.jsx("span",{className:`code-status-dot ${t.state==="running"?"is-working":"is-waiting"}`,title:t.state}):null]}),e.onAskArchive?a.jsx(Ih,{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 P_(e){return e.attention.pending_waits>0}function D_(){return a.jsx("span",{className:"code-waiting-badge","data-field":"waiting",children:"waiting for you"})}function F_(e){const t=Co(e.summary,[],e.busy).active;return a.jsx(Br,{className:`${e.className??""}${e.iconOnly?" code-switch-icon-only":""}`.trim()||void 0,variant:e.variant??"sm",action:"active",label:e.iconOnly?a.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
|
|
89
|
-
${nl("active",e.summary)}`:nl("active",e.summary),onChange:()=>e.onToggle()})}function yA(e,t){const n=jv(e,t);return{first:[n.cadence,n.last].filter(Boolean).join(" · "),second:n.next||"",scheduled:e.trigger.source_id==="schedule"}}function wA(e){const t=e.summary,n=yA(t,e.nowMs),s=P_(t);return a.jsxs("div",{className:`code-card code-auto-card${e.selected?" is-selected":""}`,"data-automation-id":t.automation_id,"data-status":t.status,children:[a.jsxs("button",{type:"button",className:"code-card-main","aria-current":e.selected?"page":void 0,title:`${t.title}
|
|
90
|
-
${[n.first,n.second].filter(Boolean).join(" · ")}`,onClick:e.onSelect,children:[a.jsx("strong",{className:"code-card-title",children:t.title}),s?a.jsx(D_,{}):null,a.jsxs("small",{className:"code-card-meta","data-field":"timing",children:[n.scheduled?a.jsx(de,{name:"refresh",size:12,className:"code-card-cadence-icon"}):null,a.jsx("span",{className:"code-card-part",children:n.first})]})]}),a.jsxs("div",{className:"code-card-line2",children:[a.jsx("small",{className:"code-card-meta","data-field":"next",children:n.second}),a.jsx(F_,{className:"code-card-switch",iconOnly:!0,summary:t,busy:e.busy,onToggle:e.onToggleActive})]}),a.jsx(M_,{summary:t,nowMs:e.nowMs,className:"code-card-notif"})]})}const vA="runs?root_only=true&archived_only=true&include_ledger_len=false&include_metrics=true&limit=200",_A=e=>`sessions/${encodeURIComponent(e)}/archive`,bA=e=>`sessions/${encodeURIComponent(e)}/unarchive`;async function xA(e,t=at){return t(we(_A(e)),{method:"POST",body:"{}"})}function kA(e,t){const n=e.findIndex(i=>i.sessionId===t),s=e.filter(i=>i.sessionId!==t);return s.length?n<0?s[0]:s[Math.min(n,s.length-1)]:null}function Dy(e){const t=e==null?void 0:e.archived_sessions;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):0}function jA(e){const t=e.request??at,[n,s]=y.useState(null),[i,l]=y.useState(""),[u,d]=y.useState(""),[f,m]=y.useState(null);return y.useEffect(()=>{if(!e.enabled)return;const p=new AbortController;return l(""),t(we(vA),{signal:p.signal}).then(async g=>{if(p.signal.aborted)return;const b=pu(g);s(b);const v={};await Promise.all(b.filter(C=>!C.prompt).slice(0,50).map(async C=>{try{v[C.firstRunId]=await t(we(`runs/${encodeURIComponent(C.firstRunId)}/input_data`),{signal:p.signal})}catch{}})),!p.signal.aborted&&Object.keys(v).length&&s(pu(g,v))}).catch(g=>!p.signal.aborted&&l(`Archived conversations unavailable: ${Ct(g)}`)),()=>p.abort()},[e.enabled,e.revision]),i?a.jsx("li",{className:"code-inline-error",role:"alert",children:i}):n?a.jsx(a.Fragment,{children:n.map(p=>a.jsx(R_,{id:p.sessionId,title:O_(p),meta:L_(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(bA(p.sessionId)),{method:"POST",body:"{}"}).then(()=>{s(g=>(g||[]).filter(b=>b.sessionId!==p.sessionId)),e.onUnarchived(p)}).catch(g=>m({id:p.sessionId,message:`Not unarchived: ${Ct(g)}`})).finally(()=>d(""))}},p.sessionId))}):a.jsx("li",{children:a.jsx(Ao,{children:"Loading archived conversations…"})})}const Wn=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},SA=["context","messages","attachments","media"];function NA(e){return SA.includes(e)}function CA(e,t){const n=Wn(t);return Object.fromEntries(Object.keys(Wn(e.properties)).flatMap(s=>["_runtime","_limits"].includes(s)||NA(s)||!Object.prototype.hasOwnProperty.call(n,s)?[]:[[s,structuredClone(n[s])]]))}function Fy(e){if(!e)return;const t=Wn(e.input_data_schema||e.input_schema||e.schema||e),n=Object.fromEntries(Object.entries(Wn(t.properties)).map(([s,i])=>[s,{...Wn(i)}]));for(const s of Array.isArray(e.inputs)?e.inputs:[])s!=null&&s.id&&(n[s.id]={...Wn(s.schema),...n[s.id],...s.type?{"x-abstract-type":s.type}:{},...s.label?{title:s.label}:{},...Object.prototype.hasOwnProperty.call(s,"default")?{default:s.default}:{}});for(const[s,i]of Object.entries(Wn(e.defaults)))n[s]={...n[s],default:i};return{...t,properties:n}}function EA(e,t){var m;const n=Wn(t).nodes;if(!Array.isArray(n))throw new Error("The workflow input declarations could not be verified. Please retry.");const s=n.find(p=>{var g;return(((g=p==null?void 0:p.data)==null?void 0:g.nodeType)||(p==null?void 0:p.type))==="on_flow_start"});if(!s||!Array.isArray((m=s.data)==null?void 0:m.outputs))throw new Error("The workflow start inputs could not be verified. Please retry.");const i=s.data.outputs.filter(p=>typeof(p==null?void 0:p.id)=="string"&&p.id&&p.type!=="execution"&&!["exec","exec-out"].includes(p.id)),l=new Set(i.map(p=>p.id)),u=new Set((Array.isArray(e.required)?e.required:[]).filter(p=>!l.has(p))),d={...e.properties},f=Wn(s.data.pinDefaults);for(const p of i)p.required===!0&&u.add(p.id),d[p.id]={...Wn(d[p.id]),...Wn(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 tr(e){return Object.fromEntries(Object.entries((e==null?void 0:e.properties)||{}).flatMap(([t,n])=>Object.prototype.hasOwnProperty.call(Wn(n),"default")?[[t,structuredClone(Wn(n).default)]]:[]))}function AA(e){const t=Array.isArray(e.type)?e.type.find(s=>s!=="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 $A(e){const t=(e==null?void 0:e.properties)||{},n=i=>{const l=t[i];return l&&(l.type==="string"||Array.isArray(l.type)&&l.type.includes("string")||!l.type&&l["x-abstract-type"]==="string")},s=Object.keys(t).filter(i=>{var l;return((l=t[i])==null?void 0:l["x-abstract-role"])==="prompt"&&n(i)});return s.length?s.length===1?s[0]:void 0:["prompt","request","task","message","query","input"].find(n)}function Ff(e,t){var i,l,u;if(!e)return[];const n={...tr(e),...t},s=[];for(const d of Array.isArray(e.required)?e.required:[])n[d]===void 0&&s.push(`${((l=(i=e.properties)==null?void 0:i[d])==null?void 0:l.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(C=>JSON.stringify(C)===JSON.stringify(f))&&s.push(`${p} must be one of the available choices.`);const g=Array.isArray(m.type)?m.type:m.type?[m.type]:[];if(f===null&&(g.includes("null")||!g.length))continue;const b=Array.isArray(f)?"array":f===null?"null":typeof f,v=g.includes(b)?b:b==="number"&&g.includes("integer")?"integer":g[0];(v==="number"||v==="integer")&&(typeof f!="number"||!Number.isFinite(f)||v==="integer"&&!Number.isInteger(f))&&s.push(`${p} must be ${v==="integer"?"a whole number":"a number"}.`),typeof f=="number"&&m.minimum!==void 0&&f<m.minimum&&s.push(`${p} must be at least ${m.minimum}.`),typeof f=="number"&&m.maximum!==void 0&&f>m.maximum&&s.push(`${p} must be at most ${m.maximum}.`),v==="string"&&typeof f!="string"&&s.push(`${p} must be text.`),typeof f=="string"&&m.minLength!==void 0&&f.length<m.minLength&&s.push(`${p} must contain at least ${m.minLength} characters.`),v==="boolean"&&typeof f!="boolean"&&s.push(`${p} must be true or false.`),v==="array"&&!Array.isArray(f)&&s.push(`${p} must be a JSON array.`),v==="object"&&(f===null||typeof f!="object"||Array.isArray(f))&&s.push(`${p} must be a JSON object.`)}return s}function z_(e){const t=(e==null?void 0:e.properties)||{},n=[];for(const[s,i]of Object.entries(t)){const l=Wn(i);if(!(s==="provider"||s.endsWith("_provider")||String(l["x-abstract-type"]||"").startsWith("provider")))continue;const u=String(l["x-abstract-type"]||""),d=s.replace("provider","model"),f=Object.keys(t).filter(v=>{var C;return((C=t[v])==null?void 0:C["x-abstract-type"])===u.replace(/^provider/,"model")}),m=d!==s&&t[d]?d:f.length===1?f[0]:"";if(!m)continue;const p=s==="provider"?"":s.startsWith("provider_")?s.slice(9):s.endsWith("_provider")?s.slice(0,-9):u.replace(/^provider_?/,""),g=p&&p!=="text"?`${p}_`:"",b=[`${g}reasoning`,`${g}thinking`,`${g}reasoning_effort`,`reasoning_${p}`,`thinking_${p}`].find(v=>t[v]);n.push({provider:s,model:m,reasoning:b,title:g?g.replace(/_/g," ").trim():"Text model"})}return n}const xo=Fx(e=>at(e));function TA(e){try{const t=dw(e);return t?{provider:t.provider,model:t.model}:void 0}catch{return}}function RA(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 xo;const s=e==="voice_provider",i=we(n?`vision/provider_models?task=${n}`:s?"audio/speech/models?compact=true":"audio/music/models?task=text_to_music"),l=n?`${i}&providers_only=true`:we(s?"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 at(l);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,g;const f=await at(`${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])||((g=f.music_models_by_provider)==null?void 0:g[d])||f.models||f.items)}}}const IA=["gateway_default","on","off"],B_={status:"loading"};function MA(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,s=n==null?void 0:n.streaming;return!s||typeof s!="object"||s.deltas!==!0?{status:"unsupported",reason:"not supported by this gateway (it does not advertise live replies)"}:{status:"supported",gatewayDefault:typeof s.default=="boolean"?s.default:null}}function LA(e){return IA.includes(e)?e:"gateway_default"}function OA(e,t){return e==="on"&&t.status!=="supported"?"gateway_default":e}function PA(e,t,n){if(e!=="on"||t.status!=="unsupported"||!n.length)return null;const s=n.find(i=>i.role==="user")||n[0];return{after:s.id?String(s.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 DA(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 FA(e,t){const n=DA(e.frame.data),s=n?`call:${n}`:`error:${e.error.message}`;return{after:t,message:{id:`stream-replies:malformed:${e.runId}:${s}`,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 zA(e,t){return e.some(n=>n.message.id===t.message.id)?[...e]:[...e,t]}function BA(e,t){const n=t.filter(d=>!!d);if(!n.length)return[...e];const s=[],i=new Set;for(const d of e){s.push(d);for(const f of n)!i.has(f)&&f.after!==null&&String(d.id)===f.after&&(s.push(f.message),i.add(f))}const l=n.filter(d=>!i.has(d)&&d.after===null),u=n.filter(d=>!i.has(d)&&d.after!==null);return[...l.map(d=>d.message),...s,...u.map(d=>d.message)]}function WA(e){return e.status==="supported"&&e.gatewayDefault!==null?`Gateway default (${e.gatewayDefault?"on":"off"})`:"Gateway default"}const Qt="@default",an="abstractcode.agent.v1";function Os(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function zn(e){return typeof e=="string"&&e.trim()?e.trim():void 0}const UA="gateway does not report a default agent workflow";function VA(e,t=an){var p,g;const n=Os(e);if(!n)return{status:"unavailable",reason:"the gateway's workflow list could not be loaded"};const s=Os(n.default_agent_workflows);if(!s)return{status:"unavailable",reason:UA};const i=Os(s[t]);if(!i){const b=zn((g=Os((p=Os(n.default_agent_workflows_unavailable))==null?void 0:p[t]))==null?void 0:g.reason);return{status:"unavailable",reason:b?`no default workflow for ${t}: ${b}`:`gateway reports no default workflow for ${t}`}}const l=zn(i.bundle_id),u=zn(i.flow_id),d=zn(i.registry_scope);if(!l||!u||!d)return{status:"unavailable",reason:`gateway's default workflow for ${t} is missing its bundle, flow or registry scope`};const f=zn(i.bundle_version);return{status:"ok",workflow:{workflowId:zn(i.workflow_id)??`${l}${f?`@${f}`:""}:${u}`,bundleId:l,...f?{bundleVersion:f}:{},flowId:u,registryScope:d,name:zn(i.name)??u,...zn(i.source)?{source:zn(i.source)}:{}}}}function HA(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 GA(e,t,n=an){if(e.status!=="ok")return null;const s=e.workflow,i=t.find(l=>(l.registryScope??"private")===s.registryScope&&l.bundleId===s.bundleId&&l.flowId===s.flowId&&(!s.bundleVersion||l.bundleVersion===s.bundleVersion));return i||{id:`${s.registryScope}:${s.workflowId}`,workflowId:s.workflowId,bundleId:s.bundleId,...s.bundleVersion?{bundleVersion:s.bundleVersion}:{},flowId:s.flowId,name:s.name,description:"",interfaces:[n],registryScope:s.registryScope}}function zf(e,t=an){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 KA(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 JA(e,t){return e===Qt?ju:(t==null?void 0:t.workflowId)??e}function qA(e,t){return e===ju||!t?Qt:`${t.registryScope}:${t.value}`}function YA(e){const t=n=>n===Qt||e.visible.some(s=>s.id===n)||!!e.runId&&e.workflows.some(s=>s.id===n);return e.selection&&t(e.selection)?e.selection:e.preferred&&t(e.preferred)?e.preferred:Qt}function im(e){var n,s;const t=Os((s=Os((n=Os(e))==null?void 0:n.input_data))==null?void 0:s.workflow_selection);return zn(t==null?void 0:t.source)}function QA(e){var t;return im(e.restoredInputs)==="gateway_default"?Qt:(t=e.restored)==null?void 0:t.id}function XA(e){return!Os(e)||im(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 ZA(e){return e.selection===Qt?{flow_id:Qt,interface:e.interfaceId??an,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 e$(e){const t=Os(e);if(!t)return{text:"the gateway did not report which workflow it started",missing:!0};const n=zn(t.name)??zn(t.workflow_id)??zn(t.flow_id)??"unnamed workflow",s=zn(t.bundle_version);return{text:`running ${n}${s?` @${s}`:""}${t.source==="gateway_default"?" (gateway default)":""}`,missing:!1}}const Bf=25,t$=4,n$=e=>`runs?root_only=true&include_ledger_len=false&include_metrics=true&limit=${e}`;function s$(e){const t=(e==null?void 0:e.items)??(e==null?void 0:e.runs);return Array.isArray(t)?t.length:0}async function r$(e,t){let n=Math.max(1,t)*t$;for(;;){const s=await e(n);if((s==null?void 0:s.has_more)!==!0||s$(s)<n||pu(s).length>t)return s;n*=2}}function a$(e,t){return{sessions:e.slice(0,t),hasMore:e.length>t}}const Wf={gatewayDefault:{status:"loading"},executable:{status:"idle",data:null,error:""},workflows:[],policy:null,tools:[],sessions:[],capabilities:{},capabilitiesLoading:!0,sessionToolPolicy:null,capabilitiesError:"",toolCatalog:[],toolWarnings:[],streaming:B_,loading:!1,sessionsLoaded:!1,errors:[],hasMore:!1,archivedSessions:0};function o$(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 i$(e,t){const[n,s]=y.useState(Wf),i=y.useRef(Bf),l=y.useRef(0),u=y.useRef(),d=y.useRef(0),f=y.useRef(),m=y.useRef({identity:"",values:{}}),p=y.useCallback(k=>r$(T=>at(we(n$(T)),{signal:k}),i.current),[]),g=k=>a$(pu(k,m.current.values),i.current),b=y.useCallback(async(k,T,$)=>{const j=()=>d.current!==T||$.aborted,A=g(k).sessions.filter(S=>!S.prompt&&!(S.firstRunId in m.current.values));for(let S=0;S<A.length;S+=4){if(j()||(await Promise.all(A.slice(S,S+4).map(async M=>{try{const I=await at(we(`runs/${encodeURIComponent(M.firstRunId)}/input_data`),{signal:$});j()||(m.current.values[M.firstRunId]=I)}catch(I){!$.aborted&&(I==null?void 0:I.status)===401&&t()}})),j()))return;s(M=>({...M,sessions:g(k).sessions}))}},[t]),v=y.useCallback(async()=>{var $;if(!e)return;const k=++d.current;($=f.current)==null||$.abort();const T=new AbortController;f.current=T,s(j=>({...j,loading:!0}));try{const j=await p(T.signal);if(d.current!==k)return;const A=g(j);s(S=>({...S,loading:!1,sessions:A.sessions,sessionsLoaded:!0,hasMore:A.hasMore,archivedSessions:Dy(j),errors:S.errors.filter(M=>!M.startsWith("Conversations: "))})),await b(j,k,T.signal)}catch(j){if(T.signal.aborted||d.current!==k)return;(j==null?void 0:j.status)===401&&t(),s(A=>({...A,loading:!1,errors:[...A.errors.filter(S=>!S.startsWith("Conversations: ")),`Conversations: ${Ct(j)}`]}))}},[e,p,b,t]),C=y.useCallback(async()=>{var ie,F;const k=++l.current,T=++d.current;(ie=f.current)==null||ie.abort(),(F=u.current)==null||F.abort();const $=new AbortController;if(u.current=$,m.current.identity!==e&&(m.current={identity:e,values:{}}),!e){s(Wf);return}s(D=>({...D,loading:!0,capabilitiesLoading:!0,errors:[],executable:{...D.executable,status:"loading",error:""}}));const j=D=>at(we(D),{signal:$.signal}),A=await Promise.allSettled([j("bundles?all_versions=true&include_drafts=false"),j("workspace/policy"),j("discovery/tools"),p($.signal),j("discovery/capabilities"),j("workflow-catalog?scope=tenant"),j("config/capability-defaults"),j(gv(an))]);if(l.current!==k)return;const S=D=>A[D].status==="fulfilled"?A[D].value:void 0,M=[];A.forEach((D,L)=>{var J,B;D.status==="rejected"&&(((J=D.reason)==null?void 0:J.status)===401&&t(),!(L===5&&[403,404,501].includes((B=D.reason)==null?void 0:B.status))&&L!==7&&M.push(`${["Workflows","Workspace policy","Tools","Conversations","Capabilities","Shared workflows","Gateway defaults"][L]}: ${Ct(D.reason)}`))});let I=[];if(A[2].status==="fulfilled")try{I=BN(S(2))}catch(D){M.push(`Tools: ${Ct(D)}`)}const z=d.current===T,V=g(S(3));let Z;if(A[7].status==="rejected")Z={status:"error",data:null,error:`Workflows for this app: ${Ct(A[7].reason)}`};else try{Z={status:"ready",data:$S(S(7),an),error:""}}catch(D){Z={status:"error",data:null,error:String((D==null?void 0:D.message)||D)}}s(D=>({executable:Z,workflows:oA(S(0),S(5)),policy:S(1)?cA(S(1)):null,tools:uA(S(2)),sessions:z&&S(3)?V.sessions:D.sessions,sessionsLoaded:D.sessionsLoaded||!!(z&&S(3)),capabilities:o$(S(4)),capabilitiesLoading:!1,sessionToolPolicy:qN(S(4)),toolCatalog:I,toolWarnings:WN(S(2)),capabilitiesError:A[4].status==="rejected"?`Could not read the gateway's capabilities: ${Ct(A[4].reason)}`:"",streaming:MA(S(4),A[4].status==="rejected"?Ct(A[4].reason):void 0),defaultModel:TA(S(6)),gatewayDefault:VA(S(0)),loading:!1,errors:M,hasMore:z&&S(3)?V.hasMore:D.hasMore,archivedSessions:z&&S(3)?Dy(S(3)):D.archivedSessions})),z&&S(3)&&await b(S(3),T,$.signal)},[e,t,p,b]);y.useEffect(()=>(i.current=Bf,s(Wf),C(),()=>{var k,T;l.current+=1,d.current+=1,(k=u.current)==null||k.abort(),(T=f.current)==null||T.abort()}),[C]);const x=y.useCallback(()=>{i.current+=Bf,v()},[v]),N=y.useCallback(k=>{s(T=>({...T,sessions:T.sessions.filter($=>$.sessionId!==k),archivedSessions:T.archivedSessions+1})),v()},[v]);return{...n,refresh:C,loadMore:x,forgetSession:N}}async function Uf(e){if(e.inputSchema)return Fy(e.inputSchema);if(!e.bundleId)return;const t=encodeURIComponent(e.bundleId),n=encodeURIComponent(e.flowId),s=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 at(s),l=Fy(i);if(!l||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(l.required)||!l.required.length)return l;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=g=>{for(const[b,v]of Object.entries(d))if((g==null?void 0:g[b])!==v)throw new Error("The Gateway returned inputs for a different workflow version. Refresh workflows and retry.");if(e.registryScope==="tenant_catalog"&&(g==null?void 0:g.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 at(m);return f(p),EA(l,p.flow)}const Vf=e=>we(`runs/${encodeURIComponent(e)}`);function l$(e){return{getRun:(t,n)=>at(Vf(t),{signal:n}),getHistory:(t,n)=>at(`${Vf(t)}/history_bundle?include_subruns=true&include_session=true&ledger_mode=full`,{signal:n}),getLedger:(t,n,s)=>at(`${Vf(t)}/ledger?after=${n}&limit=200`,{signal:s}),streamLedger:(t,n,s,i,l,u)=>Wr.stream_ledger(t,{after:n,on_step:s,signal:i,on_open:l,on_delta:u,on_delta_error:(d,f)=>e.onDeltaError({runId:t,error:d,frame:f})}),submitCommand:(t,n)=>at(we("commands"),{method:"POST",body:JSON.stringify(t),signal:n})}}function Ms(e){return typeof e=="string"?e.trim():""}function c$(e){const t=e&&typeof e=="object"&&!Array.isArray(e)?e:{},s=(Array.isArray(t.skills)?t.skills:[]).flatMap(d=>{const f=d&&typeof d=="object"&&!Array.isArray(d)?d:null,m=Ms(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:Ms(f.description),trustLevel:Ms(f.trust_level)||"unverified",blocked:f.blocked===!0,requiresReview:f.requires_review===!0,reasons:Array.isArray(f.reasons)?f.reasons.map(Ms).filter(Boolean):[],source:p?{source:Ms(p.source),binding:Ms(p.binding),ambiguous:p.ambiguous===!0}:void 0}]}),i=Array.isArray(t.warnings)?t.warnings.map(Ms).filter(Boolean):[],l=Ms(t.shelf),u=Ms(t.shelf_source);return{skills:s.sort((d,f)=>d.name.localeCompare(f.name)),warnings:i,...l?{shelf:l}:{},...u?{shelfSource:u}:{}}}function u$({inventory:e}){return a.jsxs("div",{className:"code-skills-empty",role:"status",children:[a.jsx("p",{children:a.jsx("strong",{children:"This gateway offers no skills."})}),e.warnings.length?e.warnings.map((t,n)=>a.jsx("p",{children:e.shelf?t:`The gateway has no skill shelf: ${t}`},`${t}:${n}`)):a.jsx("p",{children:"The gateway gave no reason for the empty list."}),e.shelf?a.jsxs("p",{className:"code-field-help",children:["Skill shelf: ",a.jsx("code",{children:e.shelf}),e.shelfSource?` (source: ${e.shelfSource})`:""]}):a.jsx("p",{className:"code-field-help",children:"The gateway did not report a skill shelf location."})]})}function d$(e){var s;const t=e.trustLevel.replace(/[_-]+/g," "),n=(s=e.source)!=null&&s.source?`Adopted from ${e.source.source}`:"Source has no adoption record";return`Trust: ${t}. ${n}${e.requiresReview?". Review required":""}.`}function f$({skill:e,checked:t,disabled:n,onChange:s,lockedReasonId:i}){const l=e.reasons.join(" ")||"Blocked by gateway policy.",u=e.blocked?`Blocked by the gateway: ${l}`:n?"Available when a gateway is connected and no run is in progress.":null;return a.jsx("div",{className:"code-field code-skill-row",children:a.jsx(Br,{variant:"row",action:"skill",label:e.name,description:a.jsxs(a.Fragment,{children:[e.description?a.jsx("span",{className:"code-skill-row__desc",children:e.description}):null,a.jsx("span",{className:"code-skill-row__trust",children:d$(e)})]}),checked:t,unavailableReason:u,describedBy:!e.blocked&&n?i:void 0,onChange:s})})}function h$({value:e,onChange:t,disabled:n,lockedReasonId:s}){const[i,l]=y.useState({skills:[],warnings:[]}),[u,d]=y.useState(""),[f,m]=y.useState(!0),[p,g]=y.useState(""),[b,v]=y.useState(0);y.useEffect(()=>{const k=new AbortController;return m(!0),g(""),at(we("skills"),{signal:k.signal}).then(T=>{k.signal.aborted||l(c$(T))}).catch(T=>{k.signal.aborted||g(Ct(T))}).finally(()=>{k.signal.aborted||m(!1)}),()=>k.abort()},[b]);const C=y.useMemo(()=>new Set(e.map(Ms).filter(Boolean)),[e]),x=y.useMemo(()=>{const k=u.trim().toLocaleLowerCase();return k?i.skills.filter(T=>`${T.name}
|
|
91
|
-
${T.description}
|
|
92
|
-
${T.trustLevel}`.toLocaleLowerCase().includes(k)):i.skills},[i.skills,u]),N=(k,T)=>{const $=T?[...C,k]:[...C].filter(j=>j!==k);t([...new Set($)])};return a.jsxs("section",{className:"code-settings-section","aria-labelledby":"code-skills-heading",children:[a.jsx("h3",{id:"code-skills-heading",children:"Skills"}),a.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."}),a.jsxs("label",{className:"code-field",children:["Find a skill",a.jsx("input",{type:"search",value:u,onChange:k=>d(k.target.value),disabled:n||f,placeholder:"Search names, descriptions, or trust"})]}),f?a.jsx("p",{className:"code-muted",role:"status",children:"Loading skills from the gateway…"}):null,p?a.jsxs("div",{className:"code-inline-error",role:"alert",children:["Skill selection is unavailable: ",p," ",a.jsx("button",{className:"code-text-button",type:"button",onClick:()=>v(k=>k+1),disabled:n,children:"Retry"})]}):null,i.warnings.length&&i.skills.length?a.jsxs("details",{className:"code-disabled-tools",children:[a.jsxs("summary",{children:["Gateway reported ",i.warnings.length," skills warning",i.warnings.length===1?"":"s"]}),i.warnings.map((k,T)=>a.jsx("p",{children:k},`${k}:${T}`))]}):null,!f&&!p&&!i.skills.length?a.jsx(u$,{inventory:i}):null,!f&&!p&&i.skills.length&&!x.length?a.jsx("p",{className:"code-muted",children:"No skills match your search."}):null,x.map(k=>a.jsx(f$,{skill:k,checked:C.has(k.name),disabled:n,lockedReasonId:s,onChange:T=>N(k.name,T)},k.name))]})}const m$="code-settings-locked",rr={provider:"",model:"",reasoning:"",maxIterations:"",maxTokens:"",system:"",workspace:null,toolLayer:{},skills:[],workflow:"@default",streamReplies:"gateway_default"};function p$({tab:e,value:t,onChange:n,toolCatalog:s,toolWarnings:i,toolsNotice:l,automationTools:u,disabled:d,defaultModel:f,workflowDefault:m,streaming:p=B_,lockedReasonId:g=m$,workspaceRootFixed:b,hideStreamReplies:v,lockedText:C,connected:x=!1,automationFolders:N=!1,workspaceRequest:k,sessionId:T,onOpenDefaultWorkspaces:$,workspaceRefreshKey:j}){const A=S=>n({...t,...S});return a.jsxs(a.Fragment,{children:[d?a.jsx("p",{className:"code-notice",id:g,children:C||"Settings are unavailable while disconnected or while a run is active. Reconnect, or finish or stop the run, then try again."}):null,e==="model"?a.jsxs(a.Fragment,{children:[a.jsx("section",{className:"code-settings-section","aria-label":"Model",children:a.jsx(yu,{defaultModeLabel:m?"Workflow default":"Gateway default",value:t,onChange:A,disabled:d,effectiveDefault:f,enableSpeculation:!0,inheritLabel:"Gateway default",fetchProviders:xo.fetchProviders,fetchModels:xo.fetchModels,fetchModelCapabilities:xo.fetchModelCapabilities,...m?{defaultHint:f?`Workflow default: ${f.provider} · ${f.model}.`:void 0}:{fetchGatewayDefault:xo.fetchGatewayDefault}})}),a.jsxs("section",{className:"code-settings-section",children:[a.jsx("h3",{children:"Behavior"}),a.jsxs("div",{className:"code-field-pair",children:[a.jsxs("label",{className:"code-field",children:["Iteration limit",a.jsx("input",{type:"number",min:1,step:1,placeholder:"Workflow default",value:t.maxIterations,disabled:d,onChange:S=>A({maxIterations:S.target.value})})]}),a.jsxs("label",{className:"code-field",children:["Context token limit",a.jsx("input",{type:"number",min:1,step:1,placeholder:"Gateway default",value:t.maxTokens,disabled:d,onChange:S=>A({maxTokens:S.target.value})})]})]}),a.jsxs("label",{className:"code-field",children:["Additional instructions",a.jsx("textarea",{rows:5,value:t.system,placeholder:"Project conventions or guidance for this conversation…",disabled:d,onChange:S=>A({system:S.target.value})})]}),a.jsx("p",{className:"code-field-help",children:"Reasoning and additional instructions depend on the selected workflow and model."}),v?null:a.jsx(g$,{value:t.streamReplies,onChange:S=>A({streamReplies:S}),disabled:d,streaming:p})]})]}):e==="workspace"?a.jsxs("section",{className:"code-settings-section",children:[b?a.jsxs("p",{className:"code-field-help","data-setting":"workspace-root-fixed",children:["Runs work in the automation workspace ",a.jsx("code",{title:b,children:b.split(/[\\/]/).filter(Boolean).pop()||b}),"."]}):null,a.jsx(C_,{connected:x,request:k,sessionId:T,onOpenDefaults:$,refreshKey:j,automation:N?{value:t.workspace,onChange:S=>A({workspace:S})}:void 0})]}):e==="tools"?a.jsxs("section",{className:"code-settings-section",children:[l?a.jsxs("p",{className:"code-notice",role:"status",children:[l.text,a.jsx("button",{type:"button","aria-label":"Dismiss notice",onClick:l.onDismiss,children:"Dismiss"})]}):null,a.jsx(i1,{catalog:s,layer:"app",value:t.toolLayer,onChange:S=>A({toolLayer:S}),onReset:()=>A({toolLayer:{}}),disabled:d,warnings:i,savedWhere:u?"Saved in this automation's definition":Fv,note:u?"Auto tools run without asking at every occurrence; Ask tools wait for you; Off tools are not offered. Gateway restrictions always apply.":"Auto tools run without asking, also when this app is closed; Ask tools wait for you; Off tools are not offered. Gateway restrictions always apply."})]}):a.jsx(h$,{value:t.skills,onChange:S=>A({skills:S}),disabled:d,lockedReasonId:g})]})}function g$({value:e,onChange:t,disabled:n,streaming:s}){const i=s.status!=="supported",l=s.status==="unsupported"?`Unavailable: ${s.reason}. Replies appear when they are complete.`:s.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 a.jsxs(a.Fragment,{children:[a.jsxs("label",{className:"code-field",children:["Stream replies",a.jsxs("select",{"aria-label":"Stream replies","aria-describedby":"code-stream-replies-help",value:e,disabled:n||i,onChange:u=>t(u.target.value),children:[a.jsx("option",{value:"gateway_default",children:WA(s)}),a.jsx("option",{value:"on",children:"On"}),a.jsx("option",{value:"off",children:"Off"})]})]}),a.jsx("p",{id:"code-stream-replies-help",className:"code-field-help","data-streaming":s.status,children:l})]})}const zy="Your Permissions setting became per-tool defaults on this device — review them";function Hf(e){return`abstractcode.tools.migrated.v1:${e}`}function y$(e){const t=e&&typeof e=="object"?e:{},n=typeof t.permissions=="string"?t.permissions:"default",s=t.toolsCustomized===!0;return!s&&(n==="default"||!n)?null:{tools:t.tools&&typeof t.tools=="object"?t.tools:void 0,toolsCustomized:s,permissions:n}}function w$(e,t){if(!Mo(e))return!1;const n=e.riskRank??4;return t==="read"?e.gatewayDefault==="auto"||n<=1:t==="write"?n<=2||["write_file","edit_file"].includes(e.name):!1}function v$(e,t){var d,f,m;const n={},s=e.toolsCustomized===!0&&((d=e.tools)==null?void 0:d.mode)==="custom",i=new Set(Array.isArray((f=e.tools)==null?void 0:f.selected)?e.tools.selected.filter(p=>typeof p=="string"):[]),l=e.toolsCustomized===!0?((m=e.tools)==null?void 0:m.approval)||{}:{},u=String(e.permissions||"default");for(const p of t){if(!p.offered)continue;if(s&&!i.has(p.name)){n[p.name]="off";continue}const g=l[p.name];g==="approve"?n[p.name]="auto":g==="ask"?n[p.name]="ask":(u==="all"?Mo(p):w$(p,u))&&(n[p.name]="auto")}return Lo(t,{app:n}).app}function _$(e,t){const n=Yh(e,{app:t}),s={...t};for(const i of e)Mo(i)&&n[i.name].mode==="ask"&&(s[i.name]="auto");return Lo(e,{app:s}).app}function b$(e,t){const n=Yh(e,{app:t}),s=e.filter(i=>Mo(i)&&n[i.name].mode!=="off");return s.length>0&&s.some(i=>i.gatewayDefault!=="auto")&&s.every(i=>n[i.name].mode==="auto")}function x$(e,t){const n={};for(const[s,i]of Object.entries(t))i!=="auto"&&(n[s]=i);return Lo(e,{app:n}).app}const el=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},zc=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim()!==""):[];function W_(e,t){const n=el(e),s=el(n._runtime),i=Array.isArray(s.allowed_tools)?zc(s.allowed_tools):Array.isArray(n.tools)?zc(n.tools):null,l=el(s.tool_policy),u={};for(const d of t)i&&!i.includes(d.name)&&(u[d.name]="off");for(const d of zc(l.require_approval_tools))u[d]!=="off"&&(u[d]="ask");for(const d of zc(l.auto_approve_tools))u[d]!=="off"&&(u[d]="auto");return Lo(t,{app:u}).app}function k$(e,t,n,s={}){const i={...el(e)};if(lu(n,{app:t}))return Dv(i,Jc(n,{app:t},s));const l={...el(i._runtime)};return delete i.tools,delete l.allowed_tools,delete l.tool_policy,Object.keys(l).length?i._runtime=l:delete i._runtime,i}function U_(e){return`abstractcode.workspace.v2:${e}`}function j$(e){try{const{showAllWorkflows:t,tools:n,toolsCustomized:s,permissions:i,toolLayer:l,legacyTools:u,...d}=JSON.parse(e||"{}"),f=y$({tools:n,toolsCustomized:s,permissions:i})??(u&&typeof u=="object"?u:null),m=typeof d.workflow=="string"&&d.workflow.trim()?d.workflow.trim():rr.workflow;return{...rr,...d,workflow:m,speculation:Th(d.speculation),streamReplies:LA(d.streamReplies),toolLayer:{},...f?{legacyTools:f}:{}}}catch{return rr}}function V_(e){try{return j$(localStorage.getItem(U_(e)))}catch{return rr}}function S$(e,t){const{workflow:n,toolLayer:s,...i}=t,l=n&&n!=="@default"?{...i,workflow:n}:i;try{localStorage.setItem(U_(e),JSON.stringify(l))}catch{}}const Sh=we("accounts/me/preferences");function Nh(e){var n;const t=ma((n=ma(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 ma(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Ch(e,t=an){var i;const n=ma(e);if(!n||!Array.isArray(n.apps)||!ma((i=ma(n.preferences))==null?void 0:i.default_workflow))throw new Error("The gateway's account preferences answer has no apps or default_workflow.");const s=n.apps.map(ma).find(l=>(l==null?void 0:l.interface)===t);if(!s)throw new Error(`The gateway's account preferences have no row for ${t}.`);if(typeof s.gateway_default_label!="string"||!Array.isArray(s.choices))throw new Error(`The gateway's account preferences row for ${t} has no gateway_default_label or choices.`);return{interface:t,value:typeof s.value=="string"&&s.value.trim()?s.value:null,state:typeof s.state=="string"?s.state:"default",reason:typeof s.reason=="string"&&s.reason?s.reason:null,gatewayDefaultLabel:s.gateway_default_label,choices:s.choices.map(ma).filter(Boolean).map(l=>({value:String(l.value),label:String(l.label??l.name??l.value),workflowId:String(l.workflow_id??"")}))}}function N$(e){const t=String(e||"").trim();if(!t||t===Qt)return null;const n=t.startsWith("tenant_catalog:")?"catalog":t.startsWith("private:")?"private":"",s=n?t.slice(t.indexOf(":")+1):t,i=s.indexOf(":");if(i<=0)return null;const l=s.slice(0,i).split("@")[0],u=s.slice(i+1);return!l||!u?null:n==="catalog"?`catalog:${l}:${u}`:`${l}:${u}`}function C$(e,t){if(!e)return Qt;const n=e.startsWith("catalog:"),s=n?e.slice(8):e,i=s.indexOf(":");if(i<=0)return Qt;const l=s.slice(0,i),u=s.slice(i+1),d=t.find(f=>f.bundleId===l&&f.flowId===u&&(f.registryScope??"private")==="private"!==n);return d?d.id:Qt}function E$(e){return e instanceof Error?e.message:String(e)}function By(e){const t=e;return typeof(t==null?void 0:t.status)=="number"?t.status:0}async function A$(e,t,n){let s,i;try{const l=await e(Sh);s=Ch(l),i=Nh(l)}catch(l){return By(l)===404?{status:"unsupported"}:{status:"error",message:E$(l)}}if(t&&t!==Qt){let l=!0;if(s.value===null){const u=N$(t);if(u)try{const d=await e(Sh,{method:"PUT",body:JSON.stringify({default_workflow:{[an]:u}})});s=Ch(d),i=Nh(d)}catch(d){l=By(d)===400}}l&&n()}return{status:"ok",row:s,timeZone:i}}function $$(e,t){const[n,s]=y.useState({status:"loading"}),i=y.useRef(t);i.current=t,y.useEffect(()=>{let f=!0;if(s({status:"loading"}),!!e)return A$(at,V_(e).workflow,()=>{f&&i.current()}).then(m=>{f&&s(m)}),()=>{f=!1}},[e]);const l=y.useCallback(async f=>{const m=await at(Sh,{method:"PUT",body:JSON.stringify(f)}),p=Ch(m),g=Nh(m);return s({status:"ok",row:p,timeZone:g}),{row:p,timeZone:g}},[]),u=y.useCallback(async f=>(await l({default_workflow:{[an]:f}})).row,[l]),d=y.useCallback(async f=>(await l({time_zone:f})).timeZone,[l]);return{state:n,save:u,saveTimeZone:d}}function T$(e){const{row:t}=e,[n,s]=y.useState(!1),[i,l]=y.useState(null),u=t.value??"",d=t.choices.some(f=>f.value===u);return a.jsxs("div",{className:"code-account-workflow","data-account-workflow":!0,children:[a.jsxs("label",{className:"code-field",children:["Default for new conversations",a.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;s(!0),l(null);try{await e.save(m),l({ok:!0,text:"Saved."})}catch(p){l({ok:!1,text:`Not saved. ${p instanceof Error?p.message:String(p)}`})}finally{s(!1)}},children:[a.jsx("option",{value:"",children:t.gatewayDefaultLabel}),u&&!d?a.jsx("option",{value:u,children:`${u} (no longer runs)`}):null,t.choices.map(f=>a.jsx("option",{value:f.value,title:f.workflowId||void 0,children:f.label},f.value))]})]}),t.state==="broken"&&t.reason?a.jsx("p",{className:"code-field-help code-workflow-resolved is-missing",role:"alert","data-account-workflow-reason":!0,children:t.reason}):a.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?a.jsx("p",{className:`code-field-help${i.ok?"":" is-error"}`,role:"status","data-account-workflow-note":!0,children:i.text}):null]})}function Wy(e){const[t,n]=y.useState(!1),[s,i]=y.useState(null);return a.jsx("div",{className:"code-account-time-zone","data-account-time-zone":!0,children:a.jsx(LN,{id:"code-account-time-zone",block:e.block,disabled:e.disabled||t,note:s,onChange:async l=>{n(!0),i(null);try{await e.save(l),i({ok:!0,text:"Saved."})}catch(u){i({ok:!1,text:`Not saved. ${u instanceof Error?u.message:String(u)}`})}finally{n(!1)}}})})}const R$=wu("voice and camera")??"Voice and camera are not supported in this browser (getUserMedia unavailable).";function I$(){var t;const e=globalThis.navigator;return typeof((t=e==null?void 0:e.mediaDevices)==null?void 0:t.getUserMedia)=="function"}function M$(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 s=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=s==null?void 0:s.focus)==null||i.call(s)}catch{}}}async function L$(e){var s;const t=String(e??""),n=globalThis.navigator;if(typeof((s=n==null?void 0:n.clipboard)==null?void 0:s.writeText)=="function")try{return await n.clipboard.writeText(t),!0}catch{}return M$(t)}async function lm(e){const t=String(e??"");return t?L$(t):!1}const O$=e=>we(`runs/${encodeURIComponent(e)}/workspace`),rl=(e,t)=>fetch(e,{...t,credentials:"same-origin"});async function H_(e){await at(`${O$(e)}/open`,{method:"POST"})}function Uy(e,t){return typeof e.size_bytes!="number"?null:sm({name:e.name,size:e.size_bytes},t)}function P$(e,t){return t?t.state==="refused"?`Not attached: ${t.error||"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 D$(e,t,n,s){const i=Uy(t,n);if(i)return`Not attached: ${i}`;const l=new AbortController,u=await fetch(m_(e,t.path),{credentials:"same-origin",signal:l.signal});if(!u.ok)throw new Error(`Could not read ${t.name} (${u.status}): ${await u.text()}`);const d=Uy({...t,size_bytes:Xv(u)},n);if(d)return l.abort(),`Not attached: ${d}`;const f=await u.blob(),[m]=s([new File([f],t.name,{type:f.type})]);return P$(t.name,m)}function F$({runId:e,enabled:t,refreshKey:n,maxAttachmentBytes:s,onAttachFiles:i,heading:l="Conversation files"}){const[u,d]=y.useState(""),[f,m]=y.useState("");return e?a.jsxs(a.Fragment,{children:[u?a.jsx("p",{className:"code-field-help",role:"status",children:u}):null,t?a.jsx(nm,{fetchGateway:rl,runId:e,title:l,refreshKey:n,className:"code-workspace-browser",copyText:lm,onOpenFolder:()=>H_(e),fileActions:p=>a.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(""),D$(e,p,s,i).then(d).catch(g=>d(Ct(g))).finally(()=>m(""))},children:a.jsx(de,{name:f===p.path?"loader":"paperclip",size:15})})},e):null]}):a.jsxs("div",{className:"code-pane-empty",children:[a.jsx(de,{name:"folder",size:28}),a.jsx("p",{children:"This conversation's files appear here."}),a.jsx("small",{children:"Start a conversation; the files its workflow creates and edits are listed and previewed here."})]})}const z$=new Set(["abstract.progress","abstractcode.progress"]);function po(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function pa(e){const t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function B$(e){if(!po(e))return null;const t=po(e.effect)?e.effect:null;if(!t||String(t.type||"")!=="emit_event")return null;const n=po(t.payload)?t.payload:null,s=String((n==null?void 0:n.name)??(n==null?void 0:n.event_name)??"").trim();if(!z$.has(s))return null;const i=po(e.result)?e.result:null,l=po(i==null?void 0:i.payload)?i==null?void 0:i.payload:null,u=po(n==null?void 0:n.payload)?n==null?void 0:n.payload:null,d=l||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 W$(e){let t=null;for(const n of e||[]){const s=B$(n);s&&(t=s)}return!t||t.phase==="complete"||t.final===!0?null:t}function ko(e){return Math.round(e).toLocaleString()}function G_(e){if(!e||e.phase!=="prefill")return null;const t=pa(e.prompt_tokens),n=pa(e.prefill_processed_tokens);if(t===null||t<=0||n===null||n<0)return null;const s=Math.min(n,t),i=Math.min(99,Math.round(s/t*100));return{processed:s,total:t,percent:i}}function K_(e){return`${ko(e.processed)} / ${ko(e.total)} tokens (${e.percent}%)`}function U$(e){if(!e)return"";if(e.phase==="prefill"){const t=G_(e);if(t)return`Prefill · ${K_(t)}`;const n=pa(e.prompt_tokens);if(n===null||n<=0)return"Prefill";const s=pa(e.cached_tokens),i=pa(e.fed_tokens),l=[];s!==null&&s>0&&l.push(`${ko(s)} cached`),i!==null&&i>0&&l.push(`${ko(i)} new`);const u=l.length?` (${l.join(", ")})`:"";return`Prefill · ${ko(n)} tokens${u}`}if(e.phase==="generate"){const t=pa(e.generated_tokens)??0,n=Math.round(t)===1?"token":"tokens",s=pa(e.tokens_per_second),i=s!==null&&s>0?` · ${Math.round(s)} tok/s`:"";return`Generating · ${ko(t)} ${n}${i}`}return""}function V$(e){return U$(W$(e))}const J_=new Set(["abstract.progress","abstractcode.progress"]),H$=new Set(["abstract.status","abstractcode.status"]);function Je(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function cm(e){const t=Je(e);return!!(t&&t.$slim)}function Mt(e){const t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function Bn(e){return Math.round(e).toLocaleString("en-US")}function ln(e,t=120){const n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function Ji(e,t=120){var i,l;if(e==null)return"";if(typeof e=="string")return ln(e,t);if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e))return ln(e.length===0?"[]":`${e.length} ${e.length===1?"item":"items"}`,t);const n=Je(e);if(!n)return"";if(cm(n)){const u=String(((i=n.$slim)==null?void 0:i.field)||""),d=Mt((l=n.$slim)==null?void 0:l.bytes);return`${u||"payload"} stored${d?` · ${Bn(d)} bytes`:""}`}const s=[];for(const[u,d]of Object.entries(n)){const f=typeof d=="string"?ln(d,60):typeof d=="number"||typeof d=="boolean"?String(d):Array.isArray(d)?`${d.length} items`:d==null?"":"{…}";if(f&&(s.push(`${u.replace(/_/g," ")} ${f}`),s.join(" · ").length>=t))break}return ln(s.join(" · "),t)}function $u(e){return`${e>=100?String(Math.round(e)):e.toFixed(e<1?2:1).replace(/\.0+$/,"")} s`}function q_(e,t){const n=Date.parse(String(e||"")),s=Date.parse(String(t||""));if(!Number.isFinite(n)||!Number.isFinite(s))return null;const i=(s-n)/1e3;return i>=0?i:null}function G$(e){const t=String(e||""),n=/T(\d{2}:\d{2}:\d{2})/.exec(t);return n?n[1]:""}function Y_(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 cn(e,t=" · "){return e.filter(n=>!!n).join(t)}const Vy="visual_react_agent_";function K$(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 J$(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(Vy)){const s=t.slice(Vy.length),i=/^(.*)_(\d+)_(\d+)_(\d+)_([0-9a-f]{6,12})_(.+)$/.exec(s);if(i){let l=i[1];if(l.includes("__")){const u=l.split("__").filter(Boolean);for(let d=u.length-1;d>=0;d-=1){const f=K$(u[d]);if(f&&f.length>3){l=f;break}}}return{name:l,node:i[6]}}return{name:s,node:""}}return{name:t,node:""}}function q$(e){var n;if(!Array.isArray(e)||!e.length)return"";const t=new Map;for(const s of e){const i=String(((n=Je(s))==null?void 0:n.name)||"").trim()||"tool";t.set(i,(t.get(i)||0)+1)}return[...t.entries()].map(([s,i])=>i>1?`${s} ×${i}`:s).join(", ")}function Y$(e){var d;const t=Je(e);if(!t)return null;const n=Je(t.effect);if(!n||String(n.type||"")!=="emit_event")return null;const s=Je(n.payload),i=String((s==null?void 0:s.name)??(s==null?void 0:s.event_name)??"").trim();if(!J_.has(i))return null;const l=Je((d=Je(t.result))==null?void 0:d.payload),u=Je(s==null?void 0:s.payload);return l||u}function Q$(e){if(!e.length)return"";const t=e[e.length-1];let n=null,s=null,i=null,l=null,u=null;for(const p of e)n=Mt(p.prompt_tokens)??n,s=Mt(p.cached_tokens)??s,i=Mt(p.generated_tokens)??i,l=Mt(p.tokens_per_second)??l,u=Mt(p.elapsed_s)??u;if(t.final===!0||String(t.phase||"")==="complete")return cn([n!==null?`${Bn(n)} tokens in`:null,s!==null&&s>0?`${Bn(s)} cached`:null,i!==null?`${Bn(i)} out`:null,u!==null?$u(u):null,l!==null&&l>0?`${Math.round(l)} tok/s`:null]);const f=n!==null?`prefill ${Bn(n)} tokens${s!==null&&s>0?` (${Bn(s)} cached)`:""}`:"prefill";if(String(t.phase||"")==="prefill"){const p=G_(t);return p?`prefill ${K_(p)}`:f}const m=cn([`generating ${Bn(i??0)} ${Math.round(i??0)===1?"token":"tokens"}`,l!==null&&l>0?`${Math.round(l)} tok/s`:null]);return`${f} → ${m}`}function X$(e){if(!e.length)return"";const t=e[e.length-1],n=Mt(t.step)??Mt(t.index),s=Mt(t.total)??Mt(t.steps),i=Mt(t.percent)??Mt(t.progress),l=Mt(t.frame),u=Mt(t.elapsed_s);return cn([typeof t.label=="string"?ln(t.label,60):null,typeof t.phase=="string"&&!t.label?ln(t.phase,40):null,n!==null?`step ${Bn(n)}${s!==null?`/${Bn(s)}`:""}`:null,l!==null?`frame ${Bn(l)}`:null,i!==null?`${Math.round(i<=1?i*100:i)}%`:null,u!==null?$u(u):null])}function Hy(e){return e.length?String(e[e.length-1].kind||"")==="llm"?Q$(e):X$(e):""}function Z$(e,t,n){var k;const s=String(e.provider||"").trim(),i=Y_(e.model||(t==null?void 0:t.model)),l=cn(["llm",s,i])||"llm call";if(!t){const T=Je(e.params)||{};return{title:l,detail:cn([Mt(T.temperature)!==null?`temperature ${T.temperature}`:null,T.thinking?`thinking ${T.thinking}`:null,(k=Je(T.speculation))!=null&&k.mode?`speculation ${Je(T.speculation).mode}`:null])}}const u=Je(t.usage)||{},d=Je(t.metadata)||{},f=Je(d.prompt_cache)||{},m=Je(d.performance)||{},p=Mt(u.prompt_tokens)??Mt(u.input_tokens),g=Mt(u.completion_tokens)??Mt(u.output_tokens),b=Mt(f.cached_tokens),v=String(f.outcome||"").trim(),C=q_(n.started_at,n.ended_at),x=Mt(m.generation_tokens_per_second),N=Array.isArray(t.tool_calls)?t.tool_calls.length:0;return{title:l,detail:cn([p!==null?`${Bn(p)} tokens in`:null,b!==null&&b>0?`${Bn(b)} cached`:v?`${v} cache`:null,g!==null?`${Bn(g)} out`:null,C!==null?$u(C):null,x!==null&&x>0?`${Math.round(x)} tok/s`:null,N?`${N} tool ${N===1?"call":"calls"}`:null])}}function eT(e,t){if(t.length<=60)return ln(t,60);if(e==="url")try{const n=new URL(t),s=n.pathname.split("/").filter(Boolean).pop()||"";return ln(`${n.host}${s?` · …/${s}`:""}`,72)}catch{}if(e==="file path"||e==="path"){const n=t.split(/[\\/]/).pop()||t;return ln(`${n} · ${t.slice(0,24)}…`,60)}return ln(t,60)}function tT(e,t){const n=Array.isArray(e.tool_calls)?e.tool_calls:[],s=q$(n),i=Je(n[0]),l=i?t_(i.arguments):{label:"",value:""},u=Array.isArray(t==null?void 0:t.results)?t.results:[],d=u.filter(m=>{var p;return((p=Je(m))==null?void 0:p.success)===!0}).length,f=u.length-d;return{title:cn(["tools",s||"tool call"]),detail:cn([l.value?`${l.label} ${eT(l.label,l.value)}`:null,u.length?`${d} ok`:null,f>0?`${f} failed`:null])}}function nT(e,t){var m,p;const{name:n,node:s}=J$(e.workflow_id),i=Je(e.vars),l=i&&!cm(i)?i:null,u=Je(l==null?void 0:l.context),d=typeof(u==null?void 0:u.task)=="string"?u.task:typeof(l==null?void 0:l.request)=="string"?l.request:"",f=String(((p=Je((m=Je(t==null?void 0:t.wait))==null?void 0:m.details))==null?void 0:p.sub_run_id)||"").slice(0,8);return l&&typeof l.state=="string"&&!u?{title:"subflow · status",detail:cn([ln(l.state,80),f&&`run ${f}`])}:d?{title:"subflow · agent loop",detail:cn([n,ln(d,90),f&&`run ${f}`])}:{title:cn(["subflow",n||"workflow"]),detail:cn([s,l?Ji(l,80):null,f&&`run ${f}`])}}function sT(e,t){const n=e.until,s=q_(t.started_at,n),i=G$(n);return{title:s!==null?`wait · delay ${$u(s)}`:`wait · until ${i}`,detail:cn([s!==null&&i?`until ${i}`:null,e.resume_to_node?`resumes at ${e.resume_to_node}`:null])}}function Gy(e){var d;const t=Je(e)||{},n=Je(t.effect),s=String((n==null?void 0:n.type)||"").trim(),i=Je(n==null?void 0:n.payload)||{},l=Je(t.result);if(s==="emit_event"){const f=String(i.name??i.event_name??"").trim();if(J_.has(f))return{kind:"progress",title:"progress",detail:"",isProgress:!0,isStatus:!1,isResume:!1,hidden:!0};if(H$.has(f))return{kind:"event",title:"status",detail:Ji(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:Ji(i.payload??(l==null?void 0:l.payload),110),isProgress:!1,isStatus:!1,isResume:!1,hidden:!1}}if(s==="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(s==="llm_call")return{kind:"llm",...Z$(i,l,t),...u};if(s==="tool_calls")return{kind:"tools",...tT(i,l),...u};if(s==="start_subworkflow")return{kind:"subflow",...nT(i,l),...u};if(s==="wait_until")return{kind:"wait",...sT(i,t),...u};if(s==="wait_event")return{kind:"wait",title:"wait · event",detail:cn([typeof i.prompt=="string"?ln(i.prompt,90):null,!i.prompt&&i.wait_key?ln(String(i.wait_key),70):null]),...u};if(s==="ask_user")return{kind:"ask",title:"ask · your input",detail:ln(String(i.prompt||((d=Je(l==null?void 0:l.wait))==null?void 0:d.prompt)||"").split(`
|
|
93
|
-
`)[0],110),...u};if(s==="answer_user")return{kind:"message",title:"message",detail:ln(String(i.message||""),110),...u};if(!s){if((l==null?void 0:l.completed)===!0){const f=Je(l.output)||{},m=Je(f.stop_reason)||{},p=Mt(f.iterations),g=cn([String(m.code||f.outcome||"").replace(/_/g," ")||null,p!==null?`${Bn(p)} ${p===1?"iteration":"iterations"}`:null]),b=[f.answer,f.response,f.result].find(v=>typeof v=="string"&&v.trim());return{kind:"run",title:"run finished",detail:g||(typeof b=="string"?ln(b,110):Ji(f,110)),...u}}return{kind:"step",title:String(t.node_id||"workflow step"),detail:"",...u}}return{kind:"step",title:s.replace(/_/g," "),detail:Ji(i,110),...u}}function rT(e,t,n){var l,u;const s=Je(e)||{},i=String(s.status||"").trim();if(s.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=Je((l=Je(s.result))==null?void 0:l.wait);return String(((u=Je(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 aT(e){var i;const t=Je(e.record)||{},n=String(((i=Je(t.effect))==null?void 0:i.type)||"(none)"),s=String(t.idempotency_key||t.step_id||e.cursor);return`${e.runId}|${n}|${s}|${t.attempt??1}`}function oT(e){var f;const t=e.map(m=>Je(m.record)||{}),n=t[t.length-1]||{},s={};for(const m of t){const p=Je((f=Je(m.effect))==null?void 0:f.payload);if(p)for(const[g,b]of Object.entries(p))cm(b)&&g in s||(s[g]=b)}let i=null,l=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&&(l=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:s}:n.effect,result:i,error:l,started_at:u,ended_at:d}}function iT(e){var n,s;const t=[];for(const i of e){const l=Je((s=Je((n=Je(i.record))==null?void 0:n.result))==null?void 0:s.wait),u=String((l==null?void 0:l.wait_key)||"").trim();u&&t.push(u)}return t}function lT(e,t){return`${e}|${String(t.step_id||t.node_id||"")}`}function cT(e,t){const n=new Map;for(const l of t){const u=Y$(l.record);if(!u)continue;const d=lT(l.runId,u),f=n.get(d)||{entries:[],payloads:[]};f.entries.push(l),f.payloads.push(u),n.set(d,f)}if(!n.size)return e.map(l=>({...l}));const s=new Set,i=e.map(l=>{const u=l.stepIds.map(v=>`${l.runId}|${v}`).filter(v=>n.has(v));if(!u.length)return{...l};const d=[],f=[];for(const v of u)s.add(v),d.push(...n.get(v).payloads),f.push(...n.get(v).entries);const m=Hy(d),p=d[d.length-1],g=p.final===!0||String(p.phase||"")==="complete",b=!(g&&l.status==="completed"&&l.detail);return{...l,progress:b?m:"",progressFinal:g,progressEvents:f.map(v=>Je(v.record)||{})}});for(const[l,u]of n.entries()){if(s.has(l))continue;const d=u.payloads,f=d[d.length-1],m=String(f.kind||""),p=u.entries[0];i.push({key:`progress:${l}`,runId:p.runId,cursor:u.entries[u.entries.length-1].cursor,kind:"progress",title:cn(m==="llm"?["llm",String(f.provider||""),Y_(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:Hy(d),progressFinal:f.final===!0||String(f.phase||"")==="complete",entries:u.entries,progressEvents:u.entries.map(g=>Je(g.record)||{}),merged:Je(u.entries[u.entries.length-1].record)||{}})}return i}function um(e,t){var g,b,v,C;const n=String(t||((g=e==null?void 0:e[0])==null?void 0:g.runId)||""),s=new Map,i=[],l=[],u=new Map,d=new Map,f=[];for(const x of e||[]){const N=Gy(x.record);if(N.isProgress){f.push(x);continue}if(N.isStatus)continue;if(N.isResume){const T=String(((C=(v=Je((b=Je(x.record))==null?void 0:b.effect))==null?void 0:v.payload)==null?void 0:C.wait_key)||"").trim();T&&l.push(T);continue}const k=aT(x);d.set(x,d.size),u.set(x.runId,d.size-1),s.has(k)||(s.set(k,[]),i.push(k)),s.get(k).push(x)}const m=new Set(l),p=i.map(x=>{const N=s.get(x),k=oT(N),T=Gy(k),$=N[N.length-1],A=(u.get($.runId)??-1)>(d.get($)??1/0)||iT(N).some(M=>m.has(M)),S=rT(k,T.kind,A);return{key:x,runId:N[0].runId,cursor:N[N.length-1].cursor,kind:T.kind,title:T.kind==="run"&&n&&N[0].runId!==n?"subflow finished":T.title,detail:T.detail,status:S.status,statusLabel:S.statusLabel,nodeId:String(k.node_id||""),stepIds:[...new Set(N.map(M=>{var I;return String(((I=Je(M.record))==null?void 0:I.step_id)||"")}).filter(Boolean))],progress:"",progressFinal:!1,entries:N,progressEvents:[],merged:k}});return cT(p,f)}const uT=["running","waiting","failed","completed"],dT={running:"Running",failed:"Failed",completed:"Done"},fT=new Set(["waiting for you","approval needed"]);function hT(e,t){var i;if(e!=="waiting")return dT[e]||e;const n=t.filter(l=>l.status==="waiting");if(n.some(l=>fT.has(l.statusLabel)))return"Waiting for you";const s=((i=n[n.length-1])==null?void 0:i.statusLabel)||"waiting";return s.charAt(0).toUpperCase()+s.slice(1)}function mT(e){for(const t of uT)if(e.some(n=>n.status===t))return t;return e.length?e[e.length-1].status:"completed"}function pT(e){const t=[];let n=null,s=0;for(const i of e){if(i.kind==="llm"||!n){const l=i.kind==="llm";l&&(s+=1),n={key:`${l?"step":"start"}:${i.key}`,title:l?`Step ${s}`:"Start",detail:l?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=mT(i.rows),i.statusLabel=hT(i.status,i.rows);return t}function gT(e){return e.length?e[e.length-1].key:""}function yT({policy:e,runId:t,enabled:n,isAdmin:s,refreshKey:i,onAttach:l,onAttachFiles:u,includeArtifacts:d=!0}){const[f,m]=y.useState("session");return a.jsxs(a.Fragment,{children:[s?a.jsxs("div",{className:"code-files-mode",role:"group","aria-label":"Files source",children:[a.jsx("button",{"aria-pressed":f==="session",onClick:()=>m("session"),children:"This conversation"}),a.jsx("button",{"aria-pressed":f==="shared",onClick:()=>m("shared"),children:"Gateway files (admin)"})]}):null,s?a.jsx("div",{hidden:f!=="shared",children:a.jsx(NT,{policy:e,enabled:n&&f==="shared",runId:t,onAttach:l})}):null,a.jsx("div",{hidden:s&&f!=="session",children:a.jsx(F$,{runId:t,enabled:n&&(!s||f==="session"),refreshKey:i,maxAttachmentBytes:e==null?void 0:e.maxAttachmentBytes,onAttachFiles:u})}),d?a.jsxs("section",{className:"code-rail-section","aria-labelledby":"code-artifacts-title",children:[a.jsx("h3",{id:"code-artifacts-title",className:"code-rail-section-title",children:"Generated outputs & attachments"}),a.jsx($T,{runId:t,enabled:n,refreshKey:i})]}):null]})}function wT({records:e,runId:t}){const n=y.useMemo(()=>um(e,t),[e,t]);return n.length?a.jsx(Q_,{rows:n}):a.jsxs("div",{className:"code-pane-empty",children:[a.jsx(de,{name:"activity",size:28}),a.jsx("p",{children:"Follow the work as it happens."}),a.jsx("small",{children:"Model steps, tool calls and approvals appear here, one group per step."})]})}function vT(e,t){const n=um(e,t),s=n.filter(u=>u.status==="waiting").length,i=n.filter(u=>u.status==="running").length,l=[s?`${s} waiting`:"",i?`${i} running`:""].filter(Boolean);return{count:s+i,hint:l.join(" · ")}}function Q_({rows:e}){const t=y.useMemo(()=>pT(e),[e]),n=gT(t),[s,i]=y.useState({});return a.jsx("div",{className:"code-activity-groups",children:t.map(l=>{const u=s[l.key]??l.key===n;return a.jsxs("details",{className:`code-activity-group is-${l.status}`,"data-group":l.title,open:u,onToggle:d=>{const f=d.currentTarget.open;f!==u&&i(m=>({...m,[l.key]:f}))},children:[a.jsxs("summary",{children:[a.jsx(de,{name:"chevronRight",size:14,className:"code-activity-group-chevron"}),a.jsx("strong",{children:l.title}),l.detail?a.jsx("span",{className:"code-activity-group-detail",title:l.detail,children:l.detail}):a.jsx("span",{className:"code-activity-group-detail"}),a.jsx("span",{className:`code-step-dot is-${l.status}`,"aria-hidden":"true"}),a.jsx("small",{children:l.statusLabel})]}),u?a.jsx(_T,{group:l}):null]},l.key)})})}function _T({group:e}){const t=y.useMemo(()=>e.rows.flatMap(i=>i.entries.map(l=>({cursor:l.cursor,record:l.record,runId:l.runId}))),[e]),n=y.useMemo(()=>Xi(t).tools,[t]),s=e.rows.filter(i=>i.kind!=="tools");return a.jsxs("div",{className:"code-activity-group-body",children:[s.map(i=>a.jsx(xT,{row:i},i.key)),n.length?a.jsx(Zh,{tools:n}):null]})}const bT={llm:"sparkle",tools:"terminal",subflow:"agent",event:"info",wait:"history",ask:"chat",message:"send",run:"playCircle",progress:"loader",step:"list"};function xT({row:e}){const t=e.merged,n=t.effect||{};return a.jsxs("details",{className:`code-activity-row code-activity-row--${e.kind}`,children:[a.jsxs("summary",{children:[a.jsx("span",{className:"code-activity-icon","aria-hidden":"true",children:a.jsx(de,{name:bT[e.kind],size:14})}),a.jsxs("span",{className:"code-activity-text",children:[a.jsx("span",{className:"code-activity-title",children:e.title}),e.detail?a.jsx("span",{className:"code-activity-sub",children:e.detail}):null,e.progress?a.jsx("span",{className:"code-activity-progress",children:e.progress}):null]}),a.jsx("span",{className:`code-step-dot is-${e.status}`}),a.jsx("small",{children:e.statusLabel})]}),a.jsxs("div",{className:"code-activity-detail",children:[a.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`:""]}),a.jsx(So,{value:{input:n.payload,result:t.result,error:t.error,records:e.entries.map(s=>s.record),...e.progressEvents.length?{progress:e.progressEvents}:{}},collapseAfterDepth:2})]})]})}async function kT(e,t,n=2e3){var l;const s=[];let i=0;for(;s.length<n;){if(t!=null&&t.aborted)throw new DOMException("aborted","AbortError");const u=await Wr.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+s.length+1;s.push({cursor:m,record:(f==null?void 0:f.record)??f,runId:String(((l=f==null?void 0:f.record)==null?void 0:l.run_id)||e)})}if(!d.length||!u.next_after||u.next_after<=i)break;i=u.next_after}return s}function jT({occurrences:e,nowMs:t,loadRecords:n=kT,onOpenRun:s}){var f;const i=y.useMemo(()=>[...e].sort((m,p)=>p.index-m.index),[e]),l=((f=i[0])==null?void 0:f.run_id)||"",[u,d]=y.useState({});return i.length?a.jsx("div",{className:"code-activity-groups","data-scope":"automation",children:i.map(m=>{const p=u[m.run_id]??m.run_id===l,g=m.finished_at||m.fired_at;return a.jsxs("details",{className:`code-activity-group is-${m.status}`,"data-group":`Run #${m.index}`,open:p,onToggle:b=>{const v=b.currentTarget.open;v!==p&&d(C=>({...C,[m.run_id]:v}))},children:[a.jsxs("summary",{children:[a.jsx(de,{name:"chevronRight",size:14,className:"code-activity-group-chevron"}),a.jsxs("strong",{children:["Run #",m.index]}),a.jsx("span",{className:"code-activity-group-detail",children:g?a.jsx("time",{title:Io(g),children:Eo(g,t)}):null}),a.jsx("span",{className:`code-step-dot is-${m.status}`,"aria-hidden":"true"}),a.jsx("small",{children:m.status})]}),p?a.jsx(ST,{occurrence:m,loadRecords:n,onOpenRun:s}):null]},m.run_id)})}):a.jsxs("div",{className:"code-pane-empty",children:[a.jsx(de,{name:"activity",size:28}),a.jsx("p",{children:"No runs yet."}),a.jsx("small",{children:"Each run of this automation appears here as one group."})]})}function ST({occurrence:e,loadRecords:t,onOpenRun:n}){var u;const[s,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: ${Ct(f)}`})),()=>d.abort()},[e.run_id,e.status,t]);const l=y.useMemo(()=>s.status==="ready"?um(s.records,e.run_id):[],[s,e.run_id]);return a.jsxs("div",{className:"code-activity-group-body",children:[(u=e.failure)!=null&&u.message?a.jsx("p",{className:"code-error-text",role:"alert",children:e.failure.message}):null,s.status==="loading"?a.jsx("p",{className:"code-muted",role:"status",children:"Loading run activity…"}):null,s.status==="error"?a.jsx("p",{className:"code-error-text",role:"alert",children:s.message}):null,s.status==="ready"?l.length?a.jsx(Q_,{rows:l}):a.jsx("p",{className:"code-muted",children:"This run recorded no steps."}):null,n?a.jsxs("button",{type:"button",className:"code-subtle-button",onClick:()=>n(e.run_id),children:[a.jsx(de,{name:"chat",size:13})," ",a.jsx("span",{children:"Open as conversation"})]}):null]})}function NT({policy:e,enabled:t,runId:n,onAttach:s}){const[i,l]=y.useState(""),[u,d]=y.useState(""),[f,m]=y.useState([]),[p,g]=y.useState(!1),[b,v]=y.useState(""),[C,x]=y.useState(""),[N,k]=y.useState(0),[T,$]=y.useState("");return y.useEffect(()=>{const j=new AbortController;if(m([]),v(""),x(""),!t||!e)return;g(!0);const A=window.setTimeout(()=>{const S=new URLSearchParams({limit:"100"});i.trim()?S.set("query",i.trim()):u&&S.set("path",u),at(we(`files/${i.trim()?"search":"list"}?${S}`),{signal:j.signal}).then(M=>{if(M.error)throw new Error(String(M.error));m(Array.isArray(M.items)?M.items:[]),(M.truncated||M.has_more)&&x("Showing the first 100 results. Search to narrow the list.")}).catch(M=>{j.signal.aborted||v(Ct(M))}).finally(()=>{j.signal.aborted||g(!1)})},i?220:0);return()=>{window.clearTimeout(A),j.abort()}},[t,e,i,u,N,n]),a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"code-pane-intro",children:[a.jsx(de,{name:"terminal",size:17}),a.jsxs("div",{children:[a.jsx("strong",{children:"Gateway files (admin)"}),a.jsx("span",{children:u||"The gateway's files"})]}),a.jsx("button",{className:"code-icon-button","aria-label":"Refresh files",onClick:()=>k(j=>j+1),disabled:!t,children:a.jsx(de,{name:"refresh",size:14})})]}),a.jsx("input",{className:"code-search","aria-label":"Search workspace files",placeholder:"Search files…",value:i,onChange:j=>l(j.target.value),disabled:!t}),u?a.jsx("button",{className:"code-back",onClick:()=>{d(u.split("/").slice(0,-1).join("/")),l("")},children:"← Parent folder"}):null,t?null:a.jsx("p",{className:"code-pane-empty",children:"Connect to browse your workspace."}),p?a.jsx("p",{className:"code-muted",role:"status",children:"Loading files…"}):null,b?a.jsxs("div",{className:"code-inline-error",role:"alert",children:[b,a.jsx("button",{onClick:()=>k(j=>j+1),children:"Retry"})]}):null,C?a.jsx("p",{className:"code-field-help",role:"status",children:C}):null,a.jsx("ul",{className:"code-file-list",children:f.map(j=>{const A=j.kind==="folder"||j.is_dir||j.type==="directory"||j.type==="dir";return a.jsx("li",{children:a.jsxs("button",{title:A?`Show ${j.path}`:`Attach ${j.path} to the conversation`,disabled:!!T,onClick:async()=>{if(A){d(j.path),l("");return}$(j.path),v("");try{await s(j.path),x(`${j.name||j.path} attached.`)}catch(S){v(Ct(S))}finally{$("")}},children:[a.jsx(de,{name:A?"folder":"paperclip",size:14}),a.jsx("span",{children:j.name||j.path}),T===j.path?a.jsx(de,{name:"loader",size:13}):a.jsx(de,{name:A?"chevronRight":"plus",size:13,className:"code-file-action"})]})},j.path)})}),!p&&!b&&t&&!f.length?a.jsxs("div",{className:"code-pane-empty",children:[a.jsx(de,{name:"terminal",size:28}),a.jsx("p",{children:i?"No matching files.":"No shared files yet."}),a.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 CT(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 ET(e){var s;const t=String(e.artifact_id||e.id||""),n=String(e.content_type||e.mime_type||"");return{id:t,name:String(e.filename||((s=e.metadata)==null?void 0:s.filename)||e.name||CT(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 AT(e){return au(e)?"text":e==="image"||e==="pdf"||e==="audio"?"url":"none"}function $T({runId:e,enabled:t,refreshKey:n}){const[s,i]=y.useState([]),[l,u]=y.useState(""),[d,f]=y.useState(0),[m,p]=y.useState(null),[g,b]=y.useState({status:"loading"}),v=Date.now();y.useEffect(()=>{if(i([]),u(""),p(null),!e||!t)return;const x=new AbortController;return at(we(`runs/${encodeURIComponent(e)}/artifacts?limit=200`),{signal:x.signal}).then(N=>i((Array.isArray(N.items)?N.items:Array.isArray(N.artifacts)?N.artifacts:[]).map(ET))).catch(N=>{x.signal.aborted||u(Ct(N))}),()=>x.abort()},[e,t,d,n]),y.useEffect(()=>{if(!m)return;let x=!0,N="";return b({status:"loading"}),Wr.get_run_artifact_blob(e,m.id).then(async({blob:k,content_type:T})=>{const $=AT(sl(m.name,T));if($==="text"){const j=await k.slice(0,cu).text();x&&b({status:"ready",text:j,partial:k.size>cu,total:k.size,contentType:T})}else $==="url"?(N=URL.createObjectURL(k.type?k:new Blob([k],{type:T})),x&&b({status:"ready",url:N,partial:!1,contentType:T})):x&&b({status:"ready",partial:!1,contentType:T})}).catch(k=>x&&b({status:"error",message:`Preview failed: ${Ct(k)}`})),()=>{x=!1,N&&URL.revokeObjectURL(N)}},[e,m]);const C=x=>void EE(e,x.id,x.name).catch(N=>u(Ct(N)));return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"code-rail-toolbar",children:a.jsx("button",{className:"code-icon-button","aria-label":"Refresh outputs",title:"Refresh",onClick:()=>f(x=>x+1),children:a.jsx(de,{name:"refresh",size:14})})}),l?a.jsx("p",{role:"alert",className:"code-error-text",children:l}):null,m?a.jsx(Xh,{name:m.name,sizeBytes:m.size,modified:m.created,nowMs:v,contentType:g.status==="ready"?g.contentType:m.contentType,status:g.status,...g.status==="error"?{error:g.message}:{},...g.status==="ready"?{text:g.text,url:g.url,...g.partial?{partialNote:Zv(g.total)}:{}}:{},onDownload:()=>C(m),onClose:()=>p(null)}):s.length?a.jsx("ul",{className:"code-file-rows",children:s.map(x=>a.jsxs("li",{className:"code-file-row",children:[a.jsxs("button",{className:"code-file-row-name",title:`Preview ${x.name} · ${x.id}`,onClick:()=>p(x),children:[a.jsx(de,{name:"file",size:14}),a.jsx("span",{children:x.name})]}),a.jsxs("span",{className:"code-file-row-meta",children:[x.size!==void 0?a.jsx("span",{children:fl(x.size)}):null,x.created?a.jsx("time",{title:Io(x.created),children:Eo(x.created,v)}):null]}),a.jsx("button",{className:"code-icon-button","aria-label":`Download ${x.name}`,title:"Download",onClick:()=>C(x),children:a.jsx(de,{name:"download",size:14})})]},x.id))}):l?null:a.jsx("p",{className:"code-muted",children:"Generated files and attachments appear here."})]})}const TT=[{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"}],RT="abstractcode.rail.width.v1";function IT(e){return a.jsx(M0,{className:"code-rail",ariaLabel:"Workspace panels",idBase:"code-rail",storageKey:RT,active:e.panel,onActiveChange:t=>e.onPanel(t),panels:[...TT.map(t=>({id:t.id,label:t.label,icon:t.icon,defaultWidth:420,minWidth:320,maxWidth:900,content:e.content[t.id],...t.id==="activity"?{badge:e.activityBadge,hint:e.activityHint}:{}})),{...e.docs,minWidth:320,maxWidth:900}]})}const va=e=>e&&typeof e=="object"&&!Array.isArray(e)?{...e}:{},Ir=e=>typeof e=="string"?e:typeof e=="number"?String(e):"",MT=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim()!==""):[];function Pi(e,t=[]){const n=va(e),s=va(n._runtime),i=va(n._limits),l=Ir(n.provider)||Ir(s.provider),u=Ir(n.model)||Ir(s.model);return{...rr,provider:l&&u?l:"",model:l&&u?u:"",reasoning:Ir(s.thinking),...s.speculation!==void 0?{speculation:s.speculation}:{},maxIterations:Ir(i.max_iterations),maxTokens:Ir(i.max_tokens),system:Ir(s.system_prompt_extra),workspace:n.workspace&&typeof n.workspace=="object"&&Array.isArray(n.workspace.folders)?n.workspace:null,toolLayer:W_(n,t),skills:MT(n.skills),workflow:rr.workflow,streamReplies:"gateway_default"}}function Is(e,t,n){n==null||n===""||Array.isArray(n)&&!n.length?delete e[t]:e[t]=n}function Ky(e){const t=Number(e);return Number.isSafeInteger(t)&&t>0?t:void 0}function LT(e,t,n=[]){let s=va(e);const i=va(s._runtime),l=va(s._limits),u=!!(t.provider&&t.model);Is(s,"provider",u?t.provider:""),Is(s,"model",u?t.model:""),Is(i,"provider",u?t.provider:""),Is(i,"model",u?t.model:""),Is(i,"thinking",t.reasoning),Is(i,"speculation",t.speculation),Is(i,"system_prompt_extra",t.system.trim()),Is(l,"max_iterations",Ky(t.maxIterations)),Is(l,"max_tokens",Ky(t.maxTokens)),Object.keys(i).length?s._runtime=i:delete s._runtime,Object.keys(l).length?s._limits=l:delete s._limits,delete s.workspace_access_mode,t.workspace===null?(s.workspace&&typeof s.workspace=="object"&&delete s.workspace_allowed_paths,delete s.workspace):(s.workspace={posture:t.workspace.posture,default_mode:t.workspace.default_mode,folders:t.workspace.folders.map(m=>({path:m.path,mode:m.mode}))},delete s.workspace_allowed_paths),Is(s,"skills",t.skills);const d=W_(e,n),f=Lo(n,{app:t.toolLayer}).app;return $o(d)!==$o(f)&&(s=k$(s,t.toolLayer,n)),s}function OT(e,t,n=[]){const s=va(e.target.input_data),i=LT(s,t,n);return $o(s)===$o(i)?null:{target:{bundle_ref:e.target.bundle_ref,flow_id:e.target.flow_id,input_data:i}}}function $o(e){if(Array.isArray(e))return`[${e.map($o).join(",")}]`;if(e&&typeof e=="object"){const t=e;return`{${Object.keys(t).sort().map(n=>`${JSON.stringify(n)}:${$o(t[n])}`).join(",")}}`}return JSON.stringify(e)}const PT=700;function DT(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 X_(e){if(cl(e)){if(e.code==="revision_conflict")return"Not saved: the automation changed elsewhere. The latest revision is shown; make the change again.";const t=Ro(e);return`Not saved: ${t.title}${t.detail?` ${t.detail}`:""}`}return`Not saved: ${String((e==null?void 0:e.message)||e)}`}function FT(e,t,n=[]){const s=y.useRef(n);s.current=n;const i=(e==null?void 0:e.definition)??null,l=(e==null?void 0:e.summary.automation_id)??"",u=(i==null?void 0:i.revision)??0,[d,f]=y.useState(()=>Pi(i==null?void 0:i.target.input_data,s.current)),[m,p]=y.useState({status:"idle"}),g=y.useRef(null),b=y.useRef(null),v=y.useRef(i);v.current=i;const C=y.useRef(l);C.current=l;const x=y.useRef(t);x.current=t;const N=y.useRef({id:l,def:i}),k=async()=>{var S;b.current&&window.clearTimeout(b.current),b.current=null;const T=g.current;if(g.current=null,!T)return;const $=T.automationId===C.current?v.current:N.current.id===T.automationId?N.current.def:null;if(!$)return;const j=OT($,T.prefs,s.current);if(!j)return;const A=()=>T.automationId===C.current;A()&&p({status:"saving"});try{await x.current(T.automationId,j,$.revision),A()&&p({status:"saved",revision:$.revision+1})}catch(M){if(!A())return;p({status:"error",message:X_(M)}),f(Pi((S=v.current)==null?void 0:S.target.input_data,s.current))}};return y.useEffect(()=>{g.current&&g.current.automationId!==l&&k(),N.current={id:l,def:i},p({status:"idle"}),f(Pi(i==null?void 0:i.target.input_data,s.current))},[l]),y.useEffect(()=>{N.current={id:l,def:i},g.current||f(Pi(i==null?void 0:i.target.input_data,s.current))},[u]),y.useEffect(()=>{g.current||f(Pi(i==null?void 0:i.target.input_data,s.current))},[n]),y.useEffect(()=>()=>{b.current&&window.clearTimeout(b.current)},[]),!e||!i?null:{automationId:l,revision:u,draft:d,save:m,setSave:p,onChange:T=>{f(T),g.current={prefs:T,automationId:l},b.current&&window.clearTimeout(b.current),b.current=window.setTimeout(()=>void k(),PT)}}}function zT(e){return a.jsxs(a.Fragment,{children:[a.jsxs("p",{className:"code-settings-binding",children:[a.jsx("span",{children:"Automation"})," ",a.jsx("strong",{title:e.summary.title,children:e.summary.title}),a.jsxs("span",{className:"code-settings-revision","data-testid":"automation-revision",children:["Revision ",e.settings.revision]})]}),a.jsx("p",{className:`code-settings-save is-${e.settings.save.status}`,role:"status","aria-live":"polite",children:DT(e.settings.save)||"Changes are saved as a new revision and apply from the next run."})]})}function BT(e){const t=e.definition.revision,[n,s]=y.useState([]),i=e.settings.setSave;return a.jsx("div",{className:"code-automation-definition","data-revision":t,children:a.jsx(kv,{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:l=>{const u=qw(e.summary,l,e.definition);if(u===null){s(["Nothing changed."]);return}if("errors"in u){s(u.errors);return}s([]),i({status:"saving"}),(async()=>{const f=u;return l.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=>{cl(f)?i({status:"error",message:X_(f)}):(i({status:"idle"}),s([String((f==null?void 0:f.message)||f)]))})}},`${e.summary.automation_id}:${t}`)})}const Jy="—";function go(e){return typeof e=="string"&&e?e:void 0}function WT(e){return e.endsWith("+00:00")||e.endsWith("Z")}function Gf(e){if(!e||typeof e!="object")return e;const t=e,n={...e},s=go(t.next_run_at)??go(t.next_fire_at);let i=go(t.next_run_local),l=go(t.time_zone)??"";return!i&&!l&&s&&WT(s)&&(i=s,l="UTC"),s?n.next_run_at=s:delete n.next_run_at,i?n.next_run_local=i:delete n.next_run_local,n.time_zone=l,n.schedule_rule_text=go(t.schedule_rule_text)??Jy,n.schedule_text=go(t.schedule_text)??Jy,n}function UT(e){return{...e,listAutomations:async t=>{const n=await e.listAutomations(t);return{...n,items:(n.items??[]).map(Gf)}},getAutomation:async t=>{const n=await e.getAutomation(t);return n!=null&&n.summary?{...n,summary:Gf(n.summary)}:n},createAutomation:async t=>{const n=await e.createAutomation(t);return n!=null&&n.summary?{...n,summary:Gf(n.summary)}:n}}}const VT=3e4,Bc=50;function HT(){return xj({fetch:(e,t)=>fetch(e,{...t,credentials:"same-origin"}),baseUrl:"",headers:Cu})}function GT(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 KT(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 JT(e,t){return e===Qt?{flow_id:"@default",interface:an}:!(t!=null&&t.bundleId)||!t.flowId?null:{bundle_ref:t.bundleVersion?`${t.bundleId}@${t.bundleVersion}`:t.bundleId,flow_id:t.flowId}}function qT(e){return e.filter(t=>t.status!=="archived")}function YT(e){const t=e==null?void 0:e.archived_automations;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):0}function QT(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 XT(e,t,n,s){return{command_id:e,run_id:t,type:"resume",payload:{wait_key:n,payload:s},client_id:"abstractcode-web"}}function Z_(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 cs(e){return cl(e)?e:{status:0,code:"client_error",message:e&&typeof e=="object"&&"message"in e?String(e.message):String(e)}}function Kf(e,t){const n=new Map;for(const s of e)n.set(s.run_id,s);for(const s of t)n.set(s.run_id,s);return Array.from(n.values()).sort((s,i)=>i.index-s.index)}const ZT={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 eR(e){return async(t,n,s)=>{await at(we("commands"),{method:"POST",body:JSON.stringify(XT(e(),t,n,s))})}}class tR{constructor(t,n,s=[1500,4e3]){Dt(this,"state",{...ZT});Dt(this,"listeners",new Set);Dt(this,"listSeq",0);Dt(this,"detailSeq",0);Dt(this,"sourcesLoaded",!1);Dt(this,"client");Dt(this,"previewSchedule",t=>this.client.previewSchedule(t));this.answerWaitVia=n,this.followupsMs=s,this.client=UT(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 s,i=0;for(let l=0;l<200;l+=1){const u=await this.client.listAutomations({...t?{status:t}:{},...s?{cursor:s}:{},limit:Bc});if(s||(i=YT(u)),n.push(...u.items),!u.next_cursor)return{items:n,archivedCount:i};s=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:cs(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:s}=await this.listPages();if(this.loadEmailStatus(),t!==this.listSeq)return;const i=this.state.detail,l=i?n.find(u=>u.automation_id===i.automationId):void 0;this.set({items:n,archivedCount:s,loaded:!0,loading:!1,listError:null,...i&&l?{detail:{...i,summary:l}}:{}}),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:cs(n)})}}async select(t){var i;const n=t.trim(),s=++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[l,u]=await Promise.all([this.client.getAutomation(n),this.client.listOccurrences(n,{limit:Bc})]);if(s!==this.detailSeq)return;const d=this.state.items.find(f=>f.automation_id===n);if(this.set({detail:{automationId:n,summary:d??l.summary,definition:l.definition,occurrences:Kf([],u.items),nextCursor:u.next_cursor}}),!this.sourcesLoaded){const f=await this.client.listTriggerSources();this.sourcesLoaded=!0,this.set({triggerSources:f.items})}}catch(l){if(s!==this.detailSeq)return;this.set({error:cs(l)})}}async reloadDetail(t){const[n,s]=await Promise.all([this.client.getAutomation(t),this.client.listOccurrences(t,{limit:Bc})]),i=this.state.detail;if(!i||i.automationId!==t)return;const l=this.state.items.find(u=>u.automation_id===t);this.set({detail:{...i,summary:l??n.summary,definition:n.definition,occurrences:Kf(i.occurrences,s.items),nextCursor:i.occurrences.length>s.items.length?i.nextCursor:s.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:Bc}),s=this.state.detail;if(!s||s.automationId!==t.automationId)return;this.set({detail:{...s,occurrences:Kf(s.occurrences,n.items),nextCursor:n.next_cursor}})}catch(n){this.set({error:cs(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 cs(n)}finally{this.set({busy:!1})}}command(t,n,s){return this.busyCall(()=>this.client.sendAutomationCommand(t,{type:n,...s?{command_id:s}:{}}))}async toggleActive(t,n){this.set({rowError:null});try{return await this.command(t.automation_id,Kw(t),n)}catch(s){const i=cs(s);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,Tt.unarchive,n)}catch(s){const i=cs(s);throw this.set({rowError:{automationId:t,error:i}}),i}}revise(t,n,s,i){return this.busyCall(()=>this.client.reviseAutomation(t,{changes:n,...s!==null?{expected_revision:s}:{},...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 s of this.followupsMs)setTimeout(()=>void this.refresh(),s);return n}catch(n){throw cs(n)}finally{this.set({busy:!1})}}async discuss(t,n,s,i){this.set({busy:!0});try{const l=await this.client.discuss(t,{occurrence_index:n,prompt:s,...i?{request_id:i}:{}});return this.set({notice:Z_(n,l)}),l}catch(l){throw cs(l)}finally{this.set({busy:!1})}}async seen(t,n){try{await this.client.markSeen(t,n)}catch(s){throw cs(s)}}answerWait(t,n,s){return this.busyCall(async()=>{var l;const i=(((l=this.state.detail)==null?void 0:l.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,QT(i.kind,s))})}rowControls(t){return Co(t,[],this.state.busy)}reportError(t){this.set({error:cs(t)})}clearNotice(){this.set({notice:"",error:null})}}const qy={[Tt.pause]:"Automation paused.",[Tt.resume]:"Automation active.",[Tt.run_now]:"Run requested.",[Tt.stop_current]:"Stop requested.",[Tt.archive]:"Automation archived."},nR=[{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 Yy(e){const t=e&&typeof e=="object"&&"code"in e?e:null;if(t){const n=Ro(t);return{tone:"error",text:n.title,detail:n.detail}}return{tone:"error",text:e instanceof Error?e.message:String(e)}}function sR(e){const t=e.summary,n=Co(t,e.occurrences,e.busy),s=e.nowMs??Date.now(),i=jv(t,s),[l,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;l&&((x=m.current)==null||x.focus())},[l]);const p=(x,N,k)=>{f({tone:"busy",text:x}),N().then(()=>f({tone:"ok",text:k}),T=>f(Yy(T)))},g=(x,N)=>p(N,()=>e.onCommand(x),qy[x]??"Done."),b=x=>{x==="run_now"?g(Tt.run_now,"Starting a run…"):x==="stop_current"?g(Tt.stop_current,"Stopping…"):x==="revise"?e.onEdit():x==="archive"&&u(!0)},v=t.workspace_root||"",C=e.triggerSources.length?bv(t,e.triggerSources):null;return a.jsxs("header",{className:"code-auto-header","data-automation-id":t.automation_id,"aria-busy":e.busy||(d==null?void 0:d.tone)==="busy",children:[a.jsx("h2",{className:"code-auto-header__title",tabIndex:-1,children:t.title}),a.jsxs("div",{className:"code-auto-header__state",children:[a.jsx(F_,{variant:"inline",summary:t,busy:e.busy,onToggle:()=>p(t.status==="active"?"Pausing…":"Activating…",e.onToggleActive,qy[t.status==="active"?Tt.pause:Tt.resume])}),P_(t)?a.jsx(D_,{}):null,a.jsx("span",{className:"code-auto-header__timing","data-field":"timing",children:i.line})]}),a.jsx(M_,{summary:t,nowMs:s,className:"code-auto-header__notif"}),C?a.jsxs("p",{className:"code-auto-header__warn",role:"note","data-field":"trigger-problem",children:[a.jsx(de,{name:"warning",size:13})," ",a.jsx("span",{children:C})]}):null,v?a.jsxs("div",{className:"code-auto-header__workspace","data-field":"workspace",children:[a.jsx("span",{className:"code-auto-header__label",children:"Workspace"}),a.jsx("span",{className:"code-auto-header__folder",title:v,children:QE(v)}),a.jsx("button",{type:"button",className:"code-icon-button","data-action":"open-folder","aria-label":"Open folder",title:"Open folder",onClick:e.onOpenFolder,children:a.jsx(de,{name:"folder",size:15})}),a.jsx("button",{type:"button",className:"code-icon-button","data-action":"copy-path","aria-label":"Copy path",title:"Copy path",onClick:()=>void e.onCopyPath(v).then(x=>f(x?{tone:"ok",text:"Path copied."}:{tone:"error",text:"The browser refused the clipboard."}),x=>f(Yy(x))),children:a.jsx(de,{name:"copy",size:15})})]}):null,e.workspaces?a.jsxs("div",{className:"code-auto-header__workspaces-row","data-section":"workspaces",children:[e.workspaces,e.onEditWorkspaces?a.jsx("button",{type:"button",className:"code-icon-button","data-action":"edit-workspaces","aria-label":"Change workspaces",title:"Change workspaces",onClick:e.onEditWorkspaces,children:a.jsx(de,{name:"edit",size:15})}):null]}):null,l?a.jsxs("div",{className:"code-auto-header__confirm",role:"group","aria-label":"Confirm archive",children:[a.jsxs("p",{children:["Archive “",t.title,"”? It will not run again; its history stays readable."]}),a.jsxs("div",{className:"code-auto-header__actions",children:[a.jsxs("button",{ref:m,type:"button",className:"code-subtle-button code-danger-button","data-action":"archive-confirm",disabled:!n.archive.enabled,onClick:()=>{u(!1),g(Tt.archive,"Archiving…")},children:[a.jsx(de,{name:"archive",size:14})," ",a.jsx("span",{children:"Archive"})]}),a.jsx("button",{type:"button",className:"code-subtle-button","data-action":"archive-cancel",onClick:()=>u(!1),children:a.jsx("span",{children:"Keep it"})})]})]}):a.jsx("div",{className:"code-auto-header__actions",role:"toolbar","aria-label":"Automation controls",children:nR.map(x=>{const N=n[x.id],k=nl(x.id,t);return a.jsxs("button",{type:"button",className:`code-subtle-button${x.id==="archive"?" code-danger-button":""}`,"data-action":x.action,disabled:!N.enabled,title:N.enabled?k:`${N.reason??"Not available now."}
|
|
94
|
-
${k}`,onClick:()=>b(x.id),children:[a.jsx(de,{name:x.icon,size:14})," ",a.jsx("span",{children:x.label})]},x.id)})}),d?a.jsxs("p",{className:`code-auto-header__result is-${d.tone}`,role:d.tone==="error"?"alert":"status","data-field":"result",children:[a.jsx(de,{name:d.tone==="busy"?"loader":d.tone==="ok"?"check":"error",size:13}),a.jsxs("span",{children:[d.text,d.detail?` ${d.detail}`:""]})]}):null]})}const eb="abstractcode.automation.panels",Di={occurrences:!0,folder:!0};function rR(e){try{const t=e==null?void 0:e.getItem(eb);if(!t)return{...Di};const n=JSON.parse(t);if(!n||typeof n!="object")return{...Di};const s=n;return{occurrences:typeof s.occurrences=="boolean"?s.occurrences:Di.occurrences,folder:typeof s.folder=="boolean"?s.folder:Di.folder}}catch{return{...Di}}}function aR(e,t){try{t==null||t.setItem(eb,JSON.stringify(e))}catch{}}function oR(e,t){return{...e,[t]:!e[t]}}function Qy(){try{return typeof window<"u"?window.localStorage:null}catch{return null}}function iR(){const[e,t]=y.useState(()=>rR(Qy())),n=y.useCallback(s=>{t(i=>{const l=oR(i,s);return aR(l,Qy()),l})},[]);return[e,n]}const dm=e=>({toggle:`code-detail-${e}-toggle`,region:`code-detail-${e}`});function tb(e){const t=dm(e.panel);return a.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:[a.jsx(de,{name:"chevronDown",size:13}),a.jsx("span",{className:"code-detail-toggle__label",children:e.label}),typeof e.count=="number"?a.jsx("span",{className:"code-detail-toggle__count",children:e.count}):null]})}const lR=".af-auto__timeline",cR=".af-auto__more";function uR(e,t,n){const s=(e==null?void 0:e.querySelector(lR))??null;if(!s||!s.parentNode)return t.parentNode&&t.remove(),!1;s.id!==n&&(s.id=n);const i=(e==null?void 0:e.querySelector(cR))??null,l=i&&i.parentNode===s.parentNode?i:s;return(t.parentNode!==l.parentNode||t.nextSibling!==l)&&l.parentNode.insertBefore(t,l),!0}function dR(e,t){const n=y.useMemo(()=>{if(typeof document>"u")return null;const l=document.createElement("div");return l.className="code-detail-head code-detail-head--occurrences",l},[]),[s,i]=y.useState(!1);return y.useLayoutEffect(()=>{const l=e.current;if(!n||!l||!t){n==null||n.remove(),i(!1);return}const u=dm("occurrences").region,d=()=>i(uR(l,n,u));d();const f=new MutationObserver(d);return f.observe(l,{childList:!0,subtree:!0}),()=>{f.disconnect(),n.remove()}},[e,n,t]),s?n:null}function fR(e){let t=5381;for(let s=0;s<e.length;s++)t=t*33^e.charCodeAt(s);return(t>>>0).toString(16).padStart(8,"0").repeat(8).slice(0,32)}async function hR(e){var t;try{const n=globalThis,s=(t=n==null?void 0:n.crypto)==null?void 0:t.subtle;if(!s||typeof s.digest!="function")throw new Error("subtle crypto unavailable");const i=new TextEncoder().encode(e),l=await s.digest("SHA-256",i),u=new Uint8Array(l);let d="";for(const f of u)d+=f.toString(16).padStart(2,"0");return d}catch{return fR(e)}}const Xy=/^[a-zA-Z0-9_-]+$/;async function mR(e){const t=String(e||"").trim();if(!t)throw new Error("session_memory_owner_run_id: session_id is required");if(Xy.test(t)){const s=`session_memory_${t}`;if(Xy.test(s))return s}return`session_memory_sha_${(await hR(t)).slice(0,32)}`}function nb(){return at(we("voice/defaults"))}function pR(e,t){const n=new URLSearchParams({compact:"true"});return e&&n.set("provider",e),t&&n.set("model",t),at(we(`voice/voices?${n.toString()}`))}function gR(e){const t={description:e.description};return e.name&&(t.name=e.name),e.language&&(t.language=e.language),at(we("voice/design"),{method:"POST",body:JSON.stringify(t)})}function yR(e,t){const n=new FormData;return n.set("file",e,e.name||"recording.wav"),t.name&&n.set("name",t.name),t.language&&n.set("language",t.language),t.reference_text&&n.set("reference_text",t.reference_text),at(we("voice/clones"),{method:"POST",body:n})}const wR={design:gR,clone:yR};function vR(e){return{...wR,list:()=>at(we(Ex.clones)),rename:(t,n)=>at(we(nh(t)),{method:"PATCH",body:JSON.stringify(n)}),remove:t=>at(we(nh(t)),{method:"DELETE"}),...e?{share:t=>at(we(Ax(t)),{method:"POST"})}:{}}}const Tu={capture_mode:"hold",auto_send:!0};function _R({value:e,onChange:t,defaults:n,connected:s,isAdmin:i=!1,levelSource:l}){return a.jsx(IN,{value:e,onChange:t,fetchCatalog:pR,fetchDefaults:nb,defaults:n.value??void 0,overrideOwner:"this app",nested:!0,voiceLibrary:vR(i),rows:{capture:!0},captureDefaults:Tu,levelSource:l??null,unavailableReason:s?null:"Connect to a gateway to configure voice."})}async function bR(e,t){return e||mR(t)}const Zy=18e4;function sb({runId:e,sessionId:t,capability:n,scope:s,preferences:i,onTranscript:l,onError:u}){var g,b;const d=y.useRef(!0),f=y.useRef(s);f.current=s,y.useEffect(()=>(d.current=!0,()=>{d.current=!1}),[]);const m=()=>{if(!d.current||f.current!==s)throw new Error("Voice session changed.")},p=aj({...jN({...Tu,...i}),tts_stream:((g=n.tts)==null?void 0:g.available)===!0&&e?async function*(v,C){m(),yield*Xk({path:we(`runs/${encodeURIComponent(e)}/voice/tts/stream`),headers:Cu(),signal:C,body:{text:v,request_id:wa(),...NN(i)}})}:void 0,transcribe:((b=n.stt)==null?void 0:b.available)===!0&&(e||t)&&l?async(v,C)=>{var S;m();const x=Number(((S=n.stt)==null?void 0:S.max_upload_bytes)||0);if(x>0&&v.size>x)throw new Error("Recording exceeds the gateway's upload limit. Try a shorter recording.");const N=C.includes("mp4")?"m4a":C.includes("ogg")?"ogg":C.includes("wav")?"wav":"webm",k=new File([v],`recording.${N}`,{type:C||"audio/webm"}),T=await Wr.attachments_upload(t,k);m();let $;const j=await bR(e,t);m();const A=await Promise.race([Wr.audio_transcribe(j,{audio_artifact:T,request_id:wa(),...CN(i)}),new Promise((M,I)=>{$=setTimeout(()=>I(new Error(`the gateway did not answer within ${Zy/1e3} s`)),Zy)})]).finally(()=>clearTimeout($));return m(),{text:String(A.text||""),provider:A.provider??null,model:A.model??null}}:void 0,on_transcript:v=>{d.current&&f.current===s&&(l==null||l(v))},on_error:v=>{d.current&&f.current===s&&u(v)}});return y.useEffect(()=>{var v;return p.stop_tts(),(v=p.cancel_voice_ptt_recording)==null||v.call(p),()=>{var C;p.stop_tts(),(C=p.cancel_voice_ptt_recording)==null||C.call(p)}},[s,p.stop_tts,p.cancel_voice_ptt_recording]),p}function ew(e,t){const n=e.trimEnd();return n?`${n}
|
|
95
|
-
${t}`:t}function xR({voice:e,capability:t,preferences:n,route:s=""}){var i,l,u;return!((i=t.tts)!=null&&i.available)&&!((l=t.stt)!=null&&l.available)?null:a.jsxs(a.Fragment,{children:[(u=t.stt)!=null&&u.available?a.jsx(PN,{voice:e,mode:No(n.capture_mode??Tu.capture_mode),routeText:s,unavailableReason:I$()?null:R$,className:"code-voice-mic"}):null,e.tts_playback.status!=="idle"?a.jsx("button",{className:"code-icon-button","aria-label":"Stop spoken reply",onClick:e.stop_tts,children:a.jsx(de,{name:"x",size:14})}):null]})}const kR=lt.title;function tw(e){return`${kR}: ${e}`}function jR(e){return!!(e&&typeof e=="object"&&!Array.isArray(e)&&Array.isArray(e.folders))}function SR(e){var n,s;const t=(s=(n=e==null?void 0:e.target)==null?void 0:n.input_data)==null?void 0:s.workspace;return jR(t)?t:null}function NR(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(s=>({path:s.path,mode:s.mode}))},n)}const CR=3e4,nw=new WeakMap;function ER(e,t,n=Date.now()){let s=nw.get(e);s||nw.set(e,s=new Map);const i=JSON.stringify(t),l=s.get(i);if(l&&n-l.at<CR)return l.answer;const u=yh(e)(t).then(d=>d.summary);return u.catch(()=>s==null?void 0:s.delete(i)),s.set(i,{at:n,answer:u}),u}function AR(e){const[t,n]=y.useState(null),s=JSON.stringify(e.value);return y.useEffect(()=>{if(!e.connected){n(null);return}let i=!0;return ER(e.request,e.value).then(l=>i&&n(tw(l))).catch(l=>i&&n(tw(Kh(l)))),()=>{i=!1}},[e.request,e.connected,s,e.refreshKey]),t?a.jsx("span",{className:"code-auto-header__workspaces","data-field":"workspaces",title:t,children:t}):null}function $R(e,t,n={following:!1,epoch:0}){const s=y.useMemo(()=>new tR(HT(),eR(wa)),[e]),i=y.useSyncExternalStore(d=>s.subscribe(d),()=>s.state),[l,u]=y.useState(()=>typeof document>"u"||document.visibilityState!=="hidden");return y.useEffect(()=>{const d=()=>u(document.visibilityState!=="hidden");return document.addEventListener("visibilitychange",d),()=>document.removeEventListener("visibilitychange",d)},[]),y.useEffect(()=>{if(!e||!t||!l||n.following)return;s.refresh();const d=window.setInterval(()=>void s.refresh(),VT);return()=>window.clearInterval(d)},[s,e,t,l,n.following]),y.useEffect(()=>{if(!e||!t||!n.following)return;const d=window.setTimeout(()=>void s.refresh(),n.epoch?500:0);return()=>window.clearTimeout(d)},[s,e,t,n.following,n.epoch]),{ctl:s,state:i}}function TR(e,t){const n=[];return e&&n.push(`${e} waiting for you`),t&&n.push(`${t} new`),n.join(" · ")}function Eh({error:e}){if(!e)return null;const t=Ro(e);return a.jsxs("p",{className:"code-inline-error",role:"alert","data-code":e.code,children:[a.jsx("strong",{children:t.title})," ",t.detail]})}function RR(e){const t=e.open??!0,n=rm("automations"),s=e.state,i=qT(s.items),l=s.archived??[],u=e.attention,d=u?u.needsYou+u.newResults:s.items.reduce((m,p)=>m+p.attention.pending_waits+p.attention.unseen_count,0),f=u?TR(u.needsYou,u.newResults):`${d} waiting`;return a.jsxs("section",{className:"code-panel code-automations","aria-label":"Automations","data-open":t?"true":"false",children:[a.jsx(A_,{panel:"automations",open:t,onToggle:()=>{var m;return(m=e.onToggle)==null?void 0:m.call(e)},label:a.jsxs(a.Fragment,{children:["Automations",d?a.jsx("span",{className:"code-auto-badge","data-field":"attention-total",title:f,"aria-label":f,children:d}):null]}),actions:a.jsxs("span",{className:"code-auto-actions",children:[a.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:a.jsx(de,{name:"plus",size:13})}),a.jsx("button",{className:"code-icon-button","aria-label":"Refresh automations",disabled:!e.available.available||s.loading,onClick:e.onRefresh,children:a.jsx(de,{name:"refresh",size:13})})]})}),a.jsxs("div",{className:"code-auto-rows",id:n.region,role:"region","aria-labelledby":n.toggle,hidden:!t,children:[!e.discovering&&!e.available.available?a.jsx("p",{className:"code-history-empty",role:"note","data-unavailable":"true",children:e.available.reason}):null,a.jsx(Eh,{error:s.listError}),!s.loaded&&(e.discovering||e.available.available&&s.loading)?a.jsx(Ao,{children:"Loading automations…"}):null,e.available.available&&s.loaded&&!s.listError&&!s.items.length?a.jsx("p",{className:"code-history-empty",children:"No automations yet. + lets you choose a workflow and schedule."}):null,i.map(m=>{var p;return a.jsxs(gt.Fragment,{children:[a.jsx(wA,{summary:m,selected:e.selectedId===m.automation_id,busy:s.busy,nowMs:e.nowMs??Date.now(),onSelect:()=>e.onSelect(m.automation_id),onToggleActive:()=>{var g;return(g=e.onToggleActive)==null?void 0:g.call(e,m)}}),((p=s.rowError)==null?void 0:p.automationId)===m.automation_id?a.jsx(Eh,{error:s.rowError.error}):null]},m.automation_id)}),a.jsxs(T_,{list:"automations",count:s.archivedCount,open:e.archivedOpen===!0,onToggle:()=>{var m;return(m=e.onToggleArchived)==null?void 0:m.call(e)},children:[s.archived===null?a.jsx("li",{children:a.jsx(Ao,{children:"Loading archived automations…"})}):null,l.map(m=>{var p;return a.jsx(R_,{id:m.automation_id,title:m.title,busy:s.busy,error:((p=s.rowError)==null?void 0:p.automationId)===m.automation_id?Ro(s.rowError.error).title:void 0,onOpen:()=>e.onSelect(m.automation_id),onUnarchive:()=>{var g;return(g=e.onUnarchive)==null?void 0:g.call(e,m)}},m.automation_id)})]})]})]})}function IR(e,t){const n=e.state.detail;if(!n)return null;const s=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,l,u)=>e.revise(s,i,l,u==null?void 0:u.command_id),onCommand:(i,l,u)=>e.command(s,i,u==null?void 0:u.command_id),onDiscuss:async(i,l,u)=>{const d=await e.discuss(s,i,l,u==null?void 0:u.request_id);return t.openConversation(d.session_id,d.run_id,Z_(i,d)),d},onSeen:i=>e.seen(s,i),onLoadMore:()=>void e.loadMore(),onOpenRun:i=>t.openRun(i),onOpenWorkspace:i=>t.openWorkspace(i),onAnswerWait:(i,l,u)=>e.answerWait(i,l,u),emailStatus:e.state.emailStatus,...t.openMyEmail?{onOpenMyEmail:()=>{var i;return(i=t.openMyEmail)==null?void 0:i.call(t)}}:{}}}function MR(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 sw(e,t,n){if(t===e)return"Automation folder";const s=n.find(i=>i.run_id===t);return s?`Run #${s.index} folder`:"Run folder"}function LR(e){const t=e.panels.folder,n=dm("folder");return a.jsxs("div",{className:"code-auto-folder-section","data-open":t?"true":"false","data-folder":e.own?"automation":"run",children:[a.jsx("div",{className:"code-detail-head",children:a.jsx(tb,{panel:"folder",label:e.title,open:t,onToggle:e.onToggle})}),a.jsx("div",{className:"code-detail-region",id:n.region,hidden:!t,children:e.children})]})}function OR(e){const t=e.ctl.state,n=t.detail,[s,i]=y.useState({automationId:"",runId:""}),l=(n==null?void 0:n.automationId)??"",[u,d]=y.useState(""),f=sb({scope:l,runId:e.enabled?l:"",sessionId:l,capability:e.voiceCapability||{},preferences:e.voicePreferences||{},onError:d});y.useEffect(()=>d(""),[l]);const m=s.automationId===l&&s.runId?s.runId:l,p=IR(e.ctl,{...e.host,openWorkspace:x=>i({automationId:l,runId:x})}),[g,b]=iR(),v=y.useRef(null),C=dR(v,!!(n&&n.occurrences.length));return a.jsxs("main",{className:"code-conversation code-automation-main",id:"code-conversation",tabIndex:-1,"aria-label":"Automation",children:[a.jsxs("div",{className:"code-auto-main-head",children:[a.jsxs("button",{className:"code-subtle-button",onClick:e.onClose,children:[a.jsx(de,{name:"chat",size:14})," ",a.jsx("span",{children:"Back to the conversation"})]}),f.tts_playback.status!=="idle"?a.jsx("button",{type:"button",className:"code-subtle-button",onClick:f.stop_tts,children:"Stop spoken reply"}):null,t.notice?a.jsx("p",{className:"code-field-help",role:"status",children:t.notice}):null]}),n?a.jsxs("div",{className:"code-auto-main-body",ref:v,"data-occurrences":g.occurrences?"open":"closed",children:[u?a.jsx("p",{className:"code-inline-error",role:"alert",children:u}):null,a.jsx(sR,{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?a.jsx(AR,{request:Eu,connected:e.enabled,value:SR(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:l,runId:""}),g.folder||b("folder"),window.requestAnimationFrame(()=>{var x,N;return(N=(x=v.current)==null?void 0:x.querySelector(".code-auto-folder-section"))==null?void 0:N.scrollIntoView({block:"nearest"})})},onCopyPath:lm}),p?a.jsx(bE,{...p,hideHeader:!0,prepareTarget:e.prepareTarget,workflowPickerOptions:e.workflowPickerOptions,availableTools:e.availableTools,fetchGateway:rl,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,C?al.createPortal(a.jsx(tb,{panel:"occurrences",label:"Occurrences",count:n.summary.occurrence_count,open:g.occurrences,onToggle:()=>b("occurrences")}),C):null,e.enabled?a.jsx(LR,{panels:g,onToggle:()=>b("folder"),title:sw(n.automationId,m,n.occurrences),own:m===n.automationId,children:a.jsx(nm,{className:"code-auto-folder",fetchGateway:rl,runId:m,title:sw(n.automationId,m,n.occurrences),refreshKey:MR(n.summary),onClose:m!==n.automationId?()=>i({automationId:l,runId:""}):void 0})}):null]}):t.error?a.jsx(Eh,{error:t.error}):a.jsx(Ao,{children:"Loading automation…"})]})}function PR(e){const[t,n]=y.useState(),[s,i]=y.useState(null);y.useEffect(()=>{e.open||i(null)},[e.open]);const[l,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]),a.jsx(g0,{open:e.open,onClose:e.onClose,target:f||e.target,availableTools:e.availableTools,initialTools:f?null:e.initialTools,workflowPicker:e.workflowPickerOptions&&(f||e.target)?a.jsx(_v,{target:f||e.target,options:e.workflowPickerOptions,onChange:m}):a.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:a.jsx(C_,{connected:e.connected!==!1,automation:{value:s,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||l,error:t,onSubmit:async p=>{var g,b;if(!d.current){d.current=!0,u(!0);try{const v=await((b=e.buildInput)==null?void 0:b.call(e,String(((g=p.target.input_data)==null?void 0:g.prompt)||""),f)),C=v&&e.availableTools!==void 0?Mh(v,xu(p.target.input_data)):v,x=NR(C||p.target.input_data,s),N=await e.ctl.create({...p,target:{...p.target,input_data:x}});return e.onCreated(N.automation_id),e.onClose(),N}catch(v){throw n(cs(v)),v}finally{d.current=!1,u(!1)}}}})}const DR=()=>({cursor:0,waits:{},raised:{},seen:{},resolved:[],automationEpoch:0}),Sn=(e,t)=>typeof e[t]=="string"&&e[t]?e[t]:"",Jf=(e,t)=>typeof e[t]=="number"?e[t]:0,qf=(e,t,n="")=>`${e}\0${t}\0${n}`;function FR(e,t){const n=Number(t.sequence||0);if(n>0&&n<=e.cursor)return e;const s={cursor:Math.max(e.cursor,n),waits:{...e.waits},raised:{...e.raised},seen:{...e.seen},resolved:e.resolved,automationEpoch:e.automationEpoch},i=t.data||{};switch(t.type){case"attention.raised":{const l=Sn(i,"run_id"),u=Sn(i,"wait_key");if(l&&u){const d=Sn(i,"step_id");if(Sn(i,"record_key")&&e.resolved.includes(Sn(i,"record_key"))||d&&e.resolved.includes(`step:${qf(l,u,d)}`))break;s.waits[qf(l,u,d)]=Sn(i,"session_id")}else if(Sn(i,"automation_id")&&Jf(i,"seq")>0){const d=Sn(i,"automation_id"),f=Jf(i,"seq"),m=s.raised[d]||[];f>(s.seen[d]||0)&&!m.includes(f)&&(s.raised[d]=[...m,f]),s.automationEpoch+=1}break}case"attention.seen":{const l=Sn(i,"record_key");l&&(s.resolved=[...s.resolved,l].slice(-500));const u=Sn(i,"run_id"),d=Sn(i,"wait_key");if(u&&d){const m=Sn(i,"step_id");m&&(s.resolved=[...s.resolved,`step:${qf(u,d,m)}`].slice(-500));const p=`${u}\0${d}\0`;for(const g of Object.keys(s.waits))g.startsWith(p)&&(!m||g===p||g===p+m)&&delete s.waits[g]}const f=Sn(i,"automation_id");if(f){const m=Math.max(s.seen[f]||0,Jf(i,"seq"));s.seen[f]=m,s.raised[f]=(s.raised[f]||[]).filter(p=>p>m),s.automationEpoch+=1}break}case"run.started":case"run.finished":{if(t.type==="run.finished"&&Sn(i,"run_id")){const l=Sn(i,"run_id");for(const u of Object.keys(s.waits))u.startsWith(`${l}\0`)&&delete s.waits[u]}i.origin&&typeof i.origin=="object"&&i.origin.kind==="trigger"&&(s.automationEpoch+=1);break}case"trigger.event":case"wake.scheduled":case"wake.cancelled":s.automationEpoch+=1;break}return s}const zR=e=>Object.keys(e.waits).length,BR=e=>Object.entries(e.raised).reduce((t,[n,s])=>t+s.filter(i=>i>(e.seen[n]||0)).length,0);class WR{constructor(t){Dt(this,"fold",DR());Dt(this,"state","stopped");Dt(this,"listeners",new Set);Dt(this,"abort",null);Dt(this,"wakeUp",null);Dt(this,"generation",0);this.opts=t}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}emit(){for(const t of this.listeners)t()}set(t){this.state!==t&&(this.state=t,this.emit())}apply(t){let n=this.fold;for(const s of t)n=FR(n,s);n!==this.fold&&(this.fold=n,this.emit())}nudge(){var t,n;(t=this.wakeUp)==null||t.call(this),this.opts.live()||(n=this.abort)==null||n.abort()}start(){this.state==="stopped"&&(this.set("connecting"),this.generation+=1,this.loop(this.generation))}stop(){var t,n;this.set("stopped"),(t=this.abort)==null||t.abort(),(n=this.wakeUp)==null||n.call(this)}get fetcher(){return this.opts.fetch||((t,n)=>fetch(t,{...n,credentials:"same-origin"}))}sleep(t){return new Promise(n=>{const s=setTimeout(()=>{this.wakeUp=null,n()},t);this.wakeUp=()=>{clearTimeout(s),this.wakeUp=null,n()}})}async catchUp(){for(let t=0;t<100;t+=1){const n=await this.fetcher(we(`me/events?after=${this.fold.cursor}&limit=1000`),{headers:{Accept:"application/json"}});if(!n.ok)throw Object.assign(new Error(`me/events: HTTP ${n.status}`),{status:n.status});const s=await n.json();if(this.apply(Array.isArray(s==null?void 0:s.events)?s.events:[]),!(s!=null&&s.more))return}}async tail(){const t=new AbortController;this.abort=t;const n={Accept:"text/event-stream"};this.fold.cursor>0&&(n["Last-Event-ID"]=String(this.fold.cursor));try{const s=await this.fetcher(we("me/events/stream?heartbeat_s=15"),{headers:n,signal:t.signal});if(!s.ok)throw Object.assign(new Error(`me/events/stream: HTTP ${s.status}`),{status:s.status});if(!s.body)return;const i=s.body.getReader(),l=new TextDecoder("utf-8"),u=new j_;for(;;){const{value:d,done:f}=await i.read();if(f)return;const m=[];if(u.push(l.decode(d,{stream:!0}),p=>{try{const g=JSON.parse(p.data??"");g&&typeof g=="object"&&(typeof g.sequence!="number"&&p.id&&/^\d+$/.test(p.id)&&(g.sequence=Number(p.id)),m.push(g))}catch{}}),this.apply(m),this.state==="stopped"||!this.opts.live())return}}catch(s){if((s==null?void 0:s.name)==="AbortError")return;throw s}finally{this.abort===t&&(this.abort=null)}}async loop(t){let n=1e3;const s=this.opts.maxBackoffMs??3e4;for(;this.state!=="stopped"&&t===this.generation;){try{await this.catchUp(),this.set("following"),n=1e3,this.opts.live()?await this.tail():await this.sleep(this.opts.catchUpMs??6e4);continue}catch(i){const l=Number((i==null?void 0:i.status)||0);if(l===404)return this.set("unsupported");if(l===401||l===403)return this.set("stopped")}if(this.state==="stopped"||t!==this.generation)return;await this.sleep(n),n=Math.min(s,n*2)}}}function UR(e,t){const n=()=>typeof document>"u"||document.visibilityState!=="hidden",s=y.useMemo(()=>new WR({live:n}),[e]),i=y.useSyncExternalStore(d=>s.subscribe(d),()=>s.fold),[l,u]=y.useState(s.state);return y.useEffect(()=>s.subscribe(()=>u(s.state)),[s]),y.useEffect(()=>{if(!e||!t)return;s.start();const d=()=>s.nudge();return document.addEventListener("visibilitychange",d),()=>{document.removeEventListener("visibilitychange",d),s.stop()}},[s,e,t]),{fold:i,state:l}}function VR(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 s=e.key==="Home"?0:e.key==="End"?t.length-1:(n+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;t[s].focus(),t[s].click()}function HR(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)||[],s=[e.promptProperty||"prompt","context","messages","attachments"],i=["provider","model","tools","skills","max_iterations","use_context","use_session_history"],l=z_(e.schema).map(p=>[p.provider,p.model,p.reasoning].filter(g=>!!g)),u=new Set(t.filter(p=>n.includes(p)&&!s.includes(p)));for(const p of l)p.some(g=>u.has(g))&&p.forEach(g=>u.add(g));const d=new Set(t.filter(p=>!u.has(p)&&!s.includes(p)&&!i.includes(p)));for(const p of l)p.some(g=>d.has(g))&&p.forEach(g=>d.add(g));return a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"code-settings-section","aria-label":"Automatic agent configuration",children:[a.jsx("h3",{children:u.size?"Workflow inputs":"Ready to chat"}),a.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?a.jsx(Ah,{...e,omit:t.filter(p=>!u.has(p)),rawObject:!1}):null,d.size?a.jsxs("details",{className:"code-advanced-inputs",children:[a.jsxs("summary",{children:["Advanced workflow inputs"," ",a.jsx("span",{className:"code-muted",children:"Optional"})]}),a.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."}),a.jsx(Ah,{...e,omit:t.filter(p=>!d.has(p)),rawObject:!1})]}):null]})}function GR(e,t,n){var i;if(!n.length)return t;const s=(i=e==null?void 0:e.properties)==null?void 0:i.attachments;if(!s||s.type&&s.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 KR(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 Ah({schema:e,values:t,onChange:n,disabled:s=!1,omit:i=[],rawObject:l=!1,onEditorError:u,defaultModel:d}){const[f,m]=gt.useState("fields"),p=Object.entries((e==null?void 0:e.properties)||{}).filter(([x])=>!i.includes(x)),g=z_(e),b=new Set(g.flatMap(x=>[x.provider,x.model,x.reasoning].filter(Boolean))),v=x=>{m(x),u==null||u("")},C=p.length?a.jsx("div",{className:"code-input-fields",children:p.map(([x,N])=>{const k={...N,type:AA(N)},T=g.find(M=>M.provider===x);if(T)return a.jsxs("section",{className:"code-settings-section",children:[a.jsx("h3",{children:T.title}),a.jsx(yu,{value:{provider:String(t[T.provider]||""),model:String(t[T.model]||""),...T.reasoning?{reasoning:String(t[T.reasoning]||"")}:{}},onChange:M=>n({...t,[T.provider]:M.provider,[T.model]:M.model,...T.reasoning?{[T.reasoning]:M.reasoning||""}:{}}),...RA(T.provider,k["x-abstract-type"]),fetchModelCapabilities:T.reasoning?xo.fetchModelCapabilities:void 0,effectiveDefault:T.provider==="provider"?d:void 0,defaultHint:T.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:s})]},x);if(b.has(x))return null;const $=`workflow-input-${x}`,j=String(k.title||x).replace(/_/g," "),A=Array.isArray(e==null?void 0:e.required)&&e.required.includes(x),S=M=>{const I={...t};M===void 0?delete I[x]:I[x]=M,n(I)};return a.jsxs("div",{className:"code-field",children:[a.jsxs("label",{htmlFor:$,children:[j,A?a.jsx("span",{"aria-label":"required",children:" *"}):null]}),k.enum?a.jsxs("select",{id:$,value:t[x]===void 0?"":JSON.stringify(t[x]),disabled:s,onChange:M=>S(M.target.value?JSON.parse(M.target.value):void 0),children:[a.jsxs("option",{value:"",children:["Choose ",j]}),k.enum.map(M=>a.jsx("option",{value:JSON.stringify(M),children:String(M)},JSON.stringify(M)))]}):k.type==="boolean"?a.jsxs("select",{id:$,value:t[x]===void 0?"":String(t[x]),disabled:s,onChange:M=>S(M.target.value?M.target.value==="true":void 0),children:[a.jsx("option",{value:"",children:"Workflow default"}),a.jsx("option",{value:"true",children:"Yes"}),a.jsx("option",{value:"false",children:"No"})]}):k.type==="number"||k.type==="integer"?a.jsx("input",{id:$,type:"number",value:typeof t[x]=="number"?String(t[x]):"",min:k.minimum,max:k.maximum,step:k.type==="integer"?1:"any",disabled:s,onChange:M=>S(M.target.value===""?void 0:Number(M.target.value))}):k.type==="object"||k.type==="array"?a.jsx(qR,{id:$,value:t[x],disabled:s,onChange:S},x):a.jsx("textarea",{id:$,rows:2,value:String(t[x]??""),disabled:s,onChange:M=>S(M.target.value)}),k.description?a.jsx("p",{className:"code-field-help",id:`${$}-help`,children:k.description}):null]},x)})}):a.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 l?a.jsxs("div",{children:[a.jsxs("div",{className:"code-settings-tabs",role:"tablist","aria-label":"Workflow input editor",onKeyDown:VR,children:[a.jsx("button",{type:"button",role:"tab",tabIndex:f==="fields"?0:-1,"aria-selected":f==="fields",onClick:()=>v("fields"),children:"Fields"}),a.jsx("button",{type:"button",role:"tab",tabIndex:f==="json"?0:-1,"aria-selected":f==="json",onClick:()=>v("json"),children:"JSON payload"})]}),f==="json"?a.jsxs(a.Fragment,{children:[a.jsx(JR,{value:t,disabled:s,onChange:n,onError:x=>u==null?void 0:u(x)}),a.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."})]}):C]}):C}function JR({value:e,onChange:t,onError:n,disabled:s}){const[i,l]=gt.useState(JSON.stringify(e,null,2)),[u,d]=gt.useState(""),f=gt.useRef(e);return gt.useEffect(()=>{e!==f.current&&(f.current=e,l(JSON.stringify(e,null,2)),d(""),n(""))},[e,n]),a.jsxs("div",{className:"code-field",children:[a.jsx("label",{htmlFor:"workflow-input-payload",children:"Complete input object"}),a.jsx("textarea",{id:"workflow-input-payload",className:"code-mono",rows:12,value:i,disabled:s,"aria-invalid":!!u,onChange:m=>{l(m.target.value);const p=KR(m.target.value);if(!p.ok){d(p.error),n(p.error);return}f.current=p.value,d(""),n(""),t(p.value)}}),u?a.jsx("span",{role:"alert",className:"code-error-text",children:u}):null]})}function qR({id:e,value:t,onChange:n,disabled:s}){const[i,l]=gt.useState(t===void 0?"":JSON.stringify(t,null,2)),[u,d]=gt.useState(""),f=gt.useRef(t);return gt.useEffect(()=>{t!==f.current&&(f.current=t,l(t===void 0?"":JSON.stringify(t,null,2)),d(""))},[t]),a.jsxs(a.Fragment,{children:[a.jsx("textarea",{id:e,className:"code-mono",rows:4,value:i,disabled:s,"aria-invalid":!!u,onChange:m=>{l(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?a.jsx("span",{role:"alert",className:"code-error-text",children:u}):null]})}function YR({active:e,paused:t,snapshot:n,onRevokeApproval:s,onCommand:i,onActivity:l,onInteraction:u,permissionsAll:d}){const f=y.useMemo(()=>YC(n),[n]),m=y.useMemo(()=>f.tone==="working"?V$(n.records.map(N=>N.record)):"",[f.tone,n.records]),p=m||f.detail,[g,b]=y.useState(Date.now);y.useEffect(()=>{if(!e)return;const N=window.setInterval(()=>b(Date.now()),1e3);return()=>window.clearInterval(N)},[e]);const v=Date.parse(f.startedAt||""),C=Number.isFinite(v)?Math.max(0,Math.floor((g-v)/1e3)):null,x=C===null?"":C<60?`${C}s`:`${Math.floor(C/60)}m ${C%60}s`;return a.jsxs("div",{className:`code-run-strip code-run-strip--${f.tone}`,children:[a.jsxs("div",{className:"code-run-strip__activity",role:"status","aria-live":"polite",children:[a.jsx("span",{className:"code-run-strip__icon","aria-hidden":"true",children:a.jsx(de,{name:f.tone==="working"?"loader":f.tone==="success"?"check":f.tone==="error"?"error":f.tone==="waiting"?"history":"info",size:15})}),u&&f.tone==="waiting"?a.jsxs("button",{className:"code-run-strip__attention",onClick:u,title:"Go to the pending request",children:[a.jsx("strong",{children:f.label}),a.jsx(de,{name:"chevronRight",size:12})]}):a.jsx("strong",{children:f.label}),a.jsx("span",{className:`code-run-strip__detail${m?" code-run-strip__detail--live":""}`,title:p,children:p})]}),a.jsxs("span",{className:"code-run-strip__metrics","aria-label":"Run activity metrics",children:[e&&x?a.jsx("span",{children:x}):null,f.toolCalls?a.jsxs("span",{children:[f.toolCalls," ",f.toolCalls===1?"tool":"tools"]}):null,f.totalTokens!==void 0?a.jsxs("span",{children:[f.totalTokens.toLocaleString()," tokens"]}):null]}),e?a.jsxs(a.Fragment,{children:[a.jsxs("button",{onClick:()=>i(t?"resume":"pause"),children:[t?"Resume":"Pause"," "]}),a.jsx("button",{onClick:()=>i("conclude"),children:"Conclude"})]}):null,a.jsxs("button",{onClick:l,children:["View activity ",a.jsx(de,{name:"chevronRight",size:12})]}),d?a.jsxs("div",{className:"code-run-strip__consent",children:[a.jsx(de,{name:"check",size:13}),a.jsx("span",{children:"Auto: every enabled tool · this browser"}),a.jsx("button",{onClick:s,children:"Revoke"})]}):null]})}function Yf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Wc(e){return typeof e=="string"?e.trim():""}function QR(e){const t=Yf(e),n=Yf(t==null?void 0:t.gateway),s=Yf(n==null?void 0:n.principal);return JSON.stringify([Wc((t==null?void 0:t.gateway_url)??(t==null?void 0:t.gatewayUrl)),Wc((s==null?void 0:s.tenant_id)??(s==null?void 0:s.tenantId)),Wc((s==null?void 0:s.runtime_id)??(s==null?void 0:s.runtimeId)),Wc((s==null?void 0:s.user_id)??(s==null?void 0:s.userId))||"session"])}function rw(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 XR(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 ZR(e,t,n){return e.flatMap(s=>s.id===t.id?[]:s.sessionId!==t.sessionId||s.authEpoch!==t.authEpoch||s.sourceRunId!==t.sourceRunId?[s]:[{...s,sourceRunId:n}])}function Qf(){return new DOMException("The conversation changed before the run was attached.","AbortError")}const eI=Ck("abstractcode","0.12.0"),Xf=e=>["completed","failed","cancelled","canceled"].includes(e);function aw(){const e=new URLSearchParams(window.location.hash.replace(/^#/,""));return{sessionId:e.get("session")||wa(),runId:e.get("run")||""}}function Fi(e,t=""){const n=new URLSearchParams({session:e});t&&n.set("run",t),window.history.replaceState(null,"",`#${n}`)}function tI(){var kl,jl,Sl,Ba,Nl,Cl,El,ni,Al,$l,Tl,Rl,Il,Ml,Ll,Wa,mr,Ol,si,ri,ai;const e=ck({appName:"AbstractCode",variant:"blocking"}),t=e.connected?QR(e.status):"",n=y.useCallback(()=>{e.refresh()},[e.refresh]),s=i$(t,n),[i,l]=Pk("abstractcode",{defaults:{theme:"observer-night"}}),[u,d]=y.useState(!1),[f,m]=y.useState(0),p=y.useCallback(()=>m(O=>O+1),[]),[g,b]=zN(t?`abstractcode.voice:${t}`:null);y.useEffect(()=>{xt()},[t]);const[v,C]=y.useState(rr),x=y.useRef(v);x.current=v;const N=y.useMemo(()=>t?d1(t):null,[t]),[k,T]=y.useState({}),[$,j]=y.useState(!1);y.useEffect(()=>{T(N?N.readApp(an):{});let O=!1;try{O=!!t&&localStorage.getItem(Hf(t))==="pending"}catch{}j(O)},[N,t]);const A=y.useCallback(O=>{T(O),N==null||N.writeApp(an,Object.keys(O).length?O:null)},[N]),S=()=>{j(!1);try{localStorage.setItem(Hf(t),"dismissed")}catch{}},M=OA(v.streamReplies,s.streaming),[I,z]=y.useState(rr.workflow),V=y.useMemo(()=>KA(s.executable.data),[s.executable.data]),Z=y.useCallback(()=>C(O=>({...O,workflow:Qt})),[]),ie=$$(t,Z),F=ie.state.status==="ok",D=ie.state.status==="ok"?C$(ie.state.row.value,V):v.workflow,L=y.useRef(D);L.current=D;const J=y.useMemo(()=>GA(s.gatewayDefault,s.workflows),[s.gatewayDefault,s.workflows]),B=I===Qt?J:s.workflows.find(O=>O.id===I)||V.find(O=>O.id===I)||null,[Y,te]=y.useState(null),W=am(B),[R,K]=y.useState(aw),[ne,ue]=y.useState(""),[oe,ve]=y.useState(""),[Ne,q]=y.useState(""),[be,xe]=y.useState(!1),Pe=y.useRef(!1),[Qe,He]=y.useState([]),qe=y.useRef(null),[ge,$e]=y.useState(),nt=y.useRef(ge);nt.current=ge;const[et,Rt]=y.useState(!1),[ce,fe]=y.useState(""),[G,le]=y.useState(0),[he,Q]=y.useState({}),[_e,ae]=y.useState(""),[je,Le]=y.useState(null),[Fe,Xe]=y.useState(""),[Ie,Ge]=y.useState(null),De=Vc(Uc.md);y.useEffect(()=>{De&&Ge(null)},[De]);const mt=Ie!==null,xt=O=>{De&&Ge(null)},kt=O=>{Xt(!1),Ge(O)},Lt=O=>{O?kt("workflow"):Ie==="workflow"&&Ge(null)},ks=Vc(Uc.md),Po=Vc(Uc.lg),Yn=ME(Po,ks),Ps=y.useRef(Yn),[Ds,Xt]=y.useState(!1),[ka,Do]=JE(),[ar,ja]=ZE(),Fo=KT(s.capabilities),js=UR(t,e.connected),Sa=js.state==="following",{ctl:Kt,state:Ft}=$R(t,e.connected&&Fo.available,{following:Sa,epoch:js.fold.automationEpoch});y.useEffect(()=>{ar.automations&&Ft.loaded&&Ft.archivedCount>0&&Ft.archived===null&&Kt.loadArchived()},[ar.automations,Ft.loaded,Ft.archivedCount,Ft.archived,Kt]);const[zt,us]=y.useState(!1),[or,Ur]=y.useState(!1),zo=y.useRef(""),[Bo,Ru]=y.useState(""),Ss=y.useRef(null),[Ns,ds]=y.useState([]),[Wo,Qn]=y.useState(!1),[Uo,Na]=y.useState([]);y.useEffect(()=>{const O=v.legacyTools;if(!(!O||!N||s.loading||!s.toolCatalog.length)){if(!Object.keys(N.readApp(an)).length){const se=v$(O,s.toolCatalog);if(Object.keys(se).length){A(se),j(!0);try{localStorage.setItem(Hf(t),"pending")}catch{}q(`${zy} in Tools.`)}}C(({legacyTools:se,...Se})=>Se)}},[v.legacyTools,N,s.loading,s.toolCatalog,t,A]);const Ca=y.useRef(null),Iu=y.useMemo(()=>{var Re,Ue;const O=((Re=Ca.current)==null?void 0:Re.runId)===R.runId?Ca.current.input:null;if(R.runId&&!je&&!O)return{enabledTools:[],autoApproveTools:[]};const se=je?je.input_data:O,Se=(Ue=se==null?void 0:se._runtime)==null?void 0:Ue.allowed_tools;return VN(Jc(s.toolCatalog,{app:k},{ceiling:Array.isArray(Se)?Se:null}))},[s.toolCatalog,k,je,R.runId]),Vo=`${t}:${R.sessionId}:${R.runId}`,jt=y.useRef(Vo);jt.current=Vo;const pl=y.useRef(null),[Ea,gl]=y.useState({scope:"",notes:[]}),Aa=y.useMemo(()=>l$({onDeltaError:O=>{const se=jt.current,Se=FA(O,pl.current);gl(Re=>({scope:se,notes:zA(Re.scope===se?Re.notes:[],Se)}))}}),[]),{controller:Xn,snapshot:Ye}=mE({transport:Aa,runId:R.runId,enabled:e.connected,onAuthError:n,clientId:"abstractcode-web",authScopeKey:t,toolApprovalPolicy:Iu}),Cs=s.sessionToolPolicy;y.useEffect(()=>{if(!(!e.connected||s.capabilitiesLoading)){if(s.capabilitiesError){Xn.setSessionToolPolicyClient(null,{reason:s.capabilitiesError});return}Xn.setSessionToolPolicyClient((Cs==null?void 0:Cs.supported)===!0&&R.sessionId?QN((O,se)=>at(O,{method:se.method,...se.body===void 0?{}:{body:JSON.stringify(se.body)}}),R.sessionId,Cs,{client:"abstractcode-web"}):null)}},[Xn,e.connected,s.capabilitiesLoading,s.capabilitiesError,Cs,R.sessionId]);const Bt=!!R.runId&&!Xf(Ye.status)&&Ye.status!=="idle",Ho=((kl=Ye.run)==null?void 0:kl.paused)===!0||Ye.status==="paused",Wt=Bt||be,$a=Ye.loading&&Uo.length?Uo:Ye.messages,Ta=$a[$a.length-1];pl.current=Ta!=null&&Ta.id?String(Ta.id):null;const Fs=BA($a,[PA(v.streamReplies,s.streaming,$a),...Ea.scope===Vo?Ea.notes:[]]),ir=((Sl=(jl=s.capabilities)==null?void 0:jl.assistant)==null?void 0:Sl.voice)||{},Vr=DN(e.connected?nb:null,t),un=sb({scope:`${t}:${R.sessionId}:${R.runId}:${zt}`,runId:t?R.runId:"",sessionId:R.sessionId,capability:ir,preferences:g,onTranscript:O=>{(g.auto_send??Tu.auto_send)===!1?ue(se=>ew(se,O)):Da(O)},onError:ve}),Zn=[...Fs].reverse().find(O=>O.role==="assistant"),lr=Zn?String(Zn.id||Zn.content):"",Go=y.useRef({scope:"",id:""});y.useEffect(()=>{const O=`${t}:${R.sessionId}`,se=Go.current;if(se.scope!==O){Go.current={scope:O,id:lr};return}!lr||lr===se.id||Wt||(Go.current={scope:O,id:lr},g.read_aloud===!0&&un.tts_supported&&(Zn!=null&&Zn.content)&&un.toggle_tts(lr,Zn.content))},[t,R.sessionId,lr,Wt,g.read_aloud,un.tts_supported]);const Ra=cE(Ye),An=y.useMemo(()=>jE(Ra,Xn,{records:Ye.records,currentRun:Ye.run,onPermissionsAll:async()=>{A(_$(s.toolCatalog,k))},approveAllScope:"in this browser",sessionPolicy:{toolsetOf:O=>{var se;return(se=s.tools.find(Se=>Se.name===O))==null?void 0:se.toolset},ask:Object.entries(k).filter(([,O])=>O==="ask").map(([O])=>O)}}),[Ra,Ye.records,Ye.run,Ye.sessionPolicyMode,Ye.sessionPolicy,Ye.sessionPolicyClamped,Xn,s.tools,s.toolCatalog,k,A]),Un=W?"prompt":$A(ge),cr=W||!!(Un&&!((Ba=ge==null?void 0:ge.required)!=null&&Ba.some(O=>O!==Un))),ur=String(((Nl=je==null?void 0:je.workspace)==null?void 0:Nl.workspace_root)||((El=(Cl=Ye.run)==null?void 0:Cl.vars)==null?void 0:El.workspace_root)||""),zs=y.useMemo(()=>{var O;return lA(s.workflows,{inputData:je,runWorkflowId:(O=Ye.run)==null?void 0:O.workflow_id})},[s.workflows,je,(ni=Ye.run)==null?void 0:ni.workflow_id]),rt=R.runId&&je&&!s.loading&&Ye.run&&!zs&&im(je)!=="gateway_default"?"This conversation's exact workflow version is unavailable. Restore it in the gateway, or start a new conversation with an available workflow.":"",dn=s.sessions.find(O=>O.sessionId===R.sessionId),Hr=(dn==null?void 0:dn.prompt)||((Al=Fs.find(O=>O.role==="user"))==null?void 0:Al.content)||"New conversation",Ia=GT(($l=e.status)==null?void 0:$l.gateway_url),Ma=Ia?()=>{window.open(Ia,"_blank","noopener,noreferrer")}:void 0,La={...Ma?{openMyEmail:Ma}:{},openConversation:(O,se,Se)=>{zo.current=Se||"",hs(O,se)},openRun:O=>{at(we(`runs/${encodeURIComponent(O)}`)).then(se=>{if(!(se!=null&&se.session_id))throw new Error(`The gateway reported no session for run ${O}.`);hs(se.session_id,O)}).catch(se=>Kt.reportError(se))}},Ko=O=>{(!zt||Ft.selectedId!==O)&&(us(!0),Kt.select(O)),Xt(!1),Ge("workflow")},Jo=O=>{Ko(O),Ge("workspace")},Gr=async O=>{const se=O.flow_id==="@default"?J:s.workflows.find(Ut=>`${Ut.bundleId}@${Ut.bundleVersion}`===("bundle_ref"in O?O.bundle_ref:"")&&Ut.flowId===O.flow_id);if(!se)throw new Error("The selected workflow is no longer available. Refresh the workflow list.");const Se=await Uf(se);if(!Se)throw new Error("Workflow inputs could not be checked. Refresh the workflow list and try again.");const Re={...tr(Se),...O.input_data},Ue=Ff(Se,Re);if(Ue.length)throw new Error(`${Ue.join(" ")} Configure a new automation from that workflow's input form, or choose a compatible workflow.`);return{...O,input_data:Re}},fs=((Tl=Ft.detail)==null?void 0:Tl.summary.title)||"Automation",es=y.useRef(""),Vn=y.useRef(t),Ot=y.useRef(0);Vn.current!==t&&(Ot.current+=1,Vn.current=t);const Bs=y.useRef(!1),St=y.useRef(R);St.current=R;const bn=eE({upload:O=>Wr.attachments_upload(St.current.sessionId,O),maxBytes:(Rl=s.policy)==null?void 0:Rl.maxAttachmentBytes}),qo=[...Qe,...bn.attached],Kr=[...Qe.map((O,se)=>({id:`ref:${se}:${O.$artifact}`,name:O.filename||O.path||"Attachment",...typeof O.size_bytes=="number"?{size:O.size_bytes}:{},state:"attached"})),...bn.items],Mu=O=>{if(!O.startsWith("ref:"))return bn.remove(O);const se=Number(O.split(":")[1]);He(Se=>Se.filter((Re,Ue)=>Ue!==se))};function Oa(O){return bn.add(O),O.map(se=>{var Re;const Se=sm(se,(Re=s.policy)==null?void 0:Re.maxAttachmentBytes);return{name:se.name,state:Se?"refused":"queued",...Se?{error:Se}:{}}})}y.useEffect(()=>{if(Pe.current=!1,xe(!1),bn.clear(),ve(""),q(""),!t){He([]),ue(""),ds([]),Qn(!1),Na([]),C(rr);return}if(es.current&&es.current!==t){const se={sessionId:wa(),runId:""};K(se),Fi(se.sessionId)}es.current=t,Bs.current=!0;const O=V_(t);C(O),z(O.workflow)},[t]),y.useEffect(()=>{if(t){if(Bs.current){Bs.current=!1;return}S$(t,v)}},[v,t]),y.useEffect(()=>{if(s.loading||!s.workflows.length)return;const O=YA({selection:I,preferred:D,visible:V,workflows:s.workflows,runId:R.runId});O!==I&&z(O)},[s.loading,s.workflows,V,I,D,R.runId]);const Jr=ie.state.status==="ok"?`${t}|${ie.state.row.value??""}|${V.length}`:"";y.useEffect(()=>{!Jr||R.runId||!V.length||z(L.current)},[Jr]),y.useEffect(()=>{let O=!0;if(Q({}),ae(""),$e(void 0),fe(""),!B){Rt(!1);return}return Rt(!0),Uf(B).then(se=>{O&&($e(se),Q(tr(se)))}).catch(se=>{O&&fe(Ct(se))}).finally(()=>{O&&Rt(!1)}),()=>{O=!1}},[B==null?void 0:B.id,G]),y.useEffect(()=>{if(Le(null),Xe(""),!t||!R.runId)return;const O=new AbortController;return at(we(`runs/${encodeURIComponent(R.runId)}/input_data`),{signal:O.signal}).then(se=>{Le(se)}).catch(se=>{O.signal.aborted||Xe(Ct(se))}),()=>O.abort()},[R.runId,t]),y.useEffect(()=>{je&&je.flow_id===(B==null?void 0:B.flowId)&&ge&&Q({...tr(ge),...CA(ge,je.input_data)})},[je,ge,B==null?void 0:B.flowId]),y.useEffect(()=>{!R.runId&&e.connected&&(dn!=null&&dn.latestRunId)&&K(O=>({...O,runId:dn.latestRunId}))},[R.runId,e.connected,dn==null?void 0:dn.latestRunId]),y.useEffect(()=>{Fi(R.sessionId,R.runId),Pe.current=!1,xe(!1),bn.clear(),He([]),Q(tr(nt.current)),Na([]),q(zo.current),zo.current="",ve(""),ds([]),Qn(!1)},[R.sessionId]),y.useEffect(()=>{const O=()=>{const se=aw();Pe.current=!1,xe(!1),bn.clear(),ds([]),Qn(!1),ue(""),K(se)};return window.addEventListener("hashchange",O),()=>window.removeEventListener("hashchange",O)},[]),y.useEffect(()=>{!R.runId||!Xf(Ye.status)||s.refresh()},[R.runId,Ye.status]),y.useEffect(()=>{if(!R.runId||!je)return;const O=QA({restoredInputs:je,restored:zs});O&&z(O)},[R.runId,je,zs==null?void 0:zs.id]);const Pa=R.runId?XA(je):"",qr=y.useCallback(()=>{const O={sessionId:wa(),runId:""};K(O),z(L.current),Fi(O.sessionId),ue(""),ds([]),Qn(!1),Xt(!1),us(!1)},[]),hs=y.useCallback((O,se)=>{Pe.current=!1,xe(!1),bn.clear(),K({sessionId:O,runId:se}),Fi(O,se),Xt(!1),ds([]),Qn(!1),ue(""),us(!1)},[]);y.useEffect(()=>{const O=Ps.current;Ps.current=Yn,O!==Yn&&Xt(se=>LE(se,Yn))},[Yn]),IE(Ds,ks,()=>document.querySelector(".code-sidebar"),()=>document.querySelector(".code-mobile-close")),y.useEffect(()=>{const O=se=>{var Re;if(OE({key:se.key,defaultPrevented:se.defaultPrevented,overlayOpen:mt||or||PE(),sidebarOpen:Ds})==="sidebar"){Xt(!1),(Re=document.querySelector(".code-mobile-nav"))==null||Re.focus();return}(se.metaKey||se.ctrlKey)&&(se.key.toLowerCase()==="k"&&(se.preventDefault(),xt(),Xt(!0),window.setTimeout(()=>{var Ue;return(Ue=Ss.current)==null?void 0:Ue.focus()},0)),se.key.toLowerCase()==="n"&&se.shiftKey&&(se.preventDefault(),qr()))};return window.addEventListener("keydown",O),()=>window.removeEventListener("keydown",O)},[qr,Ds,or,mt]);function Ws(O,se,Se=[],Re=!1,Ue=B,Ut=ge){let vt=hA({workflow:Ue||void 0,inputSchema:Ut,schemaInputs:se,prompt:O,promptProperty:Un,model:v,reasoning:v.reasoning||void 0,speculation:v.speculation,streamReplies:M,systemPromptExtra:v.system||void 0,attachments:Se,limits:{maxIterations:v.maxIterations?Number(v.maxIterations):void 0,maxTokens:v.maxTokens?Number(v.maxTokens):void 0},workspace:ur?{root:ur}:void 0,skills:v.skills.length?v.skills:void 0});return lu(s.toolCatalog,{app:k})&&(vt=Dv(vt,Jc(s.toolCatalog,{app:k}))),Re&&(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 ms(O){if(Pe.current)throw new Error("A turn is already being submitted.");if(!e.connected)throw new Error("Connect to your gateway first.");if(I===Qt&&s.gatewayDefault.status==="unavailable")throw new Error(`Gateway default: ${s.gatewayDefault.reason}. Choose a workflow from the list.`);if(!B)throw new Error("Choose a workflow first.");if(!s.policy)throw new Error("Workspace policy is unavailable. Reconnect or refresh before starting.");if(R.runId&&(!je||Fe))throw new Error(Fe||"Wait for the gateway to restore this conversation's workspace.");if(rt)throw new Error(rt);if(et||ce)throw new Error(ce||"Wait for workflow inputs to load.");if(_e)throw Lt(!0),new Error(_e);if(bn.sendBlock)throw new Error(bn.sendBlock);if(Bt)throw new Error("The current run is still active.");if(!W&&O.trim()&&!Un)throw Lt(!0),new Error("This workflow uses structured inputs. Configure its inputs, then select Run workflow.");const se={...tr(ge),...he,...Un&&O.trim()?{[Un]:O.trim()}:{}},Se=W?se:GR(ge,se,qo);for(const[ps,ns]of[["Iteration limit",v.maxIterations],["Context token limit",v.maxTokens]])if(ns&&(!Number.isInteger(Number(ns))||Number(ns)<=0))throw new Error(`${ps} must be a positive whole number.`);Pe.current=!0,xe(!0),ve(""),q("");const Re=R.sessionId,Ue=R.runId,Ut=t,vt=Ot.current;let pr="";try{const ps=Ws(O,Se,qo),ns=Ff(ge,ps);if(ns.length)throw Lt(!0),new Error(ns.join(" "));const Bu=ZA({selection:I,workflow:B,sessionId:Re,input:ps}),Hn=await at(we("runs/start"),{method:"POST",body:JSON.stringify(Bu)});if(!Hn.run_id)throw new Error("The gateway did not return a run identifier.");if(St.current.sessionId!==Re||St.current.runId!==Ue||Vn.current!==Ut||Ot.current!==vt)throw Qf();return pr=String(Hn.run_id),Ca.current={runId:pr,input:ps},te({runId:pr,...e$(Hn.resolved_workflow)}),Na([...Fs,...O.trim()?[{id:`pending:${Hn.run_id}`,role:"user",content:O.trim()}]:[]]),K({sessionId:Re,runId:Hn.run_id}),Fi(Re,Hn.run_id),ue(""),He([]),bn.clear(),Lt(!1),Hn.runner_warning&&q(String(Hn.runner_warning)),s.refresh(),pr}finally{St.current.sessionId===Re&&(St.current.runId===Ue||St.current.runId===pr)&&Vn.current===Ut&&Ot.current===vt&&(Pe.current=!1,xe(!1))}}async function Da(O){const se=ew(ne,O);if(be){ue(se);return}try{await Yr(se)}catch(Se){ue(se),ve(Ct(Se))}}async function yl(O){if(An)throw new Error("Answer the pending workflow request above, or queue the next turn.");const se=R.sessionId,Se=R.runId,Re=Ot.current,Ue=await Xn.sendCommand("inject_guidance",{guidance:O});if(St.current.sessionId!==se||St.current.runId!==Se||Ot.current!==Re)throw Qf();return{accepted:(Ue==null?void 0:Ue.accepted)!==!1,...typeof(Ue==null?void 0:Ue.seq)=="number"?{seq:Ue.seq}:{},...(Ue==null?void 0:Ue.duplicate)===!0?{duplicate:!0}:{}}}function wl(O){return ds(se=>[...se,{id:wa(),text:O,sessionId:R.sessionId,sourceRunId:R.runId,authEpoch:Ot.current}]),Qn(!0),{accepted:!0}}const Yo=Bt&&!be?{modes:An?["queue"]:["guide","queue"],parked:Ye.status==="waiting"&&!An,onSteer:async(O,se)=>se==="queue"?wl(O):yl(O)}:void 0;async function Yr(O){if(!Bt)return ms(O);if(!(An?wl(O):await yl(O)).accepted)throw new Error("The gateway did not accept this message.");ue(""),q(An?"Queued for the next turn.":"Guidance queued. The workflow will read it at its next supported boundary.")}async function Fa(O){var Re,Ue;const se=String(((Re=Ye.run)==null?void 0:Re.run_id)||"");if(!rw(O,{sessionId:R.sessionId,runId:R.runId,snapshotRunId:se,snapshotSessionId:String(((Ue=Ye.run)==null?void 0:Ue.session_id)||""),authEpoch:Ot.current}))throw Qf();const Se=await ms(O.text);ds(Ut=>ZR(Ut,O,Se))}y.useEffect(()=>{var Se,Re;if(!Wo||!Ns.length||!e.connected||!je||Fe||Pe.current)return;const O=XR(Ye.status);if(O==="wait")return;if(O==="pause"){Qn(!1);const Ue=["failed","error"].includes(Ye.status.toLowerCase());q(`Queue paused because the run ${Ue?"failed":"was cancelled"}. Review the result, then use Run next to continue explicitly.`);return}const se=Ns[0];rw(se,{sessionId:R.sessionId,runId:R.runId,snapshotRunId:String(((Se=Ye.run)==null?void 0:Se.run_id)||""),snapshotSessionId:String(((Re=Ye.run)==null?void 0:Re.session_id)||""),authEpoch:Ot.current})&&Fa(se).catch(Ue=>{Ue instanceof DOMException&&Ue.name==="AbortError"||(Qn(!1),ve(Ct(Ue)))})},[Wo,Ns,Ye.status,(Il=Ye.run)==null?void 0:Il.run_id,(Ml=Ye.run)==null?void 0:Ml.session_id,e.connected,je,Fe,R.sessionId,R.runId]);async function vl(){const O=R.sessionId,se=R.runId,Se=Ot.current;await Xn.cancel(),St.current.sessionId===O&&St.current.runId===se&&Ot.current===Se&&q("")}const $n=O=>{const se=Ot.current,Se=R.sessionId,Re=R.runId;ve(""),O().catch(Ue=>{Ue instanceof DOMException&&Ue.name==="AbortError"||Ot.current===se&&St.current.sessionId===Se&&St.current.runId===Re&&ve(Ct(Ue))})},Qr=s.sessions.filter(O=>`${O.prompt||""} ${O.sessionId}`.toLowerCase().includes(Bo.toLowerCase())),[xn,za]=y.useState(null),[Xr,dr]=y.useState(!1),[_l,Zt]=y.useState(""),Us=(O,se)=>{Zt(""),za({sessionId:O,where:se})},Qo=()=>{za(null),Zt("")},Zr=async()=>{if(!xn||Xr)return;const{sessionId:O}=xn;dr(!0),Zt("");try{await xA(O)}catch(se){Zt(`Not archived: ${Ct(se)}`),dr(!1);return}if(dr(!1),za(null),O===R.sessionId){const se=kA(Qr,O);se?hs(se.sessionId,se.latestRunId):qr()}s.forgetSession(O)},bl=a.jsx(tA,{busy:Xr,error:_l,onConfirm:()=>void Zr(),onCancel:Qo}),Xo=O=>{const se=[];(v.provider||v.model)&&!O.provider&&!O.model&&se.push("provider","model"),Object.keys(k).length>0&&!Object.keys(O.toolLayer).length&&se.push("tools"),O.toolLayer!==k&&A(O.toolLayer),v.maxIterations&&!O.maxIterations&&se.push("max_iterations"),se.length&&Q(Re=>{const Ue={...Re},Ut=tr(ge);for(const vt of se)delete Ue[vt],Object.prototype.hasOwnProperty.call(Ut,vt)&&(Ue[vt]=Ut[vt]);return Ue}),C({...O,toolLayer:{}})},ts=(O,se={...v,toolLayer:k},Se=Xo,Re)=>a.jsx(p$,{tab:O,lockedReasonId:`code-${O}-locked`,value:se,onChange:Se,toolCatalog:s.toolCatalog,toolWarnings:s.toolWarnings,automationTools:!!Re,toolsNotice:!Re&&$?{text:zy,onDismiss:S}:null,connected:e.connected,automationFolders:!!Re,defaultModel:!Re&&he.provider&&he.model?{provider:String(he.provider),model:String(he.model)}:s.defaultModel,workflowDefault:!Re&&!!(he.provider&&he.model),streaming:s.streaming,disabled:Re?!e.connected:Wt||!e.connected,workspaceRootFixed:Re==null?void 0:Re.root,sessionId:Re?void 0:R.sessionId,onOpenDefaultWorkspaces:()=>d(!0),workspaceRefreshKey:f,hideStreamReplies:!!Re,lockedText:Re?"Connect to a gateway to edit this automation.":void 0}),fr=a.jsx(_R,{value:g,onChange:O=>{un.stop_tts(),b(O)},defaults:Vr,connected:e.connected,isAdmin:((mr=(Wa=(Ll=e.status)==null?void 0:Ll.gateway)==null?void 0:Wa.principal)==null?void 0:mr.admin)===!0,levelSource:un}),yt=Ft.detail,Es=FT(zt&&(yt!=null&&yt.definition)?{summary:yt.summary,definition:yt.definition}:null,(O,se,Se)=>Kt.revise(O,se,Se),s.toolCatalog),hr=(O,se,Se)=>{if(zt){if(!(yt!=null&&yt.definition)||!Es)return Ft.selectedId?a.jsx(Ao,{children:"Loading automation…"}):a.jsx("p",{className:"code-muted",children:"Select an automation in the sidebar."});const Re={root:yt.definition.workspace_root||""};return a.jsxs("div",{className:"code-automation-settings",id:`code-settings-${O}`,"data-revision":Es.revision,children:[a.jsx(zT,{summary:yt.summary,settings:Es}),Se(Es.draft,Es.onChange,Re)]})}return a.jsxs("div",{className:"code-conversation-settings",id:`code-settings-${O}`,children:[a.jsxs("p",{className:"code-settings-binding",children:[a.jsx("span",{children:"Conversation"})," ",a.jsx("strong",{title:Hr,children:Hr})]}),se()]})},Lu=hr("model",()=>ts("model"),(O,se,Se)=>ts("model",O,se,Se)),Ou=hr("workflow",()=>a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"code-workflow-select","aria-busy":et||void 0,children:[a.jsx(de,{name:"agent",size:17}),a.jsx(vv,{id:"code-workflow-picker",className:"code-workflow-picker",interfaceId:an,ariaLabel:"Workflow",workflows:{...s.executable,reload:()=>void s.refresh()},value:JA(I,B),currentLabel:B&&I!==Qt&&!V.some(O=>O.id===B.id)?{name:B.name,detail:R.runId&&B.bundleVersion?`conversation version ${B.bundleVersion}`:B.bundleVersion?`@${B.bundleVersion}`:""}:null,unavailableReason:e.connected?Wt?"A run is in progress.":null:"Connect to a gateway first.",onChange:(O,se)=>{const Se=qA(O,se);z(Se),F||C(Re=>({...Re,workflow:Se}))}}),I===Qt&&zf(J)?a.jsx("span",{className:"code-workflow-resolved is-missing",role:"alert",title:zf(J),children:zf(J)}):null,Pa?a.jsx("span",{className:"code-workflow-resolved is-missing",role:"status",title:Pa,children:Pa}):null,Y&&Y.runId===R.runId&&Y.missing?a.jsx("span",{className:"code-workflow-resolved is-missing",role:"status",children:Y.text}):null]}),ie.state.status==="ok"?a.jsxs(a.Fragment,{children:[a.jsx(T$,{row:ie.state.row,save:ie.save,disabled:!e.connected}),a.jsx(Wy,{block:ie.state.timeZone,save:ie.saveTimeZone,disabled:!e.connected})]}):null,a.jsxs("div",{className:"code-settings code-workflow-inputs",children:[a.jsx("h3",{className:"code-settings-heading",children:"Inputs"}),a.jsx("p",{className:"code-muted",children:(B==null?void 0:B.description)||"Configure the values this workflow needs to run."}),et?a.jsx("p",{role:"status",children:"Loading input schema…"}):ce?null:W||Un?a.jsx(HR,{schema:ge,promptProperty:Un,defaultModel:s.defaultModel,values:he,onChange:Q,disabled:Wt,onEditorError:ae},B==null?void 0:B.id):a.jsx(Ah,{schema:ge,defaultModel:s.defaultModel,values:he,onChange:Q,disabled:Wt,rawObject:!0,onEditorError:ae},B==null?void 0:B.id),ce?a.jsx("p",{role:"alert",className:"code-error-text",children:ce}):null,cr?a.jsxs("button",{className:"code-primary-button",onClick:()=>Lt(!1),children:["Back to chat ",a.jsx(de,{name:"chat",size:16})]}):a.jsxs("button",{className:"code-primary-button",disabled:Wt||et||!!ce||!!_e||!e.connected,onClick:()=>$n(()=>ms(ne||String(he[Un||"prompt"]||""))),children:["Run workflow ",a.jsx(de,{name:"playCircle",size:16})]})]})]}),()=>yt!=null&&yt.definition&&Es?a.jsxs(a.Fragment,{children:[a.jsx(BT,{summary:yt.summary,definition:yt.definition,settings:Es,busy:Ft.busy,disabled:!e.connected,emailStatus:Ft.emailStatus,onOpenMyEmail:La.openMyEmail,onRevise:(O,se)=>Kt.revise(yt.automationId,O,se),previewSchedule:Kt.previewSchedule,prepareTarget:Gr,workflowPickerOptions:{interfaceId:an,workflows:{...s.executable,reload:()=>void s.refresh()}}}),ie.state.status==="ok"?a.jsx(Wy,{block:ie.state.timeZone,save:ie.saveTimeZone,disabled:!e.connected}):null]}):null),Zo=hr("workspace",()=>a.jsxs(a.Fragment,{children:[a.jsxs("p",{className:"code-current-workspace",children:["Current workspace ",a.jsx("code",{title:ur||"Gateway workspace",children:ur.split("/").filter(Boolean).pop()||"Gateway workspace"})]}),ts("workspace")]}),(O,se,Se)=>ts("workspace",O,se,Se)),Pu=hr("tools",()=>ts("tools"),(O,se,Se)=>ts("tools",O,se,Se)),Du=hr("skills",()=>ts("skills"),(O,se,Se)=>ts("skills",O,se,Se)),Fu=hr("voice",()=>fr,()=>fr),ei=zt?`automation:${Ft.selectedId}`:`conversation:${R.sessionId}`,xl=y.useRef({});y.useEffect(()=>{!Ie||Ie==="activity"||Ie==="files"||xl.current[Ie]===ei||(xl.current[Ie]=ei,window.requestAnimationFrame(()=>{const O=document.querySelector(`#code-rail-panel-${Ie} .af-rail__body`);O&&(O.scrollTop=0)}))},[ei,Ie]);const ti=zt?{count:0,hint:""}:vT(Ye.records,R.runId),zu=a.jsx(IT,{panel:Ie,onPanel:Ge,docs:RE(e.connected),activityBadge:ti.count,activityHint:ti.hint,content:{activity:zt?a.jsx(jT,{occurrences:(yt==null?void 0:yt.occurrences)||[],nowMs:Date.now(),onOpenRun:La.openRun}):a.jsx(wT,{records:Ye.records,runId:R.runId}),files:zt?e.connected&&Ft.selectedId?a.jsx(nm,{fetchGateway:rl,runId:Ft.selectedId,title:"Automation files",refreshKey:yt==null?void 0:yt.summary.updated_at,copyText:lm,onOpenFolder:()=>H_(Ft.selectedId)}):a.jsx("p",{className:"code-muted",children:"Connect to a gateway and select an automation to browse its files."}):a.jsx(a.Fragment,{children:a.jsx(yT,{policy:s.policy,runId:R.runId,enabled:e.connected,isAdmin:((ri=(si=(Ol=e.status)==null?void 0:Ol.gateway)==null?void 0:si.principal)==null?void 0:ri.admin)===!0,refreshKey:Ye.status,onAttachFiles:Oa,onAttach:async O=>{const se=R.sessionId,Se=R.runId,Re=Ot.current,Ue=await Wr.attachments_ingest(se,O);St.current.sessionId===se&&St.current.runId===Se&&Ot.current===Re&&He(Ut=>[...Ut,Ue])}})}),model:Lu,workflow:Ou,workspace:Zo,tools:Pu,skills:Du,voice:Fu}},`rail:${t}`);return a.jsxs("div",{className:`code-app${Ds?" code-app--nav-open":""}`,children:[a.jsx("a",{className:"code-skip-link",href:"#code-conversation",children:"Skip to conversation"}),a.jsxs(zE,{isDrawer:ks,open:Ds,children:[a.jsxs("div",{className:"code-brand",children:[a.jsxs("span",{className:"code-brand-mark","aria-hidden":"true",children:["a",a.jsx("span",{children:"c"})]}),a.jsxs("div",{children:[a.jsx("strong",{children:"AbstractCode"}),a.jsx("span",{children:"YOUR WORK, IN CONTEXT"})]}),a.jsx("button",{className:"code-mobile-close code-icon-button","aria-label":"Close navigation",onClick:()=>Xt(!1),children:a.jsx(de,{name:"x",size:18})})]}),a.jsxs("div",{className:"code-session-search",children:[a.jsx(de,{name:"history",size:14}),a.jsx("input",{ref:Ss,"aria-label":"Search conversations",placeholder:"Search conversations",value:Bo,onChange:O=>Ru(O.target.value)}),a.jsx("kbd",{children:"⌘K"})]}),a.jsxs(qE,{panels:ka,children:[a.jsx(RR,{state:Ft,attention:Sa?{needsYou:zR(js.fold),newResults:BR(js.fold)}:null,available:Fo,discovering:s.capabilitiesLoading,createDisabled:et||!!ce||!B,selectedId:zt?Ft.selectedId:"",onSelect:O=>{us(!0),Xt(!1),Kt.select(O)},onNew:()=>Ur(!0),onRefresh:()=>void Kt.refresh(),archivedOpen:ar.automations,onToggleArchived:()=>ja("automations"),onUnarchive:O=>void Kt.unarchive(O.automation_id).catch(()=>{}),onToggleActive:O=>void Kt.toggleActive(O).catch(()=>{}),open:ka.automations,onToggle:()=>Do("automations")}),a.jsxs(YE,{open:ka.conversations,onToggle:()=>Do("conversations"),actions:a.jsxs("span",{className:"code-auto-actions",children:[a.jsx("button",{className:"code-icon-button code-new-chat","aria-label":"New conversation",title:"New conversation (⇧⌘N)","aria-keyshortcuts":"Shift+Meta+N",onClick:qr,children:a.jsx(de,{name:"plus",size:13})}),a.jsx("button",{className:"code-icon-button","aria-label":"Refresh conversations",disabled:!e.connected||s.loading,onClick:()=>void s.refresh(),children:a.jsx(de,{name:"refresh",size:13})})]}),children:[dn?null:a.jsx("button",{type:"button",className:"code-session code-card is-selected",onClick:()=>Xt(!1),children:a.jsxs("span",{children:[a.jsx("strong",{className:"code-card-title",children:"New conversation"}),a.jsx("small",{className:"code-card-meta",children:"Ready when you are"})]})}),Qr.map(O=>a.jsx(gA,{item:O,selected:O.sessionId===R.sessionId,onClick:()=>hs(O.sessionId,O.latestRunId),onAskArchive:e.connected?()=>Us(O.sessionId,"card"):void 0,confirm:(xn==null?void 0:xn.where)==="card"&&xn.sessionId===O.sessionId?bl:void 0},O.sessionId)),s.sessionsLoaded&&!Qr.length?a.jsx("p",{className:"code-history-empty",children:Bo?"No conversations match your search.":"Your conversations will live here. Pick up where you left off, on any device."}):null,s.loading&&!s.sessionsLoaded?a.jsx(Ao,{children:"Loading conversations…"}):null,s.hasMore?a.jsx("button",{className:"code-load-more",onClick:s.loadMore,children:"Load more conversations"}):null,a.jsx(T_,{list:"conversations",count:s.archivedSessions,open:ar.conversations,onToggle:()=>ja("conversations"),children:a.jsx(jA,{enabled:e.connected&&ar.conversations,revision:s.archivedSessions,onOpen:O=>{Xt(!1),hs(O.sessionId,O.latestRunId)},onUnarchived:()=>void s.refresh()})})]})]})]}),Ds?a.jsx("button",{className:"code-nav-scrim","aria-label":"Close conversation navigation",onClick:()=>Xt(!1)}):null,a.jsxs("div",{className:"code-main-shell",children:[a.jsxs("header",{className:"code-topbar",children:[a.jsx("button",{className:"code-mobile-nav code-icon-button","aria-label":"Open conversation navigation",onClick:()=>{xt(),Xt(!0)},children:a.jsx(de,{name:"list",size:19})}),a.jsxs("div",{className:"code-breadcrumb",children:[a.jsx("span",{children:zt?"Automations":"Conversations"}),a.jsx("span",{"aria-hidden":"true",children:"/"}),a.jsx("strong",{title:zt?fs:Hr,children:zt?fs:Hr})]}),!zt&&dn&&e.connected?a.jsx(Ih,{className:"code-conversation-menu",label:"Conversation actions",title:"More actions",items:[{id:"archive",label:"Archive",danger:!0,onSelect:()=>Us(dn.sessionId,"header")}]}):null,a.jsx(Kk,{docs:{open:Ie==="docs",onToggle:()=>{Ge(O=>O==="docs"?null:"docs"),Xt(!1)},label:"Docs assistant"},appearance:{value:i,onChange:l},about:{identity:eI,fetch:rl},identity:"menu",connection:e})]}),a.jsxs("div",{className:"code-content",children:[zt?a.jsx(OR,{prepareTarget:Gr,workflowPickerOptions:{interfaceId:an,workflows:{...s.executable,reload:()=>void s.refresh()}},ctl:Kt,availableTools:s.tools.filter(O=>O.enabled).map(O=>O.name),host:La,voiceCapability:ir,voicePreferences:g,enabled:e.connected,onClose:()=>us(!1),onEdit:Ko,onEditWorkspaces:Jo}):a.jsxs("main",{className:"code-conversation",id:"code-conversation",tabIndex:-1,children:[oe||Ye.error||Fe?a.jsxs("div",{className:"code-alert",role:"alert",children:[a.jsx(de,{name:"warning",size:16}),a.jsx("span",{children:oe||Ye.error||Fe}),Ye.error||Fe?a.jsx("button",{onClick:()=>{Fe?window.location.reload():$n(()=>Xn.load(R.runId))},children:"Reconnect"}):a.jsx("button",{"aria-label":"Dismiss error",onClick:()=>ve(""),children:a.jsx(de,{name:"x",size:14})})]}):null,(xn==null?void 0:xn.where)==="header"&&xn.sessionId===R.sessionId?a.jsx("div",{className:"code-archive-confirm-bar",children:bl}):null,s.errors.length?a.jsx("div",{className:"code-discovery-errors",role:"status",children:a.jsxs("details",{children:[a.jsx("summary",{children:"Some gateway information could not be loaded"}),s.errors.map(O=>a.jsx("p",{children:O},O)),a.jsx("button",{onClick:()=>void s.refresh(),children:"Retry discovery"})]})}):null,rt?a.jsxs("div",{className:"code-alert",role:"alert",children:[a.jsx("span",{children:rt}),a.jsx("button",{onClick:qr,children:"New conversation"})]}):null,ce?a.jsxs("div",{className:"code-alert",role:"alert",children:[a.jsxs("span",{children:["Workflow inputs: ",ce]}),a.jsx("button",{onClick:()=>le(O=>O+1),children:"Retry"})]}):null,Ne?a.jsxs("div",{className:"code-notice",role:"status",children:[Ne,a.jsx("button",{"aria-label":"Dismiss notice",onClick:()=>q(""),children:a.jsx(de,{name:"x",size:13})})]}):null,Bt||Xf(Ye.status)?a.jsx(YR,{active:Bt,paused:Ho,snapshot:Ye,permissionsAll:b$(s.toolCatalog,k),onInteraction:An&&!Ho?()=>{var Se;const O=document.querySelector(".code-conversation .pc-chat-thread"),se=O==null?void 0:O.querySelector(".pc-workflow-interaction");!O||!se||(O.scrollTop+=se.getBoundingClientRect().top-O.getBoundingClientRect().top,(Se=se.querySelector("h3"))==null||Se.focus({preventScroll:!0}))}:void 0,onRevokeApproval:()=>{Xn.revokeToolApproval(),A(x$(s.toolCatalog,k))},onCommand:O=>$n(()=>Xn.sendCommand(O,{})),onActivity:()=>{kt("activity")}}):null,a.jsx(lE,{streamReplies:M,messages:(An==null?void 0:An.kind)==="tool-approval"?Fs.filter(O=>{var se,Se;return!(((se=O.toolActivity)==null?void 0:se.status)==="waiting"&&O.toolActivity.runId===((Se=Ye.interaction)==null?void 0:Se.runId))}):Fs,messageProps:{...un.tts_supported?{onSpeakToggle:O=>{un.toggle_tts(O.id||O.content,O.content)}}:{},getSpeakState:O=>un.tts_playback.key===(O.id||O.content)?un.tts_playback.status:"idle"},draft:ne,onDraftChange:ue,onSend:Yr,busy:Wt,busyLabel:be?"Starting…":Ho?"Paused":"Working…",steer:Yo,toolbar:Fs.length?{exportTranscript:{filename:"conversation.md"}}:void 0,onCancel:vl,stopState:Ye.stop??null,disabled:!e.connected,interaction:An,onAttach:()=>{var O;return(O=qe.current)==null?void 0:O.click()},onFiles:O=>{Oa(O)},attachmentItems:Kr,onRemoveAttachment:Mu,onRetryAttachment:bn.retry,placeholder:Bt?An?"Answer the request above, or queue the next task…":"Guide the current workflow, or queue the next task…":"Describe what you want to build, fix, or explore…",emptyState:Bt?null:a.jsx(nI,{workflow:B,loading:s.loading||et,onSuggestion:ue,onInputs:()=>Lt(!0),isAgent:cr,onRun:()=>$n(()=>ms(ne)),connected:e.connected}),composerExtras:a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"code-composer-workspace",title:ur||"Workspace is managed by the gateway",children:[a.jsx(de,{name:"terminal",size:14}),a.jsx("span",{children:ur.split("/").filter(Boolean).pop()||"Gateway workspace"})]}),e.connected?a.jsx(xR,{voice:un,capability:ir,preferences:g,route:Jk(g,Vr.value)},`${t}:${R.sessionId}:${R.runId}`):null]}),footer:a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:["Enter to send ",a.jsx("span",{"aria-hidden":"true",children:"·"})," Shift + Enter for a new line"]}),a.jsxs("span",{children:["Managed workspace",a.jsx("span",{className:"code-small-dot"})]})]})}),Ns.length?a.jsxs("div",{className:"code-queue",children:[a.jsxs("div",{children:[a.jsxs("strong",{children:[Ns.length," queued"," ",Ns.length===1?"turn":"turns"]}),a.jsx(Br,{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:Wo,onChange:Qn})]}),Ns.map(O=>a.jsxs("div",{children:[a.jsx("span",{children:O.text}),Bt?null:a.jsx("button",{onClick:()=>$n(()=>Fa(O)),children:"Run next"}),a.jsx("button",{"aria-label":"Remove queued turn",onClick:()=>ds(se=>se.filter(Se=>Se.id!==O.id)),children:a.jsx(de,{name:"x",size:13})})]},O.id))]}):null]}),zu]}),a.jsxs("footer",{className:"code-statusbar",children:[a.jsxs("span",{children:[a.jsx("span",{className:`code-status-dot ${e.connected?"is-online":""}`}),e.connected?"Connected":e.phase==="loading"?"Connecting":"Disconnected"]}),a.jsx("span",{children:(B==null?void 0:B.name)||"No workflow selected"}),a.jsx("div",{}),a.jsx("span",{children:R.runId?`Run ${R.runId.slice(0,8)}`:"Ready to start"}),a.jsx("span",{children:i.theme.replace(/-/g," ")})]})]}),a.jsx("div",{className:"pc-sr-only",role:"status","aria-live":"polite",children:bn.announcement}),a.jsx("input",{ref:qe,hidden:!0,type:"file",multiple:!0,onChange:O=>{Oa(Array.from(O.target.files||[])),O.target.value=""}}),a.jsx(PR,{connected:e.connected,workflowPickerOptions:{interfaceId:an,workflows:{...s.executable,reload:()=>void s.refresh()}},open:or,onClose:()=>Ur(!1),onOpenPreferences:()=>{Ur(!1),kt("workflow")},target:JT(I,B),availableTools:s.tools.filter(O=>O.enabled).map(O=>O.name),initialTools:xu(lu(s.toolCatalog,{app:k})?{...he,tools:Jc(s.toolCatalog,{app:k}).tools}:he),buildInput:async(O,se)=>{if(!se)return Ws(O,{...tr(ge),...he},[],!0);const Se=se.flow_id==="@default"?J:s.workflows.find(vt=>`${vt.bundleId}@${vt.bundleVersion}`===("bundle_ref"in se?se.bundle_ref:"")&&vt.flowId===se.flow_id);if(!Se)throw new Error("The selected workflow is no longer available. Refresh the workflow list.");const Re=await Uf(Se);if(!Re)throw new Error("Workflow inputs could not be checked. Refresh the workflow list and try again.");const Ue=Ws(O,tr(Re),[],!0,Se,Re),Ut=Ff(Re,Ue);if(Ut.length)throw new Error(Ut.join(" "));return Ue},workflowLabel:I===Qt?HA(s.gatewayDefault):(B==null?void 0:B.name)||"the selected workflow",initialPrompt:ne||((ai=[...Fs].reverse().find(O=>O.role==="user"))==null?void 0:ai.content)||"",ctl:Kt,onOpenMyEmail:Ma,onCreated:()=>{us(!0),Xt(!1)}}),a.jsx(lk,{...e.modalProps}),a.jsx(WE,{open:u,onClose:()=>d(!1),connected:e.connected,onChanged:p})]})}function nI({workflow:e,loading:t,onSuggestion:n,onInputs:s,isAgent:i,onRun:l,connected:u}){return a.jsxs("div",{className:"code-welcome",children:[a.jsxs("div",{className:"code-welcome-symbol","aria-hidden":"true",children:[a.jsx("span",{children:"›"}),a.jsx("span",{children:"_"})]}),a.jsx("p",{className:"code-eyebrow",children:"A LITTLE CONTEXT. A LOT OF POSSIBILITY."}),a.jsx("h1",{children:"What are we building?"}),a.jsxs("p",{className:"code-welcome-description",children:["A focused space to think, code, and get things done.",a.jsx("br",{}),"Your workflows. Your tools. One conversation."]}),e&&!i?a.jsxs("div",{className:"code-workflow-welcome",children:[a.jsx(de,{name:"playCircle",size:21}),a.jsxs("div",{children:[a.jsx("strong",{children:e.name}),a.jsx("p",{children:e.description||"Run this workflow with its registered inputs."})]}),a.jsx("button",{onClick:s,children:"Configure inputs"}),a.jsx("button",{onClick:l,disabled:t||!u,children:"Run workflow"})]}):a.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=>a.jsxs("button",{onClick:()=>n(d.prompt),disabled:t,children:[a.jsx(de,{name:d.icon,size:18}),a.jsxs("span",{children:[a.jsx("strong",{children:d.title}),a.jsx("small",{children:d.detail})]}),a.jsx(de,{name:"chevronRight",size:13})]},d.title))}),a.jsx("p",{className:"code-welcome-hint",children:t?"Discovering your workflows…":e?a.jsxs(a.Fragment,{children:["Using ",a.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 sI extends gt.Component{constructor(){super(...arguments);Dt(this,"state",{error:""})}static getDerivedStateFromError(n){return{error:n.message}}render(){return this.state.error?a.jsxs("div",{className:"code-crash",role:"alert",children:[a.jsx("h1",{children:"Something interrupted this view."}),a.jsx("p",{children:this.state.error}),a.jsx("p",{children:"Your runs are stored by the gateway."}),a.jsx("button",{onClick:()=>window.location.reload(),children:"Reload AbstractCode"})]}):this.props.children}}vx();FE();"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("sw.js").catch(()=>{})});hx.createRoot(document.getElementById("root")).render(a.jsx(gt.StrictMode,{children:a.jsx(sI,{children:a.jsx(tI,{})})}));
|