shiplightai 0.1.15 → 0.1.16

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.
@@ -0,0 +1,3 @@
1
+ import { createRequire as __createRequire } from "module";
2
+ const require = __createRequire(import.meta.url);
3
+ import{d as t,e as o,f as r,g as p,h as i}from"./chunk-MVWAXIK7.js";import"./chunk-STSHJEMG.js";import"./chunk-VGP5FBVW.js";import"./chunk-BVOD5VWH.js";import"./chunk-YU3XZJIJ.js";import"./chunk-CYBAFQLF.js";import"./chunk-FBJSHHRD.js";import"./chunk-A2VNNKWB.js";import"./chunk-CSINHOOD.js";export{p as evaluateStatement,t as executeAction,r as executeStep,o as generateActionStep,i as runTask};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __createRequire } from "module";
2
2
  const require = __createRequire(import.meta.url);
3
- import{j as a,m as o,n as t,o as s,p as e,q as i,r}from"./chunk-4JBGAENP.js";import"./chunk-FL4TL6US.js";import"./chunk-BVOD5VWH.js";import"./chunk-FBJSHHRD.js";import"./chunk-CSINHOOD.js";export{a as LoginType,o as checkLocators,e as createUnsignedInContext,r as generateAndValidateLoginLocators,i as generateValidationLocators,s as validateLogin,t as validateLoginLocators};
3
+ import{j as a,m as o,n as t,o as s,p as e,q as i,r}from"./chunk-HECRJRKW.js";import"./chunk-FL4TL6US.js";import"./chunk-BVOD5VWH.js";import"./chunk-FBJSHHRD.js";import"./chunk-CSINHOOD.js";export{a as LoginType,o as checkLocators,e as createUnsignedInContext,r as generateAndValidateLoginLocators,i as generateValidationLocators,s as validateLogin,t as validateLoginLocators};
@@ -0,0 +1,18 @@
1
+ import { createRequire as __createRequire } from "module";
2
+ const require = __createRequire(import.meta.url);
3
+ var S=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol:e=>`Symbol(${e})`;function _r(){}function B(e){return typeof e=="object"&&e!==null||typeof e=="function"}var pr=_r;function T(e,t){try{Object.defineProperty(e,"name",{value:t,configurable:!0})}catch{}}var kt=Promise,_o=Promise.prototype.then,po=Promise.resolve.bind(kt),yo=Promise.reject.bind(kt);function M(e){return new kt(e)}function q(e){return po(e)}function b(e){return yo(e)}function ee(e,t,r){return _o.call(e,t,r)}function z(e,t,r){ee(ee(e,t,r),void 0,pr)}function Dt(e,t){z(e,t)}function Qt(e,t){z(e,void 0,t)}function H(e,t,r){return ee(e,t,r)}function ge(e){ee(e,void 0,pr)}var Qe=e=>{if(typeof queueMicrotask=="function")Qe=queueMicrotask;else{let t=q(void 0);Qe=r=>ee(t,r)}return Qe(e)};function at(e,t,r){if(typeof e!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(e,t,r)}function be(e,t,r){try{return q(at(e,t,r))}catch(o){return b(o)}}var x=class{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(t){let r=this._back,o=r;r._elements.length===16383&&(o={_elements:[],_next:void 0}),r._elements.push(t),o!==r&&(this._back=o,r._next=o),++this._size}shift(){let t=this._front,r=t,o=this._cursor,n=o+1,i=t._elements,a=i[o];return n===16384&&(r=t._next,n=0),--this._size,this._cursor=n,t!==r&&(this._front=r),i[o]=void 0,a}forEach(t){let r=this._cursor,o=this._front,n=o._elements;for(;!(r===n.length&&o._next===void 0||r===n.length&&(o=o._next,n=o._elements,r=0,n.length===0));)t(n[r]),++r}peek(){let t=this._front,r=this._cursor;return t._elements[r]}},yr=S("[[AbortSteps]]"),mr=S("[[ErrorSteps]]"),Ct=S("[[CancelSteps]]"),Ot=S("[[PullSteps]]"),Wt=S("[[ReleaseSteps]]");function wr(e,t){e._ownerReadableStream=t,t._reader=e,t._state==="readable"?vt(e):t._state==="closed"?function(r){vt(r),Rr(r)}(e):Sr(e,t._storedError)}function gr(e,t){return Jr(e._ownerReadableStream,t)}function vr(e){let t=e._ownerReadableStream;t._state==="readable"?At(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function(r,o){Sr(r,o)}(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),t._readableStreamController[Wt](),t._reader=void 0,e._ownerReadableStream=void 0}function ve(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function vt(e){e._closedPromise=M((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r})}function Sr(e,t){vt(e),At(e,t)}function At(e,t){e._closedPromise_reject!==void 0&&(ge(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}function Rr(e){e._closedPromise_resolve!==void 0&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}var Ut=Number.isFinite||function(e){return typeof e=="number"&&isFinite(e)},mo=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};function te(e,t){if(e!==void 0&&typeof(r=e)!="object"&&typeof r!="function")throw new TypeError(`${t} is not an object.`);var r}function V(e,t){if(typeof e!="function")throw new TypeError(`${t} is not a function.`)}function Tr(e,t){if(!function(r){return typeof r=="object"&&r!==null||typeof r=="function"}(e))throw new TypeError(`${t} is not an object.`)}function re(e,t,r){if(e===void 0)throw new TypeError(`Parameter ${t} is required in '${r}'.`)}function St(e,t,r){if(e===void 0)throw new TypeError(`${t} is required in '${r}'.`)}function jt(e){return Number(e)}function Yt(e){return e===0?0:e}function qr(e,t){let r=Number.MAX_SAFE_INTEGER,o=Number(e);if(o=Yt(o),!Ut(o))throw new TypeError(`${t} is not a finite number`);if(o=function(n){return Yt(mo(n))}(o),o<0||o>r)throw new TypeError(`${t} is outside the accepted range of 0 to ${r}, inclusive`);return Ut(o)&&o!==0?o:0}function ke(e){if(!B(e)||typeof e.getReader!="function")return!1;try{return typeof e.locked=="boolean"}catch{return!1}}function Er(e){if(!B(e)||typeof e.getWriter!="function")return!1;try{return typeof e.locked=="boolean"}catch{return!1}}function Pr(e,t){if(!fe(e))throw new TypeError(`${t} is not a ReadableStream.`)}function kr(e,t){e._reader._readRequests.push(t)}function Ft(e,t,r){let o=e._reader._readRequests.shift();r?o._closeSteps():o._chunkSteps(t)}function st(e){return e._reader._readRequests.length}function Cr(e){let t=e._reader;return t!==void 0&&!!de(t)}var Y=class{constructor(t){if(re(t,1,"ReadableStreamDefaultReader"),Pr(t,"First parameter"),Te(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");wr(this,t),this._readRequests=new x}get closed(){return de(this)?this._closedPromise:b(Ie("closed"))}cancel(t){return de(this)?this._ownerReadableStream===void 0?b(ve("cancel")):gr(this,t):b(Ie("cancel"))}read(){if(!de(this))return b(Ie("read"));if(this._ownerReadableStream===void 0)return b(ve("read from"));let t,r,o=M((n,i)=>{t=n,r=i});return function(n,i){let a=n._ownerReadableStream;a._disturbed=!0,a._state==="closed"?i._closeSteps():a._state==="errored"?i._errorSteps(a._storedError):a._readableStreamController[Ot](i)}(this,{_chunkSteps:n=>t({value:n,done:!1}),_closeSteps:()=>t({value:void 0,done:!0}),_errorSteps:n=>r(n)}),o}releaseLock(){if(!de(this))throw Ie("releaseLock");this._ownerReadableStream!==void 0&&function(t){vr(t);let r=new TypeError("Reader was released");Or(t,r)}(this)}};function de(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readRequests")&&e instanceof Y}function Or(e,t){let r=e._readRequests;e._readRequests=new x,r.forEach(o=>{o._errorSteps(t)})}function Ie(e){return new TypeError(`ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader`)}Object.defineProperties(Y.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),T(Y.prototype.cancel,"cancel"),T(Y.prototype.read,"read"),T(Y.prototype.releaseLock,"releaseLock"),typeof S.toStringTag=="symbol"&&Object.defineProperty(Y.prototype,S.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});var Xe=class{constructor(t,r){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=t,this._preventCancel=r}next(){let t=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?H(this._ongoingPromise,t,t):t(),this._ongoingPromise}return(t){let r=()=>this._returnSteps(t);return this._ongoingPromise?H(this._ongoingPromise,r,r):r()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let t=this._reader;return t===void 0?b(ve("iterate")):ee(t.read(),r=>{var o;return this._ongoingPromise=void 0,r.done&&(this._isFinished=!0,(o=this._reader)===null||o===void 0||o.releaseLock(),this._reader=void 0),r},r=>{var o;throw this._ongoingPromise=void 0,this._isFinished=!0,(o=this._reader)===null||o===void 0||o.releaseLock(),this._reader=void 0,r})}_returnSteps(t){if(this._isFinished)return Promise.resolve({value:t,done:!0});this._isFinished=!0;let r=this._reader;if(r===void 0)return b(ve("finish iterating"));if(this._reader=void 0,!this._preventCancel){let o=r.cancel(t);return r.releaseLock(),H(o,()=>({value:t,done:!0}))}return r.releaseLock(),q({value:t,done:!0})}},Wr={next(){return Gt(this)?this._asyncIteratorImpl.next():b(Kt("next"))},return(e){return Gt(this)?this._asyncIteratorImpl.return(e):b(Kt("return"))}};function Gt(e){if(!B(e)||!Object.prototype.hasOwnProperty.call(e,"_asyncIteratorImpl"))return!1;try{return e._asyncIteratorImpl instanceof Xe}catch{return!1}}function Kt(e){return new TypeError(`ReadableStreamAsyncIterator.${e} can only be used on a ReadableSteamAsyncIterator`)}typeof S.asyncIterator=="symbol"&&Object.defineProperty(Wr,S.asyncIterator,{value(){return this},writable:!0,configurable:!0});var Ar=Number.isNaN||function(e){return e!=e};function jr(e,t,r,o,n){new Uint8Array(e).set(new Uint8Array(r,o,n),t)}function Xt(e){let t=function(r,o,n){if(r.slice)return r.slice(o,n);let i=n-o,a=new ArrayBuffer(i);return jr(a,0,r,o,i),a}(e.buffer,e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(t)}function Rt(e){let t=e._queue.shift();return e._queueTotalSize-=t.size,e._queueTotalSize<0&&(e._queueTotalSize=0),t.value}function zt(e,t,r){if(typeof(o=r)!="number"||Ar(o)||o<0||r===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");var o;e._queue.push({value:t,size:r}),e._queueTotalSize+=r}function ie(e){e._queue=new x,e._queueTotalSize=0}var oe=class{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!pt(this))throw yt("view");return this._view}respond(t){if(!pt(this))throw yt("respond");if(re(t,1,"respond"),t=qr(t,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");this._view.buffer,function(r,o){let n=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(o!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(o===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(n.bytesFilled+o>n.byteLength)throw new RangeError("bytesWritten out of range")}n.buffer=n.buffer,Zt(r,o)}(this._associatedReadableByteStreamController,t)}respondWithNewView(t){if(!pt(this))throw yt("respondWithNewView");if(re(t,1,"respondWithNewView"),!ArrayBuffer.isView(t))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");t.buffer,function(r,o){let n=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(o.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(o.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(n.byteOffset+n.bytesFilled!==o.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(n.bufferByteLength!==o.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(n.bytesFilled+o.byteLength>n.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let i=o.byteLength;n.buffer=o.buffer,Zt(r,i)}(this._associatedReadableByteStreamController,t)}};Object.defineProperties(oe.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),T(oe.prototype.respond,"respond"),T(oe.prototype.respondWithNewView,"respondWithNewView"),typeof S.toStringTag=="symbol"&&Object.defineProperty(oe.prototype,S.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});var G=class{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!ye(this))throw Ee("byobRequest");return function(t){if(t._byobRequest===null&&t._pendingPullIntos.length>0){let r=t._pendingPullIntos.peek(),o=new Uint8Array(r.buffer,r.byteOffset+r.bytesFilled,r.byteLength-r.bytesFilled),n=Object.create(oe.prototype);(function(i,a,s){i._associatedReadableByteStreamController=a,i._view=s})(n,t,o),t._byobRequest=n}return t._byobRequest}(this)}get desiredSize(){if(!ye(this))throw Ee("desiredSize");return xr(this)}close(){if(!ye(this))throw Ee("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let t=this._controlledReadableByteStream._state;if(t!=="readable")throw new TypeError(`The stream (in ${t} state) is not in the readable state and cannot be closed`);(function(r){let o=r._controlledReadableByteStream;if(!(r._closeRequested||o._state!=="readable")){if(r._queueTotalSize>0)return void(r._closeRequested=!0);if(r._pendingPullIntos.length>0&&r._pendingPullIntos.peek().bytesFilled>0){let n=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Se(r,n),n}Ze(r),je(o)}})(this)}enqueue(t){if(!ye(this))throw Ee("enqueue");if(re(t,1,"enqueue"),!ArrayBuffer.isView(t))throw new TypeError("chunk must be an array buffer view");if(t.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(t.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let r=this._controlledReadableByteStream._state;if(r!=="readable")throw new TypeError(`The stream (in ${r} state) is not in the readable state and cannot be enqueued to`);(function(o,n){let i=o._controlledReadableByteStream;if(o._closeRequested||i._state!=="readable")return;let a=n.buffer,s=n.byteOffset,u=n.byteLength,l=a;if(o._pendingPullIntos.length>0){let d=o._pendingPullIntos.peek();d.buffer,Bt(o),d.buffer=d.buffer,d.readerType==="none"&&Lr(o,d)}Cr(i)?(function(d){let f=d._controlledReadableByteStream._reader;for(;f._readRequests.length>0;){if(d._queueTotalSize===0)return;Jt(d,f._readRequests.shift())}}(o),st(i)===0?Ue(o,l,s,u):(o._pendingPullIntos.length>0&&we(o),Ft(i,new Uint8Array(l,s,u),!1))):Lt(i)?(Ue(o,l,s,u),qt(o)):Ue(o,l,s,u),he(o)})(this,t)}error(t){if(!ye(this))throw Ee("error");Se(this,t)}[Ct](t){Fr(this),ie(this);let r=this._cancelAlgorithm(t);return Ze(this),r}[Ot](t){let r=this._controlledReadableByteStream;if(this._queueTotalSize>0)return void Jt(this,t);let o=this._autoAllocateChunkSize;if(o!==void 0){let n;try{n=new ArrayBuffer(o)}catch(a){return void t._errorSteps(a)}let i={buffer:n,bufferByteLength:o,byteOffset:0,byteLength:o,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(i)}kr(r,t),he(this)}[Wt](){if(this._pendingPullIntos.length>0){let t=this._pendingPullIntos.peek();t.readerType="none",this._pendingPullIntos=new x,this._pendingPullIntos.push(t)}}};function ye(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")&&e instanceof G}function pt(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")&&e instanceof oe}function he(e){if(function(r){let o=r._controlledReadableByteStream;return o._state!=="readable"||r._closeRequested||!r._started?!1:!!(Cr(o)&&st(o)>0||Lt(o)&&Nr(o)>0||xr(r)>0)}(e)){if(e._pulling)return void(e._pullAgain=!0);e._pulling=!0,z(e._pullAlgorithm(),()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,he(e)),null),r=>(Se(e,r),null))}}function Fr(e){Bt(e),e._pendingPullIntos=new x}function Tt(e,t){let r=!1;e._state==="closed"&&(r=!0);let o=zr(t);t.readerType==="default"?Ft(e,o,r):function(n,i,a){let s=n._reader._readIntoRequests.shift();a?s._closeSteps(i):s._chunkSteps(i)}(e,o,r)}function zr(e){let t=e.bytesFilled,r=e.elementSize;return new e.viewConstructor(e.buffer,e.byteOffset,t/r)}function Ue(e,t,r,o){e._queue.push({buffer:t,byteOffset:r,byteLength:o}),e._queueTotalSize+=o}function Br(e,t,r,o){let n;try{n=t.slice(r,r+o)}catch(i){throw Se(e,i),i}Ue(e,n,0,o)}function Lr(e,t){t.bytesFilled>0&&Br(e,t.buffer,t.byteOffset,t.bytesFilled),we(e)}function Ir(e,t){let r=t.elementSize,o=t.bytesFilled-t.bytesFilled%r,n=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),i=t.bytesFilled+n,a=i-i%r,s=n,u=!1;a>o&&(s=a-t.bytesFilled,u=!0);let l=e._queue;for(;s>0;){let d=l.peek(),f=Math.min(s,d.byteLength),c=t.byteOffset+t.bytesFilled;jr(t.buffer,c,d.buffer,d.byteOffset,f),d.byteLength===f?l.shift():(d.byteOffset+=f,d.byteLength-=f),e._queueTotalSize-=f,Mr(e,f,t),s-=f}return u}function Mr(e,t,r){r.bytesFilled+=t}function $r(e){e._queueTotalSize===0&&e._closeRequested?(Ze(e),je(e._controlledReadableByteStream)):he(e)}function Bt(e){e._byobRequest!==null&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=null,e._byobRequest=null)}function qt(e){for(;e._pendingPullIntos.length>0;){if(e._queueTotalSize===0)return;let t=e._pendingPullIntos.peek();Ir(e,t)&&(we(e),Tt(e._controlledReadableByteStream,t))}}function Zt(e,t){let r=e._pendingPullIntos.peek();Bt(e),e._controlledReadableByteStream._state==="closed"?function(o,n){n.readerType==="none"&&we(o);let i=o._controlledReadableByteStream;if(Lt(i))for(;Nr(i)>0;)Tt(i,we(o))}(e,r):function(o,n,i){if(Mr(0,n,i),i.readerType==="none")return Lr(o,i),void qt(o);if(i.bytesFilled<i.elementSize)return;we(o);let a=i.bytesFilled%i.elementSize;if(a>0){let s=i.byteOffset+i.bytesFilled;Br(o,i.buffer,s-a,a)}i.bytesFilled-=a,Tt(o._controlledReadableByteStream,i),qt(o)}(e,t,r),he(e)}function we(e){return e._pendingPullIntos.shift()}function Ze(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0}function Se(e,t){let r=e._controlledReadableByteStream;r._state==="readable"&&(Fr(e),ie(e),Ze(e),eo(r,t))}function Jt(e,t){let r=e._queue.shift();e._queueTotalSize-=r.byteLength,$r(e);let o=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);t._chunkSteps(o)}function xr(e){let t=e._controlledReadableByteStream._state;return t==="errored"?null:t==="closed"?0:e._strategyHWM-e._queueTotalSize}function wo(e,t,r){let o=Object.create(G.prototype),n,i,a;n=t.start!==void 0?()=>t.start(o):()=>{},i=t.pull!==void 0?()=>t.pull(o):()=>q(void 0),a=t.cancel!==void 0?u=>t.cancel(u):()=>q(void 0);let s=t.autoAllocateChunkSize;if(s===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");(function(u,l,d,f,c,h,y){l._controlledReadableByteStream=u,l._pullAgain=!1,l._pulling=!1,l._byobRequest=null,l._queue=l._queueTotalSize=void 0,ie(l),l._closeRequested=!1,l._started=!1,l._strategyHWM=h,l._pullAlgorithm=f,l._cancelAlgorithm=c,l._autoAllocateChunkSize=y,l._pendingPullIntos=new x,u._readableStreamController=l,z(q(d()),()=>(l._started=!0,he(l),null),E=>(Se(l,E),null))})(e,o,n,i,a,r,s)}function yt(e){return new TypeError(`ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest`)}function Ee(e){return new TypeError(`ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController`)}function er(e,t){e._reader._readIntoRequests.push(t)}function Nr(e){return e._reader._readIntoRequests.length}function Lt(e){let t=e._reader;return t!==void 0&&!!me(t)}Object.defineProperties(G.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),T(G.prototype.close,"close"),T(G.prototype.enqueue,"enqueue"),T(G.prototype.error,"error"),typeof S.toStringTag=="symbol"&&Object.defineProperty(G.prototype,S.toStringTag,{value:"ReadableByteStreamController",configurable:!0});var K=class{constructor(t){if(re(t,1,"ReadableStreamBYOBReader"),Pr(t,"First parameter"),Te(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!ye(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");wr(this,t),this._readIntoRequests=new x}get closed(){return me(this)?this._closedPromise:b(Me("closed"))}cancel(t){return me(this)?this._ownerReadableStream===void 0?b(ve("cancel")):gr(this,t):b(Me("cancel"))}read(t){if(!me(this))return b(Me("read"));if(!ArrayBuffer.isView(t))return b(new TypeError("view must be an array buffer view"));if(t.byteLength===0)return b(new TypeError("view must have non-zero byteLength"));if(t.buffer.byteLength===0)return b(new TypeError("view's buffer must have non-zero byteLength"));if(t.buffer,this._ownerReadableStream===void 0)return b(ve("read from"));let r,o,n=M((i,a)=>{r=i,o=a});return function(i,a,s){let u=i._ownerReadableStream;u._disturbed=!0,u._state==="errored"?s._errorSteps(u._storedError):function(l,d,f){let c=l._controlledReadableByteStream,h=1;d.constructor!==DataView&&(h=d.constructor.BYTES_PER_ELEMENT);let y=d.constructor,E=d.buffer,R={buffer:E,bufferByteLength:E.byteLength,byteOffset:d.byteOffset,byteLength:d.byteLength,bytesFilled:0,elementSize:h,viewConstructor:y,readerType:"byob"};if(l._pendingPullIntos.length>0)return l._pendingPullIntos.push(R),void er(c,f);if(c._state!=="closed"){if(l._queueTotalSize>0){if(Ir(l,R)){let m=zr(R);return $r(l),void f._chunkSteps(m)}if(l._closeRequested){let m=new TypeError("Insufficient bytes to fill elements in the given buffer");return Se(l,m),void f._errorSteps(m)}}l._pendingPullIntos.push(R),er(c,f),he(l)}else{let m=new y(R.buffer,R.byteOffset,0);f._closeSteps(m)}}(u._readableStreamController,a,s)}(this,t,{_chunkSteps:i=>r({value:i,done:!1}),_closeSteps:i=>r({value:i,done:!0}),_errorSteps:i=>o(i)}),n}releaseLock(){if(!me(this))throw Me("releaseLock");this._ownerReadableStream!==void 0&&function(t){vr(t);let r=new TypeError("Reader was released");Hr(t,r)}(this)}};function me(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")&&e instanceof K}function Hr(e,t){let r=e._readIntoRequests;e._readIntoRequests=new x,r.forEach(o=>{o._errorSteps(t)})}function Me(e){return new TypeError(`ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader`)}function Ae(e,t){let{highWaterMark:r}=e;if(r===void 0)return t;if(Ar(r)||r<0)throw new RangeError("Invalid highWaterMark");return r}function Je(e){let{size:t}=e;return t||(()=>1)}function et(e,t){te(e,t);let r=e?.highWaterMark,o=e?.size;return{highWaterMark:r===void 0?void 0:jt(r),size:o===void 0?void 0:go(o,`${t} has member 'size' that`)}}function go(e,t){return V(e,t),r=>jt(e(r))}function vo(e,t,r){return V(e,r),o=>be(e,t,[o])}function So(e,t,r){return V(e,r),()=>be(e,t,[])}function Ro(e,t,r){return V(e,r),o=>at(e,t,[o])}function To(e,t,r){return V(e,r),(o,n)=>be(e,t,[o,n])}Object.defineProperties(K.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),T(K.prototype.cancel,"cancel"),T(K.prototype.read,"read"),T(K.prototype.releaseLock,"releaseLock"),typeof S.toStringTag=="symbol"&&Object.defineProperty(K.prototype,S.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});var qo=typeof AbortController=="function",X=class{constructor(t={},r={}){t===void 0?t=null:Tr(t,"First parameter");let o=et(r,"Second parameter"),n=function(s,u){te(s,u);let l=s?.abort,d=s?.close,f=s?.start,c=s?.type,h=s?.write;return{abort:l===void 0?void 0:vo(l,s,`${u} has member 'abort' that`),close:d===void 0?void 0:So(d,s,`${u} has member 'close' that`),start:f===void 0?void 0:Ro(f,s,`${u} has member 'start' that`),write:h===void 0?void 0:To(h,s,`${u} has member 'write' that`),type:c}}(t,"First parameter");var i;if((i=this)._state="writable",i._storedError=void 0,i._writer=void 0,i._writableStreamController=void 0,i._writeRequests=new x,i._inFlightWriteRequest=void 0,i._closeRequest=void 0,i._inFlightCloseRequest=void 0,i._pendingAbortRequest=void 0,i._backpressure=!1,n.type!==void 0)throw new RangeError("Invalid type is specified");let a=Je(o);(function(s,u,l,d){let f=Object.create(Re.prototype),c,h,y,E;c=u.start!==void 0?()=>u.start(f):()=>{},h=u.write!==void 0?R=>u.write(R,f):()=>q(void 0),y=u.close!==void 0?()=>u.close():()=>q(void 0),E=u.abort!==void 0?R=>u.abort(R):()=>q(void 0),function(R,m,W,L,k,j,$,D){m._controlledWritableStream=R,R._writableStreamController=m,m._queue=void 0,m._queueTotalSize=void 0,ie(m),m._abortReason=void 0,m._abortController=function(){if(qo)return new AbortController}(),m._started=!1,m._strategySizeAlgorithm=D,m._strategyHWM=$,m._writeAlgorithm=L,m._closeAlgorithm=k,m._abortAlgorithm=j;let _=xt(m);$t(R,_);let p=W();z(q(p),()=>(m._started=!0,lt(m),null),v=>(m._started=!0,Et(R,v),null))}(s,f,c,h,y,E,l,d)})(this,n,Ae(o,1),a)}get locked(){if(!U(this))throw xe("locked");return Ye(this)}abort(t){return U(this)?Ye(this)?b(new TypeError("Cannot abort a stream that already has a writer")):Vr(this,t):b(xe("abort"))}close(){return U(this)?Ye(this)?b(new TypeError("Cannot close a stream that already has a writer")):ne(this)?b(new TypeError("Cannot close an already-closing stream")):Dr(this):b(xe("close"))}getWriter(){if(!U(this))throw xe("getWriter");return new Q(this)}};function U(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")&&e instanceof X}function Ye(e){return e._writer!==void 0}function Vr(e,t){var r;if(e._state==="closed"||e._state==="errored")return q(void 0);e._writableStreamController._abortReason=t,(r=e._writableStreamController._abortController)===null||r===void 0||r.abort(t);let o=e._state;if(o==="closed"||o==="errored")return q(void 0);if(e._pendingAbortRequest!==void 0)return e._pendingAbortRequest._promise;let n=!1;o==="erroring"&&(n=!0,t=void 0);let i=M((a,s)=>{e._pendingAbortRequest={_promise:void 0,_resolve:a,_reject:s,_reason:t,_wasAlreadyErroring:n}});return e._pendingAbortRequest._promise=i,n||It(e,t),i}function Dr(e){let t=e._state;if(t==="closed"||t==="errored")return b(new TypeError(`The stream (in ${t} state) is not in the writable state and cannot be closed`));let r=M((i,a)=>{let s={_resolve:i,_reject:a};e._closeRequest=s}),o=e._writer;var n;return o!==void 0&&e._backpressure&&t==="writable"&&Ht(o),zt(n=e._writableStreamController,Ur,0),lt(n),r}function Et(e,t){e._state!=="writable"?Mt(e):It(e,t)}function It(e,t){let r=e._writableStreamController;e._state="erroring",e._storedError=t;let o=e._writer;o!==void 0&&Qr(o,t),!function(n){return!(n._inFlightWriteRequest===void 0&&n._inFlightCloseRequest===void 0)}(e)&&r._started&&Mt(e)}function Mt(e){e._state="errored",e._writableStreamController[mr]();let t=e._storedError;if(e._writeRequests.forEach(o=>{o._reject(t)}),e._writeRequests=new x,e._pendingAbortRequest===void 0)return void $e(e);let r=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,r._wasAlreadyErroring)return r._reject(t),void $e(e);z(e._writableStreamController[yr](r._reason),()=>(r._resolve(),$e(e),null),o=>(r._reject(o),$e(e),null))}function ne(e){return e._closeRequest!==void 0||e._inFlightCloseRequest!==void 0}function $e(e){e._closeRequest!==void 0&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);let t=e._writer;t!==void 0&&Nt(t,e._storedError)}function $t(e,t){let r=e._writer;r!==void 0&&t!==e._backpressure&&(t?function(o){ut(o)}(r):Ht(r)),e._backpressure=t}Object.defineProperties(X.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),T(X.prototype.abort,"abort"),T(X.prototype.close,"close"),T(X.prototype.getWriter,"getWriter"),typeof S.toStringTag=="symbol"&&Object.defineProperty(X.prototype,S.toStringTag,{value:"WritableStream",configurable:!0});var Q=class{constructor(t){if(re(t,1,"WritableStreamDefaultWriter"),function(n,i){if(!U(n))throw new TypeError(`${i} is not a WritableStream.`)}(t,"First parameter"),Ye(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t,t._writer=this;let r=t._state;if(r==="writable")!ne(t)&&t._backpressure?ut(this):or(this),Ge(this);else if(r==="erroring")Pt(this,t._storedError),Ge(this);else if(r==="closed")or(this),Ge(o=this),Kr(o);else{let n=t._storedError;Pt(this,n),rr(this,n)}var o}get closed(){return le(this)?this._closedPromise:b(ue("closed"))}get desiredSize(){if(!le(this))throw ue("desiredSize");if(this._ownerWritableStream===void 0)throw Pe("desiredSize");return function(t){let r=t._ownerWritableStream,o=r._state;return o==="errored"||o==="erroring"?null:o==="closed"?0:Yr(r._writableStreamController)}(this)}get ready(){return le(this)?this._readyPromise:b(ue("ready"))}abort(t){return le(this)?this._ownerWritableStream===void 0?b(Pe("abort")):function(r,o){return Vr(r._ownerWritableStream,o)}(this,t):b(ue("abort"))}close(){if(!le(this))return b(ue("close"));let t=this._ownerWritableStream;return t===void 0?b(Pe("close")):ne(t)?b(new TypeError("Cannot close an already-closing stream")):Dr(this._ownerWritableStream)}releaseLock(){if(!le(this))throw ue("releaseLock");this._ownerWritableStream!==void 0&&function(t){let r=t._ownerWritableStream,o=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");Qr(t,o),function(n,i){n._closedPromiseState==="pending"?Nt(n,i):function(a,s){rr(a,s)}(n,i)}(t,o),r._writer=void 0,t._ownerWritableStream=void 0}(this)}write(t){return le(this)?this._ownerWritableStream===void 0?b(Pe("write to")):function(r,o){let n=r._ownerWritableStream,i=n._writableStreamController,a=function(l,d){try{return l._strategySizeAlgorithm(d)}catch(f){return tr(l,f),1}}(i,o);if(n!==r._ownerWritableStream)return b(Pe("write to"));let s=n._state;if(s==="errored")return b(n._storedError);if(ne(n)||s==="closed")return b(new TypeError("The stream is closing or closed and cannot be written to"));if(s==="erroring")return b(n._storedError);let u=function(l){return M((d,f)=>{let c={_resolve:d,_reject:f};l._writeRequests.push(c)})}(n);return function(l,d,f){try{zt(l,d,f)}catch(h){return void tr(l,h)}let c=l._controlledWritableStream;!ne(c)&&c._state==="writable"&&$t(c,xt(l)),lt(l)}(i,o,a),u}(this,t):b(ue("write"))}};function le(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")&&e instanceof Q}function Qr(e,t){e._readyPromiseState==="pending"?Xr(e,t):function(r,o){Pt(r,o)}(e,t)}Object.defineProperties(Q.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),T(Q.prototype.abort,"abort"),T(Q.prototype.close,"close"),T(Q.prototype.releaseLock,"releaseLock"),T(Q.prototype.write,"write"),typeof S.toStringTag=="symbol"&&Object.defineProperty(Q.prototype,S.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});var Ur={},Re=class{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!mt(this))throw wt("abortReason");return this._abortReason}get signal(){if(!mt(this))throw wt("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(t){if(!mt(this))throw wt("error");this._controlledWritableStream._state==="writable"&&Gr(this,t)}[yr](t){let r=this._abortAlgorithm(t);return tt(this),r}[mr](){ie(this)}};function mt(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream")&&e instanceof Re}function tt(e){e._writeAlgorithm=void 0,e._closeAlgorithm=void 0,e._abortAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function Yr(e){return e._strategyHWM-e._queueTotalSize}function lt(e){let t=e._controlledWritableStream;if(!e._started||t._inFlightWriteRequest!==void 0)return;if(t._state==="erroring")return void Mt(t);if(e._queue.length===0)return;let r=e._queue.peek().value;r===Ur?function(o){let n=o._controlledWritableStream;(function(a){a._inFlightCloseRequest=a._closeRequest,a._closeRequest=void 0})(n),Rt(o);let i=o._closeAlgorithm();tt(o),z(i,()=>(function(a){a._inFlightCloseRequest._resolve(void 0),a._inFlightCloseRequest=void 0,a._state==="erroring"&&(a._storedError=void 0,a._pendingAbortRequest!==void 0&&(a._pendingAbortRequest._resolve(),a._pendingAbortRequest=void 0)),a._state="closed";let s=a._writer;s!==void 0&&Kr(s)}(n),null),a=>(function(s,u){s._inFlightCloseRequest._reject(u),s._inFlightCloseRequest=void 0,s._pendingAbortRequest!==void 0&&(s._pendingAbortRequest._reject(u),s._pendingAbortRequest=void 0),Et(s,u)}(n,a),null))}(e):function(o,n){let i=o._controlledWritableStream;(function(a){a._inFlightWriteRequest=a._writeRequests.shift()})(i),z(o._writeAlgorithm(n),()=>{(function(s){s._inFlightWriteRequest._resolve(void 0),s._inFlightWriteRequest=void 0})(i);let a=i._state;if(Rt(o),!ne(i)&&a==="writable"){let s=xt(o);$t(i,s)}return lt(o),null},a=>(i._state==="writable"&&tt(o),function(s,u){s._inFlightWriteRequest._reject(u),s._inFlightWriteRequest=void 0,Et(s,u)}(i,a),null))}(e,r)}function tr(e,t){e._controlledWritableStream._state==="writable"&&Gr(e,t)}function xt(e){return Yr(e)<=0}function Gr(e,t){let r=e._controlledWritableStream;tt(e),It(r,t)}function xe(e){return new TypeError(`WritableStream.prototype.${e} can only be used on a WritableStream`)}function wt(e){return new TypeError(`WritableStreamDefaultController.prototype.${e} can only be used on a WritableStreamDefaultController`)}function ue(e){return new TypeError(`WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter`)}function Pe(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function Ge(e){e._closedPromise=M((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState="pending"})}function rr(e,t){Ge(e),Nt(e,t)}function Nt(e,t){e._closedPromise_reject!==void 0&&(ge(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected")}function Kr(e){e._closedPromise_resolve!==void 0&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved")}function ut(e){e._readyPromise=M((t,r)=>{e._readyPromise_resolve=t,e._readyPromise_reject=r}),e._readyPromiseState="pending"}function Pt(e,t){ut(e),Xr(e,t)}function or(e){ut(e),Ht(e)}function Xr(e,t){e._readyPromise_reject!==void 0&&(ge(e._readyPromise),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected")}function Ht(e){e._readyPromise_resolve!==void 0&&(e._readyPromise_resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled")}Object.defineProperties(Re.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof S.toStringTag=="symbol"&&Object.defineProperty(Re.prototype,S.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});var nr=typeof DOMException<"u"?DOMException:void 0,Eo=function(e){if(typeof e!="function"&&typeof e!="object")return!1;try{return new e,!0}catch{return!1}}(nr)?nr:function(){let e=function(t,r){this.message=t||"",this.name=r||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return e.prototype=Object.create(Error.prototype),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,configurable:!0}),e}();function ir(e,t,r,o,n,i){let a=e.getReader(),s=t.getWriter();fe(e)&&(e._disturbed=!0);let u,l,d,f=!1,c=!1,h="readable",y="writable",E=!1,R=!1,m=M(L=>{d=L}),W=Promise.resolve(void 0);return M((L,k)=>{let j;function $(){if(f)return;let w=M((O,g)=>{(function P(N){N?O():ee(function(){return f?q(!0):ee(s.ready,()=>ee(a.read(),I=>!!I.done||(W=s.write(I.value),ge(W),!1)))}(),P,g)})(!1)});ge(w)}function D(){return h="closed",r?C():v(()=>(U(t)&&(E=ne(t),y=t._state),E||y==="closed"?q(void 0):y==="erroring"||y==="errored"?b(l):(E=!0,s.close())),!1,void 0),null}function _(w){return f||(h="errored",u=w,o?C(!0,w):v(()=>s.abort(w),!0,w)),null}function p(w){return c||(y="errored",l=w,n?C(!0,w):v(()=>a.cancel(w),!0,w)),null}if(i!==void 0&&(j=()=>{let w=i.reason!==void 0?i.reason:new Eo("Aborted","AbortError"),O=[];o||O.push(()=>y==="writable"?s.abort(w):q(void 0)),n||O.push(()=>h==="readable"?a.cancel(w):q(void 0)),v(()=>Promise.all(O.map(g=>g())),!0,w)},i.aborted?j():i.addEventListener("abort",j)),fe(e)&&(h=e._state,u=e._storedError),U(t)&&(y=t._state,l=t._storedError,E=ne(t)),fe(e)&&U(t)&&(R=!0,d()),h==="errored")_(u);else if(y==="erroring"||y==="errored")p(l);else if(h==="closed")D();else if(E||y==="closed"){let w=new TypeError("the destination writable stream closed before all data could be piped to it");n?C(!0,w):v(()=>a.cancel(w),!0,w)}function v(w,O,g){function P(){return y!=="writable"||E?N():Dt(function(){let I;return q(function pe(){if(I!==W)return I=W,H(W,pe,pe)}())}(),N),null}function N(){return w?z(w(),()=>F(O,g),I=>F(!0,I)):F(O,g),null}f||(f=!0,R?P():Dt(m,P))}function C(w,O){v(void 0,w,O)}function F(w,O){return c=!0,s.releaseLock(),a.releaseLock(),i!==void 0&&i.removeEventListener("abort",j),w?k(O):L(void 0),null}f||(z(a.closed,D,_),z(s.closed,function(){return c||(y="closed"),null},p)),R?$():Qe(()=>{R=!0,d(),$()})})}function Po(e,t){return function(r){try{return r.getReader({mode:"byob"}).releaseLock(),!0}catch{return!1}}(e)?function(r){let o,n,i,a,s,u=r.getReader(),l=!1,d=!1,f=!1,c=!1,h=!1,y=!1,E=M(p=>{s=p});function R(p){Qt(p.closed,v=>(p!==u||(i.error(v),a.error(v),h&&y||s(void 0)),null))}function m(){l&&(u.releaseLock(),u=r.getReader(),R(u),l=!1),z(u.read(),p=>{var v,C;if(f=!1,c=!1,p.done)return h||i.close(),y||a.close(),(v=i.byobRequest)===null||v===void 0||v.respond(0),(C=a.byobRequest)===null||C===void 0||C.respond(0),h&&y||s(void 0),null;let F=p.value,w=F,O=F;if(!h&&!y)try{O=Xt(F)}catch(g){return i.error(g),a.error(g),s(u.cancel(g)),null}return h||i.enqueue(w),y||a.enqueue(O),d=!1,f?L():c&&k(),null},()=>(d=!1,null))}function W(p,v){l||(u.releaseLock(),u=r.getReader({mode:"byob"}),R(u),l=!0);let C=v?a:i,F=v?i:a;z(u.read(p),w=>{var O;f=!1,c=!1;let g=v?y:h,P=v?h:y;if(w.done){g||C.close(),P||F.close();let I=w.value;return I!==void 0&&(g||C.byobRequest.respondWithNewView(I),P||(O=F.byobRequest)===null||O===void 0||O.respond(0)),g&&P||s(void 0),null}let N=w.value;if(P)g||C.byobRequest.respondWithNewView(N);else{let I;try{I=Xt(N)}catch(pe){return C.error(pe),F.error(pe),s(u.cancel(pe)),null}g||C.byobRequest.respondWithNewView(N),F.enqueue(I)}return d=!1,f?L():c&&k(),null},()=>(d=!1,null))}function L(){if(d)return f=!0,q(void 0);d=!0;let p=i.byobRequest;return p===null?m():W(p.view,!1),q(void 0)}function k(){if(d)return c=!0,q(void 0);d=!0;let p=a.byobRequest;return p===null?m():W(p.view,!0),q(void 0)}function j(p){if(h=!0,o=p,y){let v=[o,n],C=u.cancel(v);s(C)}return E}function $(p){if(y=!0,n=p,h){let v=[o,n],C=u.cancel(v);s(C)}return E}let D=new A({type:"bytes",start(p){i=p},pull:L,cancel:j}),_=new A({type:"bytes",start(p){a=p},pull:k,cancel:$});return R(u),[D,_]}(e):function(r,o){let n=r.getReader(),i,a,s,u,l,d=!1,f=!1,c=!1,h=!1,y=M(k=>{l=k});function E(){return d?(f=!0,q(void 0)):(d=!0,z(n.read(),k=>{if(f=!1,k.done)return c||s.close(),h||u.close(),c&&h||l(void 0),null;let j=k.value,$=j,D=j;return c||s.enqueue($),h||u.enqueue(D),d=!1,f&&E(),null},()=>(d=!1,null)),q(void 0))}function R(k){if(c=!0,i=k,h){let j=[i,a],$=n.cancel(j);l($)}return y}function m(k){if(h=!0,a=k,c){let j=[i,a],$=n.cancel(j);l($)}return y}let W=new A({start(k){s=k},pull:E,cancel:R}),L=new A({start(k){u=k},pull:E,cancel:m});return Qt(n.closed,k=>(s.error(k),u.error(k),c&&h||l(void 0),null)),[W,L]}(e)}var Z=class{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Ne(this))throw He("desiredSize");return Zr(this)}close(){if(!Ne(this))throw He("close");if(!Ce(this))throw new TypeError("The stream is not in a state that permits close");(function(t){if(!Ce(t))return;let r=t._controlledReadableStream;t._closeRequested=!0,t._queue.length===0&&(Ke(t),je(r))})(this)}enqueue(t){if(!Ne(this))throw He("enqueue");if(!Ce(this))throw new TypeError("The stream is not in a state that permits enqueue");return function(r,o){if(!Ce(r))return;let n=r._controlledReadableStream;if(Te(n)&&st(n)>0)Ft(n,o,!1);else{let i;try{i=r._strategySizeAlgorithm(o)}catch(a){throw We(r,a),a}try{zt(r,o,i)}catch(a){throw We(r,a),a}}Oe(r)}(this,t)}error(t){if(!Ne(this))throw He("error");We(this,t)}[Ct](t){ie(this);let r=this._cancelAlgorithm(t);return Ke(this),r}[Ot](t){let r=this._controlledReadableStream;if(this._queue.length>0){let o=Rt(this);this._closeRequested&&this._queue.length===0?(Ke(this),je(r)):Oe(this),t._chunkSteps(o)}else kr(r,t),Oe(this)}[Wt](){}};function Ne(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")&&e instanceof Z}function Oe(e){if(function(r){let o=r._controlledReadableStream;return!Ce(r)||!r._started?!1:!!(Te(o)&&st(o)>0||Zr(r)>0)}(e)){if(e._pulling)return void(e._pullAgain=!0);e._pulling=!0,z(e._pullAlgorithm(),()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,Oe(e)),null),r=>(We(e,r),null))}}function Ke(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function We(e,t){let r=e._controlledReadableStream;r._state==="readable"&&(ie(e),Ke(e),eo(r,t))}function Zr(e){let t=e._controlledReadableStream._state;return t==="errored"?null:t==="closed"?0:e._strategyHWM-e._queueTotalSize}function Ce(e){return!e._closeRequested&&e._controlledReadableStream._state==="readable"}function ko(e,t,r,o){let n=Object.create(Z.prototype),i,a,s;i=t.start!==void 0?()=>t.start(n):()=>{},a=t.pull!==void 0?()=>t.pull(n):()=>q(void 0),s=t.cancel!==void 0?u=>t.cancel(u):()=>q(void 0),function(u,l,d,f,c,h,y){l._controlledReadableStream=u,l._queue=void 0,l._queueTotalSize=void 0,ie(l),l._started=!1,l._closeRequested=!1,l._pullAgain=!1,l._pulling=!1,l._strategySizeAlgorithm=y,l._strategyHWM=h,l._pullAlgorithm=f,l._cancelAlgorithm=c,u._readableStreamController=l,z(q(d()),()=>(l._started=!0,Oe(l),null),E=>(We(l,E),null))}(e,n,i,a,s,r,o)}function He(e){return new TypeError(`ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController`)}function Co(e,t,r){return V(e,r),o=>be(e,t,[o])}function Oo(e,t,r){return V(e,r),o=>be(e,t,[o])}function Wo(e,t,r){return V(e,r),o=>at(e,t,[o])}function Ao(e,t){if((e=`${e}`)!="bytes")throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamType`);return e}function jo(e,t){if((e=`${e}`)!="byob")throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamReaderMode`);return e}function ar(e,t){te(e,t);let r=e?.preventAbort,o=e?.preventCancel,n=e?.preventClose,i=e?.signal;return i!==void 0&&function(a,s){if(!function(u){if(typeof u!="object"||u===null)return!1;try{return typeof u.aborted=="boolean"}catch{return!1}}(a))throw new TypeError(`${s} is not an AbortSignal.`)}(i,`${t} has member 'signal' that`),{preventAbort:!!r,preventCancel:!!o,preventClose:!!n,signal:i}}function Fo(e,t){te(e,t);let r=e?.readable;St(r,"readable","ReadableWritablePair"),function(n,i){if(!ke(n))throw new TypeError(`${i} is not a ReadableStream.`)}(r,`${t} has member 'readable' that`);let o=e?.writable;return St(o,"writable","ReadableWritablePair"),function(n,i){if(!Er(n))throw new TypeError(`${i} is not a WritableStream.`)}(o,`${t} has member 'writable' that`),{readable:r,writable:o}}Object.defineProperties(Z.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),T(Z.prototype.close,"close"),T(Z.prototype.enqueue,"enqueue"),T(Z.prototype.error,"error"),typeof S.toStringTag=="symbol"&&Object.defineProperty(Z.prototype,S.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});var A=class{constructor(t={},r={}){t===void 0?t=null:Tr(t,"First parameter");let o=et(r,"Second parameter"),n=function(a,s){te(a,s);let u=a,l=u?.autoAllocateChunkSize,d=u?.cancel,f=u?.pull,c=u?.start,h=u?.type;return{autoAllocateChunkSize:l===void 0?void 0:qr(l,`${s} has member 'autoAllocateChunkSize' that`),cancel:d===void 0?void 0:Co(d,u,`${s} has member 'cancel' that`),pull:f===void 0?void 0:Oo(f,u,`${s} has member 'pull' that`),start:c===void 0?void 0:Wo(c,u,`${s} has member 'start' that`),type:h===void 0?void 0:Ao(h,`${s} has member 'type' that`)}}(t,"First parameter");var i;if((i=this)._state="readable",i._reader=void 0,i._storedError=void 0,i._disturbed=!1,n.type==="bytes"){if(o.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");wo(this,n,Ae(o,0))}else{let a=Je(o);ko(this,n,Ae(o,1),a)}}get locked(){if(!fe(this))throw ce("locked");return Te(this)}cancel(t){return fe(this)?Te(this)?b(new TypeError("Cannot cancel a stream that already has a reader")):Jr(this,t):b(ce("cancel"))}getReader(t){if(!fe(this))throw ce("getReader");return function(r,o){te(r,o);let n=r?.mode;return{mode:n===void 0?void 0:jo(n,`${o} has member 'mode' that`)}}(t,"First parameter").mode===void 0?new Y(this):function(r){return new K(r)}(this)}pipeThrough(t,r={}){if(!ke(this))throw ce("pipeThrough");re(t,1,"pipeThrough");let o=Fo(t,"First parameter"),n=ar(r,"Second parameter");if(this.locked)throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(o.writable.locked)throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");return ge(ir(this,o.writable,n.preventClose,n.preventAbort,n.preventCancel,n.signal)),o.readable}pipeTo(t,r={}){if(!ke(this))return b(ce("pipeTo"));if(t===void 0)return b("Parameter 1 is required in 'pipeTo'.");if(!Er(t))return b(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let o;try{o=ar(r,"Second parameter")}catch(n){return b(n)}return this.locked?b(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):t.locked?b(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):ir(this,t,o.preventClose,o.preventAbort,o.preventCancel,o.signal)}tee(){if(!ke(this))throw ce("tee");if(this.locked)throw new TypeError("Cannot tee a stream that already has a reader");return Po(this)}values(t){if(!ke(this))throw ce("values");return function(r,o){let n=r.getReader(),i=new Xe(n,o),a=Object.create(Wr);return a._asyncIteratorImpl=i,a}(this,function(r,o){return te(r,o),{preventCancel:!!r?.preventCancel}}(t,"First parameter").preventCancel)}};function fe(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")&&e instanceof A}function Te(e){return e._reader!==void 0}function Jr(e,t){if(e._disturbed=!0,e._state==="closed")return q(void 0);if(e._state==="errored")return b(e._storedError);je(e);let r=e._reader;if(r!==void 0&&me(r)){let o=r._readIntoRequests;r._readIntoRequests=new x,o.forEach(n=>{n._closeSteps(void 0)})}return H(e._readableStreamController[Ct](t),_r)}function je(e){e._state="closed";let t=e._reader;if(t!==void 0&&(Rr(t),de(t))){let r=t._readRequests;t._readRequests=new x,r.forEach(o=>{o._closeSteps()})}}function eo(e,t){e._state="errored",e._storedError=t;let r=e._reader;r!==void 0&&(At(r,t),de(r)?Or(r,t):Hr(r,t))}function ce(e){return new TypeError(`ReadableStream.prototype.${e} can only be used on a ReadableStream`)}function to(e,t){te(e,t);let r=e?.highWaterMark;return St(r,"highWaterMark","QueuingStrategyInit"),{highWaterMark:jt(r)}}Object.defineProperties(A.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),T(A.prototype.cancel,"cancel"),T(A.prototype.getReader,"getReader"),T(A.prototype.pipeThrough,"pipeThrough"),T(A.prototype.pipeTo,"pipeTo"),T(A.prototype.tee,"tee"),T(A.prototype.values,"values"),typeof S.toStringTag=="symbol"&&Object.defineProperty(A.prototype,S.toStringTag,{value:"ReadableStream",configurable:!0}),typeof S.asyncIterator=="symbol"&&Object.defineProperty(A.prototype,S.asyncIterator,{value:A.prototype.values,writable:!0,configurable:!0});var ro=e=>e.byteLength;T(ro,"size");var Fe=class{constructor(t){re(t,1,"ByteLengthQueuingStrategy"),t=to(t,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=t.highWaterMark}get highWaterMark(){if(!lr(this))throw sr("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!lr(this))throw sr("size");return ro}};function sr(e){return new TypeError(`ByteLengthQueuingStrategy.prototype.${e} can only be used on a ByteLengthQueuingStrategy`)}function lr(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_byteLengthQueuingStrategyHighWaterMark")&&e instanceof Fe}Object.defineProperties(Fe.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof S.toStringTag=="symbol"&&Object.defineProperty(Fe.prototype,S.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});var oo=()=>1;T(oo,"size");var ze=class{constructor(t){re(t,1,"CountQueuingStrategy"),t=to(t,"First parameter"),this._countQueuingStrategyHighWaterMark=t.highWaterMark}get highWaterMark(){if(!cr(this))throw ur("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!cr(this))throw ur("size");return oo}};function ur(e){return new TypeError(`CountQueuingStrategy.prototype.${e} can only be used on a CountQueuingStrategy`)}function cr(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_countQueuingStrategyHighWaterMark")&&e instanceof ze}function zo(e,t,r){return V(e,r),o=>be(e,t,[o])}function Bo(e,t,r){return V(e,r),o=>at(e,t,[o])}function Lo(e,t,r){return V(e,r),(o,n)=>be(e,t,[o,n])}Object.defineProperties(ze.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof S.toStringTag=="symbol"&&Object.defineProperty(ze.prototype,S.toStringTag,{value:"CountQueuingStrategy",configurable:!0});var Be=class{constructor(t={},r={},o={}){t===void 0&&(t=null);let n=et(r,"Second parameter"),i=et(o,"Third parameter"),a=function(c,h){te(c,h);let y=c?.flush,E=c?.readableType,R=c?.start,m=c?.transform,W=c?.writableType;return{flush:y===void 0?void 0:zo(y,c,`${h} has member 'flush' that`),readableType:E,start:R===void 0?void 0:Bo(R,c,`${h} has member 'start' that`),transform:m===void 0?void 0:Lo(m,c,`${h} has member 'transform' that`),writableType:W}}(t,"First parameter");if(a.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(a.writableType!==void 0)throw new RangeError("Invalid writableType specified");let s=Ae(i,0),u=Je(i),l=Ae(n,1),d=Je(n),f;(function(c,h,y,E,R,m){function W(){return h}function L(_){return function(p,v){let C=p._transformStreamController;return p._backpressure?H(p._backpressureChangePromise,()=>{if((U(p._writable)?p._writable._state:p._writableState)==="erroring")throw U(p._writable)?p._writable._storedError:p._writableStoredError;return fr(C,v)}):fr(C,v)}(c,_)}function k(_){return function(p,v){return rt(p,v),q(void 0)}(c,_)}function j(){return function(_){let p=_._transformStreamController,v=p._flushAlgorithm();return no(p),H(v,()=>{if(_._readableState==="errored")throw _._readableStoredError;nt(_)&&ao(_)},C=>{throw rt(_,C),_._readableStoredError})}(c)}function $(){return function(_){return ot(_,!1),_._backpressureChangePromise}(c)}function D(_){return ct(c,_),q(void 0)}c._writableState="writable",c._writableStoredError=void 0,c._writableHasInFlightOperation=!1,c._writableStarted=!1,c._writable=function(_,p,v,C,F,w,O){return new X({start(g){_._writableController=g;try{let P=g.signal;P!==void 0&&P.addEventListener("abort",()=>{_._writableState==="writable"&&(_._writableState="erroring",P.reason&&(_._writableStoredError=P.reason))})}catch{}return H(p(),()=>(_._writableStarted=!0,br(_),null),P=>{throw _._writableStarted=!0,gt(_,P),P})},write:g=>(function(P){P._writableHasInFlightOperation=!0}(_),H(v(g),()=>(function(P){P._writableHasInFlightOperation=!1}(_),br(_),null),P=>{throw function(N,I){N._writableHasInFlightOperation=!1,gt(N,I)}(_,P),P})),close:()=>(function(g){g._writableHasInFlightOperation=!0}(_),H(C(),()=>(function(g){g._writableHasInFlightOperation=!1,g._writableState==="erroring"&&(g._writableStoredError=void 0),g._writableState="closed"}(_),null),g=>{throw function(P,N){P._writableHasInFlightOperation=!1,P._writableState,gt(P,N)}(_,g),g})),abort:g=>(_._writableState="errored",_._writableStoredError=g,F(g))},{highWaterMark:w,size:O})}(c,W,L,j,k,y,E),c._readableState="readable",c._readableStoredError=void 0,c._readableCloseRequested=!1,c._readablePulling=!1,c._readable=function(_,p,v,C,F,w){return new A({start:O=>(_._readableController=O,p().catch(g=>{it(_,g)})),pull:()=>(_._readablePulling=!0,v().catch(O=>{it(_,O)})),cancel:O=>(_._readableState="closed",C(O))},{highWaterMark:F,size:w})}(c,W,$,D,R,m),c._backpressure=void 0,c._backpressureChangePromise=void 0,c._backpressureChangePromise_resolve=void 0,ot(c,!0),c._transformStreamController=void 0})(this,M(c=>{f=c}),l,d,s,u),function(c,h){let y=Object.create(J.prototype),E,R;E=h.transform!==void 0?m=>h.transform(m,y):m=>{try{return io(y,m),q(void 0)}catch(W){return b(W)}},R=h.flush!==void 0?()=>h.flush(y):()=>q(void 0),function(m,W,L,k){W._controlledTransformStream=m,m._transformStreamController=W,W._transformAlgorithm=L,W._flushAlgorithm=k}(c,y,E,R)}(this,a),a.start!==void 0?f(a.start(this._transformStreamController)):f(void 0)}get readable(){if(!dr(this))throw hr("readable");return this._readable}get writable(){if(!dr(this))throw hr("writable");return this._writable}};function dr(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")&&e instanceof Be}function rt(e,t){it(e,t),ct(e,t)}function ct(e,t){no(e._transformStreamController),function(r,o){r._writableController.error(o),r._writableState==="writable"&&lo(r,o)}(e,t),e._backpressure&&ot(e,!1)}function ot(e,t){e._backpressureChangePromise!==void 0&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=M(r=>{e._backpressureChangePromise_resolve=r}),e._backpressure=t}Object.defineProperties(Be.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof S.toStringTag=="symbol"&&Object.defineProperty(Be.prototype,S.toStringTag,{value:"TransformStream",configurable:!0});var J=class{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Ve(this))throw De("desiredSize");return so(this._controlledTransformStream)}enqueue(t){if(!Ve(this))throw De("enqueue");io(this,t)}error(t){if(!Ve(this))throw De("error");var r;r=t,rt(this._controlledTransformStream,r)}terminate(){if(!Ve(this))throw De("terminate");(function(t){let r=t._controlledTransformStream;nt(r)&&ao(r);let o=new TypeError("TransformStream terminated");ct(r,o)})(this)}};function Ve(e){return!!B(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")&&e instanceof J}function no(e){e._transformAlgorithm=void 0,e._flushAlgorithm=void 0}function io(e,t){let r=e._controlledTransformStream;if(!nt(r))throw new TypeError("Readable side is not in a state that permits enqueue");try{(function(n,i){n._readablePulling=!1;try{n._readableController.enqueue(i)}catch(a){throw it(n,a),a}})(r,t)}catch(n){throw ct(r,n),r._readableStoredError}(function(n){return!function(i){return nt(i)?!!(i._readablePulling||so(i)>0):!1}(n)})(r)!==r._backpressure&&ot(r,!0)}function fr(e,t){return H(e._transformAlgorithm(t),void 0,r=>{throw rt(e._controlledTransformStream,r),r})}function De(e){return new TypeError(`TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController`)}function hr(e){return new TypeError(`TransformStream.prototype.${e} can only be used on a TransformStream`)}function nt(e){return!e._readableCloseRequested&&e._readableState==="readable"}function ao(e){e._readableState="closed",e._readableCloseRequested=!0,e._readableController.close()}function it(e,t){e._readableState==="readable"&&(e._readableState="errored",e._readableStoredError=t),e._readableController.error(t)}function so(e){return e._readableController.desiredSize}function gt(e,t){e._writableState!=="writable"?Vt(e):lo(e,t)}function lo(e,t){e._writableState="erroring",e._writableStoredError=t,!function(r){return r._writableHasInFlightOperation}(e)&&e._writableStarted&&Vt(e)}function Vt(e){e._writableState="errored"}function br(e){e._writableState==="erroring"&&Vt(e)}Object.defineProperties(J.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),T(J.prototype.enqueue,"enqueue"),T(J.prototype.error,"error"),T(J.prototype.terminate,"terminate"),typeof S.toStringTag=="symbol"&&Object.defineProperty(J.prototype,S.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});var ae=e=>typeof e=="function";var uo=65536;async function*Io(e){let t=e.byteOffset+e.byteLength,r=e.byteOffset;for(;r!==t;){let o=Math.min(t-r,uo),n=e.buffer.slice(r,r+o);r+=n.byteLength,yield new Uint8Array(n)}}async function*Mo(e){let t=0;for(;t!==e.size;){let o=await e.slice(t,Math.min(e.size,t+uo)).arrayBuffer();t+=o.byteLength,yield new Uint8Array(o)}}async function*dt(e,t=!1){for(let r of e)ArrayBuffer.isView(r)?t?yield*Io(r):yield r:ae(r.stream)?yield*r.stream():yield*Mo(r)}function*co(e,t,r=0,o){o??(o=t);let n=r<0?Math.max(t+r,0):Math.min(r,t),i=o<0?Math.max(t+o,0):Math.min(o,t),a=Math.max(i-n,0),s=0;for(let u of e){if(s>=a)break;let l=ArrayBuffer.isView(u)?u.byteLength:u.size;if(n&&l<=n)n-=l,i-=l;else{let d;ArrayBuffer.isView(u)?(d=u.subarray(n,Math.min(l,i)),s+=d.byteLength):(d=u.slice(n,Math.min(l,i)),s+=d.size),i-=l,n=0,yield d}}}var se=function(e,t,r,o){if(r==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?o:r==="a"?o.call(e):o?o.value:t.get(e)},fo=function(e,t,r,o,n){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?n.call(e,r):n?n.value=r:t.set(e,r),r},_e,ft,Le,qe=class e{constructor(t=[],r={}){if(_e.set(this,[]),ft.set(this,""),Le.set(this,0),r??(r={}),typeof t!="object"||t===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(!ae(t[Symbol.iterator]))throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof r!="object"&&!ae(r))throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");let o=new TextEncoder;for(let i of t){let a;ArrayBuffer.isView(i)?a=new Uint8Array(i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)):i instanceof ArrayBuffer?a=new Uint8Array(i.slice(0)):i instanceof e?a=i:a=o.encode(String(i)),fo(this,Le,se(this,Le,"f")+(ArrayBuffer.isView(a)?a.byteLength:a.size),"f"),se(this,_e,"f").push(a)}let n=r.type===void 0?"":String(r.type);fo(this,ft,/^[\x20-\x7E]*$/.test(n)?n:"","f")}static[(_e=new WeakMap,ft=new WeakMap,Le=new WeakMap,Symbol.hasInstance)](t){return!!(t&&typeof t=="object"&&ae(t.constructor)&&(ae(t.stream)||ae(t.arrayBuffer))&&/^(Blob|File)$/.test(t[Symbol.toStringTag]))}get type(){return se(this,ft,"f")}get size(){return se(this,Le,"f")}slice(t,r,o){return new e(co(se(this,_e,"f"),this.size,t,r),{type:o})}async text(){let t=new TextDecoder,r="";for await(let o of dt(se(this,_e,"f")))r+=t.decode(o,{stream:!0});return r+=t.decode(),r}async arrayBuffer(){let t=new Uint8Array(this.size),r=0;for await(let o of dt(se(this,_e,"f")))t.set(o,r),r+=o.length;return t.buffer}stream(){let t=dt(se(this,_e,"f"),!0);return new A({async pull(r){let{value:o,done:n}=await t.next();if(n)return queueMicrotask(()=>r.close());r.enqueue(o)},async cancel(){await t.return()}})}get[Symbol.toStringTag](){return"Blob"}};Object.defineProperties(qe.prototype,{type:{enumerable:!0},size:{enumerable:!0},slice:{enumerable:!0},stream:{enumerable:!0},text:{enumerable:!0},arrayBuffer:{enumerable:!0}});var ho=function(e,t,r,o,n){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?n.call(e,r):n?n.value=r:t.set(e,r),r},bo=function(e,t,r,o){if(r==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?o:r==="a"?o.call(e):o?o.value:t.get(e)},ht,bt,_t=class extends qe{constructor(t,r,o={}){if(super(t,o),ht.set(this,void 0),bt.set(this,0),arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);ho(this,ht,String(r),"f");let n=o.lastModified===void 0?Date.now():Number(o.lastModified);Number.isNaN(n)||ho(this,bt,n,"f")}static[(ht=new WeakMap,bt=new WeakMap,Symbol.hasInstance)](t){return t instanceof qe&&t[Symbol.toStringTag]==="File"&&typeof t.name=="string"}get name(){return bo(this,ht,"f")}get lastModified(){return bo(this,bt,"f")}get webkitRelativePath(){return""}get[Symbol.toStringTag](){return"File"}};var Xo=e=>e instanceof _t;export{ae as a,qe as b,_t as c,Xo as d};
4
+ /*! Bundled license information:
5
+
6
+ web-streams-polyfill/dist/ponyfill.mjs:
7
+ (**
8
+ * @license
9
+ * web-streams-polyfill v4.0.0-beta.3
10
+ * Copyright 2021 Mattias Buelens, Diwank Singh Tomer and other contributors.
11
+ * This code is released under the MIT license.
12
+ * SPDX-License-Identifier: MIT
13
+ *)
14
+
15
+ formdata-node/lib/esm/blobHelpers.js:
16
+ formdata-node/lib/esm/Blob.js:
17
+ (*! Based on fetch-blob. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> & David Frank *)
18
+ */
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __createRequire } from "module";
2
2
  const require = __createRequire(import.meta.url);
3
- import{a as Pe,c as Zu,d as Ir,e as Kt,f as Me,g as He,h as Ue}from"./chunk-JY6U4L7Q.js";import{A as Ar,B as Lr,a as er,b as tr,c as ur,d as rr,e as ir,f as ar,g as nr,h as sr,i as or,j as cr,k as lr,l as dr,m as fr,n as hr,o as pr,p as mr,q as gr,r as br,s as xr,t as wr,u as yr,v as vr,w as kr,x as Sr,y as Tr,z as Er}from"./chunk-ESJGKHJ4.js";import{a as Oe,b as P,c as jt,d as Vt,f as Qu,n as Re}from"./chunk-VXL4KP4U.js";import{a as o}from"./chunk-QU5HYOUM.js";import{a as Jt,b as Nr,c as pe,d as Dr,e as $r,f as Cr,g as Br,h as Pr,i as Or,l as Rr,o as Yt,r as qr}from"./chunk-4JBGAENP.js";import{a as Wt,b as _r,d as Gt,g as zt,h as qe}from"./chunk-FL4TL6US.js";import{a as k}from"./chunk-BVOD5VWH.js";import{c as Ft}from"./chunk-FBJSHHRD.js";import{a as nn,c as X,d as Xu}from"./chunk-CSINHOOD.js";var zi=X((xl,Gi)=>{"use strict";var Ws=function(t){return Gs(t)&&!zs(t)};function Gs(e){return!!e&&typeof e=="object"}function zs(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Ys(e)}var Ks=typeof Symbol=="function"&&Symbol.for,Js=Ks?Symbol.for("react.element"):60103;function Ys(e){return e.$$typeof===Js}function Xs(e){return Array.isArray(e)?[]:{}}function De(e,t){return t.clone!==!1&&t.isMergeableObject(e)?fe(Xs(e),e,t):e}function Zs(e,t,u){return e.concat(t).map(function(r){return De(r,u)})}function Qs(e,t){if(!t.customMerge)return fe;var u=t.customMerge(e);return typeof u=="function"?u:fe}function eo(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function Vi(e){return Object.keys(e).concat(eo(e))}function Wi(e,t){try{return t in e}catch{return!1}}function to(e,t){return Wi(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function uo(e,t,u){var r={};return u.isMergeableObject(e)&&Vi(e).forEach(function(i){r[i]=De(e[i],u)}),Vi(t).forEach(function(i){to(e,i)||(Wi(e,i)&&u.isMergeableObject(t[i])?r[i]=Qs(i,u)(e[i],t[i],u):r[i]=De(t[i],u))}),r}function fe(e,t,u){u=u||{},u.arrayMerge=u.arrayMerge||Zs,u.isMergeableObject=u.isMergeableObject||Ws,u.cloneUnlessOtherwiseSpecified=De;var r=Array.isArray(t),i=Array.isArray(e),a=r===i;return a?r?u.arrayMerge(e,t,u):uo(e,t,u):De(t,u)}fe.all=function(t,u){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return fe(r,i,u)},{})};var ro=fe;Gi.exports=ro});var ya=X(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});function m0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var wa=m0(nn("crypto")),g0=(e,t,u)=>wa.createHmac(e,Buffer.from(t,"hex")).update(Buffer.from(u,"hex")).digest().toString("hex"),b0=(e,t)=>wa.randomBytes(e).toString(t);Tt.createDigest=g0;Tt.createRandomBytes=b0});var ka=X(Du=>{"use strict";var x0="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",va=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function w0(e){var t=Math.floor(e.length/5);return e.length%5===0?t:t+1}Du.encode=function(e){Buffer.isBuffer(e)||(e=new Buffer(e));for(var t=0,u=0,r=0,i=0,a=new Buffer(w0(e)*8);t<e.length;){var n=e[t];r>3?(i=n&255>>r,r=(r+5)%8,i=i<<r|(t+1<e.length?e[t+1]:0)>>8-r,t++):(i=n>>8-(r+5)&31,r=(r+5)%8,r===0&&t++),a[u]=x0.charCodeAt(i),u++}for(t=u;t<a.length;t++)a[t]=61;return a};Du.decode=function(e){var t=0,u=0,r,i=0;Buffer.isBuffer(e)||(e=new Buffer(e));for(var a=new Buffer(Math.ceil(e.length*5/8)),n=0;n<e.length&&e[n]!==61;n++){var s=e[n]-48;if(s<va.length)u=va[s],t<=3?(t=(t+5)%8,t===0?(r|=u,a[i]=r,i++,r=0):r|=255&u<<8-t):(t=(t+5)%8,r|=255&u>>>t,a[i]=r,i++,r=255&u<<8-t);else throw new Error("Invalid input - it is not base32 encoded string")}return a.slice(0,i)}});var Ta=X($u=>{"use strict";var Sa=ka();$u.encode=Sa.encode;$u.decode=Sa.decode});var Aa=X(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});function y0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Ea=y0(Ta()),v0=(e,t)=>Ea.decode(e).toString(t),k0=(e,t)=>Ea.encode(Buffer.from(e,t).toString("ascii")).toString().replace(/=/g,"");Et.keyDecoder=v0;Et.keyEncoder=k0});var Ka=X(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});function Dt(e){return Object.keys(e).map(t=>e[t])}(function(e){e.SHA1="sha1",e.SHA256="sha256",e.SHA512="sha512"})(p.HashAlgorithms||(p.HashAlgorithms={}));var Lt=Dt(p.HashAlgorithms);(function(e){e.ASCII="ascii",e.BASE64="base64",e.HEX="hex",e.LATIN1="latin1",e.UTF8="utf8"})(p.KeyEncodings||(p.KeyEncodings={}));var Cu=Dt(p.KeyEncodings);(function(e){e.HOTP="hotp",e.TOTP="totp"})(p.Strategy||(p.Strategy={}));var Bu=Dt(p.Strategy),$t=()=>{throw new Error("Please provide an options.createDigest implementation.")};function Ru(e){return/^(\d+)$/.test(e)}function qu(e,t,u){return e.length>=t?e:`${Array(t+1).join(u)}${e}`.slice(-1*t)}function Mu(e){let t=`otpauth://${e.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,u=[];if(Bu.indexOf(e.type)<0)throw new Error(`Expecting options.type to be one of ${Bu.join(", ")}. Received ${e.type}.`);if(e.type==="hotp"){if(e.counter==null||typeof e.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');u.push(`&counter=${e.counter}`)}return e.type==="totp"&&e.step&&u.push(`&period=${e.step}`),e.digits&&u.push(`&digits=${e.digits}`),e.algorithm&&u.push(`&algorithm=${e.algorithm.toUpperCase()}`),e.issuer&&u.push(`&issuer=${encodeURIComponent(e.issuer)}`),t.replace("{labelPrefix}",encodeURIComponent(e.issuer||e.accountName)).replace("{accountName}",encodeURIComponent(e.accountName)).replace("{secret}",e.secret).replace("{query}",u.join(""))}var _t=class e{constructor(t={}){this._defaultOptions=Object.freeze({...t}),this._options=Object.freeze({})}create(t={}){return new e(t)}clone(t={}){let u=this.create({...this._defaultOptions,...t});return u.options=this._options,u}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(t){this._options=Object.freeze({...this._options,...t})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function Hu(e){if(typeof e.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof e.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof e.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!e.algorithm||Lt.indexOf(e.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${Lt.join(", ")}. Received ${e.algorithm}.`);if(!e.encoding||Cu.indexOf(e.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${Cu.join(", ")}. Received ${e.encoding}.`)}var _a=(e,t,u)=>Buffer.from(t,u).toString("hex");function Ia(){return{algorithm:p.HashAlgorithms.SHA1,createHmacKey:_a,createDigest:$t,digits:6,encoding:p.KeyEncodings.ASCII}}function Na(e){let t={...Ia(),...e};return Hu(t),Object.freeze(t)}function Da(e){let t=e.toString(16);return qu(t,16,"0")}function $a(e,t){let u=Buffer.from(e,"hex"),r=u[u.length-1]&15,a=((u[r]&127)<<24|(u[r+1]&255)<<16|(u[r+2]&255)<<8|u[r+3]&255)%Math.pow(10,t);return qu(String(a),t,"0")}function S0(e,t,u){let r=Da(t),i=u.createHmacKey(u.algorithm,e,u.encoding);return u.createDigest(u.algorithm,i,r)}function Ct(e,t,u){let r=u.digest||S0(e,t,u);return $a(r,u.digits)}function Ca(e,t,u,r){if(!Ru(e))return!1;let i=Ct(t,u,r);return e===i}function Ba(e,t,u,r,i){return Mu({algorithm:i.algorithm,digits:i.digits,type:p.Strategy.HOTP,accountName:e,counter:r,issuer:t,secret:u})}var It=class e extends _t{create(t={}){return new e(t)}allOptions(){return Na(this.options)}generate(t,u){return Ct(t,u,this.allOptions())}check(t,u,r){return Ca(t,u,r,this.allOptions())}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret,t.counter)}keyuri(t,u,r,i){return Ba(t,u,r,i,this.allOptions())}};function Pa(e){if(typeof e=="number")return[Math.abs(e),Math.abs(e)];if(Array.isArray(e)){let[t,u]=e;if(typeof t=="number"&&typeof u=="number")return[Math.abs(t),Math.abs(u)]}throw new Error("Expecting options.window to be an number or [number, number].")}function Uu(e){if(Hu(e),Pa(e.window),typeof e.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof e.step!="number")throw new Error("Expecting options.step to be a number.")}var At=(e,t,u)=>{let r=e.length,i=Buffer.from(e,t).toString("hex");if(r<u){let a=new Array(u-r+1).join(i);return Buffer.from(a,"hex").slice(0,u).toString("hex")}return i},Fu=(e,t,u)=>{switch(e){case p.HashAlgorithms.SHA1:return At(t,u,20);case p.HashAlgorithms.SHA256:return At(t,u,32);case p.HashAlgorithms.SHA512:return At(t,u,64);default:throw new Error(`Expecting algorithm to be one of ${Lt.join(", ")}. Received ${e}.`)}};function Oa(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function Ra(e){let t={...Oa(),...e};return Uu(t),Object.freeze(t)}function qa(e,t){return Math.floor(e/t/1e3)}function Bt(e,t){let u=qa(t.epoch,t.step);return Ct(e,u,t)}function La(e,t,u,r){let i=[];if(r===0)return i;for(let a=1;a<=r;a++){let n=t*a*u;i.push(e+n)}return i}function Ma(e,t,u){let r=Pa(u),i=t*1e3;return{current:e,past:La(e,-1,i,r[0]),future:La(e,1,i,r[1])}}function ju(e,t,u){if(!Ru(e))return!1;let r=Bt(t,u);return e===r}function Pu(e,t,u,r){let i=null;return e.some((a,n)=>ju(t,u,{...r,epoch:a})?(i=n+1,!0):!1),i}function Vu(e,t,u){if(ju(e,t,u))return 0;let r=Ma(u.epoch,u.step,u.window),i=Pu(r.past,e,t,u);return i!==null?i*-1:Pu(r.future,e,t,u)}function Wu(e,t){return Math.floor(e/1e3)%t}function Ha(e,t){return t-Wu(e,t)}function Ua(e,t,u,r){return Mu({algorithm:r.algorithm,digits:r.digits,step:r.step,type:p.Strategy.TOTP,accountName:e,issuer:t,secret:u})}var Nt=class e extends It{create(t={}){return new e(t)}allOptions(){return Ra(this.options)}generate(t){return Bt(t,this.allOptions())}checkDelta(t,u){return Vu(t,u,this.allOptions())}check(t,u){return typeof this.checkDelta(t,u)=="number"}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret)}timeRemaining(){let t=this.allOptions();return Ha(t.epoch,t.step)}timeUsed(){let t=this.allOptions();return Wu(t.epoch,t.step)}keyuri(t,u,r){return Ua(t,u,r,this.allOptions())}};function Fa(e){if(Uu(e),typeof e.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(e.keyEncoder&&typeof e.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function ja(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Va(e){let t={...ja(),...e};return Fa(t),Object.freeze(t)}function Gu(e,t){return t.keyEncoder(e,t.encoding)}function Pt(e,t){return t.keyDecoder(e,t.encoding)}function Wa(e,t){let u=t.createRandomBytes(e,t.encoding);return Gu(u,t)}function Ga(e,t){return Bt(Pt(e,t),t)}function za(e,t,u){return Vu(e,Pt(t,u),u)}var Ou=class e extends Nt{create(t={}){return new e(t)}allOptions(){return Va(this.options)}generate(t){return Ga(t,this.allOptions())}checkDelta(t,u){return za(t,u,this.allOptions())}encode(t){return Gu(t,this.allOptions())}decode(t){return Pt(t,this.allOptions())}generateSecret(t=10){return Wa(t,this.allOptions())}};p.Authenticator=Ou;p.HASH_ALGORITHMS=Lt;p.HOTP=It;p.KEY_ENCODINGS=Cu;p.OTP=_t;p.STRATEGY=Bu;p.TOTP=Nt;p.authenticatorCheckWithWindow=za;p.authenticatorDecoder=Pt;p.authenticatorDefaultOptions=ja;p.authenticatorEncoder=Gu;p.authenticatorGenerateSecret=Wa;p.authenticatorOptionValidator=Fa;p.authenticatorOptions=Va;p.authenticatorToken=Ga;p.createDigestPlaceholder=$t;p.hotpCheck=Ca;p.hotpCounter=Da;p.hotpCreateHmacKey=_a;p.hotpDefaultOptions=Ia;p.hotpDigestToToken=$a;p.hotpKeyuri=Ba;p.hotpOptions=Na;p.hotpOptionsValidator=Hu;p.hotpToken=Ct;p.isTokenValid=Ru;p.keyuri=Mu;p.objectValues=Dt;p.padStart=qu;p.totpCheck=ju;p.totpCheckByEpoch=Pu;p.totpCheckWithWindow=Vu;p.totpCounter=qa;p.totpCreateHmacKey=Fu;p.totpDefaultOptions=Oa;p.totpEpochAvailable=Ma;p.totpKeyuri=Ua;p.totpOptions=Ra;p.totpOptionsValidator=Uu;p.totpPadSecret=At;p.totpTimeRemaining=Ha;p.totpTimeUsed=Wu;p.totpToken=Bt});var Ya=X($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});var Ot=ya(),Ja=Aa(),zu=Ka(),T0=new zu.HOTP({createDigest:Ot.createDigest}),E0=new zu.TOTP({createDigest:Ot.createDigest}),A0=new zu.Authenticator({createDigest:Ot.createDigest,createRandomBytes:Ot.createRandomBytes,keyDecoder:Ja.keyDecoder,keyEncoder:Ja.keyEncoder});$e.authenticator=A0;$e.hotp=T0;$e.totp=E0});var Za=X(Ku=>{"use strict";Object.defineProperty(Ku,"__esModule",{value:!0});var Xa=Ya();Object.keys(Xa).forEach(function(e){e!=="default"&&Object.defineProperty(Ku,e,{enumerable:!0,get:function(){return Xa[e]}})})});import*as Mr from"fs/promises";import*as Fe from"vm";function Hr(e,t,u,r=!1){if(e[t])if(r)o.info(`Overriding existing function: ${t}`),delete e[t];else{o.error(`The name ${t} is already defined in the global scope`);return}try{let i;if(Fe.isContext(e)?i=new Fe.Script(u,{importModuleDynamically:async a=>await import(a)}).runInContext(e):i=(0,eval)(u),typeof i!="function")throw new Error("The injected code must be a function");e[t]=i}catch(i){o.error(`Error injecting user function ${t}: ${i.message}`)}}async function sn(e,t,u=!1){try{let r=await Mr.readFile(t,"utf8"),i=JSON.parse(r);o.info(`Loading ${Object.keys(i).length} user functions...`);for(let[a,n]of Object.entries(i))Hr(e,a,n,u)}catch(r){throw o.error("Failed to load user functions:",r),r}}import*as Xt from"fs/promises";async function on(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledges from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledges file found"),[];throw o.error("Failed to load knowledges:",t),t}}async function cn(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledge mappings file found"),[];throw o.error("Failed to load knowledge mappings:",t),t}}async function ln(e,t){if(!e.body)throw new Error("Response body is null");let u=e.body.getReader(),r=new TextDecoder,i="";try{for(;;){let{done:a,value:n}=await u.read();if(a)break;i+=r.decode(n,{stream:!0});let s=i.split(`
3
+ import{a as Jt,b as Nr,c as pe,d as Dr,e as $r,f as Cr,g as Br,h as Pr,i as Or,l as Rr,o as Yt,r as qr}from"./chunk-HECRJRKW.js";import{a as Pe,c as Zu,d as Ir,e as Kt,f as Me,g as He,h as Ue}from"./chunk-MVWAXIK7.js";import{A as Ar,B as Lr,a as er,b as tr,c as ur,d as rr,e as ir,f as ar,g as nr,h as sr,i as or,j as cr,k as lr,l as dr,m as fr,n as hr,o as pr,p as mr,q as gr,r as br,s as xr,t as wr,u as yr,v as vr,w as kr,x as Sr,y as Tr,z as Er}from"./chunk-QAUYYS4H.js";import{a as Wt,b as _r,d as Gt,g as zt,h as qe}from"./chunk-FL4TL6US.js";import{a as Oe,b as P,c as jt,d as Vt,f as Qu,n as Re}from"./chunk-VGP5FBVW.js";import{a as k}from"./chunk-BVOD5VWH.js";import{a as o}from"./chunk-CYBAFQLF.js";import{c as Ft}from"./chunk-FBJSHHRD.js";import{a as nn,c as X,d as Xu}from"./chunk-CSINHOOD.js";var zi=X((xl,Gi)=>{"use strict";var Ws=function(t){return Gs(t)&&!zs(t)};function Gs(e){return!!e&&typeof e=="object"}function zs(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Ys(e)}var Ks=typeof Symbol=="function"&&Symbol.for,Js=Ks?Symbol.for("react.element"):60103;function Ys(e){return e.$$typeof===Js}function Xs(e){return Array.isArray(e)?[]:{}}function De(e,t){return t.clone!==!1&&t.isMergeableObject(e)?fe(Xs(e),e,t):e}function Zs(e,t,u){return e.concat(t).map(function(r){return De(r,u)})}function Qs(e,t){if(!t.customMerge)return fe;var u=t.customMerge(e);return typeof u=="function"?u:fe}function eo(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function Vi(e){return Object.keys(e).concat(eo(e))}function Wi(e,t){try{return t in e}catch{return!1}}function to(e,t){return Wi(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function uo(e,t,u){var r={};return u.isMergeableObject(e)&&Vi(e).forEach(function(i){r[i]=De(e[i],u)}),Vi(t).forEach(function(i){to(e,i)||(Wi(e,i)&&u.isMergeableObject(t[i])?r[i]=Qs(i,u)(e[i],t[i],u):r[i]=De(t[i],u))}),r}function fe(e,t,u){u=u||{},u.arrayMerge=u.arrayMerge||Zs,u.isMergeableObject=u.isMergeableObject||Ws,u.cloneUnlessOtherwiseSpecified=De;var r=Array.isArray(t),i=Array.isArray(e),a=r===i;return a?r?u.arrayMerge(e,t,u):uo(e,t,u):De(t,u)}fe.all=function(t,u){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return fe(r,i,u)},{})};var ro=fe;Gi.exports=ro});var ya=X(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});function m0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var wa=m0(nn("crypto")),g0=(e,t,u)=>wa.createHmac(e,Buffer.from(t,"hex")).update(Buffer.from(u,"hex")).digest().toString("hex"),b0=(e,t)=>wa.randomBytes(e).toString(t);Tt.createDigest=g0;Tt.createRandomBytes=b0});var ka=X(Du=>{"use strict";var x0="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",va=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function w0(e){var t=Math.floor(e.length/5);return e.length%5===0?t:t+1}Du.encode=function(e){Buffer.isBuffer(e)||(e=new Buffer(e));for(var t=0,u=0,r=0,i=0,a=new Buffer(w0(e)*8);t<e.length;){var n=e[t];r>3?(i=n&255>>r,r=(r+5)%8,i=i<<r|(t+1<e.length?e[t+1]:0)>>8-r,t++):(i=n>>8-(r+5)&31,r=(r+5)%8,r===0&&t++),a[u]=x0.charCodeAt(i),u++}for(t=u;t<a.length;t++)a[t]=61;return a};Du.decode=function(e){var t=0,u=0,r,i=0;Buffer.isBuffer(e)||(e=new Buffer(e));for(var a=new Buffer(Math.ceil(e.length*5/8)),n=0;n<e.length&&e[n]!==61;n++){var s=e[n]-48;if(s<va.length)u=va[s],t<=3?(t=(t+5)%8,t===0?(r|=u,a[i]=r,i++,r=0):r|=255&u<<8-t):(t=(t+5)%8,r|=255&u>>>t,a[i]=r,i++,r=255&u<<8-t);else throw new Error("Invalid input - it is not base32 encoded string")}return a.slice(0,i)}});var Ta=X($u=>{"use strict";var Sa=ka();$u.encode=Sa.encode;$u.decode=Sa.decode});var Aa=X(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});function y0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Ea=y0(Ta()),v0=(e,t)=>Ea.decode(e).toString(t),k0=(e,t)=>Ea.encode(Buffer.from(e,t).toString("ascii")).toString().replace(/=/g,"");Et.keyDecoder=v0;Et.keyEncoder=k0});var Ka=X(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});function Dt(e){return Object.keys(e).map(t=>e[t])}(function(e){e.SHA1="sha1",e.SHA256="sha256",e.SHA512="sha512"})(p.HashAlgorithms||(p.HashAlgorithms={}));var Lt=Dt(p.HashAlgorithms);(function(e){e.ASCII="ascii",e.BASE64="base64",e.HEX="hex",e.LATIN1="latin1",e.UTF8="utf8"})(p.KeyEncodings||(p.KeyEncodings={}));var Cu=Dt(p.KeyEncodings);(function(e){e.HOTP="hotp",e.TOTP="totp"})(p.Strategy||(p.Strategy={}));var Bu=Dt(p.Strategy),$t=()=>{throw new Error("Please provide an options.createDigest implementation.")};function Ru(e){return/^(\d+)$/.test(e)}function qu(e,t,u){return e.length>=t?e:`${Array(t+1).join(u)}${e}`.slice(-1*t)}function Mu(e){let t=`otpauth://${e.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,u=[];if(Bu.indexOf(e.type)<0)throw new Error(`Expecting options.type to be one of ${Bu.join(", ")}. Received ${e.type}.`);if(e.type==="hotp"){if(e.counter==null||typeof e.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');u.push(`&counter=${e.counter}`)}return e.type==="totp"&&e.step&&u.push(`&period=${e.step}`),e.digits&&u.push(`&digits=${e.digits}`),e.algorithm&&u.push(`&algorithm=${e.algorithm.toUpperCase()}`),e.issuer&&u.push(`&issuer=${encodeURIComponent(e.issuer)}`),t.replace("{labelPrefix}",encodeURIComponent(e.issuer||e.accountName)).replace("{accountName}",encodeURIComponent(e.accountName)).replace("{secret}",e.secret).replace("{query}",u.join(""))}var _t=class e{constructor(t={}){this._defaultOptions=Object.freeze({...t}),this._options=Object.freeze({})}create(t={}){return new e(t)}clone(t={}){let u=this.create({...this._defaultOptions,...t});return u.options=this._options,u}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(t){this._options=Object.freeze({...this._options,...t})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function Hu(e){if(typeof e.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof e.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof e.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!e.algorithm||Lt.indexOf(e.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${Lt.join(", ")}. Received ${e.algorithm}.`);if(!e.encoding||Cu.indexOf(e.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${Cu.join(", ")}. Received ${e.encoding}.`)}var _a=(e,t,u)=>Buffer.from(t,u).toString("hex");function Ia(){return{algorithm:p.HashAlgorithms.SHA1,createHmacKey:_a,createDigest:$t,digits:6,encoding:p.KeyEncodings.ASCII}}function Na(e){let t={...Ia(),...e};return Hu(t),Object.freeze(t)}function Da(e){let t=e.toString(16);return qu(t,16,"0")}function $a(e,t){let u=Buffer.from(e,"hex"),r=u[u.length-1]&15,a=((u[r]&127)<<24|(u[r+1]&255)<<16|(u[r+2]&255)<<8|u[r+3]&255)%Math.pow(10,t);return qu(String(a),t,"0")}function S0(e,t,u){let r=Da(t),i=u.createHmacKey(u.algorithm,e,u.encoding);return u.createDigest(u.algorithm,i,r)}function Ct(e,t,u){let r=u.digest||S0(e,t,u);return $a(r,u.digits)}function Ca(e,t,u,r){if(!Ru(e))return!1;let i=Ct(t,u,r);return e===i}function Ba(e,t,u,r,i){return Mu({algorithm:i.algorithm,digits:i.digits,type:p.Strategy.HOTP,accountName:e,counter:r,issuer:t,secret:u})}var It=class e extends _t{create(t={}){return new e(t)}allOptions(){return Na(this.options)}generate(t,u){return Ct(t,u,this.allOptions())}check(t,u,r){return Ca(t,u,r,this.allOptions())}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret,t.counter)}keyuri(t,u,r,i){return Ba(t,u,r,i,this.allOptions())}};function Pa(e){if(typeof e=="number")return[Math.abs(e),Math.abs(e)];if(Array.isArray(e)){let[t,u]=e;if(typeof t=="number"&&typeof u=="number")return[Math.abs(t),Math.abs(u)]}throw new Error("Expecting options.window to be an number or [number, number].")}function Uu(e){if(Hu(e),Pa(e.window),typeof e.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof e.step!="number")throw new Error("Expecting options.step to be a number.")}var At=(e,t,u)=>{let r=e.length,i=Buffer.from(e,t).toString("hex");if(r<u){let a=new Array(u-r+1).join(i);return Buffer.from(a,"hex").slice(0,u).toString("hex")}return i},Fu=(e,t,u)=>{switch(e){case p.HashAlgorithms.SHA1:return At(t,u,20);case p.HashAlgorithms.SHA256:return At(t,u,32);case p.HashAlgorithms.SHA512:return At(t,u,64);default:throw new Error(`Expecting algorithm to be one of ${Lt.join(", ")}. Received ${e}.`)}};function Oa(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function Ra(e){let t={...Oa(),...e};return Uu(t),Object.freeze(t)}function qa(e,t){return Math.floor(e/t/1e3)}function Bt(e,t){let u=qa(t.epoch,t.step);return Ct(e,u,t)}function La(e,t,u,r){let i=[];if(r===0)return i;for(let a=1;a<=r;a++){let n=t*a*u;i.push(e+n)}return i}function Ma(e,t,u){let r=Pa(u),i=t*1e3;return{current:e,past:La(e,-1,i,r[0]),future:La(e,1,i,r[1])}}function ju(e,t,u){if(!Ru(e))return!1;let r=Bt(t,u);return e===r}function Pu(e,t,u,r){let i=null;return e.some((a,n)=>ju(t,u,{...r,epoch:a})?(i=n+1,!0):!1),i}function Vu(e,t,u){if(ju(e,t,u))return 0;let r=Ma(u.epoch,u.step,u.window),i=Pu(r.past,e,t,u);return i!==null?i*-1:Pu(r.future,e,t,u)}function Wu(e,t){return Math.floor(e/1e3)%t}function Ha(e,t){return t-Wu(e,t)}function Ua(e,t,u,r){return Mu({algorithm:r.algorithm,digits:r.digits,step:r.step,type:p.Strategy.TOTP,accountName:e,issuer:t,secret:u})}var Nt=class e extends It{create(t={}){return new e(t)}allOptions(){return Ra(this.options)}generate(t){return Bt(t,this.allOptions())}checkDelta(t,u){return Vu(t,u,this.allOptions())}check(t,u){return typeof this.checkDelta(t,u)=="number"}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret)}timeRemaining(){let t=this.allOptions();return Ha(t.epoch,t.step)}timeUsed(){let t=this.allOptions();return Wu(t.epoch,t.step)}keyuri(t,u,r){return Ua(t,u,r,this.allOptions())}};function Fa(e){if(Uu(e),typeof e.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(e.keyEncoder&&typeof e.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function ja(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Va(e){let t={...ja(),...e};return Fa(t),Object.freeze(t)}function Gu(e,t){return t.keyEncoder(e,t.encoding)}function Pt(e,t){return t.keyDecoder(e,t.encoding)}function Wa(e,t){let u=t.createRandomBytes(e,t.encoding);return Gu(u,t)}function Ga(e,t){return Bt(Pt(e,t),t)}function za(e,t,u){return Vu(e,Pt(t,u),u)}var Ou=class e extends Nt{create(t={}){return new e(t)}allOptions(){return Va(this.options)}generate(t){return Ga(t,this.allOptions())}checkDelta(t,u){return za(t,u,this.allOptions())}encode(t){return Gu(t,this.allOptions())}decode(t){return Pt(t,this.allOptions())}generateSecret(t=10){return Wa(t,this.allOptions())}};p.Authenticator=Ou;p.HASH_ALGORITHMS=Lt;p.HOTP=It;p.KEY_ENCODINGS=Cu;p.OTP=_t;p.STRATEGY=Bu;p.TOTP=Nt;p.authenticatorCheckWithWindow=za;p.authenticatorDecoder=Pt;p.authenticatorDefaultOptions=ja;p.authenticatorEncoder=Gu;p.authenticatorGenerateSecret=Wa;p.authenticatorOptionValidator=Fa;p.authenticatorOptions=Va;p.authenticatorToken=Ga;p.createDigestPlaceholder=$t;p.hotpCheck=Ca;p.hotpCounter=Da;p.hotpCreateHmacKey=_a;p.hotpDefaultOptions=Ia;p.hotpDigestToToken=$a;p.hotpKeyuri=Ba;p.hotpOptions=Na;p.hotpOptionsValidator=Hu;p.hotpToken=Ct;p.isTokenValid=Ru;p.keyuri=Mu;p.objectValues=Dt;p.padStart=qu;p.totpCheck=ju;p.totpCheckByEpoch=Pu;p.totpCheckWithWindow=Vu;p.totpCounter=qa;p.totpCreateHmacKey=Fu;p.totpDefaultOptions=Oa;p.totpEpochAvailable=Ma;p.totpKeyuri=Ua;p.totpOptions=Ra;p.totpOptionsValidator=Uu;p.totpPadSecret=At;p.totpTimeRemaining=Ha;p.totpTimeUsed=Wu;p.totpToken=Bt});var Ya=X($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});var Ot=ya(),Ja=Aa(),zu=Ka(),T0=new zu.HOTP({createDigest:Ot.createDigest}),E0=new zu.TOTP({createDigest:Ot.createDigest}),A0=new zu.Authenticator({createDigest:Ot.createDigest,createRandomBytes:Ot.createRandomBytes,keyDecoder:Ja.keyDecoder,keyEncoder:Ja.keyEncoder});$e.authenticator=A0;$e.hotp=T0;$e.totp=E0});var Za=X(Ku=>{"use strict";Object.defineProperty(Ku,"__esModule",{value:!0});var Xa=Ya();Object.keys(Xa).forEach(function(e){e!=="default"&&Object.defineProperty(Ku,e,{enumerable:!0,get:function(){return Xa[e]}})})});import*as Mr from"fs/promises";import*as Fe from"vm";function Hr(e,t,u,r=!1){if(e[t])if(r)o.info(`Overriding existing function: ${t}`),delete e[t];else{o.error(`The name ${t} is already defined in the global scope`);return}try{let i;if(Fe.isContext(e)?i=new Fe.Script(u,{importModuleDynamically:async a=>await import(a)}).runInContext(e):i=(0,eval)(u),typeof i!="function")throw new Error("The injected code must be a function");e[t]=i}catch(i){o.error(`Error injecting user function ${t}: ${i.message}`)}}async function sn(e,t,u=!1){try{let r=await Mr.readFile(t,"utf8"),i=JSON.parse(r);o.info(`Loading ${Object.keys(i).length} user functions...`);for(let[a,n]of Object.entries(i))Hr(e,a,n,u)}catch(r){throw o.error("Failed to load user functions:",r),r}}import*as Xt from"fs/promises";async function on(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledges from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledges file found"),[];throw o.error("Failed to load knowledges:",t),t}}async function cn(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledge mappings file found"),[];throw o.error("Failed to load knowledge mappings:",t),t}}async function ln(e,t){if(!e.body)throw new Error("Response body is null");let u=e.body.getReader(),r=new TextDecoder,i="";try{for(;;){let{done:a,value:n}=await u.read();if(a)break;i+=r.decode(n,{stream:!0});let s=i.split(`
4
4
  `);i=s.pop()||"";for(let c of s){let l=null;if(c.startsWith("data: "))try{let f=c.slice(6);f.trim()&&(l=JSON.parse(f))}catch(f){console.error(`Failed to parse SSE event: ${c}`,f);continue}l&&t(l)}}}finally{u.releaseLock()}}import{z as Ur}from"zod";var dn=Ur.object({instruction:Ur.string().describe('The instruction of the operation to perform. Can only include one operation. Do not inlcude element indexes just describe the element, e.g. "select the text "Hello, world!" in "Hello, world!""')});function Fr(e){e.register({name:"perform_accurate_operation",description:"Perform an operation that requires accurate interaction like dragging or interacting with a specific area of an element. Only use this action when neccecary.",schema:dn,usesElementIndex:!1,async execute(t,u){let{instruction:r}=t,i={page:u.page,agentServices:u.agentServices,domService:u.domService},a=await Zu(r,i,{});if(a.status==="error"||!a.actionEntity)return{success:!1,actionEntity:{action_description:r,action_data:{action_name:"perform_accurate_operation",kwargs:{instruction:r}}},error:a.error||"Failed to generate action"};let{actionEntity:n}=a,s=await Ir(n,i);return{success:s.success,actionEntity:n,message:s.success?`Successfully executed action: ${n.action_data?.action_name}`:void 0,error:s.error}}})}var S;(function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"})(S||(S={}));function jr(e){return e.type===S.Tag||e.type===S.Script||e.type===S.Style}var Vr=S.Root,Wr=S.Text,Gr=S.Directive,zr=S.Comment,Kr=S.Script,Jr=S.Style,Yr=S.Tag,Xr=S.CDATA,Zr=S.Doctype;var je=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return ti(this,t)}},me=class extends je{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}},te=class extends me{constructor(){super(...arguments),this.type=S.Text}get nodeType(){return 3}},ge=class extends me{constructor(){super(...arguments),this.type=S.Comment}get nodeType(){return 8}},be=class extends me{constructor(t,u){super(u),this.name=t,this.type=S.Directive}get nodeType(){return 1}},xe=class extends je{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}},we=class extends xe{constructor(){super(...arguments),this.type=S.CDATA}get nodeType(){return 4}},ue=class extends xe{constructor(){super(...arguments),this.type=S.Root}get nodeType(){return 9}},ye=class extends xe{constructor(t,u,r=[],i=t==="script"?S.Script:t==="style"?S.Style:S.Tag){super(r),this.name=t,this.attribs=u,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var u,r;return{name:t,value:this.attribs[t],namespace:(u=this["x-attribsNamespace"])===null||u===void 0?void 0:u[t],prefix:(r=this["x-attribsPrefix"])===null||r===void 0?void 0:r[t]}})}};function W(e){return jr(e)}function Qt(e){return e.type===S.CDATA}function Ve(e){return e.type===S.Text}function eu(e){return e.type===S.Comment}function fn(e){return e.type===S.Directive}function ei(e){return e.type===S.Root}function ti(e,t=!1){let u;if(Ve(e))u=new te(e.data);else if(eu(e))u=new ge(e.data);else if(W(e)){let r=t?Zt(e.children):[],i=new ye(e.name,{...e.attribs},r);r.forEach(a=>a.parent=i),e.namespace!=null&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...e["x-attribsPrefix"]}),u=i}else if(Qt(e)){let r=t?Zt(e.children):[],i=new we(r);r.forEach(a=>a.parent=i),u=i}else if(ei(e)){let r=t?Zt(e.children):[],i=new ue(r);r.forEach(a=>a.parent=i),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),u=i}else if(fn(e)){let r=new be(e.name,e.data);e["x-name"]!=null&&(r["x-name"]=e["x-name"],r["x-publicId"]=e["x-publicId"],r["x-systemId"]=e["x-systemId"]),u=r}else throw new Error(`Not implemented yet: ${e.type}`);return u.startIndex=e.startIndex,u.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(u.sourceCodeLocation=e.sourceCodeLocation),u}function Zt(e){let t=e.map(u=>ti(u,!0));for(let u=1;u<t.length;u++)t[u].prev=t[u-1],t[u-1].next=t[u];return t}var ui={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},re=class{constructor(t,u,r){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof u=="function"&&(r=u,u=ui),typeof t=="object"&&(u=t,t=void 0),this.callback=t??null,this.options=u??ui,this.elementCB=r??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;let t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,u){let r=this.options.xmlMode?S.Tag:void 0,i=new ye(t,u,void 0,r);this.addNode(i),this.tagStack.push(i)}ontext(t){let{lastNode:u}=this;if(u&&u.type===S.Text)u.data+=t,this.options.withEndIndices&&(u.endIndex=this.parser.endIndex);else{let r=new te(t);this.addNode(r),this.lastNode=r}}oncomment(t){if(this.lastNode&&this.lastNode.type===S.Comment){this.lastNode.data+=t;return}let u=new ge(t);this.addNode(u),this.lastNode=u}oncommentend(){this.lastNode=null}oncdatastart(){let t=new te(""),u=new we([t]);this.addNode(u),t.parent=u,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,u){let r=new be(t,u);this.addNode(r)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){let u=this.tagStack[this.tagStack.length-1],r=u.children[u.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),u.children.push(t),r&&(t.prev=r,r.next=t),t.parent=u,this.lastNode=null}};var hn=/\n/g;function pn(e){let t=[...e.matchAll(hn)].map(r=>r.index||0);t.unshift(-1);let u=tu(t,0,t.length);return r=>ii(u,r)}function tu(e,t,u){if(u-t==1)return{offset:e[t],index:t+1};let r=Math.ceil((t+u)/2),i=tu(e,t,r),a=tu(e,r,u);return{offset:i.offset,low:i,high:a}}function ii(e,t){return function(u){return Object.prototype.hasOwnProperty.call(u,"index")}(e)?{line:e.index,column:t-e.offset}:ii(e.high.offset<t?e.high:e.low,t)}function uu(e,t="",u={}){let r=typeof t!="string"?t:u,i=typeof t=="string"?t:"",a=e.map(mn),n=!!r.lineNumbers;return function(s,c=0){let l=n?pn(s):()=>({line:0,column:0}),f=c,m=[];e:for(;f<s.length;){let x=!1;for(let g of a){g.regex.lastIndex=f;let b=g.regex.exec(s);if(b&&b[0].length>0){if(!g.discard){let v=l(f),y=typeof g.replace=="string"?b[0].replace(new RegExp(g.regex.source,g.regex.flags),g.replace):b[0];m.push({state:i,name:g.name,text:y,offset:f,len:b[0].length,line:v.line,column:v.column})}if(f=g.regex.lastIndex,x=!0,g.push){let v=g.push(s,f);m.push(...v.tokens),f=v.offset}if(g.pop)break e;break}}if(!x)break}return{tokens:m,offset:f,complete:s.length<=f}}}function mn(e,t){return{...e,regex:gn(e,t)}}function gn(e,t){if(e.name.length===0)throw new Error(`Rule #${t} has empty name, which is not allowed.`);if(function(u){return Object.prototype.hasOwnProperty.call(u,"regex")}(e))return function(u){if(u.global)throw new Error(`Regular expression /${u.source}/${u.flags} contains the global flag, which is not allowed.`);return u.sticky?u:new RegExp(u.source,u.flags+"y")}(e.regex);if(function(u){return Object.prototype.hasOwnProperty.call(u,"str")}(e)){if(e.str.length===0)throw new Error(`Rule #${t} ("${e.name}") has empty "str" property, which is not allowed.`);return new RegExp(ri(e.str),"y")}return new RegExp(ri(e.name),"y")}function ri(e){return e.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}function j(e,t){return(u,r)=>{let i=r,a;return r<u.tokens.length?(a=e(u.tokens[r],u,r),a!==void 0&&i++):t?.(u,r),a===void 0?{matched:!1}:{matched:!0,position:i,value:a}}}function ru(e,t){return e.matched?{matched:!0,position:e.position,value:t(e.value,e.position)}:e}function We(e,t){return e.matched?t(e):e}function N(e,t){return(u,r)=>ru(e(u,r),(i,a)=>t(i,u,r,a))}function ve(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:{matched:!0,position:r,value:t}}}function ie(...e){return(t,u)=>{for(let r of e){let i=r(t,u);if(i.matched)return i}return{matched:!1}}}function Z(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:t(u,r)}}function bn(e,t){return(u,r)=>{let i=[],a=!0;do{let n=e(u,r);n.matched&&t(n.value,i.length+1,u,r,n.position)?(i.push(n.value),r=n.position):a=!1}while(a);return{matched:!0,position:r,value:i}}}function Ge(e){return bn(e,()=>!0)}function ai(e){return $(e,Ge(e),(t,u)=>[t,...u])}function $(e,t,u){return(r,i)=>We(e(r,i),a=>ru(t(r,a.position),(n,s)=>u(a.value,n,r,i,s)))}function ni(e,t){return $(e,t,u=>u)}function iu(e,t){return $(e,t,(u,r)=>r)}function ze(e,t,u,r){return(i,a)=>We(e(i,a),n=>We(t(i,n.position),s=>ru(u(i,s.position),(c,l)=>r(n.value,s.value,c,i,a,l))))}function au(e,t,u){return ze(e,t,u,(r,i)=>i)}function xn(...e){return(t,u)=>{let r=[],i=u;for(let a of e){let n=a(t,i);if(n.matched)r.push(n.value),i=n.position;else return{matched:!1}}return{matched:!0,position:i,value:r}}}function si(...e){return wn(xn(...e))}function wn(e){return N(e,t=>t.flatMap(u=>u))}function yn(e,t){return(u,r)=>{let i=!0,a=e,n=r;do{let s=t(a,u,n)(u,n);s.matched?(a=s.value,n=s.position):i=!1}while(i);return{matched:!0,position:n,value:a}}}function vn(e,t,u){return yn(e,r=>N(t,(i,a,n,s)=>u(r,i,a,n,s)))}function nu(e,t,u){return kn(e,r=>vn(r,$(t,u,(i,a)=>[i,a]),(i,[a,n])=>a(i,n)))}function kn(e,t){return(u,r)=>We(e(u,r),i=>t(i.value,u,r,i.position)(u,i.position))}var Tn="(?:[ \\t\\r\\n\\f]*)",hi="(?:\\n|\\r\\n|\\r|\\f)",Ye="[^\\x00-\\x7F]",Te="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",Ee="(?:\\\\[^\\n\\r\\f0-9a-f])",En=`(?:[_a-z]|${Ye}|${Te}|${Ee})`,pi=`(?:[_a-z0-9-]|${Ye}|${Te}|${Ee})`,An=`(?:${pi}+)`,Ln=`(?:[-]?${En}${pi}*)`,_n=`'([^\\n\\r\\f\\\\']|\\\\${hi}|${Ye}|${Te}|${Ee})*'`,In=`"([^\\n\\r\\f\\\\"]|\\\\${hi}|${Ye}|${Te}|${Ee})*"`,Nn=uu([{name:"ws",regex:new RegExp(Tn)},{name:"hash",regex:new RegExp(`#${An}`,"i")},{name:"ident",regex:new RegExp(Ln,"i")},{name:"str1",regex:new RegExp(_n,"i")},{name:"str2",regex:new RegExp(In,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),Dn=uu([{name:"unicode",regex:new RegExp(Te,"i")},{name:"escape",regex:new RegExp(Ee,"i")},{name:"any",regex:new RegExp("[\\s\\S]","i")}]);function mi([e,t,u],[r,i,a]){return[e+r,t+i,u+a]}function $n(e){return e.reduce(mi,[0,0,0])}var Cn=j(e=>e.name==="unicode"?String.fromCodePoint(parseInt(e.text.slice(1),16)):void 0),Bn=j(e=>e.name==="escape"?e.text.slice(1):void 0),Pn=j(e=>e.name==="any"?e.text:void 0),On=N(Ge(ie(Cn,Bn,Pn)),e=>e.join(""));function cu(e){let t=Dn(e);return On({tokens:t.tokens,options:void 0},0).value}function A(e){return j(t=>t.name===e?!0:void 0)}var lu=j(e=>e.name==="ws"?null:void 0),su=ve(lu,null);function ne(e){return au(su,e,su)}var Se=j(e=>e.name==="ident"?cu(e.text):void 0),Rn=j(e=>e.name==="hash"?cu(e.text.slice(1)):void 0),qn=j(e=>e.name.startsWith("str")?cu(e.text.slice(1,-1)):void 0),gi=ni(ve(Se,""),A("|")),du=Z($(gi,Se,(e,t)=>({name:t,namespace:e})),N(Se,e=>({name:e,namespace:null}))),Mn=Z($(gi,A("*"),e=>({type:"universal",namespace:e,specificity:[0,0,0]})),N(A("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Hn=N(du,({name:e,namespace:t})=>({type:"tag",name:e,namespace:t,specificity:[0,0,1]})),Un=$(A("."),Se,(e,t)=>({type:"class",name:t,specificity:[0,1,0]})),Fn=N(Rn,e=>({type:"id",name:e,specificity:[1,0,0]})),oi=j(e=>{if(e.name==="ident"){if(e.text==="i"||e.text==="I")return"i";if(e.text==="s"||e.text==="S")return"s"}}),jn=Z($(qn,ve(iu(su,oi),null),(e,t)=>({value:e,modifier:t})),$(Se,ve(iu(lu,oi),null),(e,t)=>({value:e,modifier:t}))),Vn=ie(N(A("="),()=>"="),$(A("~"),A("="),()=>"~="),$(A("|"),A("="),()=>"|="),$(A("^"),A("="),()=>"^="),$(A("$"),A("="),()=>"$="),$(A("*"),A("="),()=>"*=")),Wn=ze(A("["),ne(du),A("]"),(e,{name:t,namespace:u})=>({type:"attrPresence",name:t,namespace:u,specificity:[0,1,0]})),Gn=au(A("["),ze(ne(du),Vn,ne(jn),({name:e,namespace:t},u,{value:r,modifier:i})=>({type:"attrValue",name:e,namespace:t,matcher:u,value:r,modifier:i,specificity:[0,1,0]})),A("]")),zn=Z(Wn,Gn),Kn=Z(Mn,Hn),ci=ie(Fn,Un,zn),li=N(Z(si(Kn,Ge(ci)),ai(ci)),e=>({type:"compound",list:e,specificity:$n(e.map(t=>t.specificity))})),Jn=ie(N(A(">"),()=>">"),N(A("+"),()=>"+"),N(A("~"),()=>"~"),$(A("|"),A("|"),()=>"||")),Yn=Z(ne(Jn),N(lu,()=>" ")),ou=nu(li,N(Yn,e=>(t,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:e,left:t,specificity:t.specificity}],specificity:mi(t.specificity,u.specificity)})),li),K0=nu(N(ou,e=>({type:"list",list:[e]})),N(ne(A(",")),()=>(e,t)=>({type:"list",list:[...e.list,t]})),ou);function Xn(e,t){if(!(typeof t=="string"||t instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=Nn(t);if(!u.complete)throw new Error(`The input "${t}" was only partially tokenized, stopped at offset ${u.offset}!
5
5
  `+di(t,u.offset));let r=ne(e)({tokens:u.tokens,options:void 0},0);if(!r.matched)throw new Error(`No match for "${t}" input!`);if(r.position<u.tokens.length){let i=u.tokens[r.position];throw new Error(`The input "${t}" was only partially parsed, stopped at offset ${i.offset}!
6
6
  `+di(t,i.offset,i.len))}return r.value}function di(e,t,u=1){return`${e.replace(/(\t)|(\r)|(\n)/g,(r,i,a)=>i?"\u2409":a?"\u240D":"\u240A")}
@@ -96,10 +96,10 @@ To: ${x.to}
96
96
  Date: ${x.date}
97
97
 
98
98
  Body:
99
- ${x.body}`,b=await Qo(g,i,t.model);o.info(`Extracted content: ${b}`),b&&b!=="NOT_FOUND"&&m.push({content:b,email_subject:x.subject,email_from:x.from,email_date:x.date})}if(m.length>0){let x=m[0],g=`$email_${t.extraction_type}`;t.extraction_type==="custom"?g="$email_extracted_content":t.extraction_type==="activation_link"?g="$email_magic_link":t.extraction_type==="verification_code"&&(g="$email_otp_code");let b=(new Date().getTime()-a.getTime())/1e3;return o.info(`Successfully extracted content after ${s} attempts in ${b.toFixed(1)} seconds`),{data:x.content,result_variable:g,status:"success",message:`Successfully extracted content from email: ${x.email_subject.substring(0,50)}... (attempts: ${s})`}}else o.info(`Found emails but no extractable content in attempt ${s}`)}else o.info(`No emails found in attempt ${s}`)}catch(l){o.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+r*1e3)>=n){o.info("Not enough time for another polling attempt");break}o.info(`Waiting ${r} seconds before next attempt...`),await new Promise(l=>setTimeout(l,r*1e3))}let c=(new Date().getTime()-a.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${c.toFixed(1)} seconds`}}catch(i){return o.error(`Error extracting email content: ${i.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${i.message}`}}}import{z as Y}from"zod";function ca(e){switch(e){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var la=class{getMailgunConfig(){let e=Ft().env||{};if(e.MAILGUN_API_KEY)return{apiKey:e.MAILGUN_API_KEY,domain:e.MAILGUN_DOMAIN||""}}async execute(e,t,u){let r=t.action_data;if(!r)throw new Error("Action data not found");let i=this.getMailgunConfig();if(!i)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let a=r.kwargs,n=u.getModel?.()||"gemini-2.5-pro",s=await oa(i,{model:n,forward_email:a.forward_email,extraction_type:a.extraction_type,prompt:a.prompt,filters:{from_email:a.filter_from_email,to_email:a.filter_to_email,subject:a.filter_subject,body_contains:a.filter_body_contains},timeout:a.timeout});if(s.status==="success"&&s.data){let c=s.result_variable?.replace(/^\$/,"")||ca(a.extraction_type);u.variableStore.set(c,s.data),o.info(`[extract_email_content] Extracted and saved to ${c}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(e){let t=e.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(t)} },`,"});"]}},e0=Y.object({forward_email:Y.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Y.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Y.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Y.string().optional().describe("Filter emails by sender address"),filter_to_email:Y.string().optional().describe("Filter emails by recipient address"),filter_subject:Y.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Y.string().optional().describe("Filter emails by body content (partial match)"),timeout:Y.number().optional().describe("Timeout in seconds for polling (default: 60)")});function da(e,t){e.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:e0,async execute(u,r){let{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}=u,{page:x,agentServices:g}=r;o.info(`[extract_email_content] Extracting ${a} from ${i}`);try{let b={action_description:`Extract ${a} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}}};await t.execute(x,b,g);let v=ca(a);return{success:!0,actionEntity:b,message:`Extracted ${a} and saved to $${v}`}}catch(b){return{success:!1,error:b.message,actionEntity:{action_description:`Extract ${a} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}},feedback:b.message}}}}})}var ft=null;async function V(){if(ft)return ft;let e=(await import("./handler-XD2P4DE3.js")).default;return ft=new e,ft}async function ht(e){let t=await V(),u=t.getAction("click"),r=t.getAction("hover"),i=t.getAction("right_click"),a=t.getAction("double_click");return Lr(e,u),br(e,r),or(e,i),kr(e,a),"Click, hover, double-click, right-click, or drag elements"}async function pt(e){let t=await V(),u=t.getAction("go_to_url"),r=t.getAction("go_back"),i=t.getAction("reload_page");return gr(e,u),mr(e,r),sr(e,i),"Navigate to URLs, go back, or reload the page"}async function mt(e){let t=await V(),u=t.getAction("clear_input"),r=t.getAction("input_text"),i=t.getAction("press");return Ar(e,u),xr(e,r),wr(e,i),"Type text into inputs, clear input values, or press keyboard keys"}async function gt(e){let t=await V(),u=t.getAction("scroll_on_element"),r=t.getAction("scroll_to_text"),i=t.getAction("scroll");return dr(e,u),fr(e,r),lr(e,i),"Scroll the page or scroll to specific text/elements"}async function bt(e){let t=await V(),u=t.getAction("close_tab"),r=t.getAction("switch_tab");return yr(e,u),tr(e,r),"Switch between browser tabs or close tabs"}async function xt(e){let t=await V(),u=t.getAction("upload_file"),r=t.getAction("wait_for_download_complete");return rr(e,u),ar(e,r),"Upload files or wait for downloads to complete"}async function wt(e){let t=await V(),u=t.getAction("get_dropdown_options"),r=t.getAction("select_dropdown_option"),i=t.getAction("set_date_for_native_date_picker");return pr(e,u),hr(e,r),er(e,i),"Get dropdown options, select dropdown values, or set date for native date picker input"}async function yt(e){let t=await V(),u=t.getAction("wait"),r=t.getAction("save_variable"),i=t.getAction("done");return ir(e,u),cr(e,r),vr(e,i),Fr(e),"Wait for conditions, save variables, or complete tasks"}async function vt(e){let t=(await V()).getAction("generate_2fa_code");Sr(e,t);let u=new la;return(await import("./handler-XD2P4DE3.js")).default.registerAction("extract_email_content",u),da(e,u),"Generate 2FA codes or extract email/activation codes"}async function kt(e){let t=await V(),u=t.getAction("verify"),r=t.getAction("ai_extract"),i=t.getAction("ai_wait_until");return Tr(e,u),Er(e,r),nr(e,i),"Perform AI-powered assertions, extractions, or wait conditions"}async function fa(e){let[t,u,r,i,a,n,s,c,l,f]=await Promise.all([ht(e),pt(e),mt(e),gt(e),bt(e),xt(e),wt(e),yt(e),vt(e),kt(e)]);return{mouse:t,navigation:u,input:r,scroll:i,tabs:a,files:n,forms:s,utility:c,auth:l,ai:f}}function ha(e){return[`- Mouse: ${e.mouse}`,`- Navigation: ${e.navigation}`,`- Input: ${e.input}`,`- Scroll: ${e.scroll}`,`- Tabs: ${e.tabs}`,`- Files: ${e.files}`,`- Forms: ${e.forms}`,`- Utility: ${e.utility}`,`- Auth: ${e.auth}`,`- AI: ${e.ai}`].join(`
99
+ ${x.body}`,b=await Qo(g,i,t.model);o.info(`Extracted content: ${b}`),b&&b!=="NOT_FOUND"&&m.push({content:b,email_subject:x.subject,email_from:x.from,email_date:x.date})}if(m.length>0){let x=m[0],g=`$email_${t.extraction_type}`;t.extraction_type==="custom"?g="$email_extracted_content":t.extraction_type==="activation_link"?g="$email_magic_link":t.extraction_type==="verification_code"&&(g="$email_otp_code");let b=(new Date().getTime()-a.getTime())/1e3;return o.info(`Successfully extracted content after ${s} attempts in ${b.toFixed(1)} seconds`),{data:x.content,result_variable:g,status:"success",message:`Successfully extracted content from email: ${x.email_subject.substring(0,50)}... (attempts: ${s})`}}else o.info(`Found emails but no extractable content in attempt ${s}`)}else o.info(`No emails found in attempt ${s}`)}catch(l){o.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+r*1e3)>=n){o.info("Not enough time for another polling attempt");break}o.info(`Waiting ${r} seconds before next attempt...`),await new Promise(l=>setTimeout(l,r*1e3))}let c=(new Date().getTime()-a.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${c.toFixed(1)} seconds`}}catch(i){return o.error(`Error extracting email content: ${i.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${i.message}`}}}import{z as Y}from"zod";function ca(e){switch(e){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var la=class{getMailgunConfig(){let e=Ft().env||{};if(e.MAILGUN_API_KEY)return{apiKey:e.MAILGUN_API_KEY,domain:e.MAILGUN_DOMAIN||""}}async execute(e,t,u){let r=t.action_data;if(!r)throw new Error("Action data not found");let i=this.getMailgunConfig();if(!i)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let a=r.kwargs,n=u.getModel?.()||"gemini-2.5-pro",s=await oa(i,{model:n,forward_email:a.forward_email,extraction_type:a.extraction_type,prompt:a.prompt,filters:{from_email:a.filter_from_email,to_email:a.filter_to_email,subject:a.filter_subject,body_contains:a.filter_body_contains},timeout:a.timeout});if(s.status==="success"&&s.data){let c=s.result_variable?.replace(/^\$/,"")||ca(a.extraction_type);u.variableStore.set(c,s.data),o.info(`[extract_email_content] Extracted and saved to ${c}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(e){let t=e.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(t)} },`,"});"]}},e0=Y.object({forward_email:Y.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Y.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Y.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Y.string().optional().describe("Filter emails by sender address"),filter_to_email:Y.string().optional().describe("Filter emails by recipient address"),filter_subject:Y.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Y.string().optional().describe("Filter emails by body content (partial match)"),timeout:Y.number().optional().describe("Timeout in seconds for polling (default: 60)")});function da(e,t){e.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:e0,async execute(u,r){let{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}=u,{page:x,agentServices:g}=r;o.info(`[extract_email_content] Extracting ${a} from ${i}`);try{let b={action_description:`Extract ${a} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}}};await t.execute(x,b,g);let v=ca(a);return{success:!0,actionEntity:b,message:`Extracted ${a} and saved to $${v}`}}catch(b){return{success:!1,error:b.message,actionEntity:{action_description:`Extract ${a} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}},feedback:b.message}}}}})}var ft=null;async function V(){if(ft)return ft;let e=(await import("./handler-CUQQZNTI.js")).default;return ft=new e,ft}async function ht(e){let t=await V(),u=t.getAction("click"),r=t.getAction("hover"),i=t.getAction("right_click"),a=t.getAction("double_click");return Lr(e,u),br(e,r),or(e,i),kr(e,a),"Click, hover, double-click, right-click, or drag elements"}async function pt(e){let t=await V(),u=t.getAction("go_to_url"),r=t.getAction("go_back"),i=t.getAction("reload_page");return gr(e,u),mr(e,r),sr(e,i),"Navigate to URLs, go back, or reload the page"}async function mt(e){let t=await V(),u=t.getAction("clear_input"),r=t.getAction("input_text"),i=t.getAction("press");return Ar(e,u),xr(e,r),wr(e,i),"Type text into inputs, clear input values, or press keyboard keys"}async function gt(e){let t=await V(),u=t.getAction("scroll_on_element"),r=t.getAction("scroll_to_text"),i=t.getAction("scroll");return dr(e,u),fr(e,r),lr(e,i),"Scroll the page or scroll to specific text/elements"}async function bt(e){let t=await V(),u=t.getAction("close_tab"),r=t.getAction("switch_tab");return yr(e,u),tr(e,r),"Switch between browser tabs or close tabs"}async function xt(e){let t=await V(),u=t.getAction("upload_file"),r=t.getAction("wait_for_download_complete");return rr(e,u),ar(e,r),"Upload files or wait for downloads to complete"}async function wt(e){let t=await V(),u=t.getAction("get_dropdown_options"),r=t.getAction("select_dropdown_option"),i=t.getAction("set_date_for_native_date_picker");return pr(e,u),hr(e,r),er(e,i),"Get dropdown options, select dropdown values, or set date for native date picker input"}async function yt(e){let t=await V(),u=t.getAction("wait"),r=t.getAction("save_variable"),i=t.getAction("done");return ir(e,u),cr(e,r),vr(e,i),Fr(e),"Wait for conditions, save variables, or complete tasks"}async function vt(e){let t=(await V()).getAction("generate_2fa_code");Sr(e,t);let u=new la;return(await import("./handler-CUQQZNTI.js")).default.registerAction("extract_email_content",u),da(e,u),"Generate 2FA codes or extract email/activation codes"}async function kt(e){let t=await V(),u=t.getAction("verify"),r=t.getAction("ai_extract"),i=t.getAction("ai_wait_until");return Tr(e,u),Er(e,r),nr(e,i),"Perform AI-powered assertions, extractions, or wait conditions"}async function fa(e){let[t,u,r,i,a,n,s,c,l,f]=await Promise.all([ht(e),pt(e),mt(e),gt(e),bt(e),xt(e),wt(e),yt(e),vt(e),kt(e)]);return{mouse:t,navigation:u,input:r,scroll:i,tabs:a,files:n,forms:s,utility:c,auth:l,ai:f}}function ha(e){return[`- Mouse: ${e.mouse}`,`- Navigation: ${e.navigation}`,`- Input: ${e.input}`,`- Scroll: ${e.scroll}`,`- Tabs: ${e.tabs}`,`- Files: ${e.files}`,`- Forms: ${e.forms}`,`- Utility: ${e.utility}`,`- Auth: ${e.auth}`,`- AI: ${e.ai}`].join(`
100
100
  `)}var t0=[ht(P),pt(P),mt(P),gt(P),bt(P),xt(P),wt(P),yt(P),kt(P),vt(P)],u0=Promise.all(t0);async function r0(){await u0}function i0(){return P}function a0(e=!0){let t=new Oe;return e&&(ht(t),pt(t),mt(t),gt(t),bt(t),xt(t),wt(t),vt(t),yt(t),kt(t)),t}async function n0(){let e=new Oe,t=await fa(e),u=ha(t);return{registry:e,capabilities:t,summary:u}}function s0(){return["- Mouse: Click, hover, double-click, right-click or drag on elements","- Navigation: Navigate to URLs, go back, or reload the page","- Input: Type text into inputs, clear input fields, or press keyboard keys","- Scroll: Scroll the page or scroll to specific text/elements","- Tabs: Switch between browser tabs or close tabs","- Files: Upload files or wait for downloads to complete","- Forms: Get dropdown options or select dropdown values","- Utility: Wait for conditions, save variables, or complete tasks","- Auth: Generate 2FA codes or extract email/activation codes","- AI: Perform AI-powered verifications, extractions, or wait conditions"].join(`
101
101
  `)}var o0=class{constructor(e,t){this.registry=e,this.getContext=t}getToolDefinitions(){return this.registry.getTools().filter(e=>e.availability.mcp).map(e=>({name:e.name,description:e.description,inputSchema:Pe(e.schema)}))}getToolDefinitionsFiltered(e){let t=new Set(e);return this.registry.getTools().filter(u=>t.has(u.name)&&u.availability.mcp).map(u=>({name:u.name,description:u.description,inputSchema:Pe(u.schema)}))}async createServer(e="web-sdk-tools"){throw new Error("MCP server creation not yet implemented. Install and configure an MCP SDK like @modelcontextprotocol/sdk")}async executeTool(e,t){let u=await this.getContext(),r=await this.registry.execute(e,t,u);return{content:[{type:"text",text:r.success?r.message||"Tool executed successfully":r.error||"Tool execution failed"}]}}getToolCount(){return this.registry.size()}getToolNames(){return this.registry.getToolNames()}};function c0(e){return e.getTools().map(t=>({name:t.name,description:t.description,inputSchema:Pe(t.schema)}))}import Nu from"fs";import St from"path";import{chromium as pa,firefox as l0,webkit as d0}from"playwright";var f0=class{constructor(e={}){e.testDir&&(this.testDir=e.testDir,this.videoBasePath=St.join(e.testDir,"videos"),this.statesBasePath=St.join(e.testDir,"states"),this.downloadsBasePath=St.join(e.testDir,"downloads"),Nu.mkdirSync(this.videoBasePath,{recursive:!0}),Nu.mkdirSync(this.statesBasePath,{recursive:!0}),Nu.mkdirSync(this.downloadsBasePath,{recursive:!0})),this.terminationTimeout=e.terminationTimeout??null,this.defaultHeadless=e.headless??!1,this.additionalArgs=e.additionalArgs??[]}async launchBrowser(e={}){let t=e.debugPort,u=e.headless??this.defaultHeadless,r=Or(e.deviceName),i=Pr(e.deviceName),a=r===pe.Chromium,n=!!e.extensionPath;o.info(`[BrowserManager] Launching ${r} browser for device: ${e.deviceName||"default"}${t?` on port ${t}`:""}`);let s={headless:u};if(a){n&&u&&(o.warn("[BrowserManager] Extension requested in headless mode; forcing headed mode to load extension."),u=!1,s.headless=!1);let w=[];(e.enableCamera||e.enableMicrophone)&&(w.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),e.enableMicrophone&&e.fakeAudioCapturePath&&(w.push(`--use-file-for-fake-audio-capture=${e.fakeAudioCapturePath}`),o.info(`[BrowserManager] Using fake audio capture file: ${e.fakeAudioCapturePath}`)));let E=n&&e.extensionPath?[`--disable-extensions-except=${e.extensionPath}`,`--load-extension=${e.extensionPath}`]:[];s.args=[..._r(t,e.disableSecurity??!0,u),...w,...E,...this.additionalArgs],i&&(s.channel=i,o.debug(`[BrowserManager] Launching browser with channel: ${i}`))}let c=$r(e.deviceName),l=Br(e.deviceName),f={acceptDownloads:!0,...c,timezoneId:"America/Los_Angeles",locale:e.locale||"en-US"};e.localStorageStatePath&&(f.storageState=e.localStorageStatePath),e.recordVideo&&this.videoBasePath&&(f.recordVideo={dir:this.videoBasePath,size:{width:l.width,height:l.height}}),e.proxy&&(f.proxy=e.proxy);let m,x,g;if(n&&a){if(e.userDataDir)g=e.userDataDir;else if(this.testDir)g=St.join(this.testDir,"user-data");else throw new Error("[BrowserManager] testDir is required to launch a persistent context with an extension");let w={...s,...f};x=await pa.launchPersistentContext(g,w),m=x.browser(),o.info(`[BrowserManager] Launched persistent context for extension at ${e.extensionPath}`)}else{switch(r){case pe.Firefox:m=await l0.launch(s);break;case pe.Webkit:m=await d0.launch(s);break;case pe.Chromium:default:m=await pa.launch(s);break}x=await m.newContext(f)}if(x.addInitScript(Wt),e.enableCamera||e.enableMicrophone)if(!a)o.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let w=[];e.enableCamera&&w.push("camera"),e.enableMicrophone&&w.push("microphone");try{await x.grantPermissions(w),o.info(`[BrowserManager] Granted permissions: ${w.join(", ")}`)}catch(E){o.warn("[BrowserManager] Failed to grant camera/microphone permissions:",E)}}if(e.cookies&&e.cookies.length>0){let w=(Date.now()+31536e6)/1e3,E=e.cookies.map(D=>({...D,expires:w}));await x.addCookies(E),o.info(`[BrowserManager] Added ${e.cookies.length} cookies to browser context with expires=${w}`)}let b=Cr(e.deviceName);o.info(`[BrowserManager] windowSize=${JSON.stringify(b)}`),a&&x.on("page",async w=>{try{await zt(w,b.width,b.height)}catch(E){o.warn("[BrowserManager] Failed to set window bounds via CDP:",E)}});let v="";if(a&&t!==void 0)try{v=await Gt(t)}catch(w){o.warn("[BrowserManager] Failed to get CDP WebSocket URL:",w)}let y={debugPort:t,browser:m,context:x,startTime:new Date,timeout:null,browserWsUrl:v,downloadsBasePath:this.downloadsBasePath,browserType:r,userDataDir:g};if(this.terminationTimeout!==null){let w=setTimeout(()=>{o.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(y).catch(E=>o.error("[BrowserManager] Error terminating browser:",E))},this.terminationTimeout);y.timeout=w}return y}async terminateBrowser(e){e.timeout&&clearTimeout(e.timeout),await e.context.close(),await e.browser.close()}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}};var h0=e=>{if(!e||e===Nr)return"desktop";let t=Dr(e);return t&&t.isMobile?"mobile":"desktop"};var p0=(e=>(e.Desktop="desktop",e.Mobile="mobile",e))(p0||{});var ma=class{constructor(e){this.currentPage=null,this.currentIndex=-1,this.context=e,this.initialize()}initialize(){this.context.on("page",async t=>{await this.handleNewPage(t)});let e=this.context.pages();e.length>0&&(this.currentPage=e[0],this.currentIndex=0);for(let t of e)this.setupPageListeners(t)}async handleNewPage(e){try{this.setupPageListeners(e);let t=this.context.pages().indexOf(e);await this.setCurrentPage(e,t)}catch{}}setupPageListeners(e){e.on("close",async()=>{await this.handlePageClose(e)})}async handlePageClose(e){try{if(this.currentPage===e){let t=this.context.pages(),u=t.slice().reverse().find(r=>!r.isClosed());u&&await this.setCurrentPage(u,t.indexOf(u))}}catch{}}async setCurrentPage(e,t){let u=this.currentPage!==e;this.currentPage=e,this.currentIndex=t,u&&await e.bringToFront()}async switchToPage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is closed`);return await this.setCurrentPage(u,e),u}async closePage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is already closed`);await u.close()}getCurrentPage(){return this.currentPage}getCurrentIndex(){return this.currentIndex}getAllPages(){return this.context.pages()}getPageCount(){return this.context.pages().length}};async function ga(e,t=3e3,u=1e3){try{await qe(e,t,u)}catch{}}async function ba(e,t,u){let r=u*1e3,i=100,a=Date.now();for(;!t.downloadStatus||t.downloadStatus.status==="inProgress";){if(Date.now()-a>r){let n;throw t.downloadStatus?n=`Timed out after ${r}ms waiting for download to complete`:n="No download in progress or completed",o.error(n),new Error(n)}await e.waitForTimeout(i)}if(t.downloadStatus.status==="failed"){let n=`Download failed: ${t.downloadStatus.error||"Unknown error"}`;throw o.error(n),new Error(n)}t.agentNote=`Download completed: ${t.downloadStatus.filename}`}async function xa(e,t,u,r=60,i){let a=Math.min(r,280),n=Math.max(10,a/10)*1e3,s=Date.now()+a*1e3;for(o.info(`Waiting for condition: "${t}" (timeout: ${a}s)`);;){let c=Date.now();try{if(await u(e,t,i))return o.info(`Condition met: "${t}"`),!0}catch(f){o.warn(`Error evaluating condition: ${f.message}`)}if(Date.now()>s)return o.warn(`Timeout waiting for condition: "${t}"`),!1;let l=n-(Date.now()-c);l>0&&await e.waitForTimeout(l)}}var en=Xu(Za(),1);import*as Qa from"fs";import*as Ce from"path";function tn(e){return e.url()===":"}var Ju=class{constructor(e){this.context=e,this.testDataFileNames=[],this.extensionEnabled=!1}setTestDataDownloader(e,t){this.testDataDownloader=e,this.testDataFileNames=t??[]}setupPageTracking(e){this.tabManager=new ma(e)}async switchTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");return await this.tabManager.switchToPage(e)}async closeTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");await this.tabManager.closePage(e)}getCurrentPage(){return this.tabManager?this.tabManager.getCurrentPage():null}validatePage(e){let t=this.getCurrentPage();if(t&&t!==e&&!t.isClosed())return o.info(`[validatePage] Page changed, switching to ${t.url()}`),t;if(e.isClosed()){let u=e.context().pages().filter(r=>!r.isClosed());if(u.length>0){let r=u[u.length-1];return o.info(`[validatePage] Page closed, switching to ${r.url()}`),r}o.error("[validatePage] No valid pages found")}return e}replaceVariables(e){return Jt(e,this.context.variableStore.getAll())}getTestDataFileNames(){return this.testDataFileNames}getTestDataFilePath(e){let t=this.context.testDataDir||process.cwd();return Ce.join(t,e)}async downloadTestDataFiles(e){if(e.length===0){o.debug("[AgentServices] No file paths provided for download");return}let t=this.context.testDataDir||process.cwd(),u=e.filter(r=>{let i=Ce.basename(r),a=Ce.join(t,i),n=Qa.existsSync(a);return n&&o.debug(`[AgentServices] File already exists locally: ${i}`),!n});if(u.length===0){o.debug("[AgentServices] All files exist locally, no download needed");return}if(!this.testDataDownloader){o.debug("[AgentServices] No test data downloader configured, assuming files are pre-populated");return}o.info(`[AgentServices] Downloading ${u.length} test data files: ${u.join(", ")}`),await this.testDataDownloader(u,t)}async waitForDownloadComplete(e,t){return ba(e,this.context,t)}getRecentDownloadedFilePath(){return this.context.downloadStatus?this.context.downloadStatus.status!=="completed"?(o.debug(`Download is ${this.context.downloadStatus.status}, not completed`),null):this.context.downloadStatus.filePath?(o.info(`Retrieved recent download path: ${this.context.downloadStatus.filePath}`),this.context.downloadStatus.filePath):(o.warn("Download completed but file path is missing"),null):(o.debug("No download found"),null)}addSensitive(e,t){this.context.variableStore.set(e,t,!0)}saveVariable(e,t){let u=e.startsWith("$")?e.slice(1):e;this.context.variableStore.set(u,t),o.debug(`Saved variable: ${u} = ${JSON.stringify(t)}`),this.context.agentNote=`A new value is saved to the variable "${u}".`}addNote(e){!e||e.trim()===""||(this.context.agentNote?this.context.agentNote+=`
102
- ${e.trim()}`:this.context.agentNote=e.trim())}readVariable(e){let t=e.startsWith("$")?e.slice(1):e,u=this.context.variableStore.get(t);return o.debug(`Read variable: ${t} = ${JSON.stringify(u)}`),u}async generate2faCode(e){try{let t=en.authenticator.generate(e);return o.info(`Generated 2FA code: ${t}`),t}catch(t){throw o.error(`Failed to generate 2FA code: ${t.message}`),new Error(`Failed to generate 2FA code: ${t.message}`)}}async getDOMText(e){return await e.evaluate(()=>document.body.innerText)}async waitUntilStable(e,t){return qe(e,t)}setPage(e){this.context.setPage?(o.info("[AgentServices] Calling setPage callback"),this.context.setPage(e)):o.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let e=process.env.USE_DOM_TREE_TS;return e!==void 0?e==="true"||e==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}setExtensionEnabled(e){this.extensionEnabled=e}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled(),domTreeRoot:this.extensionEnabled?"document":"body"}}setKnowledgeRetriever(e){this.knowledgeRetriever=e}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(e,t,u,r){if(!this.knowledgeRetriever)return o.debug("[AgentServices] No knowledge retriever configured"),[];try{let i=await this.knowledgeRetriever(e,t,u,r);return o.debug(`[AgentServices] Retrieved ${i.length} knowledges for statement`),i}catch(i){return o.warn(`[AgentServices] Failed to retrieve knowledges: ${i.message}`),[]}}};var un=(e=>(e.Started="started",e.Action="action",e.Completion="completion",e.Error="error",e.Aborted="aborted",e.Keepalive="keepalive",e))(un||{}),Yu=class extends Error{constructor(e){super(e),this.name="AgentTaskFailedError",this.details=e}};import*as I from"fs";import*as C from"path";var L0=1,_0=3,I0=40;function Be(e,t){let u={};for(let[r,i]of Object.entries(e))u[r]=t.has(r)?"*****":i;return u}var rn=class{constructor(e){this.context=e,this._newActionEntities=new Map,this.agentServices=new Ju(e),this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:e}=await import("./handler-XD2P4DE3.js");this._actionHandler=new e}return this._actionHandler}async execAction(e,t,u){let r=(await this.getActionHandler()).getAction(e);if(!r)throw new Error(`Unknown action: ${e}`);await r.execute(t,u,this.agentServices)}async dismissModalIfPresent(e,t){try{let u=await this.execute(e,`TASK: Check if there is an INTRUSIVE POPUP blocking the page, and dismiss it if present.
102
+ ${e.trim()}`:this.context.agentNote=e.trim())}readVariable(e){let t=e.startsWith("$")?e.slice(1):e,u=this.context.variableStore.get(t);return o.debug(`Read variable: ${t} = ${JSON.stringify(u)}`),u}async generate2faCode(e){try{let t=en.authenticator.generate(e);return o.info(`Generated 2FA code: ${t}`),t}catch(t){throw o.error(`Failed to generate 2FA code: ${t.message}`),new Error(`Failed to generate 2FA code: ${t.message}`)}}async getDOMText(e){return await e.evaluate(()=>document.body.innerText)}async waitUntilStable(e,t){return qe(e,t)}setPage(e){this.context.setPage?(o.info("[AgentServices] Calling setPage callback"),this.context.setPage(e)):o.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let e=process.env.USE_DOM_TREE_TS;return e!==void 0?e==="true"||e==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}setExtensionEnabled(e){this.extensionEnabled=e}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled(),domTreeRoot:this.extensionEnabled?"document":"body"}}setKnowledgeRetriever(e){this.knowledgeRetriever=e}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(e,t,u,r){if(!this.knowledgeRetriever)return o.debug("[AgentServices] No knowledge retriever configured"),[];try{let i=await this.knowledgeRetriever(e,t,u,r);return o.debug(`[AgentServices] Retrieved ${i.length} knowledges for statement`),i}catch(i){return o.warn(`[AgentServices] Failed to retrieve knowledges: ${i.message}`),[]}}};var un=(e=>(e.Started="started",e.Action="action",e.Completion="completion",e.Error="error",e.Aborted="aborted",e.Keepalive="keepalive",e))(un||{}),Yu=class extends Error{constructor(e){super(e),this.name="AgentTaskFailedError",this.details=e}};import*as I from"fs";import*as C from"path";var L0=1,_0=3,I0=40;function Be(e,t){let u={};for(let[r,i]of Object.entries(e))u[r]=t.has(r)?"*****":i;return u}var rn=class{constructor(e){this.context=e,this._newActionEntities=new Map,this.agentServices=new Ju(e),this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:e}=await import("./handler-CUQQZNTI.js");this._actionHandler=new e}return this._actionHandler}async execAction(e,t,u){let r=(await this.getActionHandler()).getAction(e);if(!r)throw new Error(`Unknown action: ${e}`);await r.execute(t,u,this.agentServices)}async dismissModalIfPresent(e,t){try{let u=await this.execute(e,`TASK: Check if there is an INTRUSIVE POPUP blocking the page, and dismiss it if present.
103
103
 
104
104
  ONLY dismiss intrusive popups such as:
105
105
  - Cookie/GDPR consent banners
@@ -121,7 +121,7 @@ If you find an intrusive popup, dismiss it by clicking its close/X button or "No
121
121
  IMPORTANT: Only act with HIGH CONFIDENCE. If unsure whether something is an intrusive popup, do nothing.
122
122
  It's better to miss a popup than to accidentally interact with normal page elements.
123
123
 
124
- If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,_0),r=!!(u.actions&&u.actions.length>0);return{success:u.success,modalDismissed:r,details:u.details||(r?"Modal dismissed":"No modal found")}}catch(u){return{success:!1,modalDismissed:!1,details:u.message||"Modal dismissal failed"}}}_getContext(){return this.context}setupDownloadTracking(e){if(o.info(`[Download Tracking] Setting up download tracking for page: ${e.url()}`),tn(e)){o.info(`[Download Tracking] Skipping download tracking for blank tab: ${e.url()}`),e.close();return}e.on("download",async t=>{let u=t.suggestedFilename();o.info(`[Download Tracking] Download event detected! File: ${u}`),this.context.downloadStatus={filename:u,status:"inProgress",startTime:Date.now()},o.info(`[Download Tracking] Download status set to inProgress: ${JSON.stringify(this.context.downloadStatus)}`);try{let r=this.context.downloadDir||C.join(process.cwd(),"downloads");I.existsSync(r)||I.mkdirSync(r,{recursive:!0});let i=C.join(r,u);o.info(`[Download Tracking] Downloading file to: ${i}`),await t.saveAs(i),this.context.downloadStatus={filename:u,status:"completed",startTime:this.context.downloadStatus.startTime,filePath:i,timestamp:Date.now()},o.info(`[Download Tracking] Download completed: ${i}`),o.info(`[Download Tracking] Download status set to completed: ${JSON.stringify(this.context.downloadStatus)}`)}catch(r){this.context.downloadStatus={filename:u,status:"failed",startTime:this.context.downloadStatus.startTime,error:r.message,timestamp:Date.now()},o.error(`[Download Tracking] Download failed for ${u}: ${r.message}`)}})}setupDialogHandling(e){if(o.debug(`[Dialog Handling] setupDialogHandling called, isClosed=${e.isClosed()}, url=${e.url()}`),e.isClosed()){o.debug("[Dialog Handling] Skipping - page is closed");return}o.info(`[Dialog Handling] Setting up dialog handling for page: ${e.url()}`),e.on("dialog",async t=>{let u=t.type(),r=t.message();o.info(`[Dialog Handling] Dialog detected - type: ${u}, message: "${r}"`);let i=u==="beforeunload";try{i?await t.dismiss():await t.accept(),this.context.dialogStatus={type:u,message:r,response:i?"dismiss":"accept",timestamp:Date.now()},o.info(`[Dialog Handling] Dialog ${i?"dismissed":"accepted"} - type: ${u}, message: "${r}"`)}catch(a){o.warn(`[Dialog Handling] Failed to handle dialog (already dismissed?): ${a}`)}})}getRecentDownloadedFilePath(){return this.agentServices.getRecentDownloadedFilePath()}addNote(e){this.agentServices.addNote(e)}collectTokenUsages(e){let t;Array.isArray(e)?t=e:e?.tokenUsages&&(t=e.tokenUsages),t&&t.length>0?(this.context.tokenUsages||(this.context.tokenUsages=[]),this.context.tokenUsages.push(...t),o.debug(`[collectTokenUsages] Added ${t.length} token usage(s), total: ${this.context.tokenUsages.length}`)):o.debug("[collectTokenUsages] No token usages to collect (undefined or empty)")}trackAIAction(e,t,u,r=1,i,a){if(!e)return;let n=u?.tokenUsages||[];this.context.aiActionDetails||(this.context.aiActionDetails=[]);let s=this.context.aiActionDetails.find(c=>c.stepId===e&&c.actionType===t);s?(s.count+=r,n.length>0&&s.tokenUsages.push(...n),u?.userPrompt&&(s.userPrompt=u.userPrompt),u?.rawLlmResponse&&(s.rawLlmResponse=u.rawLlmResponse),u?.reasoningContent&&(s.reasoningContent=u.reasoningContent),u?.elementTree&&(s.elementTree=u.elementTree),u?.screenshotWithSom&&(s.screenshotWithSom=u.screenshotWithSom),a&&(s.explanation=a)):this.context.aiActionDetails.push({stepId:e,actionType:t,count:r,tokenUsages:[...n],statement:i,userPrompt:u?.userPrompt,rawLlmResponse:u?.rawLlmResponse,reasoningContent:u?.reasoningContent,explanation:a,elementTree:u?.elementTree,screenshotWithSom:u?.screenshotWithSom}),o.debug(`[trackAIAction] Tracked ${t} for step ${e}, count: ${r}`)}async assert(e,t,u){o.info(`Asserting statement: ${t}`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await He(t,e,this.agentServices,{executionHistory:r,useCleanScreenshotForAssertion:!0,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";if(u&&this.trackAIAction(u,"assert",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,i.success?"success":"failure",a,void 0,i.debugInfo),!i.success)throw this.addToExecutionHistory(`Assert: "${t}"`,`Failed: ${a}`),new Error(`Assertion failed: ${a}`);return this.addToExecutionHistory(`Assert: "${t}"`,`Passed: ${a}`),!0}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async evaluate(e,t,u){u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await He(t,e,this.agentServices,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";return u&&this.trackAIAction(u,"evaluate",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,"success",a,void 0,i.debugInfo),i.success?(this.addToExecutionHistory(`Evaluate: "${t}"`,`Result: true - ${a}`),!0):(o.warn(`AI evaluation returned false/unknown: ${a}`),this.addToExecutionHistory(`Evaluate: "${t}"`,`Unknown/False: ${a}`),!1)}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async performAction(e,t){o.info(`Act: ${t}`);let u=this.getCompletedExecutionHistory(),r=await Me(t,e,this.agentServices,{executionHistory:u,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});if(this.collectTokenUsages(r.debugInfo),r.status!=="success"||r.actionEntities.length===0)return{success:!1,details:r.explanation||r.error||"Action failed"};let i=r.actionEntities[0]?.action_description||t;return this.addToExecutionHistory(t,i),{success:!0,details:r.explanation}}async execute(e,t,u,r,i){if(i!==void 0&&i<=0)throw new Error(`maxSteps must be >= 1, got ${i}`);let a=i!==void 0&&i>1;o.info(`Executing statement: ${t} (${a?`multi, maxSteps: ${i}`:"single"})`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let n=this.getCompletedExecutionHistory();this.context.agentNote="";let s,c;if(a){let f=u&&this.context.stepTracking?.artifactsDir?m=>{if(m.type==="action"&&m.debugInfo){let x=`${u}-step${m.step}`;this.saveDebugInfoToFiles(x,m.debugInfo,this.context.model)}}:void 0;if(s=await Ue(t,e,this.agentServices,f,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),maxSteps:i??I0}),c=s.completed,this.collectTokenUsages(s.tokenUsages),u&&s.tokenUsages){let m={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",m,s.actionEntities?.length||1,t,s.explanation||"Multi-step execution completed")}}else if(s=await Me(t,e,this.agentServices,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r}),c=!0,this.collectTokenUsages(s.debugInfo),this.context.lastActionDebugInfo=s.debugInfo,u){let f=s.explanation||s.error||"No explanation";this.trackAIAction(u,"execute",s.debugInfo,1,t,f)}if(s.status!=="success"||s.actionEntities.length===0||!c){let f=s.explanation||s.error||"Goal not completed";throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",f,void 0,s.debugInfo),new Error(`Action failed: ${f}`)}let l=this.context.agentNote||s.explanation||"Action executed successfully";return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,s.debugInfo),this.addToExecutionHistory(`Execute: "${t}"`,l),{success:!0,details:l,actions:s.actionEntities,debugInfo:s.debugInfo}}catch(n){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",n.message),this.addToExecutionHistory(`Execute: "${t}"`,`Failed: ${n.message}`),n}}async generate(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory(),a=await Kt(t,e,this.agentServices,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r});if(this.collectTokenUsages(a.debugInfo),a.status!=="success"||a.actionEntities.length===0){let c=a.explanation||a.error||"No explanation";throw u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,c),u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",c,void 0,a.debugInfo),new Error(c)}let n=a.completed,s=a.explanation||"Action generated successfully";return u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,s),u&&this.context.stepTracking&&await this.updateStepResult(u,"success",s,void 0,a.debugInfo),o.info(`[generate] Generated action for "${t}": ${s}, goalAccomplished: ${a.completed}`),{success:n,details:s,actions:a.actionEntities,debugInfo:a.debugInfo}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async run(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory();this.context.agentNote="";let a=u&&this.context.stepTracking?.artifactsDir,n=r?.onAction||a?f=>{if(f.type==="action"&&f.action_entity&&(r?.onAction?.(f.action_entity),a&&f.debugInfo)){let m=`${u}-step${f.step}`;this.saveDebugInfoToFiles(m,f.debugInfo,this.context.model)}}:void 0,s=await Ue(t,e,this.agentServices,n,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),abortSignal:r?.abortSignal,maxSteps:r?.maxSteps});k.log(`Run task result: status=${s.status}, completed=${s.completed}, actions=${s.actionEntities?.length||0}`),this.collectTokenUsages(s.tokenUsages);let c=s.status==="success"&&s.completed,l=this.context.agentNote?.trim()||s.explanation||s.error||(c?"Step completed":"Step failed");if(u&&s.tokenUsages){let f={tokenUsages:s.tokenUsages};this.trackAIAction(u,"run",f,s.actionEntities?.length||1,t,l)}if(!c)throw new Yu(l);return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,void 0),this.addToExecutionHistory(`Run: "${t}"`,l),k.log(`Run result: success=${c}, details=${l}`),{success:c,details:l,actions:s.actionEntities}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),this.addToExecutionHistory(`Run: "${t}"`,`Failed: ${i.message}`),i}}async step(e,t,u,r,i,a=!0,n){let s=Date.now();this.context.stepTracking&&await this.createStepResult(e,r,u),await this.agentServices.waitUntilStable(e),this.context.stepTracking&&(this.context.stepTracking.currentStepId=r);let c=e.url(),l=await this.captureDOMSnapshot(e),f=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},m=this.context.stepTracking?.results[r]?.screenshot;try{o.info(`Executing step ${r}: ${u}`),this.addToExecutionHistory(u,""),this.context.agentNote="";let x=await t(),g=e.url(),b=await this.captureDOMSnapshot(e),v=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking&&await this.updateStepResult(r,"success",""),this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=Date.now()-s,E=this.context.stepTracking.results[r]?.screenshot,D=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:w,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:g,domSnapshot:b||void 0,variables:v,screenshotPath:E,timestamp:D})}let y=this.context.agentNote;return(!y||y.trim()==="")&&(y="Execution successful"),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=y),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x}catch(x){let g=a&&!this.context.isSelfHealing;if(g&&(this.context.stepTracking&&await this.updateStepResult(r,"failure",x.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=x.message)),!u||u.trim()==="")throw o.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x;if(!g){if(o.info(`Failed to heal at step ${r}. ${u}`),this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let y=e.url(),w=await this.captureDOMSnapshot(e),E=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},D=Date.now()-s,q=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:D,status:"failure",errorMessage:x.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:y,domSnapshot:w||void 0,variables:E,timestamp:q})}throw this.context.stepTracking&&(await this.updateStepResult(r,void 0,void 0),this.context.stepTracking.currentStepId=void 0),x}this.context.isSelfHealing=!0,o.info(`Action failed at step ${r}. ${u}`),o.info(`with error: ${x.message}`);let b;if(this.context.autoDisableModal){o.info("Attempting modal dismissal before self-healing...");let y=await this.dismissModalIfPresent(e,u);if(o.info(`Modal dismissal result: ${y.details}`),y.modalDismissed){b=`[Auto-dismissed modal: ${y.details}]`,o.info(`Modal dismissed, retrying original action for step ${r}`);try{let w=await t();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=b+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(r,"success",b),this.context.stepTracking.currentStepId=void 0),w}catch(w){o.info(`Retry after modal dismissal failed: ${w.message}, falling back to self-healing`)}}}let v=n??L0;o.info(`Calling execute() to self-heal (maxSteps: ${v})`);try{let y=await this.execute(e,u,r,!1,v);if(this.context.isSelfHealing=!1,!y.success)throw new Error(`Self-healing failed: ${y.details}`);let w=y.actions?.at(-1);i&&w&&(this._newActionEntities.set(i,w),o.info(`Stored new action entity for stmtUid: ${i} (last of ${y.actions?.length} actions)`));let E=e.url(),D=await this.captureDOMSnapshot(e),q=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){let F=b||"";await this.updateStepResult(r,"success",F)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let F=Date.now()-s,M=this.context.stepTracking.results[r]?.screenshot,Rt=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{actionEntity:w,playwrightCode:y.actions?.map(qt=>qt.locator||""),llmPrompt:y.debugInfo?.userPrompt,llmResponse:y.debugInfo?.rawLlmResponse,llmReasoning:y.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(r),durationMs:F,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:E,domSnapshot:D||void 0,variables:q,screenshotPath:M,timestamp:Rt})}return this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),y}catch(y){if(this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=e.url(),E=await this.captureDOMSnapshot(e),D=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},q=Date.now()-s,F=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:q,status:"failure",errorMessage:y.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:w,domSnapshot:E||void 0,variables:D,timestamp:F})}throw this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),y}}}async extract(e,t,u,r){r&&this.context.stepTracking&&await this.createStepResult(e,r,`Extract ${t} into ${u}`);try{let i=`Extract ${t} and save to ${u}`,a=await this.execute(e,i,r);if(!a.success)throw new Error(`AI extraction failed: ${a.details}`);r&&this.context.stepTracking&&await this.updateStepResult(r,"success",`Extracted ${t} to ${u}`)}catch(i){throw r&&this.context.stepTracking&&await this.updateStepResult(r,"failure",i.message),i}}async getDOMText(e){let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames();return(await t.getClickableElements(e,{interactiveClassNames:u})).elementTree.clickableElementsToString()}async captureDOMSnapshot(e){if(!this.context.stepTracking?.captureStateTransitions||!this.context.stepTracking?.captureDom)return null;try{let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),r=await t.getClickableElements(e,{interactiveClassNames:u,highlightElements:!1,viewportExpansion:0});return{elementTreeText:r.elementTree.clickableElementsToString(),elementCount:r.selectorMap.size,timestamp:Date.now()}}catch(t){return o.warn("Failed to capture DOM snapshot:",t),null}}getConsoleLogsForStep(e){return this.context.stepTracking?.consoleLogs?this.context.stepTracking.consoleLogs.filter(t=>t.stepId===e).map(t=>({type:t.type,message:t.message,timestamp:t.timestamp})):[]}async waitUntilStable(e,t=3e3,u=1e3){return ga(e,t,u)}async waitUntilCondition(e,t,u=60,r){return xa(e,t,(i,a,n)=>this.evaluate(i,a,n),u,r)}async uploadFile(e,t,u={},r){return ur(e,t,u,this.context,(i,a,n)=>this.execute(i,a,n),r)}async loginPage(e,t,u){let{LoginType:r}=await import("./agentLogin-2SSRFZ2U.js");if(o.info("Start login"),k.section("Login Flow"),k.log(`Site URL: ${t.site_url}`),k.log(`Account type: ${t.account.type}`),k.log(`Has cached actions: ${!!u?.cached_actions?.length}`),k.log(`Has validation exprs: ${!!u?.validation_exprs?.length}`),t.skip_verification)return o.info("Skipping login verification (skip_verification=true)"),{success:!0,page:e};if((t.account.type===r.PASSWORD||t.account.type===r.OAUTH2)&&(this.context.variableStore.set("username",t.account.username,!0),this.context.variableStore.set("password",t.account.password,!0)),t.account.two_factor_auth_config?.type==="totp"&&this.context.variableStore.set("otp_secret_key",t.account.two_factor_auth_config.data,!0),o.info(`Navigating to: ${t.site_url}`),await e.goto(t.site_url),await this.waitUntilStable(e,1e4,3e3),u?.validation_exprs&&u.validation_exprs.length>0){if(k.log("Level 1: Checking if already logged in via storage state..."),k.log(`Validation expressions: ${JSON.stringify(u.validation_exprs)}`),await Yt(e,u.validation_exprs)){k.log("Level 1 SUCCESS: Already logged in via storage state"),o.info("Login: Already logged in via storage state");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs,alreadyLoggedIn:!0}}k.log("Level 1 FAILED: Storage state validation failed, trying Level 2")}if(u?.cached_actions&&u.cached_actions.length>0&&u?.validation_exprs&&u.validation_exprs.length>0){k.log(`Level 2: Attempting cached login with ${u.cached_actions.length} actions`);try{if((await this.executeCachedLogin(e,u.cached_actions,u.validation_exprs)).success){k.log("Level 2 SUCCESS: Cached login succeeded"),o.info("Login: Cached login succeeded");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs}}k.log("Level 2 FAILED: Cached login failed, trying Level 3")}catch(a){k.log(`Level 2 ERROR: ${a.message}, trying Level 3`)}}else u?.cached_actions&&u.cached_actions.length>0&&k.log("Level 2 SKIPPED: Cached actions exist but no validation expressions, going to Level 3");let i=`First check if the page is already signed in. If it is, do nothing.
124
+ If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,_0),r=!!(u.actions&&u.actions.length>0);return{success:u.success,modalDismissed:r,details:u.details||(r?"Modal dismissed":"No modal found")}}catch(u){return{success:!1,modalDismissed:!1,details:u.message||"Modal dismissal failed"}}}_getContext(){return this.context}setupDownloadTracking(e){if(o.info(`[Download Tracking] Setting up download tracking for page: ${e.url()}`),tn(e)){o.info(`[Download Tracking] Skipping download tracking for blank tab: ${e.url()}`),e.close();return}e.on("download",async t=>{let u=t.suggestedFilename();o.info(`[Download Tracking] Download event detected! File: ${u}`),this.context.downloadStatus={filename:u,status:"inProgress",startTime:Date.now()},o.info(`[Download Tracking] Download status set to inProgress: ${JSON.stringify(this.context.downloadStatus)}`);try{let r=this.context.downloadDir||C.join(process.cwd(),"downloads");I.existsSync(r)||I.mkdirSync(r,{recursive:!0});let i=C.join(r,u);o.info(`[Download Tracking] Downloading file to: ${i}`),await t.saveAs(i),this.context.downloadStatus={filename:u,status:"completed",startTime:this.context.downloadStatus.startTime,filePath:i,timestamp:Date.now()},o.info(`[Download Tracking] Download completed: ${i}`),o.info(`[Download Tracking] Download status set to completed: ${JSON.stringify(this.context.downloadStatus)}`)}catch(r){this.context.downloadStatus={filename:u,status:"failed",startTime:this.context.downloadStatus.startTime,error:r.message,timestamp:Date.now()},o.error(`[Download Tracking] Download failed for ${u}: ${r.message}`)}})}setupDialogHandling(e){if(o.debug(`[Dialog Handling] setupDialogHandling called, isClosed=${e.isClosed()}, url=${e.url()}`),e.isClosed()){o.debug("[Dialog Handling] Skipping - page is closed");return}o.info(`[Dialog Handling] Setting up dialog handling for page: ${e.url()}`),e.on("dialog",async t=>{let u=t.type(),r=t.message();o.info(`[Dialog Handling] Dialog detected - type: ${u}, message: "${r}"`);let i=u==="beforeunload";try{i?await t.dismiss():await t.accept(),this.context.dialogStatus={type:u,message:r,response:i?"dismiss":"accept",timestamp:Date.now()},o.info(`[Dialog Handling] Dialog ${i?"dismissed":"accepted"} - type: ${u}, message: "${r}"`)}catch(a){o.warn(`[Dialog Handling] Failed to handle dialog (already dismissed?): ${a}`)}})}getRecentDownloadedFilePath(){return this.agentServices.getRecentDownloadedFilePath()}addNote(e){this.agentServices.addNote(e)}collectTokenUsages(e){let t;Array.isArray(e)?t=e:e?.tokenUsages&&(t=e.tokenUsages),t&&t.length>0?(this.context.tokenUsages||(this.context.tokenUsages=[]),this.context.tokenUsages.push(...t),o.debug(`[collectTokenUsages] Added ${t.length} token usage(s), total: ${this.context.tokenUsages.length}`)):o.debug("[collectTokenUsages] No token usages to collect (undefined or empty)")}trackAIAction(e,t,u,r=1,i,a){if(!e)return;let n=u?.tokenUsages||[];this.context.aiActionDetails||(this.context.aiActionDetails=[]);let s=this.context.aiActionDetails.find(c=>c.stepId===e&&c.actionType===t);s?(s.count+=r,n.length>0&&s.tokenUsages.push(...n),u?.userPrompt&&(s.userPrompt=u.userPrompt),u?.rawLlmResponse&&(s.rawLlmResponse=u.rawLlmResponse),u?.reasoningContent&&(s.reasoningContent=u.reasoningContent),u?.elementTree&&(s.elementTree=u.elementTree),u?.screenshotWithSom&&(s.screenshotWithSom=u.screenshotWithSom),a&&(s.explanation=a)):this.context.aiActionDetails.push({stepId:e,actionType:t,count:r,tokenUsages:[...n],statement:i,userPrompt:u?.userPrompt,rawLlmResponse:u?.rawLlmResponse,reasoningContent:u?.reasoningContent,explanation:a,elementTree:u?.elementTree,screenshotWithSom:u?.screenshotWithSom}),o.debug(`[trackAIAction] Tracked ${t} for step ${e}, count: ${r}`)}async assert(e,t,u){o.info(`Asserting statement: ${t}`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await He(t,e,this.agentServices,{executionHistory:r,useCleanScreenshotForAssertion:!0,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";if(u&&this.trackAIAction(u,"assert",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,i.success?"success":"failure",a,void 0,i.debugInfo),!i.success)throw this.addToExecutionHistory(`Assert: "${t}"`,`Failed: ${a}`),new Error(`Assertion failed: ${a}`);return this.addToExecutionHistory(`Assert: "${t}"`,`Passed: ${a}`),!0}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async evaluate(e,t,u){u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await He(t,e,this.agentServices,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";return u&&this.trackAIAction(u,"evaluate",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,"success",a,void 0,i.debugInfo),i.success?(this.addToExecutionHistory(`Evaluate: "${t}"`,`Result: true - ${a}`),!0):(o.warn(`AI evaluation returned false/unknown: ${a}`),this.addToExecutionHistory(`Evaluate: "${t}"`,`Unknown/False: ${a}`),!1)}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async performAction(e,t){o.info(`Act: ${t}`);let u=this.getCompletedExecutionHistory(),r=await Me(t,e,this.agentServices,{executionHistory:u,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});if(this.collectTokenUsages(r.debugInfo),r.status!=="success"||r.actionEntities.length===0)return{success:!1,details:r.explanation||r.error||"Action failed"};let i=r.actionEntities[0]?.action_description||t;return this.addToExecutionHistory(t,i),{success:!0,details:r.explanation}}async execute(e,t,u,r,i){if(i!==void 0&&i<=0)throw new Error(`maxSteps must be >= 1, got ${i}`);let a=i!==void 0&&i>1;o.info(`Executing statement: ${t} (${a?`multi, maxSteps: ${i}`:"single"})`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let n=this.getCompletedExecutionHistory();this.context.agentNote="";let s,c;if(a){let f=u&&this.context.stepTracking?.artifactsDir?m=>{if(m.type==="action"&&m.debugInfo){let x=`${u}-step${m.step}`;this.saveDebugInfoToFiles(x,m.debugInfo,this.context.model)}}:void 0;if(s=await Ue(t,e,this.agentServices,f,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),maxSteps:i??I0}),c=s.completed,this.collectTokenUsages(s.tokenUsages),u&&s.tokenUsages){let m={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",m,s.actionEntities?.length||1,t,s.explanation||"Multi-step execution completed")}}else if(s=await Me(t,e,this.agentServices,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r}),c=!0,this.collectTokenUsages(s.debugInfo),this.context.lastActionDebugInfo=s.debugInfo,u){let f=s.explanation||s.error||"No explanation";this.trackAIAction(u,"execute",s.debugInfo,1,t,f)}if(s.status!=="success"||s.actionEntities.length===0||!c){let f=s.explanation||s.error||"Goal not completed";throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",f,void 0,s.debugInfo),new Error(`Action failed: ${f}`)}let l=this.context.agentNote||s.explanation||"Action executed successfully";return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,s.debugInfo),this.addToExecutionHistory(`Execute: "${t}"`,l),{success:!0,details:l,actions:s.actionEntities,debugInfo:s.debugInfo}}catch(n){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",n.message),this.addToExecutionHistory(`Execute: "${t}"`,`Failed: ${n.message}`),n}}async generate(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory(),a=await Kt(t,e,this.agentServices,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r});if(this.collectTokenUsages(a.debugInfo),a.status!=="success"||a.actionEntities.length===0){let c=a.explanation||a.error||"No explanation";throw u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,c),u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",c,void 0,a.debugInfo),new Error(c)}let n=a.completed,s=a.explanation||"Action generated successfully";return u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,s),u&&this.context.stepTracking&&await this.updateStepResult(u,"success",s,void 0,a.debugInfo),o.info(`[generate] Generated action for "${t}": ${s}, goalAccomplished: ${a.completed}`),{success:n,details:s,actions:a.actionEntities,debugInfo:a.debugInfo}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async run(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory();this.context.agentNote="";let a=u&&this.context.stepTracking?.artifactsDir,n=r?.onAction||a?f=>{if(f.type==="action"&&f.action_entity&&(r?.onAction?.(f.action_entity),a&&f.debugInfo)){let m=`${u}-step${f.step}`;this.saveDebugInfoToFiles(m,f.debugInfo,this.context.model)}}:void 0,s=await Ue(t,e,this.agentServices,n,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),abortSignal:r?.abortSignal,maxSteps:r?.maxSteps});k.log(`Run task result: status=${s.status}, completed=${s.completed}, actions=${s.actionEntities?.length||0}`),this.collectTokenUsages(s.tokenUsages);let c=s.status==="success"&&s.completed,l=this.context.agentNote?.trim()||s.explanation||s.error||(c?"Step completed":"Step failed");if(u&&s.tokenUsages){let f={tokenUsages:s.tokenUsages};this.trackAIAction(u,"run",f,s.actionEntities?.length||1,t,l)}if(!c)throw new Yu(l);return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,void 0),this.addToExecutionHistory(`Run: "${t}"`,l),k.log(`Run result: success=${c}, details=${l}`),{success:c,details:l,actions:s.actionEntities}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),this.addToExecutionHistory(`Run: "${t}"`,`Failed: ${i.message}`),i}}async step(e,t,u,r,i,a=!0,n){let s=Date.now();this.context.stepTracking&&await this.createStepResult(e,r,u),await this.agentServices.waitUntilStable(e),this.context.stepTracking&&(this.context.stepTracking.currentStepId=r);let c=e.url(),l=await this.captureDOMSnapshot(e),f=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},m=this.context.stepTracking?.results[r]?.screenshot;try{o.info(`Executing step ${r}: ${u}`),this.addToExecutionHistory(u,""),this.context.agentNote="";let x=await t(),g=e.url(),b=await this.captureDOMSnapshot(e),v=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking&&await this.updateStepResult(r,"success",""),this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=Date.now()-s,E=this.context.stepTracking.results[r]?.screenshot,D=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:w,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:g,domSnapshot:b||void 0,variables:v,screenshotPath:E,timestamp:D})}let y=this.context.agentNote;return(!y||y.trim()==="")&&(y="Execution successful"),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=y),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x}catch(x){let g=a&&!this.context.isSelfHealing;if(g&&(this.context.stepTracking&&await this.updateStepResult(r,"failure",x.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=x.message)),!u||u.trim()==="")throw o.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x;if(!g){if(o.info(`Failed to heal at step ${r}. ${u}`),this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let y=e.url(),w=await this.captureDOMSnapshot(e),E=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},D=Date.now()-s,q=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:D,status:"failure",errorMessage:x.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:y,domSnapshot:w||void 0,variables:E,timestamp:q})}throw this.context.stepTracking&&(await this.updateStepResult(r,void 0,void 0),this.context.stepTracking.currentStepId=void 0),x}this.context.isSelfHealing=!0,o.info(`Action failed at step ${r}. ${u}`),o.info(`with error: ${x.message}`);let b;if(this.context.autoDisableModal){o.info("Attempting modal dismissal before self-healing...");let y=await this.dismissModalIfPresent(e,u);if(o.info(`Modal dismissal result: ${y.details}`),y.modalDismissed){b=`[Auto-dismissed modal: ${y.details}]`,o.info(`Modal dismissed, retrying original action for step ${r}`);try{let w=await t();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=b+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(r,"success",b),this.context.stepTracking.currentStepId=void 0),w}catch(w){o.info(`Retry after modal dismissal failed: ${w.message}, falling back to self-healing`)}}}let v=n??L0;o.info(`Calling execute() to self-heal (maxSteps: ${v})`);try{let y=await this.execute(e,u,r,!1,v);if(this.context.isSelfHealing=!1,!y.success)throw new Error(`Self-healing failed: ${y.details}`);let w=y.actions?.at(-1);i&&w&&(this._newActionEntities.set(i,w),o.info(`Stored new action entity for stmtUid: ${i} (last of ${y.actions?.length} actions)`));let E=e.url(),D=await this.captureDOMSnapshot(e),q=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){let F=b||"";await this.updateStepResult(r,"success",F)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let F=Date.now()-s,M=this.context.stepTracking.results[r]?.screenshot,Rt=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{actionEntity:w,playwrightCode:y.actions?.map(qt=>qt.locator||""),llmPrompt:y.debugInfo?.userPrompt,llmResponse:y.debugInfo?.rawLlmResponse,llmReasoning:y.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(r),durationMs:F,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:E,domSnapshot:D||void 0,variables:q,screenshotPath:M,timestamp:Rt})}return this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),y}catch(y){if(this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=e.url(),E=await this.captureDOMSnapshot(e),D=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},q=Date.now()-s,F=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:m,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:q,status:"failure",errorMessage:y.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:w,domSnapshot:E||void 0,variables:D,timestamp:F})}throw this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),y}}}async extract(e,t,u,r){r&&this.context.stepTracking&&await this.createStepResult(e,r,`Extract ${t} into ${u}`);try{let i=`Extract ${t} and save to ${u}`,a=await this.execute(e,i,r);if(!a.success)throw new Error(`AI extraction failed: ${a.details}`);r&&this.context.stepTracking&&await this.updateStepResult(r,"success",`Extracted ${t} to ${u}`)}catch(i){throw r&&this.context.stepTracking&&await this.updateStepResult(r,"failure",i.message),i}}async getDOMText(e){let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames();return(await t.getClickableElements(e,{interactiveClassNames:u})).elementTree.clickableElementsToString()}async captureDOMSnapshot(e){if(!this.context.stepTracking?.captureStateTransitions||!this.context.stepTracking?.captureDom)return null;try{let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),r=await t.getClickableElements(e,{interactiveClassNames:u,highlightElements:!1,viewportExpansion:0});return{elementTreeText:r.elementTree.clickableElementsToString(),elementCount:r.selectorMap.size,timestamp:Date.now()}}catch(t){return o.warn("Failed to capture DOM snapshot:",t),null}}getConsoleLogsForStep(e){return this.context.stepTracking?.consoleLogs?this.context.stepTracking.consoleLogs.filter(t=>t.stepId===e).map(t=>({type:t.type,message:t.message,timestamp:t.timestamp})):[]}async waitUntilStable(e,t=3e3,u=1e3){return ga(e,t,u)}async waitUntilCondition(e,t,u=60,r){return xa(e,t,(i,a,n)=>this.evaluate(i,a,n),u,r)}async uploadFile(e,t,u={},r){return ur(e,t,u,this.context,(i,a,n)=>this.execute(i,a,n),r)}async loginPage(e,t,u){let{LoginType:r}=await import("./agentLogin-U7QWF4AY.js");if(o.info("Start login"),k.section("Login Flow"),k.log(`Site URL: ${t.site_url}`),k.log(`Account type: ${t.account.type}`),k.log(`Has cached actions: ${!!u?.cached_actions?.length}`),k.log(`Has validation exprs: ${!!u?.validation_exprs?.length}`),t.skip_verification)return o.info("Skipping login verification (skip_verification=true)"),{success:!0,page:e};if((t.account.type===r.PASSWORD||t.account.type===r.OAUTH2)&&(this.context.variableStore.set("username",t.account.username,!0),this.context.variableStore.set("password",t.account.password,!0)),t.account.two_factor_auth_config?.type==="totp"&&this.context.variableStore.set("otp_secret_key",t.account.two_factor_auth_config.data,!0),o.info(`Navigating to: ${t.site_url}`),await e.goto(t.site_url),await this.waitUntilStable(e,1e4,3e3),u?.validation_exprs&&u.validation_exprs.length>0){if(k.log("Level 1: Checking if already logged in via storage state..."),k.log(`Validation expressions: ${JSON.stringify(u.validation_exprs)}`),await Yt(e,u.validation_exprs)){k.log("Level 1 SUCCESS: Already logged in via storage state"),o.info("Login: Already logged in via storage state");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs,alreadyLoggedIn:!0}}k.log("Level 1 FAILED: Storage state validation failed, trying Level 2")}if(u?.cached_actions&&u.cached_actions.length>0&&u?.validation_exprs&&u.validation_exprs.length>0){k.log(`Level 2: Attempting cached login with ${u.cached_actions.length} actions`);try{if((await this.executeCachedLogin(e,u.cached_actions,u.validation_exprs)).success){k.log("Level 2 SUCCESS: Cached login succeeded"),o.info("Login: Cached login succeeded");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs}}k.log("Level 2 FAILED: Cached login failed, trying Level 3")}catch(a){k.log(`Level 2 ERROR: ${a.message}, trying Level 3`)}}else u?.cached_actions&&u.cached_actions.length>0&&k.log("Level 2 SKIPPED: Cached actions exist but no validation expressions, going to Level 3");let i=`First check if the page is already signed in. If it is, do nothing.
125
125
  Use your best judgement to determine if the page is signed in.
126
126
  `;if(t.verification_hint&&(i+=`
127
127
  Signed in verification hint: ${t.verification_hint}
@@ -133,7 +133,7 @@ If the page is not signed in, sign in with the OAuth provider "${a.provider_name
133
133
  `}t.additional_prompt&&(i+=`
134
134
  Additional instructions: ${t.additional_prompt}
135
135
  `);try{k.log("Level 3: Attempting agent-based login"),k.log(`Login prompt:
136
- ${i}`);let a=this.agentServices.knowledgeRetriever,n=!1;this.agentServices.hasKnowledgeRetriever()&&a&&(k.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(x,g,b,v)=>await a(x,g,b,"login")),n=!0,k.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(e,i,"login"),!s.success)return k.log("Level 3 FAILED: Agent login failed"),o.info("Login: Failed"),{success:!1,page:e}}finally{n&&a&&(this.agentServices.setKnowledgeRetriever(a),k.log("Restored original knowledge retriever"))}let c=await e.context().storageState(),l;if(t.num_verification_exprs!==0)try{k.log("Generating validation locators for future login verification...");let x=await qr(e,t.site_url,{verification_hint:t.verification_hint,num_verification_exprs:t.num_verification_exprs},async(g,b)=>this.run(g,b),async g=>this.getDOMText(g));x?(l=x,k.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):k.log("Failed to generate validation locators, login will still succeed")}catch(x){k.log(`Error generating validation locators: ${x.message}`)}else k.log("Skipping validation locator generation (num_verification_exprs=0)");k.log("Level 3 SUCCESS: Agent login succeeded"),o.info("Login: Agent login succeeded");let f=s.actions||[],m=f.length>0?f:u?.cached_actions;return{success:!0,page:e,storage_state:c,cached_actions:m,validation_exprs:l}}catch(a){return k.error(`Agent login failed: ${a.message}`),o.info("Login: Failed"),{success:!1,page:e}}}async executeCachedLogin(e,t,u){let r=(await import("./handler-XD2P4DE3.js")).default,i=new r;for(let a=0;a<t.length;a++){let n=t[a];k.log(`Executing cached action ${a+1}/${t.length}: ${n.action_description||n.action_data?.action_name}`);try{if(!n.action_data){k.log(`Action ${a+1} missing action_data, skipping`);continue}await i.execute(e,n,this.agentServices),await this.waitUntilStable(e,5e3)}catch(s){return k.error(`Cached action ${a+1} failed: ${s.message}`),{success:!1}}}return u&&u.length>0&&!await Yt(e,u)?{success:!1}:{success:!0}}getCompletedExecutionHistory(){if(!this.context.executionHistory||this.context.executionHistory.length===0)return[];let e=this.context.executionHistory[this.context.executionHistory.length-1];return!e[1]||e[1].trim()===""?this.context.executionHistory.slice(0,-1):this.context.executionHistory}addToExecutionHistory(e,t){this.context.executionHistory||(this.context.executionHistory=[]),this.context.executionHistory.push([e,t])}async createStepResult(e,t,u){if(!this.context.stepTracking||this.context.stepTracking.results[t])return;this.context.stepTracking.currentStepId=t,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(t),e=await this.agentServices.validatePage(e),await this.waitUntilStable(e);let r={description:u,startTime:Date.now(),artifacts:[]};if(this.context.stepTracking.artifactsDir){let i=C.join(this.context.stepTracking.artifactsDir,t.replace(/\./g,"-"));I.mkdirSync(i,{recursive:!0});let a=C.join(i,"screenshot.png");await e.screenshot({type:"png",path:a}),r.screenshot=a}this.context.stepTracking.results[t]=r}saveDebugInfoToFiles(e,t,u){let r={};if(!this.context.stepTracking?.artifactsDir)return o.debug("[saveDebugInfoToFiles] No artifacts directory configured, skipping debug info save"),r;let i=C.join(this.context.stepTracking.artifactsDir,e.replace(/\./g,"-"));try{if(I.mkdirSync(i,{recursive:!0}),t.systemPrompt){let a=C.join(i,"system_prompt.txt");I.writeFileSync(a,t.systemPrompt),r.system_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved system prompt to: ${a}`)}if(t.userPrompt)if(typeof t.userPrompt=="string"){let a=C.join(i,"user_prompt.txt");I.writeFileSync(a,t.userPrompt),r.user_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved user prompt to: ${a}`)}else{let a=t.userPrompt.map(c=>Array.isArray(c.content)?{...c,content:c.content.map(l=>l.type==="image"&&l.file?.startsWith("data:")?{...l,file:"[base64 image data stripped]"}:l)}:c),n=C.join(i,"messages.json"),s={system:t.systemPrompt,messages:a};I.writeFileSync(n,JSON.stringify(s,null,2)),r.messages_path=n,o.debug(`[saveDebugInfoToFiles] Saved messages to: ${n}`)}if(t.rawLlmResponse){let a=u?u.replace(/[\/\\:]/g,"-"):"llm",n=C.join(i,`${a}_response.txt`);I.writeFileSync(n,t.rawLlmResponse),r.response_path=n,o.debug(`[saveDebugInfoToFiles] Saved LLM response to: ${n}`)}if(t.screenshotWithSom){let a=C.join(i,"screenshot.png");I.writeFileSync(a,Buffer.from(t.screenshotWithSom,"base64")),r.screenshot_path=a,o.debug(`[saveDebugInfoToFiles] Saved SOM screenshot to: ${a}`)}if(t.reasoningContent){let a=C.join(i,"reasoning.txt");I.writeFileSync(a,t.reasoningContent),r.reasoning_path=a,o.debug(`[saveDebugInfoToFiles] Saved reasoning to: ${a}`)}o.debug(`[saveDebugInfoToFiles] Saved ${Object.keys(r).length} artifacts for step ${e}`)}catch(a){o.error(`[saveDebugInfoToFiles] Failed to save debug info for step ${e}:`,a)}return r}async updateStepResult(e,t,u,r,i){if(!this.context.stepTracking)return;let a=this.context.stepTracking.results[e];if(a){if(t&&(a.status=t,this.context.stepTracking.currentStepId=void 0,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(void 0)),u!==void 0&&(a.message=u),r&&a.artifacts.push(r),i){let n=i.tokenUsages?.[0]?.model,s=this.saveDebugInfoToFiles(e,i,n);Object.keys(s).length>0&&a.artifacts.push(s)}a.duration=Date.now()-a.startTime,this.context.stepTracking.onStepComplete&&this.context.stepTracking.onStepComplete(e,a)}}async writeExecutionResults(e,t){try{if(await I.promises.mkdir(e,{recursive:!0}),this.context.stepTracking?.results&&Object.keys(this.context.stepTracking.results).length>0){let u=C.join(e,"test-results.json");await I.promises.writeFile(u,JSON.stringify(this.context.stepTracking.results,null,2)),o.debug(`Test results written to: ${u}`)}if(t?.tokenUsages&&this.context.tokenUsages&&this.context.tokenUsages.length>0){let u=C.join(e,"token-usages.json");await I.promises.writeFile(u,JSON.stringify(this.context.tokenUsages,null,2)),o.debug(`Token usages written to: ${u}`)}if(this.context.aiActionDetails&&this.context.aiActionDetails.length>0){let u=C.join(e,"ai-actions.json");await I.promises.writeFile(u,JSON.stringify(this.context.aiActionDetails,null,2)),o.debug(`AI action details written to: ${u}`)}}catch(u){throw o.error("Failed to write execution results:",u),u}}};function N0(){let e=new Date,t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(e),u=t.find(w=>w.type==="year").value,r=t.find(w=>w.type==="month").value,i=t.find(w=>w.type==="day").value,a=t.find(w=>w.type==="hour").value,n=t.find(w=>w.type==="minute").value,s=t.find(w=>w.type==="second").value,c=String(e.getMilliseconds()).padStart(3,"0"),l=`${u}-${r}-${i}T${a}:${n}:${s}.${c}`,f=e.toISOString().slice(0,-1),m=Date.parse(l+"Z"),x=Date.parse(f+"Z"),g=Math.round((x-m)/(1e3*60)),b=String(Math.floor(Math.abs(g)/60)).padStart(2,"0"),v=String(Math.abs(g)%60).padStart(2,"0"),y=g<=0?"+":"-";return`${u}-${r}-${i}T${a}:${n}:${s}.${c}${y}${b}:${v}`}function an(e){let t=e.variableStore;return t.has("currentTime")||t.set("currentTime",N0()),{model:e.model,variableStore:t,organizationId:e.organizationId,organizationSettings:e.organizationSettings,executionHistory:e.executionHistory||[],testDataDir:e.testDataDir,downloadDir:e.downloadDir,useNativeGenerator:e.useNativeGenerator,autoDisableModal:e.autoDisableModal,tokenUsages:[],aiActionDetails:[]}}function x1(e){let t=new Rr,u=new Set(e.sensitiveKeys||[]);if(e.variables)for(let[i,a]of Object.entries(e.variables))t.set(i,a,u.has(i));let r=an({model:e.model,variableStore:t,testDataDir:e.testDataDir,downloadDir:e.downloadDir});return new rn(r)}var w1="1.0.0";export{Hr as a,sn as b,on as c,cn as d,ln as e,r0 as f,i0 as g,a0 as h,n0 as i,s0 as j,o0 as k,c0 as l,f0 as m,h0 as n,Ju as o,un as p,Yu as q,rn as r,an as s,x1 as t,w1 as u};
136
+ ${i}`);let a=this.agentServices.knowledgeRetriever,n=!1;this.agentServices.hasKnowledgeRetriever()&&a&&(k.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(x,g,b,v)=>await a(x,g,b,"login")),n=!0,k.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(e,i,"login"),!s.success)return k.log("Level 3 FAILED: Agent login failed"),o.info("Login: Failed"),{success:!1,page:e}}finally{n&&a&&(this.agentServices.setKnowledgeRetriever(a),k.log("Restored original knowledge retriever"))}let c=await e.context().storageState(),l;if(t.num_verification_exprs!==0)try{k.log("Generating validation locators for future login verification...");let x=await qr(e,t.site_url,{verification_hint:t.verification_hint,num_verification_exprs:t.num_verification_exprs},async(g,b)=>this.run(g,b),async g=>this.getDOMText(g));x?(l=x,k.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):k.log("Failed to generate validation locators, login will still succeed")}catch(x){k.log(`Error generating validation locators: ${x.message}`)}else k.log("Skipping validation locator generation (num_verification_exprs=0)");k.log("Level 3 SUCCESS: Agent login succeeded"),o.info("Login: Agent login succeeded");let f=s.actions||[],m=f.length>0?f:u?.cached_actions;return{success:!0,page:e,storage_state:c,cached_actions:m,validation_exprs:l}}catch(a){return k.error(`Agent login failed: ${a.message}`),o.info("Login: Failed"),{success:!1,page:e}}}async executeCachedLogin(e,t,u){let r=(await import("./handler-CUQQZNTI.js")).default,i=new r;for(let a=0;a<t.length;a++){let n=t[a];k.log(`Executing cached action ${a+1}/${t.length}: ${n.action_description||n.action_data?.action_name}`);try{if(!n.action_data){k.log(`Action ${a+1} missing action_data, skipping`);continue}await i.execute(e,n,this.agentServices),await this.waitUntilStable(e,5e3)}catch(s){return k.error(`Cached action ${a+1} failed: ${s.message}`),{success:!1}}}return u&&u.length>0&&!await Yt(e,u)?{success:!1}:{success:!0}}getCompletedExecutionHistory(){if(!this.context.executionHistory||this.context.executionHistory.length===0)return[];let e=this.context.executionHistory[this.context.executionHistory.length-1];return!e[1]||e[1].trim()===""?this.context.executionHistory.slice(0,-1):this.context.executionHistory}addToExecutionHistory(e,t){this.context.executionHistory||(this.context.executionHistory=[]),this.context.executionHistory.push([e,t])}async createStepResult(e,t,u){if(!this.context.stepTracking||this.context.stepTracking.results[t])return;this.context.stepTracking.currentStepId=t,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(t),e=await this.agentServices.validatePage(e),await this.waitUntilStable(e);let r={description:u,startTime:Date.now(),artifacts:[]};if(this.context.stepTracking.artifactsDir){let i=C.join(this.context.stepTracking.artifactsDir,t.replace(/\./g,"-"));I.mkdirSync(i,{recursive:!0});let a=C.join(i,"screenshot.png");await e.screenshot({type:"png",path:a}),r.screenshot=a}this.context.stepTracking.results[t]=r}saveDebugInfoToFiles(e,t,u){let r={};if(!this.context.stepTracking?.artifactsDir)return o.debug("[saveDebugInfoToFiles] No artifacts directory configured, skipping debug info save"),r;let i=C.join(this.context.stepTracking.artifactsDir,e.replace(/\./g,"-"));try{if(I.mkdirSync(i,{recursive:!0}),t.systemPrompt){let a=C.join(i,"system_prompt.txt");I.writeFileSync(a,t.systemPrompt),r.system_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved system prompt to: ${a}`)}if(t.userPrompt)if(typeof t.userPrompt=="string"){let a=C.join(i,"user_prompt.txt");I.writeFileSync(a,t.userPrompt),r.user_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved user prompt to: ${a}`)}else{let a=t.userPrompt.map(c=>Array.isArray(c.content)?{...c,content:c.content.map(l=>l.type==="image"&&l.file?.startsWith("data:")?{...l,file:"[base64 image data stripped]"}:l)}:c),n=C.join(i,"messages.json"),s={system:t.systemPrompt,messages:a};I.writeFileSync(n,JSON.stringify(s,null,2)),r.messages_path=n,o.debug(`[saveDebugInfoToFiles] Saved messages to: ${n}`)}if(t.rawLlmResponse){let a=u?u.replace(/[\/\\:]/g,"-"):"llm",n=C.join(i,`${a}_response.txt`);I.writeFileSync(n,t.rawLlmResponse),r.response_path=n,o.debug(`[saveDebugInfoToFiles] Saved LLM response to: ${n}`)}if(t.screenshotWithSom){let a=C.join(i,"screenshot.png");I.writeFileSync(a,Buffer.from(t.screenshotWithSom,"base64")),r.screenshot_path=a,o.debug(`[saveDebugInfoToFiles] Saved SOM screenshot to: ${a}`)}if(t.reasoningContent){let a=C.join(i,"reasoning.txt");I.writeFileSync(a,t.reasoningContent),r.reasoning_path=a,o.debug(`[saveDebugInfoToFiles] Saved reasoning to: ${a}`)}o.debug(`[saveDebugInfoToFiles] Saved ${Object.keys(r).length} artifacts for step ${e}`)}catch(a){o.error(`[saveDebugInfoToFiles] Failed to save debug info for step ${e}:`,a)}return r}async updateStepResult(e,t,u,r,i){if(!this.context.stepTracking)return;let a=this.context.stepTracking.results[e];if(a){if(t&&(a.status=t,this.context.stepTracking.currentStepId=void 0,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(void 0)),u!==void 0&&(a.message=u),r&&a.artifacts.push(r),i){let n=i.tokenUsages?.[0]?.model,s=this.saveDebugInfoToFiles(e,i,n);Object.keys(s).length>0&&a.artifacts.push(s)}a.duration=Date.now()-a.startTime,this.context.stepTracking.onStepComplete&&this.context.stepTracking.onStepComplete(e,a)}}async writeExecutionResults(e,t){try{if(await I.promises.mkdir(e,{recursive:!0}),this.context.stepTracking?.results&&Object.keys(this.context.stepTracking.results).length>0){let u=C.join(e,"test-results.json");await I.promises.writeFile(u,JSON.stringify(this.context.stepTracking.results,null,2)),o.debug(`Test results written to: ${u}`)}if(t?.tokenUsages&&this.context.tokenUsages&&this.context.tokenUsages.length>0){let u=C.join(e,"token-usages.json");await I.promises.writeFile(u,JSON.stringify(this.context.tokenUsages,null,2)),o.debug(`Token usages written to: ${u}`)}if(this.context.aiActionDetails&&this.context.aiActionDetails.length>0){let u=C.join(e,"ai-actions.json");await I.promises.writeFile(u,JSON.stringify(this.context.aiActionDetails,null,2)),o.debug(`AI action details written to: ${u}`)}}catch(u){throw o.error("Failed to write execution results:",u),u}}};function N0(){let e=new Date,t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(e),u=t.find(w=>w.type==="year").value,r=t.find(w=>w.type==="month").value,i=t.find(w=>w.type==="day").value,a=t.find(w=>w.type==="hour").value,n=t.find(w=>w.type==="minute").value,s=t.find(w=>w.type==="second").value,c=String(e.getMilliseconds()).padStart(3,"0"),l=`${u}-${r}-${i}T${a}:${n}:${s}.${c}`,f=e.toISOString().slice(0,-1),m=Date.parse(l+"Z"),x=Date.parse(f+"Z"),g=Math.round((x-m)/(1e3*60)),b=String(Math.floor(Math.abs(g)/60)).padStart(2,"0"),v=String(Math.abs(g)%60).padStart(2,"0"),y=g<=0?"+":"-";return`${u}-${r}-${i}T${a}:${n}:${s}.${c}${y}${b}:${v}`}function an(e){let t=e.variableStore;return t.has("currentTime")||t.set("currentTime",N0()),{model:e.model,variableStore:t,organizationId:e.organizationId,organizationSettings:e.organizationSettings,executionHistory:e.executionHistory||[],testDataDir:e.testDataDir,downloadDir:e.downloadDir,useNativeGenerator:e.useNativeGenerator,autoDisableModal:e.autoDisableModal,tokenUsages:[],aiActionDetails:[]}}function x1(e){let t=new Rr,u=new Set(e.sensitiveKeys||[]);if(e.variables)for(let[i,a]of Object.entries(e.variables))t.set(i,a,u.has(i));let r=an({model:e.model,variableStore:t,testDataDir:e.testDataDir,downloadDir:e.downloadDir});return new rn(r)}var w1="1.0.0";export{Hr as a,sn as b,on as c,cn as d,ln as e,r0 as f,i0 as g,a0 as h,n0 as i,s0 as j,o0 as k,c0 as l,f0 as m,h0 as n,Ju as o,un as p,Yu as q,rn as r,an as s,x1 as t,w1 as u};
137
137
  /*! Bundled license information:
138
138
 
139
139
  @otplib/plugin-crypto/index.js:
@@ -0,0 +1,5 @@
1
+ import { createRequire as __createRequire } from "module";
2
+ const require = __createRequire(import.meta.url);
3
+ import{a as f,d,e as w}from"./chunk-FBJSHHRD.js";var L=class{getLevel(){return f.get("logLevel")}debug(...e){this.getLevel()<=0&&console.error("[DEBUG]",...e)}info(...e){this.getLevel()<=1&&console.error("[INFO]",...e)}log(...e){this.info(...e)}warn(...e){this.getLevel()<=2&&console.warn("[WARN]",...e)}error(...e){this.getLevel()<=3&&console.error("[ERROR]",...e)}setLevel(e){f.set("logLevel",e)}},v=new L,s=v;var _={};w(_,{ACTION_TIMEOUT:()=>h,GOTO_TIMEOUT:()=>y,LOCATOR_TIMEOUT:()=>u,getActionTimeoutMs:()=>E,getFrameContext:()=>p,getLocator:()=>W,getMinimalActionEntity:()=>A,getPageLocatorExpression:()=>$,sanitizeForComment:()=>O});function E(e){return e?.getActionSettings()?.action_timeout_ms??h}function O(e){return e.replace(/\r\n/g," ").replace(/\n/g," ").replace(/\r/g," ").trim()}function W(e,t){let a=$(t);return a?new Function("page",`return ${a}`)(e):null}async function p(e,t=[]){let a=e;for(let l of t){let r=await a.locator(l).elementHandle();if(!r)return null;let n=await r.contentFrame();if(await r.dispose(),!n)return null;a=n}return a}function A(e){let t={action_data:e.action_data};return e.locator&&(t.locator=e.locator),e.xpath&&(t.xpath=e.xpath),e.frame_path&&(t.frame_path=e.frame_path),t}function M(e){let t=e.frame_path;return!t||t.length===0?"page":`page.frameLocator('${t[0]}')`}function T(e){let t=e.xpath;return typeof t=="string"&&t.trim()?!t.startsWith("xpath=")&&!t.startsWith("/")&&!t.startsWith("//")?`xpath=//${t}`:t.startsWith("xpath=")?t:`xpath=${t}`:null}function $(e){let t=M(e),a=e.locator;if(typeof a=="string"&&a.trim())return a=a.trim(),a.endsWith("first()")?`${t}.${a}`:`${t}.${a}.first()`;let l=T(e);if(l){let r=JSON.stringify(l);return`${t}.locator(${r}).first()`}return null}var u,h,y,x=d(()=>{u=1e4,h=1e4,y=2e4});x();async function g(e,t,a=[],l=[]){try{let r=null;if(l.length>0){let o=await p(e,a);if(!o)return s.warn(`Could not find frame context for shadow DOM element with xpath: ${t}`),null;let i=l[0];if(!i)return s.warn(`Missing shadow host xpath for element: ${t}`),null;let c=o.locator(`xpath=${b(i)}`),m=C(t);if(r=await(m?c.locator(`css=${m}`):c.locator(`xpath=${b(t)}`)).elementHandle({timeout:u}),!r)return s.warn(`Could not find shadow DOM element with xpath: ${t}`),null}else{let o=e;for(let i of a)o=o.frameLocator(i);if(r=await o.locator(`xpath=${t}`).elementHandle({timeout:u}),!r)return s.warn(`Could not find element with xpath: ${t}`),null}let n=await e.evaluate(o=>typeof playwright<"u"&&playwright.generateLocator?playwright.generateLocator(o):null,r);return await r.dispose(),n?(s.debug(`Generated locator for ${t}: ${n}`),n):(s.debug("playwright.generateLocator is not available (PWDEBUG=console not set), using xpath fallback"),null)}catch(r){return s.error(`Error in pickBestLocator: ${r}`),null}}async function S(e,t){try{let a=await e.evaluate(l=>typeof playwright<"u"&&playwright.generateLocator?playwright.generateLocator(l):null,t);return await t.dispose(),a?(s.debug(`Generated locator: ${a}`),a):(s.debug("playwright.generateLocator is not available (PWDEBUG=console not set), using xpath fallback"),null)}catch(a){return s.error(`Error in pickBestLocator: ${a}`),null}}async function z(e,t){let a=new Map;return await Promise.all(t.map(async l=>{let r=await g(e,l);a.set(l,r)})),a}function b(e){let t=e.trim();return t.startsWith("/")||t.startsWith("(")||t.startsWith(".")?t:`//${t}`}function C(e){let t=e.trim().replace(/^\/+/,"");if(!t)return null;let a=t.split("/").filter(Boolean),l=[];for(let r of a){let n=r.match(/^([a-zA-Z][\w-]*)(?:\[(\d+)\])?$/);if(!n)return null;let o=n[1].toLowerCase(),i=n[2]?`:nth-of-type(${n[2]})`:"";l.push(`${o}${i}`)}return l.join(" > ")}async function Z(e,t){if(t<0)return;let{page:a,domService:l}=e;return(e.domState||await l.getClickableElements(a)).selectorMap.get(t)}function k(e){let t=e.split("/").filter(r=>r);if(t.length===0)return"*";let a=t[t.length-1],l=a.match(/^(\w+)(?:\[(\d+)\])?$/);if(l){let[,r,n]=l;return n?`${r}:nth-of-type(${n})`:r}return a}function B(e,t=!0){try{let a=k(e.xpath);if(e.attributes.class&&t){let r=/^[a-zA-Z_][a-zA-Z0-9_-]*$/,n=e.attributes.class.split(/\s+/);for(let o of n)o.trim()&&r.test(o)&&(a+=`.${o}`)}let l=new Set(["id","name","type","placeholder","aria-label","aria-labelledby","aria-describedby","role","for","autocomplete","required","readonly","alt","title","target"]);t&&["data-id","data-qa","data-cy","data-testid","data-handlepos"].forEach(r=>l.add(r));for(let[r,n]of Object.entries(e.attributes)){if(r==="class"||!r.trim()||!l.has(r))continue;let o=r.replace(/:/g,"\\:");if(n==="")a+=`[${o}]`;else if(/["'<>`\n\r\t]/.test(n)){let i=n;n.includes(`
4
+ `)&&(i=n.split(`
5
+ `)[0]),i=i.replace(/\s+/g," ").trim();let c=i.replace(/"/g,'\\"');a+=`[${o}*="${c}"]`}else a+=`[${o}="${n}"]`}return a}catch{return`${e.tagName||"*"}[highlight_index='${e.highlightIndex}']`}}function F(e){let t=[],a=e;for(;a&&a.parent!==null;){let n=a.parent;t.push(n),a=n}t.reverse();let l=[],r=t.filter(n=>n.tagName==="iframe");for(let n of r){let o=B(n,!0);l.push(o)}return l}async function q(e,t){let a=null,l=F(t);return t.xpath&&(a=await g(e,t.xpath,l,t.shadowHostXPaths??[])),{locator:a||void 0,xpath:t.xpath,frame_path:l}}export{s as a,_ as b,E as c,W as d,$ as e,y as f,x as g,g as h,S as i,z as j,Z as k,F as l,q as m};