@sylphx/flow 0.2.2 → 0.2.4

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.
Files changed (104) hide show
  1. package/assets/agents/coder.md +1 -1
  2. package/assets/agents/orchestrator.md +1 -1
  3. package/assets/agents/reviewer.md +1 -1
  4. package/assets/agents/writer.md +13 -13
  5. package/dist/assets/agents/coder.md +32 -0
  6. package/dist/assets/agents/orchestrator.md +36 -0
  7. package/dist/assets/agents/reviewer.md +30 -0
  8. package/dist/assets/agents/writer.md +30 -0
  9. package/dist/assets/knowledge/data/sql.md +216 -0
  10. package/dist/assets/knowledge/guides/saas-template.md +85 -0
  11. package/dist/assets/knowledge/guides/system-prompt.md +344 -0
  12. package/dist/assets/knowledge/guides/tech-stack.md +92 -0
  13. package/dist/assets/knowledge/guides/ui-ux.md +44 -0
  14. package/dist/assets/knowledge/stacks/nextjs-app.md +165 -0
  15. package/dist/assets/knowledge/stacks/node-api.md +220 -0
  16. package/dist/assets/knowledge/stacks/react-app.md +232 -0
  17. package/dist/assets/knowledge/universal/deployment.md +109 -0
  18. package/dist/assets/knowledge/universal/performance.md +121 -0
  19. package/dist/assets/knowledge/universal/security.md +79 -0
  20. package/dist/assets/knowledge/universal/testing.md +111 -0
  21. package/dist/assets/output-styles/silent.md +23 -0
  22. package/dist/assets/rules/core.md +144 -0
  23. package/dist/assets/slash-commands/commit.md +23 -0
  24. package/dist/assets/slash-commands/context.md +112 -0
  25. package/dist/assets/slash-commands/explain.md +35 -0
  26. package/dist/assets/slash-commands/mep.md +63 -0
  27. package/dist/assets/slash-commands/review.md +39 -0
  28. package/dist/assets/slash-commands/test.md +30 -0
  29. package/dist/chunk-057m762a.js +4 -0
  30. package/dist/{chunk-xhm04nkk.js.map → chunk-057m762a.js.map} +2 -2
  31. package/dist/chunk-2j2gmjg5.js +107 -0
  32. package/dist/chunk-2j2gmjg5.js.map +25 -0
  33. package/dist/{chunk-mdc9ef4e.js → chunk-2nfq57ym.js} +2 -2
  34. package/dist/{chunk-mdc9ef4e.js.map → chunk-2nfq57ym.js.map} +2 -2
  35. package/dist/chunk-372bgp30.js +54 -0
  36. package/dist/chunk-372bgp30.js.map +53 -0
  37. package/dist/{chunk-q3dv05ma.js → chunk-51kpynby.js} +3 -3
  38. package/dist/{chunk-q3dv05ma.js.map → chunk-51kpynby.js.map} +1 -1
  39. package/dist/chunk-585jp0rg.js +4 -0
  40. package/dist/chunk-585jp0rg.js.map +10 -0
  41. package/dist/chunk-66qzap9m.js +3 -0
  42. package/dist/{chunk-yredmasr.js.map → chunk-66qzap9m.js.map} +2 -2
  43. package/dist/chunk-6eb5a8kv.js +7 -0
  44. package/dist/{chunk-qm7xz0bm.js.map → chunk-6eb5a8kv.js.map} +2 -2
  45. package/dist/chunk-7h737bp8.js +4 -0
  46. package/dist/chunk-7h737bp8.js.map +12 -0
  47. package/dist/chunk-8ep9gk6d.js +4 -0
  48. package/dist/{chunk-13awccns.js.map → chunk-8ep9gk6d.js.map} +2 -2
  49. package/dist/chunk-9qzv4trv.js +23 -0
  50. package/dist/chunk-9qzv4trv.js.map +11 -0
  51. package/dist/chunk-b0047ggx.js +3 -0
  52. package/dist/{chunk-9dbwckry.js.map → chunk-b0047ggx.js.map} +2 -2
  53. package/dist/{chunk-xwe9eaaf.js → chunk-ceyg2zjg.js} +6 -5
  54. package/dist/{chunk-xwe9eaaf.js.map → chunk-ceyg2zjg.js.map} +1 -1
  55. package/dist/chunk-cjy100rr.js +6 -0
  56. package/dist/chunk-cjy100rr.js.map +11 -0
  57. package/dist/chunk-cv1nhr27.js +2 -0
  58. package/dist/{chunk-99z4z52k.js.map → chunk-cv1nhr27.js.map} +1 -1
  59. package/dist/{chunk-tzar2j0k.js → chunk-d6k94684.js} +3 -3
  60. package/dist/{chunk-tzar2j0k.js.map → chunk-d6k94684.js.map} +1 -1
  61. package/dist/chunk-e74zv5ct.js +19 -0
  62. package/dist/chunk-e74zv5ct.js.map +10 -0
  63. package/dist/{chunk-z30mabwt.js → chunk-etqfkn4f.js} +9 -9
  64. package/dist/{chunk-z30mabwt.js.map → chunk-etqfkn4f.js.map} +2 -2
  65. package/dist/{chunk-yj831xk5.js → chunk-f676awyz.js} +3 -3
  66. package/dist/{chunk-yj831xk5.js.map → chunk-f676awyz.js.map} +1 -1
  67. package/dist/{chunk-99z4z52k.js → chunk-f9yb2zk3.js} +2 -2
  68. package/dist/chunk-f9yb2zk3.js.map +9 -0
  69. package/dist/{chunk-jth5s5rd.js → chunk-fyvtp08n.js} +2 -2
  70. package/dist/{chunk-jth5s5rd.js.map → chunk-fyvtp08n.js.map} +2 -2
  71. package/dist/chunk-gmmm7xpw.js +23 -0
  72. package/dist/chunk-gmmm7xpw.js.map +132 -0
  73. package/dist/chunk-mtrcdhzn.js +119 -0
  74. package/dist/{chunk-1qp4nx2f.js.map → chunk-mtrcdhzn.js.map} +7 -7
  75. package/dist/chunk-ny1s8fnh.js +3 -0
  76. package/dist/{chunk-689g5js2.js.map → chunk-ny1s8fnh.js.map} +2 -2
  77. package/dist/{chunk-5qb65n40.js → chunk-rsagxdqj.js} +71 -71
  78. package/dist/{chunk-5qb65n40.js.map → chunk-rsagxdqj.js.map} +3 -3
  79. package/dist/chunk-rvx8bgqk.js +4 -0
  80. package/dist/chunk-rvx8bgqk.js.map +10 -0
  81. package/dist/chunk-sgafqzer.js +25 -0
  82. package/dist/{chunk-tv05bzde.js.map → chunk-sgafqzer.js.map} +4 -9
  83. package/dist/chunk-vc4xy6dm.js +27 -0
  84. package/dist/{chunk-4dhthe08.js.map → chunk-vc4xy6dm.js.map} +4 -5
  85. package/dist/chunk-weshapwk.js +27 -0
  86. package/dist/chunk-weshapwk.js.map +23 -0
  87. package/dist/{chunk-vg15k2nk.js → chunk-z61qdct1.js} +2 -2
  88. package/dist/{chunk-vg15k2nk.js.map → chunk-z61qdct1.js.map} +1 -1
  89. package/dist/index.js +411 -430
  90. package/dist/index.js.map +41 -142
  91. package/package.json +3 -1
  92. package/dist/chunk-13awccns.js +0 -4
  93. package/dist/chunk-1qp4nx2f.js +0 -76
  94. package/dist/chunk-40c8zeb0.js +0 -4
  95. package/dist/chunk-40c8zeb0.js.map +0 -10
  96. package/dist/chunk-4dhthe08.js +0 -27
  97. package/dist/chunk-689g5js2.js +0 -3
  98. package/dist/chunk-9dbwckry.js +0 -3
  99. package/dist/chunk-9x8s5xdb.js +0 -16
  100. package/dist/chunk-9x8s5xdb.js.map +0 -10
  101. package/dist/chunk-qm7xz0bm.js +0 -7
  102. package/dist/chunk-tv05bzde.js +0 -107
  103. package/dist/chunk-xhm04nkk.js +0 -4
  104. package/dist/chunk-yredmasr.js +0 -3
@@ -1,10 +1,10 @@
1
- import{Ra as K5,Sa as M,Ua as R}from"./chunk-99z4z52k.js";var C=M(($4,w5)=>{var v5=["nodebuffer","arraybuffer","fragments"],g5=typeof Blob<"u";if(g5)v5.push("blob");w5.exports={BINARY_TYPES:v5,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:g5,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var n=M((G4,X5)=>{var{EMPTY_BUFFER:m1}=C(),A5=Buffer[Symbol.species];function f1(J,K){if(J.length===0)return m1;if(J.length===1)return J[0];let X=Buffer.allocUnsafe(K),Z=0;for(let $=0;$<J.length;$++){let G=J[$];X.set(G,Z),Z+=G.length}if(Z<K)return new A5(X.buffer,X.byteOffset,Z);return X}function h5(J,K,X,Z,$){for(let G=0;G<$;G++)X[Z+G]=J[G]^K[G&3]}function m5(J,K){for(let X=0;X<J.length;X++)J[X]^=K[X&3]}function u1(J){if(J.length===J.buffer.byteLength)return J.buffer;return J.buffer.slice(J.byteOffset,J.byteOffset+J.length)}function F5(J){if(F5.readOnly=!0,Buffer.isBuffer(J))return J;let K;if(J instanceof ArrayBuffer)K=new A5(J);else if(ArrayBuffer.isView(J))K=new A5(J.buffer,J.byteOffset,J.byteLength);else K=Buffer.from(J),F5.readOnly=!1;return K}X5.exports={concat:f1,mask:h5,toArrayBuffer:u1,toBuffer:F5,unmask:m5};if(!process.env.WS_NO_BUFFER_UTIL)try{let J=(()=>{throw new Error("Cannot require module "+"bufferutil");})();X5.exports.mask=function(K,X,Z,$,G){if(G<48)h5(K,X,Z,$,G);else J.mask(K,X,Z,$,G)},X5.exports.unmask=function(K,X){if(K.length<32)m5(K,X);else J.unmask(K,X)}}catch(J){}});var p5=M((Q4,l5)=>{var f5=Symbol("kDone"),D5=Symbol("kRun");class u5{constructor(J){this[f5]=()=>{this.pending--,this[D5]()},this.concurrency=J||1/0,this.jobs=[],this.pending=0}add(J){this.jobs.push(J),this[D5]()}[D5](){if(this.pending===this.concurrency)return;if(this.jobs.length){let J=this.jobs.shift();this.pending++,J(this[f5])}}}l5.exports=u5});var a=M((j4,c5)=>{var r=R("zlib"),b5=n(),l1=p5(),{kStatusCode:i5}=C(),p1=Buffer[Symbol.species],b1=Buffer.from([0,0,255,255]),$5=Symbol("permessage-deflate"),U=Symbol("total-length"),f=Symbol("callback"),L=Symbol("buffers"),u=Symbol("error"),Z5;class k5{constructor(J,K,X){if(this._maxPayload=X|0,this._options=J||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!K,this._deflate=null,this._inflate=null,this.params=null,!Z5){let Z=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;Z5=new l1(Z)}}static get extensionName(){return"permessage-deflate"}offer(){let J={};if(this._options.serverNoContextTakeover)J.server_no_context_takeover=!0;if(this._options.clientNoContextTakeover)J.client_no_context_takeover=!0;if(this._options.serverMaxWindowBits)J.server_max_window_bits=this._options.serverMaxWindowBits;if(this._options.clientMaxWindowBits)J.client_max_window_bits=this._options.clientMaxWindowBits;else if(this._options.clientMaxWindowBits==null)J.client_max_window_bits=!0;return J}accept(J){return J=this.normalizeParams(J),this.params=this._isServer?this.acceptAsServer(J):this.acceptAsClient(J),this.params}cleanup(){if(this._inflate)this._inflate.close(),this._inflate=null;if(this._deflate){let J=this._deflate[f];if(this._deflate.close(),this._deflate=null,J)J(Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(J){let K=this._options,X=J.find((Z)=>{if(K.serverNoContextTakeover===!1&&Z.server_no_context_takeover||Z.server_max_window_bits&&(K.serverMaxWindowBits===!1||typeof K.serverMaxWindowBits==="number"&&K.serverMaxWindowBits>Z.server_max_window_bits)||typeof K.clientMaxWindowBits==="number"&&!Z.client_max_window_bits)return!1;return!0});if(!X)throw Error("None of the extension offers can be accepted");if(K.serverNoContextTakeover)X.server_no_context_takeover=!0;if(K.clientNoContextTakeover)X.client_no_context_takeover=!0;if(typeof K.serverMaxWindowBits==="number")X.server_max_window_bits=K.serverMaxWindowBits;if(typeof K.clientMaxWindowBits==="number")X.client_max_window_bits=K.clientMaxWindowBits;else if(X.client_max_window_bits===!0||K.clientMaxWindowBits===!1)delete X.client_max_window_bits;return X}acceptAsClient(J){let K=J[0];if(this._options.clientNoContextTakeover===!1&&K.client_no_context_takeover)throw Error('Unexpected parameter "client_no_context_takeover"');if(!K.client_max_window_bits){if(typeof this._options.clientMaxWindowBits==="number")K.client_max_window_bits=this._options.clientMaxWindowBits}else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==="number"&&K.client_max_window_bits>this._options.clientMaxWindowBits)throw Error('Unexpected or invalid parameter "client_max_window_bits"');return K}normalizeParams(J){return J.forEach((K)=>{Object.keys(K).forEach((X)=>{let Z=K[X];if(Z.length>1)throw Error(`Parameter "${X}" must have only a single value`);if(Z=Z[0],X==="client_max_window_bits"){if(Z!==!0){let $=+Z;if(!Number.isInteger($)||$<8||$>15)throw TypeError(`Invalid value for parameter "${X}": ${Z}`);Z=$}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${X}": ${Z}`)}else if(X==="server_max_window_bits"){let $=+Z;if(!Number.isInteger($)||$<8||$>15)throw TypeError(`Invalid value for parameter "${X}": ${Z}`);Z=$}else if(X==="client_no_context_takeover"||X==="server_no_context_takeover"){if(Z!==!0)throw TypeError(`Invalid value for parameter "${X}": ${Z}`)}else throw Error(`Unknown parameter "${X}"`);K[X]=Z})}),J}decompress(J,K,X){Z5.add((Z)=>{this._decompress(J,K,($,G)=>{Z(),X($,G)})})}compress(J,K,X){Z5.add((Z)=>{this._compress(J,K,($,G)=>{Z(),X($,G)})})}_decompress(J,K,X){let Z=this._isServer?"client":"server";if(!this._inflate){let $=`${Z}_max_window_bits`,G=typeof this.params[$]!=="number"?r.Z_DEFAULT_WINDOWBITS:this.params[$];this._inflate=r.createInflateRaw({...this._options.zlibInflateOptions,windowBits:G}),this._inflate[$5]=this,this._inflate[U]=0,this._inflate[L]=[],this._inflate.on("error",k1),this._inflate.on("data",d5)}if(this._inflate[f]=X,this._inflate.write(J),K)this._inflate.write(b1);this._inflate.flush(()=>{let $=this._inflate[u];if($){this._inflate.close(),this._inflate=null,X($);return}let G=b5.concat(this._inflate[L],this._inflate[U]);if(this._inflate._readableState.endEmitted)this._inflate.close(),this._inflate=null;else if(this._inflate[U]=0,this._inflate[L]=[],K&&this.params[`${Z}_no_context_takeover`])this._inflate.reset();X(null,G)})}_compress(J,K,X){let Z=this._isServer?"server":"client";if(!this._deflate){let $=`${Z}_max_window_bits`,G=typeof this.params[$]!=="number"?r.Z_DEFAULT_WINDOWBITS:this.params[$];this._deflate=r.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:G}),this._deflate[U]=0,this._deflate[L]=[],this._deflate.on("data",i1)}this._deflate[f]=X,this._deflate.write(J),this._deflate.flush(r.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let $=b5.concat(this._deflate[L],this._deflate[U]);if(K)$=new p1($.buffer,$.byteOffset,$.length-4);if(this._deflate[f]=null,this._deflate[U]=0,this._deflate[L]=[],K&&this.params[`${Z}_no_context_takeover`])this._deflate.reset();X(null,$)})}}c5.exports=k5;function i1(J){this[L].push(J),this[U]+=J.length}function d5(J){if(this[U]+=J.length,this[$5]._maxPayload<1||this[U]<=this[$5]._maxPayload){this[L].push(J);return}this[u]=RangeError("Max payload size exceeded"),this[u].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[u][i5]=1009,this.removeListener("data",d5),this.reset()}function k1(J){if(this[$5]._inflate=null,this[u]){this[f](this[u]);return}J[i5]=1007,this[f](J)}});var l=M((I4,G5)=>{var{isUtf8:n5}=R("buffer"),{hasBlob:d1}=C(),c1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function n1(J){return J>=1000&&J<=1014&&J!==1004&&J!==1005&&J!==1006||J>=3000&&J<=4999}function O5(J){let K=J.length,X=0;while(X<K)if((J[X]&128)===0)X++;else if((J[X]&224)===192){if(X+1===K||(J[X+1]&192)!==128||(J[X]&254)===192)return!1;X+=2}else if((J[X]&240)===224){if(X+2>=K||(J[X+1]&192)!==128||(J[X+2]&192)!==128||J[X]===224&&(J[X+1]&224)===128||J[X]===237&&(J[X+1]&224)===160)return!1;X+=3}else if((J[X]&248)===240){if(X+3>=K||(J[X+1]&192)!==128||(J[X+2]&192)!==128||(J[X+3]&192)!==128||J[X]===240&&(J[X+1]&240)===128||J[X]===244&&J[X+1]>143||J[X]>244)return!1;X+=4}else return!1;return!0}function r1(J){return d1&&typeof J==="object"&&typeof J.arrayBuffer==="function"&&typeof J.type==="string"&&typeof J.stream==="function"&&(J[Symbol.toStringTag]==="Blob"||J[Symbol.toStringTag]==="File")}G5.exports={isBlob:r1,isValidStatusCode:n1,isValidUTF8:O5,tokenChars:c1};if(n5)G5.exports.isValidUTF8=function(J){return J.length<24?O5(J):n5(J)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let J=(()=>{throw new Error("Cannot require module "+"utf-8-validate");})();G5.exports.isValidUTF8=function(K){return K.length<32?O5(K):J(K)}}catch(J){}});var P5=M((z4,t5)=>{var{Writable:a1}=R("stream"),r5=a(),{BINARY_TYPES:s1,EMPTY_BUFFER:a5,kStatusCode:o1,kWebSocket:t1}=C(),{concat:M5,toArrayBuffer:e1,unmask:J0}=n(),{isValidStatusCode:K0,isValidUTF8:s5}=l(),Q5=Buffer[Symbol.species];class o5 extends a1{constructor(J={}){super();this._allowSynchronousEvents=J.allowSynchronousEvents!==void 0?J.allowSynchronousEvents:!0,this._binaryType=J.binaryType||s1[0],this._extensions=J.extensions||{},this._isServer=!!J.isServer,this._maxPayload=J.maxPayload|0,this._skipUTF8Validation=!!J.skipUTF8Validation,this[t1]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(J,K,X){if(this._opcode===8&&this._state==0)return X();this._bufferedBytes+=J.length,this._buffers.push(J),this.startLoop(X)}consume(J){if(this._bufferedBytes-=J,J===this._buffers[0].length)return this._buffers.shift();if(J<this._buffers[0].length){let X=this._buffers[0];return this._buffers[0]=new Q5(X.buffer,X.byteOffset+J,X.length-J),new Q5(X.buffer,X.byteOffset,J)}let K=Buffer.allocUnsafe(J);do{let X=this._buffers[0],Z=K.length-J;if(J>=X.length)K.set(this._buffers.shift(),Z);else K.set(new Uint8Array(X.buffer,X.byteOffset,J),Z),this._buffers[0]=new Q5(X.buffer,X.byteOffset+J,X.length-J);J-=X.length}while(J>0);return K}startLoop(J){this._loop=!0;do switch(this._state){case 0:this.getInfo(J);break;case 1:this.getPayloadLength16(J);break;case 2:this.getPayloadLength64(J);break;case 3:this.getMask();break;case 4:this.getData(J);break;case 5:case 6:this._loop=!1;return}while(this._loop);if(!this._errored)J()}getInfo(J){if(this._bufferedBytes<2){this._loop=!1;return}let K=this.consume(2);if((K[0]&48)!==0){let Z=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");J(Z);return}let X=(K[0]&64)===64;if(X&&!this._extensions[r5.extensionName]){let Z=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");J(Z);return}if(this._fin=(K[0]&128)===128,this._opcode=K[0]&15,this._payloadLength=K[1]&127,this._opcode===0){if(X){let Z=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");J(Z);return}if(!this._fragmented){let Z=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");J(Z);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let Z=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");J(Z);return}this._compressed=X}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let Z=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");J(Z);return}if(X){let Z=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");J(Z);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let Z=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");J(Z);return}}else{let Z=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");J(Z);return}if(!this._fin&&!this._fragmented)this._fragmented=this._opcode;if(this._masked=(K[1]&128)===128,this._isServer){if(!this._masked){let Z=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");J(Z);return}}else if(this._masked){let Z=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");J(Z);return}if(this._payloadLength===126)this._state=1;else if(this._payloadLength===127)this._state=2;else this.haveLength(J)}getPayloadLength16(J){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(J)}getPayloadLength64(J){if(this._bufferedBytes<8){this._loop=!1;return}let K=this.consume(8),X=K.readUInt32BE(0);if(X>Math.pow(2,21)-1){let Z=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");J(Z);return}this._payloadLength=X*Math.pow(2,32)+K.readUInt32BE(4),this.haveLength(J)}haveLength(J){if(this._payloadLength&&this._opcode<8){if(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0){let K=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");J(K);return}}if(this._masked)this._state=3;else this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(J){let K=a5;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}if(K=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0)J0(K,this._mask)}if(this._opcode>7){this.controlMessage(K,J);return}if(this._compressed){this._state=5,this.decompress(K,J);return}if(K.length)this._messageLength=this._totalPayloadLength,this._fragments.push(K);this.dataMessage(J)}decompress(J,K){this._extensions[r5.extensionName].decompress(J,this._fin,(Z,$)=>{if(Z)return K(Z);if($.length){if(this._messageLength+=$.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let G=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");K(G);return}this._fragments.push($)}if(this.dataMessage(K),this._state===0)this.startLoop(K)})}dataMessage(J){if(!this._fin){this._state=0;return}let K=this._messageLength,X=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let Z;if(this._binaryType==="nodebuffer")Z=M5(X,K);else if(this._binaryType==="arraybuffer")Z=e1(M5(X,K));else if(this._binaryType==="blob")Z=new Blob(X);else Z=X;if(this._allowSynchronousEvents)this.emit("message",Z,!0),this._state=0;else this._state=6,setImmediate(()=>{this.emit("message",Z,!0),this._state=0,this.startLoop(J)})}else{let Z=M5(X,K);if(!this._skipUTF8Validation&&!s5(Z)){let $=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");J($);return}if(this._state===5||this._allowSynchronousEvents)this.emit("message",Z,!1),this._state=0;else this._state=6,setImmediate(()=>{this.emit("message",Z,!1),this._state=0,this.startLoop(J)})}}controlMessage(J,K){if(this._opcode===8){if(J.length===0)this._loop=!1,this.emit("conclude",1005,a5),this.end();else{let X=J.readUInt16BE(0);if(!K0(X)){let $=this.createError(RangeError,`invalid status code ${X}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");K($);return}let Z=new Q5(J.buffer,J.byteOffset+2,J.length-2);if(!this._skipUTF8Validation&&!s5(Z)){let $=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");K($);return}this._loop=!1,this.emit("conclude",X,Z),this.end()}this._state=0;return}if(this._allowSynchronousEvents)this.emit(this._opcode===9?"ping":"pong",J),this._state=0;else this._state=6,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",J),this._state=0,this.startLoop(K)})}createError(J,K,X,Z,$){this._loop=!1,this._errored=!0;let G=new J(X?`Invalid WebSocket frame: ${K}`:K);return Error.captureStackTrace(G,this.createError),G.code=$,G[o1]=Z,G}}t5.exports=o5});var x5=M((V4,K1)=>{var{Duplex:Y4}=R("stream"),{randomFillSync:X0}=R("crypto"),e5=a(),{EMPTY_BUFFER:Z0,kWebSocket:$0,NOOP:G0}=C(),{isBlob:p,isValidStatusCode:Q0}=l(),{mask:J1,toBuffer:S}=n(),T=Symbol("kByteLength"),j0=Buffer.alloc(4),v,b=8192,x=0,I0=1,z0=2;class W{constructor(J,K,X){if(this._extensions=K||{},X)this._generateMask=X,this._maskBuffer=Buffer.alloc(4);this._socket=J,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=x,this.onerror=G0,this[$0]=void 0}static frame(J,K){let X,Z=!1,$=2,G=!1;if(K.mask){if(X=K.maskBuffer||j0,K.generateMask)K.generateMask(X);else{if(b===8192){if(v===void 0)v=Buffer.alloc(8192);X0(v,0,8192),b=0}X[0]=v[b++],X[1]=v[b++],X[2]=v[b++],X[3]=v[b++]}G=(X[0]|X[1]|X[2]|X[3])===0,$=6}let Q;if(typeof J==="string")if((!K.mask||G)&&K[T]!==void 0)Q=K[T];else J=Buffer.from(J),Q=J.length;else Q=J.length,Z=K.mask&&K.readOnly&&!G;let I=Q;if(Q>=65536)$+=8,I=127;else if(Q>125)$+=2,I=126;let j=Buffer.allocUnsafe(Z?Q+$:$);if(j[0]=K.fin?K.opcode|128:K.opcode,K.rsv1)j[0]|=64;if(j[1]=I,I===126)j.writeUInt16BE(Q,2);else if(I===127)j[2]=j[3]=0,j.writeUIntBE(Q,4,6);if(!K.mask)return[j,J];if(j[1]|=128,j[$-4]=X[0],j[$-3]=X[1],j[$-2]=X[2],j[$-1]=X[3],G)return[j,J];if(Z)return J1(J,X,j,$,Q),[j];return J1(J,X,J,0,Q),[j,J]}close(J,K,X,Z){let $;if(J===void 0)$=Z0;else if(typeof J!=="number"||!Q0(J))throw TypeError("First argument must be a valid error code number");else if(K===void 0||!K.length)$=Buffer.allocUnsafe(2),$.writeUInt16BE(J,0);else{let Q=Buffer.byteLength(K);if(Q>123)throw RangeError("The message must not be greater than 123 bytes");if($=Buffer.allocUnsafe(2+Q),$.writeUInt16BE(J,0),typeof K==="string")$.write(K,2);else $.set(K,2)}let G={[T]:$.length,fin:!0,generateMask:this._generateMask,mask:X,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};if(this._state!==x)this.enqueue([this.dispatch,$,!1,G,Z]);else this.sendFrame(W.frame($,G),Z)}ping(J,K,X){let Z,$;if(typeof J==="string")Z=Buffer.byteLength(J),$=!1;else if(p(J))Z=J.size,$=!1;else J=S(J),Z=J.length,$=S.readOnly;if(Z>125)throw RangeError("The data size must not be greater than 125 bytes");let G={[T]:Z,fin:!0,generateMask:this._generateMask,mask:K,maskBuffer:this._maskBuffer,opcode:9,readOnly:$,rsv1:!1};if(p(J))if(this._state!==x)this.enqueue([this.getBlobData,J,!1,G,X]);else this.getBlobData(J,!1,G,X);else if(this._state!==x)this.enqueue([this.dispatch,J,!1,G,X]);else this.sendFrame(W.frame(J,G),X)}pong(J,K,X){let Z,$;if(typeof J==="string")Z=Buffer.byteLength(J),$=!1;else if(p(J))Z=J.size,$=!1;else J=S(J),Z=J.length,$=S.readOnly;if(Z>125)throw RangeError("The data size must not be greater than 125 bytes");let G={[T]:Z,fin:!0,generateMask:this._generateMask,mask:K,maskBuffer:this._maskBuffer,opcode:10,readOnly:$,rsv1:!1};if(p(J))if(this._state!==x)this.enqueue([this.getBlobData,J,!1,G,X]);else this.getBlobData(J,!1,G,X);else if(this._state!==x)this.enqueue([this.dispatch,J,!1,G,X]);else this.sendFrame(W.frame(J,G),X)}send(J,K,X){let Z=this._extensions[e5.extensionName],$=K.binary?2:1,G=K.compress,Q,I;if(typeof J==="string")Q=Buffer.byteLength(J),I=!1;else if(p(J))Q=J.size,I=!1;else J=S(J),Q=J.length,I=S.readOnly;if(this._firstFragment){if(this._firstFragment=!1,G&&Z&&Z.params[Z._isServer?"server_no_context_takeover":"client_no_context_takeover"])G=Q>=Z._threshold;this._compress=G}else G=!1,$=0;if(K.fin)this._firstFragment=!0;let j={[T]:Q,fin:K.fin,generateMask:this._generateMask,mask:K.mask,maskBuffer:this._maskBuffer,opcode:$,readOnly:I,rsv1:G};if(p(J))if(this._state!==x)this.enqueue([this.getBlobData,J,this._compress,j,X]);else this.getBlobData(J,this._compress,j,X);else if(this._state!==x)this.enqueue([this.dispatch,J,this._compress,j,X]);else this.dispatch(J,this._compress,j,X)}getBlobData(J,K,X,Z){this._bufferedBytes+=X[T],this._state=z0,J.arrayBuffer().then(($)=>{if(this._socket.destroyed){let Q=Error("The socket was closed while the blob was being read");process.nextTick(T5,this,Q,Z);return}this._bufferedBytes-=X[T];let G=S($);if(!K)this._state=x,this.sendFrame(W.frame(G,X),Z),this.dequeue();else this.dispatch(G,K,X,Z)}).catch(($)=>{process.nextTick(Y0,this,$,Z)})}dispatch(J,K,X,Z){if(!K){this.sendFrame(W.frame(J,X),Z);return}let $=this._extensions[e5.extensionName];this._bufferedBytes+=X[T],this._state=I0,$.compress(J,X.fin,(G,Q)=>{if(this._socket.destroyed){let I=Error("The socket was closed while data was being compressed");T5(this,I,Z);return}this._bufferedBytes-=X[T],this._state=x,X.readOnly=!1,this.sendFrame(W.frame(Q,X),Z),this.dequeue()})}dequeue(){while(this._state===x&&this._queue.length){let J=this._queue.shift();this._bufferedBytes-=J[3][T],Reflect.apply(J[0],this,J.slice(1))}}enqueue(J){this._bufferedBytes+=J[3][T],this._queue.push(J)}sendFrame(J,K){if(J.length===2)this._socket.cork(),this._socket.write(J[0]),this._socket.write(J[1],K),this._socket.uncork();else this._socket.write(J[0],K)}}K1.exports=W;function T5(J,K,X){if(typeof X==="function")X(K);for(let Z=0;Z<J._queue.length;Z++){let $=J._queue[Z],G=$[$.length-1];if(typeof G==="function")G(K)}}function Y0(J,K,X){T5(J,K,X),J.onerror(K)}});var Y1=M((_4,z1)=>{var{kForOnEventAttribute:s,kListener:B5}=C(),X1=Symbol("kCode"),Z1=Symbol("kData"),$1=Symbol("kError"),G1=Symbol("kMessage"),Q1=Symbol("kReason"),i=Symbol("kTarget"),j1=Symbol("kType"),I1=Symbol("kWasClean");class E{constructor(J){this[i]=null,this[j1]=J}get target(){return this[i]}get type(){return this[j1]}}Object.defineProperty(E.prototype,"target",{enumerable:!0});Object.defineProperty(E.prototype,"type",{enumerable:!0});class k extends E{constructor(J,K={}){super(J);this[X1]=K.code===void 0?0:K.code,this[Q1]=K.reason===void 0?"":K.reason,this[I1]=K.wasClean===void 0?!1:K.wasClean}get code(){return this[X1]}get reason(){return this[Q1]}get wasClean(){return this[I1]}}Object.defineProperty(k.prototype,"code",{enumerable:!0});Object.defineProperty(k.prototype,"reason",{enumerable:!0});Object.defineProperty(k.prototype,"wasClean",{enumerable:!0});class o extends E{constructor(J,K={}){super(J);this[$1]=K.error===void 0?null:K.error,this[G1]=K.message===void 0?"":K.message}get error(){return this[$1]}get message(){return this[G1]}}Object.defineProperty(o.prototype,"error",{enumerable:!0});Object.defineProperty(o.prototype,"message",{enumerable:!0});class I5 extends E{constructor(J,K={}){super(J);this[Z1]=K.data===void 0?null:K.data}get data(){return this[Z1]}}Object.defineProperty(I5.prototype,"data",{enumerable:!0});var V0={addEventListener(J,K,X={}){for(let $ of this.listeners(J))if(!X[s]&&$[B5]===K&&!$[s])return;let Z;if(J==="message")Z=function(G,Q){let I=new I5("message",{data:Q?G:G.toString()});I[i]=this,j5(K,this,I)};else if(J==="close")Z=function(G,Q){let I=new k("close",{code:G,reason:Q.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});I[i]=this,j5(K,this,I)};else if(J==="error")Z=function(G){let Q=new o("error",{error:G,message:G.message});Q[i]=this,j5(K,this,Q)};else if(J==="open")Z=function(){let G=new E("open");G[i]=this,j5(K,this,G)};else return;if(Z[s]=!!X[s],Z[B5]=K,X.once)this.once(J,Z);else this.on(J,Z)},removeEventListener(J,K){for(let X of this.listeners(J))if(X[B5]===K&&!X[s]){this.removeListener(J,X);break}}};z1.exports={CloseEvent:k,ErrorEvent:o,Event:E,EventTarget:V0,MessageEvent:I5};function j5(J,K,X){if(typeof J==="object"&&J.handleEvent)J.handleEvent.call(J,X);else J.call(K,X)}});var C5=M((N4,V1)=>{var{tokenChars:t}=l();function B(J,K,X){if(J[K]===void 0)J[K]=[X];else J[K].push(X)}function _0(J){let K=Object.create(null),X=Object.create(null),Z=!1,$=!1,G=!1,Q,I,j=-1,V=-1,_=-1,Y=0;for(;Y<J.length;Y++)if(V=J.charCodeAt(Y),Q===void 0)if(_===-1&&t[V]===1){if(j===-1)j=Y}else if(Y!==0&&(V===32||V===9)){if(_===-1&&j!==-1)_=Y}else if(V===59||V===44){if(j===-1)throw SyntaxError(`Unexpected character at index ${Y}`);if(_===-1)_=Y;let D=J.slice(j,_);if(V===44)B(K,D,X),X=Object.create(null);else Q=D;j=_=-1}else throw SyntaxError(`Unexpected character at index ${Y}`);else if(I===void 0)if(_===-1&&t[V]===1){if(j===-1)j=Y}else if(V===32||V===9){if(_===-1&&j!==-1)_=Y}else if(V===59||V===44){if(j===-1)throw SyntaxError(`Unexpected character at index ${Y}`);if(_===-1)_=Y;if(B(X,J.slice(j,_),!0),V===44)B(K,Q,X),X=Object.create(null),Q=void 0;j=_=-1}else if(V===61&&j!==-1&&_===-1)I=J.slice(j,Y),j=_=-1;else throw SyntaxError(`Unexpected character at index ${Y}`);else if($){if(t[V]!==1)throw SyntaxError(`Unexpected character at index ${Y}`);if(j===-1)j=Y;else if(!Z)Z=!0;$=!1}else if(G)if(t[V]===1){if(j===-1)j=Y}else if(V===34&&j!==-1)G=!1,_=Y;else if(V===92)$=!0;else throw SyntaxError(`Unexpected character at index ${Y}`);else if(V===34&&J.charCodeAt(Y-1)===61)G=!0;else if(_===-1&&t[V]===1){if(j===-1)j=Y}else if(j!==-1&&(V===32||V===9)){if(_===-1)_=Y}else if(V===59||V===44){if(j===-1)throw SyntaxError(`Unexpected character at index ${Y}`);if(_===-1)_=Y;let D=J.slice(j,_);if(Z)D=D.replace(/\\/g,""),Z=!1;if(B(X,I,D),V===44)B(K,Q,X),X=Object.create(null),Q=void 0;I=void 0,j=_=-1}else throw SyntaxError(`Unexpected character at index ${Y}`);if(j===-1||G||V===32||V===9)throw SyntaxError("Unexpected end of input");if(_===-1)_=Y;let F=J.slice(j,_);if(Q===void 0)B(K,F,X);else{if(I===void 0)B(X,F,!0);else if(Z)B(X,I,F.replace(/\\/g,""));else B(X,I,F);B(K,Q,X)}return K}function N0(J){return Object.keys(J).map((K)=>{let X=J[K];if(!Array.isArray(X))X=[X];return X.map((Z)=>{return[K].concat(Object.keys(Z).map(($)=>{let G=Z[$];if(!Array.isArray(G))G=[G];return G.map((Q)=>Q===!0?$:`${$}=${Q}`).join("; ")})).join("; ")}).join(", ")}).join(", ")}V1.exports={format:N0,parse:_0}});var _5=M((A4,x1)=>{var H0=R("events"),R0=R("https"),A0=R("http"),H1=R("net"),F0=R("tls"),{randomBytes:D0,createHash:O0}=R("crypto"),{Duplex:H4,Readable:R4}=R("stream"),{URL:U5}=R("url"),y=a(),M0=P5(),P0=x5(),{isBlob:T0}=l(),{BINARY_TYPES:_1,EMPTY_BUFFER:z5,GUID:x0,kForOnEventAttribute:q5,kListener:B0,kStatusCode:C0,kWebSocket:A,NOOP:R1}=C(),{EventTarget:{addEventListener:U0,removeEventListener:q0}}=Y1(),{format:L0,parse:W0}=C5(),{toBuffer:E0}=n(),A1=Symbol("kAborted"),L5=[8,13],q=["CONNECTING","OPEN","CLOSING","CLOSED"],y0=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class z extends H0{constructor(J,K,X){super();if(this._binaryType=_1[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=z5,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=z.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,J!==null){if(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,K===void 0)K=[];else if(!Array.isArray(K))if(typeof K==="object"&&K!==null)X=K,K=[];else K=[K];F1(this,J,K,X)}else this._autoPong=X.autoPong,this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(J){if(!_1.includes(J))return;if(this._binaryType=J,this._receiver)this._receiver._binaryType=J}get bufferedAmount(){if(!this._socket)return this._bufferedAmount;return this._socket._writableState.length+this._sender._bufferedBytes}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(J,K,X){let Z=new M0({allowSynchronousEvents:X.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:X.maxPayload,skipUTF8Validation:X.skipUTF8Validation}),$=new P0(J,this._extensions,X.generateMask);if(this._receiver=Z,this._sender=$,this._socket=J,Z[A]=this,$[A]=this,J[A]=this,Z.on("conclude",g0),Z.on("drain",w0),Z.on("error",h0),Z.on("message",m0),Z.on("ping",f0),Z.on("pong",u0),$.onerror=l0,J.setTimeout)J.setTimeout(0);if(J.setNoDelay)J.setNoDelay();if(K.length>0)J.unshift(K);J.on("close",M1),J.on("data",V5),J.on("end",P1),J.on("error",T1),this._readyState=z.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=z.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}if(this._extensions[y.extensionName])this._extensions[y.extensionName].cleanup();this._receiver.removeAllListeners(),this._readyState=z.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(J,K){if(this.readyState===z.CLOSED)return;if(this.readyState===z.CONNECTING){P(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===z.CLOSING){if(this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted))this._socket.end();return}this._readyState=z.CLOSING,this._sender.close(J,K,!this._isServer,(X)=>{if(X)return;if(this._closeFrameSent=!0,this._closeFrameReceived||this._receiver._writableState.errorEmitted)this._socket.end()}),O1(this)}pause(){if(this.readyState===z.CONNECTING||this.readyState===z.CLOSED)return;this._paused=!0,this._socket.pause()}ping(J,K,X){if(this.readyState===z.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof J==="function")X=J,J=K=void 0;else if(typeof K==="function")X=K,K=void 0;if(typeof J==="number")J=J.toString();if(this.readyState!==z.OPEN){W5(this,J,X);return}if(K===void 0)K=!this._isServer;this._sender.ping(J||z5,K,X)}pong(J,K,X){if(this.readyState===z.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof J==="function")X=J,J=K=void 0;else if(typeof K==="function")X=K,K=void 0;if(typeof J==="number")J=J.toString();if(this.readyState!==z.OPEN){W5(this,J,X);return}if(K===void 0)K=!this._isServer;this._sender.pong(J||z5,K,X)}resume(){if(this.readyState===z.CONNECTING||this.readyState===z.CLOSED)return;if(this._paused=!1,!this._receiver._writableState.needDrain)this._socket.resume()}send(J,K,X){if(this.readyState===z.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof K==="function")X=K,K={};if(typeof J==="number")J=J.toString();if(this.readyState!==z.OPEN){W5(this,J,X);return}let Z={binary:typeof J!=="string",mask:!this._isServer,compress:!0,fin:!0,...K};if(!this._extensions[y.extensionName])Z.compress=!1;this._sender.send(J||z5,Z,X)}terminate(){if(this.readyState===z.CLOSED)return;if(this.readyState===z.CONNECTING){P(this,this._req,"WebSocket was closed before the connection was established");return}if(this._socket)this._readyState=z.CLOSING,this._socket.destroy()}}Object.defineProperty(z,"CONNECTING",{enumerable:!0,value:q.indexOf("CONNECTING")});Object.defineProperty(z.prototype,"CONNECTING",{enumerable:!0,value:q.indexOf("CONNECTING")});Object.defineProperty(z,"OPEN",{enumerable:!0,value:q.indexOf("OPEN")});Object.defineProperty(z.prototype,"OPEN",{enumerable:!0,value:q.indexOf("OPEN")});Object.defineProperty(z,"CLOSING",{enumerable:!0,value:q.indexOf("CLOSING")});Object.defineProperty(z.prototype,"CLOSING",{enumerable:!0,value:q.indexOf("CLOSING")});Object.defineProperty(z,"CLOSED",{enumerable:!0,value:q.indexOf("CLOSED")});Object.defineProperty(z.prototype,"CLOSED",{enumerable:!0,value:q.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((J)=>{Object.defineProperty(z.prototype,J,{enumerable:!0})});["open","error","close","message"].forEach((J)=>{Object.defineProperty(z.prototype,`on${J}`,{enumerable:!0,get(){for(let K of this.listeners(J))if(K[q5])return K[B0];return null},set(K){for(let X of this.listeners(J))if(X[q5]){this.removeListener(J,X);break}if(typeof K!=="function")return;this.addEventListener(J,K,{[q5]:!0})}})});z.prototype.addEventListener=U0;z.prototype.removeEventListener=q0;x1.exports=z;function F1(J,K,X,Z){let $={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:L5[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...Z,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(J._autoPong=$.autoPong,!L5.includes($.protocolVersion))throw RangeError(`Unsupported protocol version: ${$.protocolVersion} (supported versions: ${L5.join(", ")})`);let G;if(K instanceof U5)G=K;else try{G=new U5(K)}catch(N){throw SyntaxError(`Invalid URL: ${K}`)}if(G.protocol==="http:")G.protocol="ws:";else if(G.protocol==="https:")G.protocol="wss:";J._url=G.href;let Q=G.protocol==="wss:",I=G.protocol==="ws+unix:",j;if(G.protocol!=="ws:"&&!Q&&!I)j=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`;else if(I&&!G.pathname)j="The URL's pathname is empty";else if(G.hash)j="The URL contains a fragment identifier";if(j){let N=SyntaxError(j);if(J._redirects===0)throw N;else{Y5(J,N);return}}let V=Q?443:80,_=D0(16).toString("base64"),Y=Q?R0.request:A0.request,F=new Set,D;if($.createConnection=$.createConnection||(Q?v0:S0),$.defaultPort=$.defaultPort||V,$.port=G.port||V,$.host=G.hostname.startsWith("[")?G.hostname.slice(1,-1):G.hostname,$.headers={...$.headers,"Sec-WebSocket-Version":$.protocolVersion,"Sec-WebSocket-Key":_,Connection:"Upgrade",Upgrade:"websocket"},$.path=G.pathname+G.search,$.timeout=$.handshakeTimeout,$.perMessageDeflate)D=new y($.perMessageDeflate!==!0?$.perMessageDeflate:{},!1,$.maxPayload),$.headers["Sec-WebSocket-Extensions"]=L0({[y.extensionName]:D.offer()});if(X.length){for(let N of X){if(typeof N!=="string"||!y0.test(N)||F.has(N))throw SyntaxError("An invalid or duplicated subprotocol was specified");F.add(N)}$.headers["Sec-WebSocket-Protocol"]=X.join(",")}if($.origin)if($.protocolVersion<13)$.headers["Sec-WebSocket-Origin"]=$.origin;else $.headers.Origin=$.origin;if(G.username||G.password)$.auth=`${G.username}:${G.password}`;if(I){let N=$.path.split(":");$.socketPath=N[0],$.path=N[1]}let H;if($.followRedirects){if(J._redirects===0){J._originalIpc=I,J._originalSecure=Q,J._originalHostOrSocketPath=I?$.socketPath:G.host;let N=Z&&Z.headers;if(Z={...Z,headers:{}},N)for(let[O,h]of Object.entries(N))Z.headers[O.toLowerCase()]=h}else if(J.listenerCount("redirect")===0){let N=I?J._originalIpc?$.socketPath===J._originalHostOrSocketPath:!1:J._originalIpc?!1:G.host===J._originalHostOrSocketPath;if(!N||J._originalSecure&&!Q){if(delete $.headers.authorization,delete $.headers.cookie,!N)delete $.headers.host;$.auth=void 0}}if($.auth&&!Z.headers.authorization)Z.headers.authorization="Basic "+Buffer.from($.auth).toString("base64");if(H=J._req=Y($),J._redirects)J.emit("redirect",J.url,H)}else H=J._req=Y($);if($.timeout)H.on("timeout",()=>{P(J,H,"Opening handshake has timed out")});if(H.on("error",(N)=>{if(H===null||H[A1])return;H=J._req=null,Y5(J,N)}),H.on("response",(N)=>{let O=N.headers.location,h=N.statusCode;if(O&&$.followRedirects&&h>=300&&h<400){if(++J._redirects>$.maxRedirects){P(J,H,"Maximum redirects exceeded");return}H.abort();let d;try{d=new U5(O,K)}catch(E5){let m=SyntaxError(`Invalid URL: ${O}`);Y5(J,m);return}F1(J,d,X,Z)}else if(!J.emit("unexpected-response",H,N))P(J,H,`Unexpected server response: ${N.statusCode}`)}),H.on("upgrade",(N,O,h)=>{if(J.emit("upgrade",N),J.readyState!==z.CONNECTING)return;H=J._req=null;let d=N.headers.upgrade;if(d===void 0||d.toLowerCase()!=="websocket"){P(J,O,"Invalid Upgrade header");return}let E5=O0("sha1").update(_+x0).digest("base64");if(N.headers["sec-websocket-accept"]!==E5){P(J,O,"Invalid Sec-WebSocket-Accept header");return}let m=N.headers["sec-websocket-protocol"],c;if(m!==void 0){if(!F.size)c="Server sent a subprotocol but none was requested";else if(!F.has(m))c="Server sent an invalid subprotocol"}else if(F.size)c="Server sent no subprotocol";if(c){P(J,O,c);return}if(m)J._protocol=m;let y5=N.headers["sec-websocket-extensions"];if(y5!==void 0){if(!D){P(J,O,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let H5;try{H5=W0(y5)}catch(R5){P(J,O,"Invalid Sec-WebSocket-Extensions header");return}let S5=Object.keys(H5);if(S5.length!==1||S5[0]!==y.extensionName){P(J,O,"Server indicated an extension that was not requested");return}try{D.accept(H5[y.extensionName])}catch(R5){P(J,O,"Invalid Sec-WebSocket-Extensions header");return}J._extensions[y.extensionName]=D}J.setSocket(O,h,{allowSynchronousEvents:$.allowSynchronousEvents,generateMask:$.generateMask,maxPayload:$.maxPayload,skipUTF8Validation:$.skipUTF8Validation})}),$.finishRequest)$.finishRequest(H,J);else H.end()}function Y5(J,K){J._readyState=z.CLOSING,J._errorEmitted=!0,J.emit("error",K),J.emitClose()}function S0(J){return J.path=J.socketPath,H1.connect(J)}function v0(J){if(J.path=void 0,!J.servername&&J.servername!=="")J.servername=H1.isIP(J.host)?"":J.host;return F0.connect(J)}function P(J,K,X){J._readyState=z.CLOSING;let Z=Error(X);if(Error.captureStackTrace(Z,P),K.setHeader){if(K[A1]=!0,K.abort(),K.socket&&!K.socket.destroyed)K.socket.destroy();process.nextTick(Y5,J,Z)}else K.destroy(Z),K.once("error",J.emit.bind(J,"error")),K.once("close",J.emitClose.bind(J))}function W5(J,K,X){if(K){let Z=T0(K)?K.size:E0(K).length;if(J._socket)J._sender._bufferedBytes+=Z;else J._bufferedAmount+=Z}if(X){let Z=Error(`WebSocket is not open: readyState ${J.readyState} (${q[J.readyState]})`);process.nextTick(X,Z)}}function g0(J,K){let X=this[A];if(X._closeFrameReceived=!0,X._closeMessage=K,X._closeCode=J,X._socket[A]===void 0)return;if(X._socket.removeListener("data",V5),process.nextTick(D1,X._socket),J===1005)X.close();else X.close(J,K)}function w0(){let J=this[A];if(!J.isPaused)J._socket.resume()}function h0(J){let K=this[A];if(K._socket[A]!==void 0)K._socket.removeListener("data",V5),process.nextTick(D1,K._socket),K.close(J[C0]);if(!K._errorEmitted)K._errorEmitted=!0,K.emit("error",J)}function N1(){this[A].emitClose()}function m0(J,K){this[A].emit("message",J,K)}function f0(J){let K=this[A];if(K._autoPong)K.pong(J,!this._isServer,R1);K.emit("ping",J)}function u0(J){this[A].emit("pong",J)}function D1(J){J.resume()}function l0(J){let K=this[A];if(K.readyState===z.CLOSED)return;if(K.readyState===z.OPEN)K._readyState=z.CLOSING,O1(K);if(this._socket.end(),!K._errorEmitted)K._errorEmitted=!0,K.emit("error",J)}function O1(J){J._closeTimer=setTimeout(J._socket.destroy.bind(J._socket),30000)}function M1(){let J=this[A];this.removeListener("close",M1),this.removeListener("data",V5),this.removeListener("end",P1),J._readyState=z.CLOSING;let K;if(!this._readableState.endEmitted&&!J._closeFrameReceived&&!J._receiver._writableState.errorEmitted&&(K=J._socket.read())!==null)J._receiver.write(K);if(J._receiver.end(),this[A]=void 0,clearTimeout(J._closeTimer),J._receiver._writableState.finished||J._receiver._writableState.errorEmitted)J.emitClose();else J._receiver.on("error",N1),J._receiver.on("finish",N1)}function V5(J){if(!this[A]._receiver.write(J))this.pause()}function P1(){let J=this[A];J._readyState=z.CLOSING,J._receiver.end(),this.end()}function T1(){let J=this[A];if(this.removeListener("error",T1),this.on("error",R1),J)J._readyState=z.CLOSING,this.destroy()}});var q1=M((D4,U1)=>{var F4=_5(),{Duplex:p0}=R("stream");function B1(J){J.emit("close")}function b0(){if(!this.destroyed&&this._writableState.finished)this.destroy()}function C1(J){if(this.removeListener("error",C1),this.destroy(),this.listenerCount("error")===0)this.emit("error",J)}function i0(J,K){let X=!0,Z=new p0({...K,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return J.on("message",function(G,Q){let I=!Q&&Z._readableState.objectMode?G.toString():G;if(!Z.push(I))J.pause()}),J.once("error",function(G){if(Z.destroyed)return;X=!1,Z.destroy(G)}),J.once("close",function(){if(Z.destroyed)return;Z.push(null)}),Z._destroy=function($,G){if(J.readyState===J.CLOSED){G($),process.nextTick(B1,Z);return}let Q=!1;if(J.once("error",function(j){Q=!0,G(j)}),J.once("close",function(){if(!Q)G($);process.nextTick(B1,Z)}),X)J.terminate()},Z._final=function($){if(J.readyState===J.CONNECTING){J.once("open",function(){Z._final($)});return}if(J._socket===null)return;if(J._socket._writableState.finished){if($(),Z._readableState.endEmitted)Z.destroy()}else J._socket.once("finish",function(){$()}),J.close()},Z._read=function(){if(J.isPaused)J.resume()},Z._write=function($,G,Q){if(J.readyState===J.CONNECTING){J.once("open",function(){Z._write($,G,Q)});return}J.send($,Q)},Z.on("end",b0),Z.on("error",C1),Z}U1.exports=i0});var W1=M((O4,L1)=>{var{tokenChars:k0}=l();function d0(J){let K=new Set,X=-1,Z=-1,$=0;for($;$<J.length;$++){let Q=J.charCodeAt($);if(Z===-1&&k0[Q]===1){if(X===-1)X=$}else if($!==0&&(Q===32||Q===9)){if(Z===-1&&X!==-1)Z=$}else if(Q===44){if(X===-1)throw SyntaxError(`Unexpected character at index ${$}`);if(Z===-1)Z=$;let I=J.slice(X,Z);if(K.has(I))throw SyntaxError(`The "${I}" subprotocol is duplicated`);K.add(I),X=Z=-1}else throw SyntaxError(`Unexpected character at index ${$}`)}if(X===-1||Z!==-1)throw SyntaxError("Unexpected end of input");let G=J.slice(X,$);if(K.has(G))throw SyntaxError(`The "${G}" subprotocol is duplicated`);return K.add(G),K}L1.exports={parse:d0}});var g1=M((P4,v1)=>{var c0=R("events"),N5=R("http"),{Duplex:M4}=R("stream"),{createHash:n0}=R("crypto"),E1=C5(),g=a(),r0=W1(),a0=_5(),{GUID:s0,kWebSocket:o0}=C(),t0=/^[+/0-9A-Za-z]{22}==$/;class S1 extends c0{constructor(J,K){super();if(J={allowSynchronousEvents:!0,autoPong:!0,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:a0,...J},J.port==null&&!J.server&&!J.noServer||J.port!=null&&(J.server||J.noServer)||J.server&&J.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(J.port!=null)this._server=N5.createServer((X,Z)=>{let $=N5.STATUS_CODES[426];Z.writeHead(426,{"Content-Length":$.length,"Content-Type":"text/plain"}),Z.end($)}),this._server.listen(J.port,J.host,J.backlog,K);else if(J.server)this._server=J.server;if(this._server){let X=this.emit.bind(this,"connection");this._removeListeners=e0(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(Z,$,G)=>{this.handleUpgrade(Z,$,G,X)}})}if(J.perMessageDeflate===!0)J.perMessageDeflate={};if(J.clientTracking)this.clients=new Set,this._shouldEmitClose=!1;this.options=J,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');if(!this._server)return null;return this._server.address()}close(J){if(this._state===2){if(J)this.once("close",()=>{J(Error("The server is not running"))});process.nextTick(e,this);return}if(J)this.once("close",J);if(this._state===1)return;if(this._state=1,this.options.noServer||this.options.server){if(this._server)this._removeListeners(),this._removeListeners=this._server=null;if(this.clients)if(!this.clients.size)process.nextTick(e,this);else this._shouldEmitClose=!0;else process.nextTick(e,this)}else{let K=this._server;this._removeListeners(),this._removeListeners=this._server=null,K.close(()=>{e(this)})}}shouldHandle(J){if(this.options.path){let K=J.url.indexOf("?");if((K!==-1?J.url.slice(0,K):J.url)!==this.options.path)return!1}return!0}handleUpgrade(J,K,X,Z){K.on("error",y1);let $=J.headers["sec-websocket-key"],G=J.headers.upgrade,Q=+J.headers["sec-websocket-version"];if(J.method!=="GET"){w(this,J,K,405,"Invalid HTTP method");return}if(G===void 0||G.toLowerCase()!=="websocket"){w(this,J,K,400,"Invalid Upgrade header");return}if($===void 0||!t0.test($)){w(this,J,K,400,"Missing or invalid Sec-WebSocket-Key header");return}if(Q!==13&&Q!==8){w(this,J,K,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(J)){J5(K,400);return}let I=J.headers["sec-websocket-protocol"],j=new Set;if(I!==void 0)try{j=r0.parse(I)}catch(Y){w(this,J,K,400,"Invalid Sec-WebSocket-Protocol header");return}let V=J.headers["sec-websocket-extensions"],_={};if(this.options.perMessageDeflate&&V!==void 0){let Y=new g(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let F=E1.parse(V);if(F[g.extensionName])Y.accept(F[g.extensionName]),_[g.extensionName]=Y}catch(F){w(this,J,K,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let Y={origin:J.headers[`${Q===8?"sec-websocket-origin":"origin"}`],secure:!!(J.socket.authorized||J.socket.encrypted),req:J};if(this.options.verifyClient.length===2){this.options.verifyClient(Y,(F,D,H,N)=>{if(!F)return J5(K,D||401,H,N);this.completeUpgrade(_,$,j,J,K,X,Z)});return}if(!this.options.verifyClient(Y))return J5(K,401)}this.completeUpgrade(_,$,j,J,K,X,Z)}completeUpgrade(J,K,X,Z,$,G,Q){if(!$.readable||!$.writable)return $.destroy();if($[o0])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return J5($,503);let j=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${n0("sha1").update(K+s0).digest("base64")}`],V=new this.options.WebSocket(null,void 0,this.options);if(X.size){let _=this.options.handleProtocols?this.options.handleProtocols(X,Z):X.values().next().value;if(_)j.push(`Sec-WebSocket-Protocol: ${_}`),V._protocol=_}if(J[g.extensionName]){let _=J[g.extensionName].params,Y=E1.format({[g.extensionName]:[_]});j.push(`Sec-WebSocket-Extensions: ${Y}`),V._extensions=J}if(this.emit("headers",j,Z),$.write(j.concat(`\r
1
+ import{Rb as K5,Sb as M,Ub as R}from"./chunk-f9yb2zk3.js";var C=M(($4,w5)=>{var v5=["nodebuffer","arraybuffer","fragments"],g5=typeof Blob<"u";if(g5)v5.push("blob");w5.exports={BINARY_TYPES:v5,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:g5,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var n=M((G4,X5)=>{var{EMPTY_BUFFER:m1}=C(),A5=Buffer[Symbol.species];function f1(J,K){if(J.length===0)return m1;if(J.length===1)return J[0];let X=Buffer.allocUnsafe(K),Z=0;for(let $=0;$<J.length;$++){let G=J[$];X.set(G,Z),Z+=G.length}if(Z<K)return new A5(X.buffer,X.byteOffset,Z);return X}function h5(J,K,X,Z,$){for(let G=0;G<$;G++)X[Z+G]=J[G]^K[G&3]}function m5(J,K){for(let X=0;X<J.length;X++)J[X]^=K[X&3]}function u1(J){if(J.length===J.buffer.byteLength)return J.buffer;return J.buffer.slice(J.byteOffset,J.byteOffset+J.length)}function F5(J){if(F5.readOnly=!0,Buffer.isBuffer(J))return J;let K;if(J instanceof ArrayBuffer)K=new A5(J);else if(ArrayBuffer.isView(J))K=new A5(J.buffer,J.byteOffset,J.byteLength);else K=Buffer.from(J),F5.readOnly=!1;return K}X5.exports={concat:f1,mask:h5,toArrayBuffer:u1,toBuffer:F5,unmask:m5};if(!process.env.WS_NO_BUFFER_UTIL)try{let J=(()=>{throw new Error("Cannot require module "+"bufferutil");})();X5.exports.mask=function(K,X,Z,$,G){if(G<48)h5(K,X,Z,$,G);else J.mask(K,X,Z,$,G)},X5.exports.unmask=function(K,X){if(K.length<32)m5(K,X);else J.unmask(K,X)}}catch(J){}});var p5=M((Q4,l5)=>{var f5=Symbol("kDone"),D5=Symbol("kRun");class u5{constructor(J){this[f5]=()=>{this.pending--,this[D5]()},this.concurrency=J||1/0,this.jobs=[],this.pending=0}add(J){this.jobs.push(J),this[D5]()}[D5](){if(this.pending===this.concurrency)return;if(this.jobs.length){let J=this.jobs.shift();this.pending++,J(this[f5])}}}l5.exports=u5});var a=M((j4,c5)=>{var r=R("zlib"),b5=n(),l1=p5(),{kStatusCode:i5}=C(),p1=Buffer[Symbol.species],b1=Buffer.from([0,0,255,255]),$5=Symbol("permessage-deflate"),U=Symbol("total-length"),f=Symbol("callback"),L=Symbol("buffers"),u=Symbol("error"),Z5;class k5{constructor(J,K,X){if(this._maxPayload=X|0,this._options=J||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!K,this._deflate=null,this._inflate=null,this.params=null,!Z5){let Z=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;Z5=new l1(Z)}}static get extensionName(){return"permessage-deflate"}offer(){let J={};if(this._options.serverNoContextTakeover)J.server_no_context_takeover=!0;if(this._options.clientNoContextTakeover)J.client_no_context_takeover=!0;if(this._options.serverMaxWindowBits)J.server_max_window_bits=this._options.serverMaxWindowBits;if(this._options.clientMaxWindowBits)J.client_max_window_bits=this._options.clientMaxWindowBits;else if(this._options.clientMaxWindowBits==null)J.client_max_window_bits=!0;return J}accept(J){return J=this.normalizeParams(J),this.params=this._isServer?this.acceptAsServer(J):this.acceptAsClient(J),this.params}cleanup(){if(this._inflate)this._inflate.close(),this._inflate=null;if(this._deflate){let J=this._deflate[f];if(this._deflate.close(),this._deflate=null,J)J(Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(J){let K=this._options,X=J.find((Z)=>{if(K.serverNoContextTakeover===!1&&Z.server_no_context_takeover||Z.server_max_window_bits&&(K.serverMaxWindowBits===!1||typeof K.serverMaxWindowBits==="number"&&K.serverMaxWindowBits>Z.server_max_window_bits)||typeof K.clientMaxWindowBits==="number"&&!Z.client_max_window_bits)return!1;return!0});if(!X)throw Error("None of the extension offers can be accepted");if(K.serverNoContextTakeover)X.server_no_context_takeover=!0;if(K.clientNoContextTakeover)X.client_no_context_takeover=!0;if(typeof K.serverMaxWindowBits==="number")X.server_max_window_bits=K.serverMaxWindowBits;if(typeof K.clientMaxWindowBits==="number")X.client_max_window_bits=K.clientMaxWindowBits;else if(X.client_max_window_bits===!0||K.clientMaxWindowBits===!1)delete X.client_max_window_bits;return X}acceptAsClient(J){let K=J[0];if(this._options.clientNoContextTakeover===!1&&K.client_no_context_takeover)throw Error('Unexpected parameter "client_no_context_takeover"');if(!K.client_max_window_bits){if(typeof this._options.clientMaxWindowBits==="number")K.client_max_window_bits=this._options.clientMaxWindowBits}else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==="number"&&K.client_max_window_bits>this._options.clientMaxWindowBits)throw Error('Unexpected or invalid parameter "client_max_window_bits"');return K}normalizeParams(J){return J.forEach((K)=>{Object.keys(K).forEach((X)=>{let Z=K[X];if(Z.length>1)throw Error(`Parameter "${X}" must have only a single value`);if(Z=Z[0],X==="client_max_window_bits"){if(Z!==!0){let $=+Z;if(!Number.isInteger($)||$<8||$>15)throw TypeError(`Invalid value for parameter "${X}": ${Z}`);Z=$}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${X}": ${Z}`)}else if(X==="server_max_window_bits"){let $=+Z;if(!Number.isInteger($)||$<8||$>15)throw TypeError(`Invalid value for parameter "${X}": ${Z}`);Z=$}else if(X==="client_no_context_takeover"||X==="server_no_context_takeover"){if(Z!==!0)throw TypeError(`Invalid value for parameter "${X}": ${Z}`)}else throw Error(`Unknown parameter "${X}"`);K[X]=Z})}),J}decompress(J,K,X){Z5.add((Z)=>{this._decompress(J,K,($,G)=>{Z(),X($,G)})})}compress(J,K,X){Z5.add((Z)=>{this._compress(J,K,($,G)=>{Z(),X($,G)})})}_decompress(J,K,X){let Z=this._isServer?"client":"server";if(!this._inflate){let $=`${Z}_max_window_bits`,G=typeof this.params[$]!=="number"?r.Z_DEFAULT_WINDOWBITS:this.params[$];this._inflate=r.createInflateRaw({...this._options.zlibInflateOptions,windowBits:G}),this._inflate[$5]=this,this._inflate[U]=0,this._inflate[L]=[],this._inflate.on("error",k1),this._inflate.on("data",d5)}if(this._inflate[f]=X,this._inflate.write(J),K)this._inflate.write(b1);this._inflate.flush(()=>{let $=this._inflate[u];if($){this._inflate.close(),this._inflate=null,X($);return}let G=b5.concat(this._inflate[L],this._inflate[U]);if(this._inflate._readableState.endEmitted)this._inflate.close(),this._inflate=null;else if(this._inflate[U]=0,this._inflate[L]=[],K&&this.params[`${Z}_no_context_takeover`])this._inflate.reset();X(null,G)})}_compress(J,K,X){let Z=this._isServer?"server":"client";if(!this._deflate){let $=`${Z}_max_window_bits`,G=typeof this.params[$]!=="number"?r.Z_DEFAULT_WINDOWBITS:this.params[$];this._deflate=r.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:G}),this._deflate[U]=0,this._deflate[L]=[],this._deflate.on("data",i1)}this._deflate[f]=X,this._deflate.write(J),this._deflate.flush(r.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let $=b5.concat(this._deflate[L],this._deflate[U]);if(K)$=new p1($.buffer,$.byteOffset,$.length-4);if(this._deflate[f]=null,this._deflate[U]=0,this._deflate[L]=[],K&&this.params[`${Z}_no_context_takeover`])this._deflate.reset();X(null,$)})}}c5.exports=k5;function i1(J){this[L].push(J),this[U]+=J.length}function d5(J){if(this[U]+=J.length,this[$5]._maxPayload<1||this[U]<=this[$5]._maxPayload){this[L].push(J);return}this[u]=RangeError("Max payload size exceeded"),this[u].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[u][i5]=1009,this.removeListener("data",d5),this.reset()}function k1(J){if(this[$5]._inflate=null,this[u]){this[f](this[u]);return}J[i5]=1007,this[f](J)}});var l=M((I4,G5)=>{var{isUtf8:n5}=R("buffer"),{hasBlob:d1}=C(),c1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function n1(J){return J>=1000&&J<=1014&&J!==1004&&J!==1005&&J!==1006||J>=3000&&J<=4999}function O5(J){let K=J.length,X=0;while(X<K)if((J[X]&128)===0)X++;else if((J[X]&224)===192){if(X+1===K||(J[X+1]&192)!==128||(J[X]&254)===192)return!1;X+=2}else if((J[X]&240)===224){if(X+2>=K||(J[X+1]&192)!==128||(J[X+2]&192)!==128||J[X]===224&&(J[X+1]&224)===128||J[X]===237&&(J[X+1]&224)===160)return!1;X+=3}else if((J[X]&248)===240){if(X+3>=K||(J[X+1]&192)!==128||(J[X+2]&192)!==128||(J[X+3]&192)!==128||J[X]===240&&(J[X+1]&240)===128||J[X]===244&&J[X+1]>143||J[X]>244)return!1;X+=4}else return!1;return!0}function r1(J){return d1&&typeof J==="object"&&typeof J.arrayBuffer==="function"&&typeof J.type==="string"&&typeof J.stream==="function"&&(J[Symbol.toStringTag]==="Blob"||J[Symbol.toStringTag]==="File")}G5.exports={isBlob:r1,isValidStatusCode:n1,isValidUTF8:O5,tokenChars:c1};if(n5)G5.exports.isValidUTF8=function(J){return J.length<24?O5(J):n5(J)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let J=(()=>{throw new Error("Cannot require module "+"utf-8-validate");})();G5.exports.isValidUTF8=function(K){return K.length<32?O5(K):J(K)}}catch(J){}});var P5=M((z4,t5)=>{var{Writable:a1}=R("stream"),r5=a(),{BINARY_TYPES:s1,EMPTY_BUFFER:a5,kStatusCode:o1,kWebSocket:t1}=C(),{concat:M5,toArrayBuffer:e1,unmask:J0}=n(),{isValidStatusCode:K0,isValidUTF8:s5}=l(),Q5=Buffer[Symbol.species];class o5 extends a1{constructor(J={}){super();this._allowSynchronousEvents=J.allowSynchronousEvents!==void 0?J.allowSynchronousEvents:!0,this._binaryType=J.binaryType||s1[0],this._extensions=J.extensions||{},this._isServer=!!J.isServer,this._maxPayload=J.maxPayload|0,this._skipUTF8Validation=!!J.skipUTF8Validation,this[t1]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(J,K,X){if(this._opcode===8&&this._state==0)return X();this._bufferedBytes+=J.length,this._buffers.push(J),this.startLoop(X)}consume(J){if(this._bufferedBytes-=J,J===this._buffers[0].length)return this._buffers.shift();if(J<this._buffers[0].length){let X=this._buffers[0];return this._buffers[0]=new Q5(X.buffer,X.byteOffset+J,X.length-J),new Q5(X.buffer,X.byteOffset,J)}let K=Buffer.allocUnsafe(J);do{let X=this._buffers[0],Z=K.length-J;if(J>=X.length)K.set(this._buffers.shift(),Z);else K.set(new Uint8Array(X.buffer,X.byteOffset,J),Z),this._buffers[0]=new Q5(X.buffer,X.byteOffset+J,X.length-J);J-=X.length}while(J>0);return K}startLoop(J){this._loop=!0;do switch(this._state){case 0:this.getInfo(J);break;case 1:this.getPayloadLength16(J);break;case 2:this.getPayloadLength64(J);break;case 3:this.getMask();break;case 4:this.getData(J);break;case 5:case 6:this._loop=!1;return}while(this._loop);if(!this._errored)J()}getInfo(J){if(this._bufferedBytes<2){this._loop=!1;return}let K=this.consume(2);if((K[0]&48)!==0){let Z=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");J(Z);return}let X=(K[0]&64)===64;if(X&&!this._extensions[r5.extensionName]){let Z=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");J(Z);return}if(this._fin=(K[0]&128)===128,this._opcode=K[0]&15,this._payloadLength=K[1]&127,this._opcode===0){if(X){let Z=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");J(Z);return}if(!this._fragmented){let Z=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");J(Z);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let Z=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");J(Z);return}this._compressed=X}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let Z=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");J(Z);return}if(X){let Z=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");J(Z);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let Z=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");J(Z);return}}else{let Z=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");J(Z);return}if(!this._fin&&!this._fragmented)this._fragmented=this._opcode;if(this._masked=(K[1]&128)===128,this._isServer){if(!this._masked){let Z=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");J(Z);return}}else if(this._masked){let Z=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");J(Z);return}if(this._payloadLength===126)this._state=1;else if(this._payloadLength===127)this._state=2;else this.haveLength(J)}getPayloadLength16(J){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(J)}getPayloadLength64(J){if(this._bufferedBytes<8){this._loop=!1;return}let K=this.consume(8),X=K.readUInt32BE(0);if(X>Math.pow(2,21)-1){let Z=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");J(Z);return}this._payloadLength=X*Math.pow(2,32)+K.readUInt32BE(4),this.haveLength(J)}haveLength(J){if(this._payloadLength&&this._opcode<8){if(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0){let K=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");J(K);return}}if(this._masked)this._state=3;else this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(J){let K=a5;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}if(K=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0)J0(K,this._mask)}if(this._opcode>7){this.controlMessage(K,J);return}if(this._compressed){this._state=5,this.decompress(K,J);return}if(K.length)this._messageLength=this._totalPayloadLength,this._fragments.push(K);this.dataMessage(J)}decompress(J,K){this._extensions[r5.extensionName].decompress(J,this._fin,(Z,$)=>{if(Z)return K(Z);if($.length){if(this._messageLength+=$.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let G=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");K(G);return}this._fragments.push($)}if(this.dataMessage(K),this._state===0)this.startLoop(K)})}dataMessage(J){if(!this._fin){this._state=0;return}let K=this._messageLength,X=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let Z;if(this._binaryType==="nodebuffer")Z=M5(X,K);else if(this._binaryType==="arraybuffer")Z=e1(M5(X,K));else if(this._binaryType==="blob")Z=new Blob(X);else Z=X;if(this._allowSynchronousEvents)this.emit("message",Z,!0),this._state=0;else this._state=6,setImmediate(()=>{this.emit("message",Z,!0),this._state=0,this.startLoop(J)})}else{let Z=M5(X,K);if(!this._skipUTF8Validation&&!s5(Z)){let $=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");J($);return}if(this._state===5||this._allowSynchronousEvents)this.emit("message",Z,!1),this._state=0;else this._state=6,setImmediate(()=>{this.emit("message",Z,!1),this._state=0,this.startLoop(J)})}}controlMessage(J,K){if(this._opcode===8){if(J.length===0)this._loop=!1,this.emit("conclude",1005,a5),this.end();else{let X=J.readUInt16BE(0);if(!K0(X)){let $=this.createError(RangeError,`invalid status code ${X}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");K($);return}let Z=new Q5(J.buffer,J.byteOffset+2,J.length-2);if(!this._skipUTF8Validation&&!s5(Z)){let $=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");K($);return}this._loop=!1,this.emit("conclude",X,Z),this.end()}this._state=0;return}if(this._allowSynchronousEvents)this.emit(this._opcode===9?"ping":"pong",J),this._state=0;else this._state=6,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",J),this._state=0,this.startLoop(K)})}createError(J,K,X,Z,$){this._loop=!1,this._errored=!0;let G=new J(X?`Invalid WebSocket frame: ${K}`:K);return Error.captureStackTrace(G,this.createError),G.code=$,G[o1]=Z,G}}t5.exports=o5});var x5=M((V4,K1)=>{var{Duplex:Y4}=R("stream"),{randomFillSync:X0}=R("crypto"),e5=a(),{EMPTY_BUFFER:Z0,kWebSocket:$0,NOOP:G0}=C(),{isBlob:p,isValidStatusCode:Q0}=l(),{mask:J1,toBuffer:S}=n(),T=Symbol("kByteLength"),j0=Buffer.alloc(4),v,b=8192,x=0,I0=1,z0=2;class W{constructor(J,K,X){if(this._extensions=K||{},X)this._generateMask=X,this._maskBuffer=Buffer.alloc(4);this._socket=J,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=x,this.onerror=G0,this[$0]=void 0}static frame(J,K){let X,Z=!1,$=2,G=!1;if(K.mask){if(X=K.maskBuffer||j0,K.generateMask)K.generateMask(X);else{if(b===8192){if(v===void 0)v=Buffer.alloc(8192);X0(v,0,8192),b=0}X[0]=v[b++],X[1]=v[b++],X[2]=v[b++],X[3]=v[b++]}G=(X[0]|X[1]|X[2]|X[3])===0,$=6}let Q;if(typeof J==="string")if((!K.mask||G)&&K[T]!==void 0)Q=K[T];else J=Buffer.from(J),Q=J.length;else Q=J.length,Z=K.mask&&K.readOnly&&!G;let I=Q;if(Q>=65536)$+=8,I=127;else if(Q>125)$+=2,I=126;let j=Buffer.allocUnsafe(Z?Q+$:$);if(j[0]=K.fin?K.opcode|128:K.opcode,K.rsv1)j[0]|=64;if(j[1]=I,I===126)j.writeUInt16BE(Q,2);else if(I===127)j[2]=j[3]=0,j.writeUIntBE(Q,4,6);if(!K.mask)return[j,J];if(j[1]|=128,j[$-4]=X[0],j[$-3]=X[1],j[$-2]=X[2],j[$-1]=X[3],G)return[j,J];if(Z)return J1(J,X,j,$,Q),[j];return J1(J,X,J,0,Q),[j,J]}close(J,K,X,Z){let $;if(J===void 0)$=Z0;else if(typeof J!=="number"||!Q0(J))throw TypeError("First argument must be a valid error code number");else if(K===void 0||!K.length)$=Buffer.allocUnsafe(2),$.writeUInt16BE(J,0);else{let Q=Buffer.byteLength(K);if(Q>123)throw RangeError("The message must not be greater than 123 bytes");if($=Buffer.allocUnsafe(2+Q),$.writeUInt16BE(J,0),typeof K==="string")$.write(K,2);else $.set(K,2)}let G={[T]:$.length,fin:!0,generateMask:this._generateMask,mask:X,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};if(this._state!==x)this.enqueue([this.dispatch,$,!1,G,Z]);else this.sendFrame(W.frame($,G),Z)}ping(J,K,X){let Z,$;if(typeof J==="string")Z=Buffer.byteLength(J),$=!1;else if(p(J))Z=J.size,$=!1;else J=S(J),Z=J.length,$=S.readOnly;if(Z>125)throw RangeError("The data size must not be greater than 125 bytes");let G={[T]:Z,fin:!0,generateMask:this._generateMask,mask:K,maskBuffer:this._maskBuffer,opcode:9,readOnly:$,rsv1:!1};if(p(J))if(this._state!==x)this.enqueue([this.getBlobData,J,!1,G,X]);else this.getBlobData(J,!1,G,X);else if(this._state!==x)this.enqueue([this.dispatch,J,!1,G,X]);else this.sendFrame(W.frame(J,G),X)}pong(J,K,X){let Z,$;if(typeof J==="string")Z=Buffer.byteLength(J),$=!1;else if(p(J))Z=J.size,$=!1;else J=S(J),Z=J.length,$=S.readOnly;if(Z>125)throw RangeError("The data size must not be greater than 125 bytes");let G={[T]:Z,fin:!0,generateMask:this._generateMask,mask:K,maskBuffer:this._maskBuffer,opcode:10,readOnly:$,rsv1:!1};if(p(J))if(this._state!==x)this.enqueue([this.getBlobData,J,!1,G,X]);else this.getBlobData(J,!1,G,X);else if(this._state!==x)this.enqueue([this.dispatch,J,!1,G,X]);else this.sendFrame(W.frame(J,G),X)}send(J,K,X){let Z=this._extensions[e5.extensionName],$=K.binary?2:1,G=K.compress,Q,I;if(typeof J==="string")Q=Buffer.byteLength(J),I=!1;else if(p(J))Q=J.size,I=!1;else J=S(J),Q=J.length,I=S.readOnly;if(this._firstFragment){if(this._firstFragment=!1,G&&Z&&Z.params[Z._isServer?"server_no_context_takeover":"client_no_context_takeover"])G=Q>=Z._threshold;this._compress=G}else G=!1,$=0;if(K.fin)this._firstFragment=!0;let j={[T]:Q,fin:K.fin,generateMask:this._generateMask,mask:K.mask,maskBuffer:this._maskBuffer,opcode:$,readOnly:I,rsv1:G};if(p(J))if(this._state!==x)this.enqueue([this.getBlobData,J,this._compress,j,X]);else this.getBlobData(J,this._compress,j,X);else if(this._state!==x)this.enqueue([this.dispatch,J,this._compress,j,X]);else this.dispatch(J,this._compress,j,X)}getBlobData(J,K,X,Z){this._bufferedBytes+=X[T],this._state=z0,J.arrayBuffer().then(($)=>{if(this._socket.destroyed){let Q=Error("The socket was closed while the blob was being read");process.nextTick(T5,this,Q,Z);return}this._bufferedBytes-=X[T];let G=S($);if(!K)this._state=x,this.sendFrame(W.frame(G,X),Z),this.dequeue();else this.dispatch(G,K,X,Z)}).catch(($)=>{process.nextTick(Y0,this,$,Z)})}dispatch(J,K,X,Z){if(!K){this.sendFrame(W.frame(J,X),Z);return}let $=this._extensions[e5.extensionName];this._bufferedBytes+=X[T],this._state=I0,$.compress(J,X.fin,(G,Q)=>{if(this._socket.destroyed){let I=Error("The socket was closed while data was being compressed");T5(this,I,Z);return}this._bufferedBytes-=X[T],this._state=x,X.readOnly=!1,this.sendFrame(W.frame(Q,X),Z),this.dequeue()})}dequeue(){while(this._state===x&&this._queue.length){let J=this._queue.shift();this._bufferedBytes-=J[3][T],Reflect.apply(J[0],this,J.slice(1))}}enqueue(J){this._bufferedBytes+=J[3][T],this._queue.push(J)}sendFrame(J,K){if(J.length===2)this._socket.cork(),this._socket.write(J[0]),this._socket.write(J[1],K),this._socket.uncork();else this._socket.write(J[0],K)}}K1.exports=W;function T5(J,K,X){if(typeof X==="function")X(K);for(let Z=0;Z<J._queue.length;Z++){let $=J._queue[Z],G=$[$.length-1];if(typeof G==="function")G(K)}}function Y0(J,K,X){T5(J,K,X),J.onerror(K)}});var Y1=M((_4,z1)=>{var{kForOnEventAttribute:s,kListener:B5}=C(),X1=Symbol("kCode"),Z1=Symbol("kData"),$1=Symbol("kError"),G1=Symbol("kMessage"),Q1=Symbol("kReason"),i=Symbol("kTarget"),j1=Symbol("kType"),I1=Symbol("kWasClean");class E{constructor(J){this[i]=null,this[j1]=J}get target(){return this[i]}get type(){return this[j1]}}Object.defineProperty(E.prototype,"target",{enumerable:!0});Object.defineProperty(E.prototype,"type",{enumerable:!0});class k extends E{constructor(J,K={}){super(J);this[X1]=K.code===void 0?0:K.code,this[Q1]=K.reason===void 0?"":K.reason,this[I1]=K.wasClean===void 0?!1:K.wasClean}get code(){return this[X1]}get reason(){return this[Q1]}get wasClean(){return this[I1]}}Object.defineProperty(k.prototype,"code",{enumerable:!0});Object.defineProperty(k.prototype,"reason",{enumerable:!0});Object.defineProperty(k.prototype,"wasClean",{enumerable:!0});class o extends E{constructor(J,K={}){super(J);this[$1]=K.error===void 0?null:K.error,this[G1]=K.message===void 0?"":K.message}get error(){return this[$1]}get message(){return this[G1]}}Object.defineProperty(o.prototype,"error",{enumerable:!0});Object.defineProperty(o.prototype,"message",{enumerable:!0});class I5 extends E{constructor(J,K={}){super(J);this[Z1]=K.data===void 0?null:K.data}get data(){return this[Z1]}}Object.defineProperty(I5.prototype,"data",{enumerable:!0});var V0={addEventListener(J,K,X={}){for(let $ of this.listeners(J))if(!X[s]&&$[B5]===K&&!$[s])return;let Z;if(J==="message")Z=function(G,Q){let I=new I5("message",{data:Q?G:G.toString()});I[i]=this,j5(K,this,I)};else if(J==="close")Z=function(G,Q){let I=new k("close",{code:G,reason:Q.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});I[i]=this,j5(K,this,I)};else if(J==="error")Z=function(G){let Q=new o("error",{error:G,message:G.message});Q[i]=this,j5(K,this,Q)};else if(J==="open")Z=function(){let G=new E("open");G[i]=this,j5(K,this,G)};else return;if(Z[s]=!!X[s],Z[B5]=K,X.once)this.once(J,Z);else this.on(J,Z)},removeEventListener(J,K){for(let X of this.listeners(J))if(X[B5]===K&&!X[s]){this.removeListener(J,X);break}}};z1.exports={CloseEvent:k,ErrorEvent:o,Event:E,EventTarget:V0,MessageEvent:I5};function j5(J,K,X){if(typeof J==="object"&&J.handleEvent)J.handleEvent.call(J,X);else J.call(K,X)}});var C5=M((N4,V1)=>{var{tokenChars:t}=l();function B(J,K,X){if(J[K]===void 0)J[K]=[X];else J[K].push(X)}function _0(J){let K=Object.create(null),X=Object.create(null),Z=!1,$=!1,G=!1,Q,I,j=-1,V=-1,_=-1,Y=0;for(;Y<J.length;Y++)if(V=J.charCodeAt(Y),Q===void 0)if(_===-1&&t[V]===1){if(j===-1)j=Y}else if(Y!==0&&(V===32||V===9)){if(_===-1&&j!==-1)_=Y}else if(V===59||V===44){if(j===-1)throw SyntaxError(`Unexpected character at index ${Y}`);if(_===-1)_=Y;let D=J.slice(j,_);if(V===44)B(K,D,X),X=Object.create(null);else Q=D;j=_=-1}else throw SyntaxError(`Unexpected character at index ${Y}`);else if(I===void 0)if(_===-1&&t[V]===1){if(j===-1)j=Y}else if(V===32||V===9){if(_===-1&&j!==-1)_=Y}else if(V===59||V===44){if(j===-1)throw SyntaxError(`Unexpected character at index ${Y}`);if(_===-1)_=Y;if(B(X,J.slice(j,_),!0),V===44)B(K,Q,X),X=Object.create(null),Q=void 0;j=_=-1}else if(V===61&&j!==-1&&_===-1)I=J.slice(j,Y),j=_=-1;else throw SyntaxError(`Unexpected character at index ${Y}`);else if($){if(t[V]!==1)throw SyntaxError(`Unexpected character at index ${Y}`);if(j===-1)j=Y;else if(!Z)Z=!0;$=!1}else if(G)if(t[V]===1){if(j===-1)j=Y}else if(V===34&&j!==-1)G=!1,_=Y;else if(V===92)$=!0;else throw SyntaxError(`Unexpected character at index ${Y}`);else if(V===34&&J.charCodeAt(Y-1)===61)G=!0;else if(_===-1&&t[V]===1){if(j===-1)j=Y}else if(j!==-1&&(V===32||V===9)){if(_===-1)_=Y}else if(V===59||V===44){if(j===-1)throw SyntaxError(`Unexpected character at index ${Y}`);if(_===-1)_=Y;let D=J.slice(j,_);if(Z)D=D.replace(/\\/g,""),Z=!1;if(B(X,I,D),V===44)B(K,Q,X),X=Object.create(null),Q=void 0;I=void 0,j=_=-1}else throw SyntaxError(`Unexpected character at index ${Y}`);if(j===-1||G||V===32||V===9)throw SyntaxError("Unexpected end of input");if(_===-1)_=Y;let F=J.slice(j,_);if(Q===void 0)B(K,F,X);else{if(I===void 0)B(X,F,!0);else if(Z)B(X,I,F.replace(/\\/g,""));else B(X,I,F);B(K,Q,X)}return K}function N0(J){return Object.keys(J).map((K)=>{let X=J[K];if(!Array.isArray(X))X=[X];return X.map((Z)=>{return[K].concat(Object.keys(Z).map(($)=>{let G=Z[$];if(!Array.isArray(G))G=[G];return G.map((Q)=>Q===!0?$:`${$}=${Q}`).join("; ")})).join("; ")}).join(", ")}).join(", ")}V1.exports={format:N0,parse:_0}});var _5=M((A4,x1)=>{var H0=R("events"),R0=R("https"),A0=R("http"),H1=R("net"),F0=R("tls"),{randomBytes:D0,createHash:O0}=R("crypto"),{Duplex:H4,Readable:R4}=R("stream"),{URL:U5}=R("url"),y=a(),M0=P5(),P0=x5(),{isBlob:T0}=l(),{BINARY_TYPES:_1,EMPTY_BUFFER:z5,GUID:x0,kForOnEventAttribute:q5,kListener:B0,kStatusCode:C0,kWebSocket:A,NOOP:R1}=C(),{EventTarget:{addEventListener:U0,removeEventListener:q0}}=Y1(),{format:L0,parse:W0}=C5(),{toBuffer:E0}=n(),A1=Symbol("kAborted"),L5=[8,13],q=["CONNECTING","OPEN","CLOSING","CLOSED"],y0=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class z extends H0{constructor(J,K,X){super();if(this._binaryType=_1[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=z5,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=z.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,J!==null){if(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,K===void 0)K=[];else if(!Array.isArray(K))if(typeof K==="object"&&K!==null)X=K,K=[];else K=[K];F1(this,J,K,X)}else this._autoPong=X.autoPong,this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(J){if(!_1.includes(J))return;if(this._binaryType=J,this._receiver)this._receiver._binaryType=J}get bufferedAmount(){if(!this._socket)return this._bufferedAmount;return this._socket._writableState.length+this._sender._bufferedBytes}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(J,K,X){let Z=new M0({allowSynchronousEvents:X.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:X.maxPayload,skipUTF8Validation:X.skipUTF8Validation}),$=new P0(J,this._extensions,X.generateMask);if(this._receiver=Z,this._sender=$,this._socket=J,Z[A]=this,$[A]=this,J[A]=this,Z.on("conclude",g0),Z.on("drain",w0),Z.on("error",h0),Z.on("message",m0),Z.on("ping",f0),Z.on("pong",u0),$.onerror=l0,J.setTimeout)J.setTimeout(0);if(J.setNoDelay)J.setNoDelay();if(K.length>0)J.unshift(K);J.on("close",M1),J.on("data",V5),J.on("end",P1),J.on("error",T1),this._readyState=z.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=z.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}if(this._extensions[y.extensionName])this._extensions[y.extensionName].cleanup();this._receiver.removeAllListeners(),this._readyState=z.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(J,K){if(this.readyState===z.CLOSED)return;if(this.readyState===z.CONNECTING){P(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===z.CLOSING){if(this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted))this._socket.end();return}this._readyState=z.CLOSING,this._sender.close(J,K,!this._isServer,(X)=>{if(X)return;if(this._closeFrameSent=!0,this._closeFrameReceived||this._receiver._writableState.errorEmitted)this._socket.end()}),O1(this)}pause(){if(this.readyState===z.CONNECTING||this.readyState===z.CLOSED)return;this._paused=!0,this._socket.pause()}ping(J,K,X){if(this.readyState===z.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof J==="function")X=J,J=K=void 0;else if(typeof K==="function")X=K,K=void 0;if(typeof J==="number")J=J.toString();if(this.readyState!==z.OPEN){W5(this,J,X);return}if(K===void 0)K=!this._isServer;this._sender.ping(J||z5,K,X)}pong(J,K,X){if(this.readyState===z.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof J==="function")X=J,J=K=void 0;else if(typeof K==="function")X=K,K=void 0;if(typeof J==="number")J=J.toString();if(this.readyState!==z.OPEN){W5(this,J,X);return}if(K===void 0)K=!this._isServer;this._sender.pong(J||z5,K,X)}resume(){if(this.readyState===z.CONNECTING||this.readyState===z.CLOSED)return;if(this._paused=!1,!this._receiver._writableState.needDrain)this._socket.resume()}send(J,K,X){if(this.readyState===z.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof K==="function")X=K,K={};if(typeof J==="number")J=J.toString();if(this.readyState!==z.OPEN){W5(this,J,X);return}let Z={binary:typeof J!=="string",mask:!this._isServer,compress:!0,fin:!0,...K};if(!this._extensions[y.extensionName])Z.compress=!1;this._sender.send(J||z5,Z,X)}terminate(){if(this.readyState===z.CLOSED)return;if(this.readyState===z.CONNECTING){P(this,this._req,"WebSocket was closed before the connection was established");return}if(this._socket)this._readyState=z.CLOSING,this._socket.destroy()}}Object.defineProperty(z,"CONNECTING",{enumerable:!0,value:q.indexOf("CONNECTING")});Object.defineProperty(z.prototype,"CONNECTING",{enumerable:!0,value:q.indexOf("CONNECTING")});Object.defineProperty(z,"OPEN",{enumerable:!0,value:q.indexOf("OPEN")});Object.defineProperty(z.prototype,"OPEN",{enumerable:!0,value:q.indexOf("OPEN")});Object.defineProperty(z,"CLOSING",{enumerable:!0,value:q.indexOf("CLOSING")});Object.defineProperty(z.prototype,"CLOSING",{enumerable:!0,value:q.indexOf("CLOSING")});Object.defineProperty(z,"CLOSED",{enumerable:!0,value:q.indexOf("CLOSED")});Object.defineProperty(z.prototype,"CLOSED",{enumerable:!0,value:q.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((J)=>{Object.defineProperty(z.prototype,J,{enumerable:!0})});["open","error","close","message"].forEach((J)=>{Object.defineProperty(z.prototype,`on${J}`,{enumerable:!0,get(){for(let K of this.listeners(J))if(K[q5])return K[B0];return null},set(K){for(let X of this.listeners(J))if(X[q5]){this.removeListener(J,X);break}if(typeof K!=="function")return;this.addEventListener(J,K,{[q5]:!0})}})});z.prototype.addEventListener=U0;z.prototype.removeEventListener=q0;x1.exports=z;function F1(J,K,X,Z){let $={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:L5[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...Z,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(J._autoPong=$.autoPong,!L5.includes($.protocolVersion))throw RangeError(`Unsupported protocol version: ${$.protocolVersion} (supported versions: ${L5.join(", ")})`);let G;if(K instanceof U5)G=K;else try{G=new U5(K)}catch(N){throw SyntaxError(`Invalid URL: ${K}`)}if(G.protocol==="http:")G.protocol="ws:";else if(G.protocol==="https:")G.protocol="wss:";J._url=G.href;let Q=G.protocol==="wss:",I=G.protocol==="ws+unix:",j;if(G.protocol!=="ws:"&&!Q&&!I)j=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`;else if(I&&!G.pathname)j="The URL's pathname is empty";else if(G.hash)j="The URL contains a fragment identifier";if(j){let N=SyntaxError(j);if(J._redirects===0)throw N;else{Y5(J,N);return}}let V=Q?443:80,_=D0(16).toString("base64"),Y=Q?R0.request:A0.request,F=new Set,D;if($.createConnection=$.createConnection||(Q?v0:S0),$.defaultPort=$.defaultPort||V,$.port=G.port||V,$.host=G.hostname.startsWith("[")?G.hostname.slice(1,-1):G.hostname,$.headers={...$.headers,"Sec-WebSocket-Version":$.protocolVersion,"Sec-WebSocket-Key":_,Connection:"Upgrade",Upgrade:"websocket"},$.path=G.pathname+G.search,$.timeout=$.handshakeTimeout,$.perMessageDeflate)D=new y($.perMessageDeflate!==!0?$.perMessageDeflate:{},!1,$.maxPayload),$.headers["Sec-WebSocket-Extensions"]=L0({[y.extensionName]:D.offer()});if(X.length){for(let N of X){if(typeof N!=="string"||!y0.test(N)||F.has(N))throw SyntaxError("An invalid or duplicated subprotocol was specified");F.add(N)}$.headers["Sec-WebSocket-Protocol"]=X.join(",")}if($.origin)if($.protocolVersion<13)$.headers["Sec-WebSocket-Origin"]=$.origin;else $.headers.Origin=$.origin;if(G.username||G.password)$.auth=`${G.username}:${G.password}`;if(I){let N=$.path.split(":");$.socketPath=N[0],$.path=N[1]}let H;if($.followRedirects){if(J._redirects===0){J._originalIpc=I,J._originalSecure=Q,J._originalHostOrSocketPath=I?$.socketPath:G.host;let N=Z&&Z.headers;if(Z={...Z,headers:{}},N)for(let[O,h]of Object.entries(N))Z.headers[O.toLowerCase()]=h}else if(J.listenerCount("redirect")===0){let N=I?J._originalIpc?$.socketPath===J._originalHostOrSocketPath:!1:J._originalIpc?!1:G.host===J._originalHostOrSocketPath;if(!N||J._originalSecure&&!Q){if(delete $.headers.authorization,delete $.headers.cookie,!N)delete $.headers.host;$.auth=void 0}}if($.auth&&!Z.headers.authorization)Z.headers.authorization="Basic "+Buffer.from($.auth).toString("base64");if(H=J._req=Y($),J._redirects)J.emit("redirect",J.url,H)}else H=J._req=Y($);if($.timeout)H.on("timeout",()=>{P(J,H,"Opening handshake has timed out")});if(H.on("error",(N)=>{if(H===null||H[A1])return;H=J._req=null,Y5(J,N)}),H.on("response",(N)=>{let O=N.headers.location,h=N.statusCode;if(O&&$.followRedirects&&h>=300&&h<400){if(++J._redirects>$.maxRedirects){P(J,H,"Maximum redirects exceeded");return}H.abort();let d;try{d=new U5(O,K)}catch(E5){let m=SyntaxError(`Invalid URL: ${O}`);Y5(J,m);return}F1(J,d,X,Z)}else if(!J.emit("unexpected-response",H,N))P(J,H,`Unexpected server response: ${N.statusCode}`)}),H.on("upgrade",(N,O,h)=>{if(J.emit("upgrade",N),J.readyState!==z.CONNECTING)return;H=J._req=null;let d=N.headers.upgrade;if(d===void 0||d.toLowerCase()!=="websocket"){P(J,O,"Invalid Upgrade header");return}let E5=O0("sha1").update(_+x0).digest("base64");if(N.headers["sec-websocket-accept"]!==E5){P(J,O,"Invalid Sec-WebSocket-Accept header");return}let m=N.headers["sec-websocket-protocol"],c;if(m!==void 0){if(!F.size)c="Server sent a subprotocol but none was requested";else if(!F.has(m))c="Server sent an invalid subprotocol"}else if(F.size)c="Server sent no subprotocol";if(c){P(J,O,c);return}if(m)J._protocol=m;let y5=N.headers["sec-websocket-extensions"];if(y5!==void 0){if(!D){P(J,O,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let H5;try{H5=W0(y5)}catch(R5){P(J,O,"Invalid Sec-WebSocket-Extensions header");return}let S5=Object.keys(H5);if(S5.length!==1||S5[0]!==y.extensionName){P(J,O,"Server indicated an extension that was not requested");return}try{D.accept(H5[y.extensionName])}catch(R5){P(J,O,"Invalid Sec-WebSocket-Extensions header");return}J._extensions[y.extensionName]=D}J.setSocket(O,h,{allowSynchronousEvents:$.allowSynchronousEvents,generateMask:$.generateMask,maxPayload:$.maxPayload,skipUTF8Validation:$.skipUTF8Validation})}),$.finishRequest)$.finishRequest(H,J);else H.end()}function Y5(J,K){J._readyState=z.CLOSING,J._errorEmitted=!0,J.emit("error",K),J.emitClose()}function S0(J){return J.path=J.socketPath,H1.connect(J)}function v0(J){if(J.path=void 0,!J.servername&&J.servername!=="")J.servername=H1.isIP(J.host)?"":J.host;return F0.connect(J)}function P(J,K,X){J._readyState=z.CLOSING;let Z=Error(X);if(Error.captureStackTrace(Z,P),K.setHeader){if(K[A1]=!0,K.abort(),K.socket&&!K.socket.destroyed)K.socket.destroy();process.nextTick(Y5,J,Z)}else K.destroy(Z),K.once("error",J.emit.bind(J,"error")),K.once("close",J.emitClose.bind(J))}function W5(J,K,X){if(K){let Z=T0(K)?K.size:E0(K).length;if(J._socket)J._sender._bufferedBytes+=Z;else J._bufferedAmount+=Z}if(X){let Z=Error(`WebSocket is not open: readyState ${J.readyState} (${q[J.readyState]})`);process.nextTick(X,Z)}}function g0(J,K){let X=this[A];if(X._closeFrameReceived=!0,X._closeMessage=K,X._closeCode=J,X._socket[A]===void 0)return;if(X._socket.removeListener("data",V5),process.nextTick(D1,X._socket),J===1005)X.close();else X.close(J,K)}function w0(){let J=this[A];if(!J.isPaused)J._socket.resume()}function h0(J){let K=this[A];if(K._socket[A]!==void 0)K._socket.removeListener("data",V5),process.nextTick(D1,K._socket),K.close(J[C0]);if(!K._errorEmitted)K._errorEmitted=!0,K.emit("error",J)}function N1(){this[A].emitClose()}function m0(J,K){this[A].emit("message",J,K)}function f0(J){let K=this[A];if(K._autoPong)K.pong(J,!this._isServer,R1);K.emit("ping",J)}function u0(J){this[A].emit("pong",J)}function D1(J){J.resume()}function l0(J){let K=this[A];if(K.readyState===z.CLOSED)return;if(K.readyState===z.OPEN)K._readyState=z.CLOSING,O1(K);if(this._socket.end(),!K._errorEmitted)K._errorEmitted=!0,K.emit("error",J)}function O1(J){J._closeTimer=setTimeout(J._socket.destroy.bind(J._socket),30000)}function M1(){let J=this[A];this.removeListener("close",M1),this.removeListener("data",V5),this.removeListener("end",P1),J._readyState=z.CLOSING;let K;if(!this._readableState.endEmitted&&!J._closeFrameReceived&&!J._receiver._writableState.errorEmitted&&(K=J._socket.read())!==null)J._receiver.write(K);if(J._receiver.end(),this[A]=void 0,clearTimeout(J._closeTimer),J._receiver._writableState.finished||J._receiver._writableState.errorEmitted)J.emitClose();else J._receiver.on("error",N1),J._receiver.on("finish",N1)}function V5(J){if(!this[A]._receiver.write(J))this.pause()}function P1(){let J=this[A];J._readyState=z.CLOSING,J._receiver.end(),this.end()}function T1(){let J=this[A];if(this.removeListener("error",T1),this.on("error",R1),J)J._readyState=z.CLOSING,this.destroy()}});var q1=M((D4,U1)=>{var F4=_5(),{Duplex:p0}=R("stream");function B1(J){J.emit("close")}function b0(){if(!this.destroyed&&this._writableState.finished)this.destroy()}function C1(J){if(this.removeListener("error",C1),this.destroy(),this.listenerCount("error")===0)this.emit("error",J)}function i0(J,K){let X=!0,Z=new p0({...K,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return J.on("message",function(G,Q){let I=!Q&&Z._readableState.objectMode?G.toString():G;if(!Z.push(I))J.pause()}),J.once("error",function(G){if(Z.destroyed)return;X=!1,Z.destroy(G)}),J.once("close",function(){if(Z.destroyed)return;Z.push(null)}),Z._destroy=function($,G){if(J.readyState===J.CLOSED){G($),process.nextTick(B1,Z);return}let Q=!1;if(J.once("error",function(j){Q=!0,G(j)}),J.once("close",function(){if(!Q)G($);process.nextTick(B1,Z)}),X)J.terminate()},Z._final=function($){if(J.readyState===J.CONNECTING){J.once("open",function(){Z._final($)});return}if(J._socket===null)return;if(J._socket._writableState.finished){if($(),Z._readableState.endEmitted)Z.destroy()}else J._socket.once("finish",function(){$()}),J.close()},Z._read=function(){if(J.isPaused)J.resume()},Z._write=function($,G,Q){if(J.readyState===J.CONNECTING){J.once("open",function(){Z._write($,G,Q)});return}J.send($,Q)},Z.on("end",b0),Z.on("error",C1),Z}U1.exports=i0});var W1=M((O4,L1)=>{var{tokenChars:k0}=l();function d0(J){let K=new Set,X=-1,Z=-1,$=0;for($;$<J.length;$++){let Q=J.charCodeAt($);if(Z===-1&&k0[Q]===1){if(X===-1)X=$}else if($!==0&&(Q===32||Q===9)){if(Z===-1&&X!==-1)Z=$}else if(Q===44){if(X===-1)throw SyntaxError(`Unexpected character at index ${$}`);if(Z===-1)Z=$;let I=J.slice(X,Z);if(K.has(I))throw SyntaxError(`The "${I}" subprotocol is duplicated`);K.add(I),X=Z=-1}else throw SyntaxError(`Unexpected character at index ${$}`)}if(X===-1||Z!==-1)throw SyntaxError("Unexpected end of input");let G=J.slice(X,$);if(K.has(G))throw SyntaxError(`The "${G}" subprotocol is duplicated`);return K.add(G),K}L1.exports={parse:d0}});var g1=M((P4,v1)=>{var c0=R("events"),N5=R("http"),{Duplex:M4}=R("stream"),{createHash:n0}=R("crypto"),E1=C5(),g=a(),r0=W1(),a0=_5(),{GUID:s0,kWebSocket:o0}=C(),t0=/^[+/0-9A-Za-z]{22}==$/;class S1 extends c0{constructor(J,K){super();if(J={allowSynchronousEvents:!0,autoPong:!0,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:a0,...J},J.port==null&&!J.server&&!J.noServer||J.port!=null&&(J.server||J.noServer)||J.server&&J.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(J.port!=null)this._server=N5.createServer((X,Z)=>{let $=N5.STATUS_CODES[426];Z.writeHead(426,{"Content-Length":$.length,"Content-Type":"text/plain"}),Z.end($)}),this._server.listen(J.port,J.host,J.backlog,K);else if(J.server)this._server=J.server;if(this._server){let X=this.emit.bind(this,"connection");this._removeListeners=e0(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(Z,$,G)=>{this.handleUpgrade(Z,$,G,X)}})}if(J.perMessageDeflate===!0)J.perMessageDeflate={};if(J.clientTracking)this.clients=new Set,this._shouldEmitClose=!1;this.options=J,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');if(!this._server)return null;return this._server.address()}close(J){if(this._state===2){if(J)this.once("close",()=>{J(Error("The server is not running"))});process.nextTick(e,this);return}if(J)this.once("close",J);if(this._state===1)return;if(this._state=1,this.options.noServer||this.options.server){if(this._server)this._removeListeners(),this._removeListeners=this._server=null;if(this.clients)if(!this.clients.size)process.nextTick(e,this);else this._shouldEmitClose=!0;else process.nextTick(e,this)}else{let K=this._server;this._removeListeners(),this._removeListeners=this._server=null,K.close(()=>{e(this)})}}shouldHandle(J){if(this.options.path){let K=J.url.indexOf("?");if((K!==-1?J.url.slice(0,K):J.url)!==this.options.path)return!1}return!0}handleUpgrade(J,K,X,Z){K.on("error",y1);let $=J.headers["sec-websocket-key"],G=J.headers.upgrade,Q=+J.headers["sec-websocket-version"];if(J.method!=="GET"){w(this,J,K,405,"Invalid HTTP method");return}if(G===void 0||G.toLowerCase()!=="websocket"){w(this,J,K,400,"Invalid Upgrade header");return}if($===void 0||!t0.test($)){w(this,J,K,400,"Missing or invalid Sec-WebSocket-Key header");return}if(Q!==13&&Q!==8){w(this,J,K,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(J)){J5(K,400);return}let I=J.headers["sec-websocket-protocol"],j=new Set;if(I!==void 0)try{j=r0.parse(I)}catch(Y){w(this,J,K,400,"Invalid Sec-WebSocket-Protocol header");return}let V=J.headers["sec-websocket-extensions"],_={};if(this.options.perMessageDeflate&&V!==void 0){let Y=new g(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let F=E1.parse(V);if(F[g.extensionName])Y.accept(F[g.extensionName]),_[g.extensionName]=Y}catch(F){w(this,J,K,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let Y={origin:J.headers[`${Q===8?"sec-websocket-origin":"origin"}`],secure:!!(J.socket.authorized||J.socket.encrypted),req:J};if(this.options.verifyClient.length===2){this.options.verifyClient(Y,(F,D,H,N)=>{if(!F)return J5(K,D||401,H,N);this.completeUpgrade(_,$,j,J,K,X,Z)});return}if(!this.options.verifyClient(Y))return J5(K,401)}this.completeUpgrade(_,$,j,J,K,X,Z)}completeUpgrade(J,K,X,Z,$,G,Q){if(!$.readable||!$.writable)return $.destroy();if($[o0])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return J5($,503);let j=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${n0("sha1").update(K+s0).digest("base64")}`],V=new this.options.WebSocket(null,void 0,this.options);if(X.size){let _=this.options.handleProtocols?this.options.handleProtocols(X,Z):X.values().next().value;if(_)j.push(`Sec-WebSocket-Protocol: ${_}`),V._protocol=_}if(J[g.extensionName]){let _=J[g.extensionName].params,Y=E1.format({[g.extensionName]:[_]});j.push(`Sec-WebSocket-Extensions: ${Y}`),V._extensions=J}if(this.emit("headers",j,Z),$.write(j.concat(`\r
2
2
  `).join(`\r
3
3
  `)),$.removeListener("error",y1),V.setSocket($,G,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients)this.clients.add(V),V.on("close",()=>{if(this.clients.delete(V),this._shouldEmitClose&&!this.clients.size)process.nextTick(e,this)});Q(V,Z)}}v1.exports=S1;function e0(J,K){for(let X of Object.keys(K))J.on(X,K[X]);return function(){for(let Z of Object.keys(K))J.removeListener(Z,K[Z])}}function e(J){J._state=2,J.emit("close")}function y1(){this.destroy()}function J5(J,K,X,Z){X=X||N5.STATUS_CODES[K],Z={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(X),...Z},J.once("finish",J.destroy),J.end(`HTTP/1.1 ${K} ${N5.STATUS_CODES[K]}\r
4
4
  `+Object.keys(Z).map(($)=>`${$}: ${Z[$]}`).join(`\r
5
5
  `)+`\r
6
6
  \r
7
7
  `+X)}function w(J,K,X,Z,$,G){if(J.listenerCount("wsClientError")){let Q=Error($);Error.captureStackTrace(Q,w),J.emit("wsClientError",Q,X,K)}else J5(X,Z,$,G)}});var J4=K5(q1(),1),K4=K5(P5(),1),X4=K5(x5(),1),w1=K5(_5(),1),Z4=K5(g1(),1);var x4=w1.default;
8
- export{w1 as A,x4 as B};
8
+ export{w1 as wa,x4 as xa};
9
9
 
10
- //# debugId=2089AB142BF11F8364756E2164756E21
10
+ //# debugId=DF75F4413F51DBC464756E2164756E21
@@ -18,6 +18,6 @@
18
18
  "import createWebSocketStream from './lib/stream.js';\nimport Receiver from './lib/receiver.js';\nimport Sender from './lib/sender.js';\nimport WebSocket from './lib/websocket.js';\nimport WebSocketServer from './lib/websocket-server.js';\n\nexport { createWebSocketStream, Receiver, Sender, WebSocket, WebSocketServer };\nexport default WebSocket;\n"
19
19
  ],
20
20
  "mappings": "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",
21
- "debugId": "2089AB142BF11F8364756E2164756E21",
21
+ "debugId": "DF75F4413F51DBC464756E2164756E21",
22
22
  "names": []
23
23
  }
@@ -0,0 +1,4 @@
1
+ import"./chunk-f9yb2zk3.js";import{AutoTokenizer as B}from"@huggingface/transformers";var Q=new Map,V=new Set,W=new Set,G=3,U={"gpt-4":"Xenova/gpt-4","gpt-4-turbo":"Xenova/gpt-4","gpt-4o":"Xenova/gpt-4","gpt-3.5-turbo":"Xenova/gpt-3.5-turbo","gpt-3.5":"Xenova/gpt-3.5-turbo","claude-3-opus":"Xenova/claude-tokenizer","claude-3-sonnet":"Xenova/claude-tokenizer","claude-3-haiku":"Xenova/claude-tokenizer","claude-3.5-sonnet":"Xenova/claude-tokenizer","claude-3.5-haiku":"Xenova/claude-tokenizer",starcoder:"bigcode/starcoder",starcoder2:"bigcode/starcoder2-3b",codellama:"codellama/CodeLlama-7b-hf",gemini:"Xenova/gpt-4",default:"Xenova/gpt-4"};function H(j){if(!j)return U.default;if(U[j])return U[j];let q=j.toLowerCase();for(let[J,P]of Object.entries(U))if(q.includes(J))return P;return U.default}function Y(j){if(!j)return 0;let q=j.split(/\s+/).filter(Boolean).length,J=j.length,P=Math.ceil(J/3.5),v=Math.ceil(q*1.3);return Math.round((P+v)/2)}async function S(j){let q=H(j);if(Q.has(q))return Q.get(q);if(W.has(q))return null;while(V.has(q))await new Promise((J)=>setTimeout(J,100));if(Q.has(q))return Q.get(q);if(W.has(q))return null;try{V.add(q);let J=await B.from_pretrained(q,{cache_dir:"./models/.cache",local_files_only:!1});if(Q.size>=G){let P=Q.keys().next().value;if(P)Q.delete(P)}return Q.set(q,J),V.delete(q),J}catch(J){return console.warn("[TokenCounter] BPE tokenizer initialization failed, using fallback estimation:",J),W.add(q),V.delete(q),null}}async function $(j,q){if(!j)return 0;let J=await S(q);if(!J)return Y(j);try{let P=await J(j);if(P.input_ids&&P.input_ids.size)return P.input_ids.size;if(Array.isArray(P.input_ids))return P.input_ids.length;if(P.input_ids.data)return P.input_ids.data.length;return Y(j)}catch(P){return console.warn("[TokenCounter] Token counting failed, using fallback:",P),Y(j)}}function X(j){return Y(j)}function p(j){if(j<1000)return j.toString();if(j<1e6)return`${(j/1000).toFixed(1)}K`;return`${(j/1e6).toFixed(1)}M`}async function y(j,q){return $(j,q)}async function A(j,q){let J=await $(j,q);return`${p(J)} Tokens`}function b(j){let q=X(j);return`${p(q)} Tokens`}async function f(j,q){return Promise.all(j.map((J)=>$(J,q)))}function D(j){return j.map(X)}async function L(j){let q=H(j),J=await S(j);return{modelName:j||"default",tokenizerName:q,loaded:J!==null,failed:W.has(q)}}function R(){return Object.keys(U).filter((j)=>j!=="default")}export{L as getTokenizerInfo,R as getSupportedModels,p as formatTokenCount,D as estimateTokensBatch,X as estimateTokens,y as countTokensForModel,f as countTokensBatch,$ as countTokens,b as countAndFormatSync,A as countAndFormat};
2
+ export{p as t,L as u};
3
+
4
+ //# debugId=0C9FB9C9D50392DD64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/utils/token-counter.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Token Counter Utility\n * BPE-based token counting using Hugging Face AutoTokenizer\n *\n * Primary method: BPE tokenizer (auto-selected by Hugging Face)\n * Fallback: Fast estimation when tokenizer unavailable\n */\n\nimport { AutoTokenizer } from '@huggingface/transformers';\n\n// Cache for multiple tokenizers (keyed by tokenizer name)\n// Limited to 3 tokenizers to prevent memory leak (each ~100-500MB)\nconst tokenizerCache = new Map<string, any>();\nconst tokenizerInitializing = new Set<string>();\nconst tokenizerFailed = new Set<string>();\nconst MAX_CACHED_TOKENIZERS = 3;\n\n/**\n * Map provider model names to tokenizer names\n * AutoTokenizer will automatically find the right tokenizer for each model\n */\nconst MODEL_TO_TOKENIZER: Record<string, string> = {\n // OpenAI models\n 'gpt-4': 'Xenova/gpt-4',\n 'gpt-4-turbo': 'Xenova/gpt-4',\n 'gpt-4o': 'Xenova/gpt-4',\n 'gpt-3.5-turbo': 'Xenova/gpt-3.5-turbo',\n 'gpt-3.5': 'Xenova/gpt-3.5-turbo',\n\n // Anthropic Claude models\n 'claude-3-opus': 'Xenova/claude-tokenizer',\n 'claude-3-sonnet': 'Xenova/claude-tokenizer',\n 'claude-3-haiku': 'Xenova/claude-tokenizer',\n 'claude-3.5-sonnet': 'Xenova/claude-tokenizer',\n 'claude-3.5-haiku': 'Xenova/claude-tokenizer',\n\n // Code models\n 'starcoder': 'bigcode/starcoder',\n 'starcoder2': 'bigcode/starcoder2-3b',\n 'codellama': 'codellama/CodeLlama-7b-hf',\n\n // Google models\n 'gemini': 'Xenova/gpt-4', // Fallback to GPT-4 (no official Gemini tokenizer)\n\n // Fallback\n 'default': 'Xenova/gpt-4',\n};\n\n/**\n * Get tokenizer name for a model\n * AutoTokenizer will find the right tokenizer automatically\n */\nfunction getTokenizerForModel(modelName?: string): string {\n if (!modelName) return MODEL_TO_TOKENIZER['default'];\n\n // Direct match\n if (MODEL_TO_TOKENIZER[modelName]) {\n return MODEL_TO_TOKENIZER[modelName];\n }\n\n // Fuzzy match (e.g., \"gpt-4-turbo-preview\" → \"gpt-4\")\n const modelLower = modelName.toLowerCase();\n for (const [key, tokenizer] of Object.entries(MODEL_TO_TOKENIZER)) {\n if (modelLower.includes(key)) {\n return tokenizer;\n }\n }\n\n // Default fallback\n return MODEL_TO_TOKENIZER['default'];\n}\n\n/**\n * Fast fallback estimation (only when BPE tokenizer unavailable)\n * Based on ~3.5 chars per token for code\n */\nfunction estimateFallback(text: string): number {\n if (!text) return 0;\n\n const words = text.split(/\\s+/).filter(Boolean).length;\n const chars = text.length;\n\n const charBasedEstimate = Math.ceil(chars / 3.5);\n const wordBasedEstimate = Math.ceil(words * 1.3);\n\n return Math.round((charBasedEstimate + wordBasedEstimate) / 2);\n}\n\n/**\n * Initialize BPE tokenizer (lazy, cached per tokenizer name)\n * Uses Hugging Face AutoTokenizer to automatically select best tokenizer\n */\nasync function ensureTokenizer(modelName?: string): Promise<any | null> {\n // Get tokenizer name for this model\n const tokenizerName = getTokenizerForModel(modelName);\n\n // Check if already cached\n if (tokenizerCache.has(tokenizerName)) {\n return tokenizerCache.get(tokenizerName);\n }\n\n // Check if previous initialization failed\n if (tokenizerFailed.has(tokenizerName)) {\n return null;\n }\n\n // Wait if initialization in progress for this tokenizer\n while (tokenizerInitializing.has(tokenizerName)) {\n await new Promise(resolve => setTimeout(resolve, 100));\n }\n\n // Check again after waiting\n if (tokenizerCache.has(tokenizerName)) {\n return tokenizerCache.get(tokenizerName);\n }\n if (tokenizerFailed.has(tokenizerName)) {\n return null;\n }\n\n // Initialize with Hugging Face AutoTokenizer\n try {\n tokenizerInitializing.add(tokenizerName);\n\n // Let Hugging Face auto-select and load the best tokenizer\n const tokenizer = await AutoTokenizer.from_pretrained(tokenizerName, {\n // Cache models locally for faster subsequent loads\n cache_dir: './models/.cache',\n // Use local files if available, otherwise download\n local_files_only: false,\n });\n\n // Limit cache size - evict oldest tokenizer if limit reached\n if (tokenizerCache.size >= MAX_CACHED_TOKENIZERS) {\n const oldestKey = tokenizerCache.keys().next().value;\n if (oldestKey) {\n tokenizerCache.delete(oldestKey);\n }\n }\n\n tokenizerCache.set(tokenizerName, tokenizer);\n tokenizerInitializing.delete(tokenizerName);\n return tokenizer;\n } catch (error) {\n console.warn('[TokenCounter] BPE tokenizer initialization failed, using fallback estimation:', error);\n tokenizerFailed.add(tokenizerName);\n tokenizerInitializing.delete(tokenizerName);\n return null;\n }\n}\n\n/**\n * Count tokens using BPE tokenizer (Hugging Face AutoTokenizer)\n * Falls back to estimation if tokenizer unavailable\n *\n * @param text Text to count tokens for\n * @param modelName Optional model name to use specific tokenizer\n * @returns Token count\n */\nexport async function countTokens(text: string, modelName?: string): Promise<number> {\n if (!text) return 0;\n\n const tokenizer = await ensureTokenizer(modelName);\n\n if (!tokenizer) {\n // Tokenizer unavailable, use fallback\n return estimateFallback(text);\n }\n\n try {\n // Use Hugging Face tokenizer API\n const encoded = await tokenizer(text);\n\n // Get token count from encoded result\n if (encoded.input_ids && encoded.input_ids.size) {\n return encoded.input_ids.size;\n }\n\n // Fallback: count array length\n if (Array.isArray(encoded.input_ids)) {\n return encoded.input_ids.length;\n }\n\n // Fallback: if it's a tensor, get its length\n if (encoded.input_ids.data) {\n return encoded.input_ids.data.length;\n }\n\n // Last resort fallback\n return estimateFallback(text);\n } catch (error) {\n console.warn('[TokenCounter] Token counting failed, using fallback:', error);\n return estimateFallback(text);\n }\n}\n\n/**\n * Synchronous token estimation (for cases where async is not possible)\n * Uses fallback estimation only\n */\nexport function estimateTokens(text: string): number {\n return estimateFallback(text);\n}\n\n/**\n * Format token count for display\n * Examples: 150 -> \"150\", 1500 -> \"1.5K\", 1500000 -> \"1.5M\"\n */\nexport function formatTokenCount(count: number): string {\n if (count < 1000) {\n return count.toString();\n }\n\n if (count < 1000000) {\n const k = count / 1000;\n return `${k.toFixed(1)}K`;\n }\n\n const m = count / 1000000;\n return `${m.toFixed(1)}M`;\n}\n\n/**\n * Count tokens for specific model\n * Uses the correct tokenizer for that model\n */\nexport async function countTokensForModel(text: string, modelName: string): Promise<number> {\n return countTokens(text, modelName);\n}\n\n/**\n * Count tokens with display formatting\n * Uses BPE tokenizer (async)\n */\nexport async function countAndFormat(text: string, modelName?: string): Promise<string> {\n const count = await countTokens(text, modelName);\n return `${formatTokenCount(count)} Tokens`;\n}\n\n/**\n * Count tokens with display formatting (sync, estimation only)\n * Use this only when async is not possible\n */\nexport function countAndFormatSync(text: string): string {\n const count = estimateTokens(text);\n return `${formatTokenCount(count)} Tokens`;\n}\n\n/**\n * Batch count tokens for multiple texts\n * Uses BPE tokenizer\n */\nexport async function countTokensBatch(texts: string[], modelName?: string): Promise<number[]> {\n return Promise.all(texts.map(text => countTokens(text, modelName)));\n}\n\n/**\n * Batch count tokens (sync estimation fallback)\n */\nexport function estimateTokensBatch(texts: string[]): number[] {\n return texts.map(estimateTokens);\n}\n\n/**\n * Get tokenizer info (for debugging)\n */\nexport async function getTokenizerInfo(modelName?: string): Promise<{\n modelName: string;\n tokenizerName: string;\n loaded: boolean;\n failed: boolean;\n} | null> {\n const tokenizerName = getTokenizerForModel(modelName);\n const tokenizer = await ensureTokenizer(modelName);\n\n return {\n modelName: modelName || 'default',\n tokenizerName,\n loaded: tokenizer !== null,\n failed: tokenizerFailed.has(tokenizerName),\n };\n}\n\n/**\n * Get supported models\n */\nexport function getSupportedModels(): string[] {\n return Object.keys(MODEL_TO_TOKENIZER).filter(k => k !== 'default');\n}\n"
6
+ ],
7
+ "mappings": "4BAQA,wBAAS,kCAIT,IAAM,EAAiB,IAAI,IACrB,EAAwB,IAAI,IAC5B,EAAkB,IAAI,IACtB,EAAwB,EAMxB,EAA6C,CAEjD,QAAS,eACT,cAAe,eACf,SAAU,eACV,gBAAiB,uBACjB,UAAW,uBAGX,gBAAiB,0BACjB,kBAAmB,0BACnB,iBAAkB,0BAClB,oBAAqB,0BACrB,mBAAoB,0BAGpB,UAAa,oBACb,WAAc,wBACd,UAAa,4BAGb,OAAU,eAGV,QAAW,cACb,EAMA,SAAS,CAAoB,CAAC,EAA4B,CACxD,GAAI,CAAC,EAAW,OAAO,EAAmB,QAG1C,GAAI,EAAmB,GACrB,OAAO,EAAmB,GAI5B,IAAM,EAAa,EAAU,YAAY,EACzC,QAAY,EAAK,KAAc,OAAO,QAAQ,CAAkB,EAC9D,GAAI,EAAW,SAAS,CAAG,EACzB,OAAO,EAKX,OAAO,EAAmB,QAO5B,SAAS,CAAgB,CAAC,EAAsB,CAC9C,GAAI,CAAC,EAAM,MAAO,GAElB,IAAM,EAAQ,EAAK,MAAM,KAAK,EAAE,OAAO,OAAO,EAAE,OAC1C,EAAQ,EAAK,OAEb,EAAoB,KAAK,KAAK,EAAQ,GAAG,EACzC,EAAoB,KAAK,KAAK,EAAQ,GAAG,EAE/C,OAAO,KAAK,OAAO,EAAoB,GAAqB,CAAC,EAO/D,eAAe,CAAe,CAAC,EAAyC,CAEtE,IAAM,EAAgB,EAAqB,CAAS,EAGpD,GAAI,EAAe,IAAI,CAAa,EAClC,OAAO,EAAe,IAAI,CAAa,EAIzC,GAAI,EAAgB,IAAI,CAAa,EACnC,OAAO,KAIT,MAAO,EAAsB,IAAI,CAAa,EAC5C,MAAM,IAAI,QAAQ,KAAW,WAAW,EAAS,GAAG,CAAC,EAIvD,GAAI,EAAe,IAAI,CAAa,EAClC,OAAO,EAAe,IAAI,CAAa,EAEzC,GAAI,EAAgB,IAAI,CAAa,EACnC,OAAO,KAIT,GAAI,CACF,EAAsB,IAAI,CAAa,EAGvC,IAAM,EAAY,MAAM,EAAc,gBAAgB,EAAe,CAEnE,UAAW,kBAEX,iBAAkB,EACpB,CAAC,EAGD,GAAI,EAAe,MAAQ,EAAuB,CAChD,IAAM,EAAY,EAAe,KAAK,EAAE,KAAK,EAAE,MAC/C,GAAI,EACF,EAAe,OAAO,CAAS,EAMnC,OAFA,EAAe,IAAI,EAAe,CAAS,EAC3C,EAAsB,OAAO,CAAa,EACnC,EACP,MAAO,EAAO,CAId,OAHA,QAAQ,KAAK,iFAAkF,CAAK,EACpG,EAAgB,IAAI,CAAa,EACjC,EAAsB,OAAO,CAAa,EACnC,MAYX,eAAsB,CAAW,CAAC,EAAc,EAAqC,CACnF,GAAI,CAAC,EAAM,MAAO,GAElB,IAAM,EAAY,MAAM,EAAgB,CAAS,EAEjD,GAAI,CAAC,EAEH,OAAO,EAAiB,CAAI,EAG9B,GAAI,CAEF,IAAM,EAAU,MAAM,EAAU,CAAI,EAGpC,GAAI,EAAQ,WAAa,EAAQ,UAAU,KACzC,OAAO,EAAQ,UAAU,KAI3B,GAAI,MAAM,QAAQ,EAAQ,SAAS,EACjC,OAAO,EAAQ,UAAU,OAI3B,GAAI,EAAQ,UAAU,KACpB,OAAO,EAAQ,UAAU,KAAK,OAIhC,OAAO,EAAiB,CAAI,EAC5B,MAAO,EAAO,CAEd,OADA,QAAQ,KAAK,wDAAyD,CAAK,EACpE,EAAiB,CAAI,GAQzB,SAAS,CAAc,CAAC,EAAsB,CACnD,OAAO,EAAiB,CAAI,EAOvB,SAAS,CAAgB,CAAC,EAAuB,CACtD,GAAI,EAAQ,KACV,OAAO,EAAM,SAAS,EAGxB,GAAI,EAAQ,IAEV,MAAO,IADG,EAAQ,MACN,QAAQ,CAAC,KAIvB,MAAO,IADG,EAAQ,KACN,QAAQ,CAAC,KAOvB,eAAsB,CAAmB,CAAC,EAAc,EAAoC,CAC1F,OAAO,EAAY,EAAM,CAAS,EAOpC,eAAsB,CAAc,CAAC,EAAc,EAAqC,CACtF,IAAM,EAAQ,MAAM,EAAY,EAAM,CAAS,EAC/C,MAAO,GAAG,EAAiB,CAAK,WAO3B,SAAS,CAAkB,CAAC,EAAsB,CACvD,IAAM,EAAQ,EAAe,CAAI,EACjC,MAAO,GAAG,EAAiB,CAAK,WAOlC,eAAsB,CAAgB,CAAC,EAAiB,EAAuC,CAC7F,OAAO,QAAQ,IAAI,EAAM,IAAI,KAAQ,EAAY,EAAM,CAAS,CAAC,CAAC,EAM7D,SAAS,CAAmB,CAAC,EAA2B,CAC7D,OAAO,EAAM,IAAI,CAAc,EAMjC,eAAsB,CAAgB,CAAC,EAK7B,CACR,IAAM,EAAgB,EAAqB,CAAS,EAC9C,EAAY,MAAM,EAAgB,CAAS,EAEjD,MAAO,CACL,UAAW,GAAa,UACxB,gBACA,OAAQ,IAAc,KACtB,OAAQ,EAAgB,IAAI,CAAa,CAC3C,EAMK,SAAS,CAAkB,EAAa,CAC7C,OAAO,OAAO,KAAK,CAAkB,EAAE,OAAO,KAAK,IAAM,SAAS",
8
+ "debugId": "0C9FB9C9D50392DD64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,3 @@
1
+ import{a as M}from"./chunk-waemzsf4.js";import{Ca as J,Da as V,Ea as X}from"./chunk-z61qdct1.js";import"./chunk-f9yb2zk3.js";var j=async(q)=>{return{sessionCommand:`sylphx-flow hook --type session --target ${q}`,messageCommand:`sylphx-flow hook --type message --target ${q}`,notificationCommand:`sylphx-flow hook --type notification --target ${q}`}},B={sessionCommand:"sylphx-flow hook --type session --target claude-code",messageCommand:"sylphx-flow hook --type message --target claude-code",notificationCommand:"sylphx-flow hook --type notification --target claude-code"},Z=(q)=>{return X(()=>JSON.parse(q),(v)=>M("Failed to parse Claude Code settings",{cause:v instanceof Error?v:void 0}))},Y=(q=B)=>{let v=q.sessionCommand||B.sessionCommand,G=q.messageCommand||B.messageCommand,N=q.notificationCommand||B.notificationCommand;return{SessionStart:[{hooks:[{type:"command",command:v}]}],UserPromptSubmit:[{hooks:[{type:"command",command:G}]}],Notification:[{matcher:"",hooks:[{type:"command",command:N}]}]}},$=(q,v=B)=>{let G=Y(v);return{...q,hooks:{...q.hooks||{},...G}}},W=(q=B)=>{return{hooks:Y(q)}},Q=(q)=>{return JSON.stringify(q,null,2)},y=()=>{return"Claude Code hooks configured: SessionStart (static info) + UserPromptSubmit (dynamic info)"},R=(q,v=B)=>{if(q===null||q.trim()===""){let P=W(v);return J(Q(P))}let G=Z(q);if(G._tag==="Failure"){let P=W(v);return J(Q(P))}let N=$(G.value,v);return J(Q(N))},z=(q)=>{if(q.sessionCommand!==void 0&&q.sessionCommand.trim()==="")return V(M("Session command cannot be empty"));if(q.messageCommand!==void 0&&q.messageCommand.trim()==="")return V(M("Message command cannot be empty"));return J(q)};export{z as validateHookConfig,Q as serializeSettings,R as processSettings,Z as parseSettings,$ as mergeSettings,y as getSuccessMessage,j as generateHookCommands,W as createSettings,Y as buildHookConfiguration,B as DEFAULT_HOOKS};
2
+
3
+ //# debugId=C5E60CD65BAD377064756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "/**\n * Business logic for Claude Code target setup\n * Pure functions separated from I/O\n *\n * DESIGN RATIONALE:\n * - Business logic testable without file system\n * - Pure functions for settings transformation\n * - Side effects isolated\n * - Clear separation of concerns\n */\n\nimport type { ConfigError } from '../../core/functional/error-types.js';\nimport { configError } from '../../core/functional/error-types.js';\nimport type { Result } from '../../core/functional/result.js';\nimport { failure, success, tryCatch } from '../../core/functional/result.js';\n\n/**\n * Claude Code settings structure\n */\nexport interface ClaudeCodeSettings {\n hooks?: Record<\n string,\n Array<{\n hooks: Array<{\n type: string;\n command: string;\n }>;\n }>\n >;\n [key: string]: unknown;\n}\n\nexport interface HookConfig {\n sessionCommand?: string;\n messageCommand?: string;\n notificationCommand?: string;\n}\n\n/**\n * Generate hook commands for the target\n * Uses global sylphx-flow command (users must install globally first)\n */\nexport const generateHookCommands = async (targetId: string): Promise<HookConfig> => {\n return {\n sessionCommand: `sylphx-flow hook --type session --target ${targetId}`,\n messageCommand: `sylphx-flow hook --type message --target ${targetId}`,\n notificationCommand: `sylphx-flow hook --type notification --target ${targetId}`,\n };\n};\n\n/**\n * Default hook commands (fallback)\n * Now using unified hook command for all content (rules, output styles, system info)\n */\nexport const DEFAULT_HOOKS: HookConfig = {\n sessionCommand: 'sylphx-flow hook --type session --target claude-code',\n messageCommand: 'sylphx-flow hook --type message --target claude-code',\n notificationCommand: 'sylphx-flow hook --type notification --target claude-code',\n};\n\n/**\n * Parse JSON settings (pure)\n */\nexport const parseSettings = (content: string): Result<ClaudeCodeSettings, ConfigError> => {\n return tryCatch(\n () => JSON.parse(content) as ClaudeCodeSettings,\n (error) =>\n configError('Failed to parse Claude Code settings', {\n cause: error instanceof Error ? error : undefined,\n })\n );\n};\n\n/**\n * Build hook configuration (pure)\n */\nexport const buildHookConfiguration = (\n config: HookConfig = DEFAULT_HOOKS\n): ClaudeCodeSettings['hooks'] => {\n const sessionCommand = config.sessionCommand || DEFAULT_HOOKS.sessionCommand!;\n const messageCommand = config.messageCommand || DEFAULT_HOOKS.messageCommand!;\n const notificationCommand = config.notificationCommand || DEFAULT_HOOKS.notificationCommand!;\n\n return {\n SessionStart: [\n {\n hooks: [\n {\n type: 'command',\n command: sessionCommand,\n },\n ],\n },\n ],\n UserPromptSubmit: [\n {\n hooks: [\n {\n type: 'command',\n command: messageCommand,\n },\n ],\n },\n ],\n Notification: [\n {\n matcher: '',\n hooks: [\n {\n type: 'command',\n command: notificationCommand,\n },\n ],\n },\n ],\n };\n};\n\n/**\n * Merge settings with new hooks (pure)\n */\nexport const mergeSettings = (\n existingSettings: ClaudeCodeSettings,\n hookConfig: HookConfig = DEFAULT_HOOKS\n): ClaudeCodeSettings => {\n const newHooks = buildHookConfiguration(hookConfig);\n\n return {\n ...existingSettings,\n hooks: {\n ...(existingSettings.hooks || {}),\n ...newHooks,\n },\n };\n};\n\n/**\n * Create settings with hooks (pure)\n */\nexport const createSettings = (hookConfig: HookConfig = DEFAULT_HOOKS): ClaudeCodeSettings => {\n return {\n hooks: buildHookConfiguration(hookConfig),\n };\n};\n\n/**\n * Serialize settings to JSON (pure)\n */\nexport const serializeSettings = (settings: ClaudeCodeSettings): string => {\n return JSON.stringify(settings, null, 2);\n};\n\n/**\n * Get success message (pure)\n */\nexport const getSuccessMessage = (): string => {\n return 'Claude Code hooks configured: SessionStart (static info) + UserPromptSubmit (dynamic info)';\n};\n\n/**\n * Process settings: parse existing or create new, merge hooks, serialize (pure)\n */\nexport const processSettings = (\n existingContent: string | null,\n hookConfig: HookConfig = DEFAULT_HOOKS\n): Result<string, ConfigError> => {\n if (existingContent === null || existingContent.trim() === '') {\n // No existing settings, create new\n const settings = createSettings(hookConfig);\n return success(serializeSettings(settings));\n }\n\n // Parse existing settings\n const parseResult = parseSettings(existingContent);\n if (parseResult._tag === 'Failure') {\n // If parsing fails, create new settings\n const settings = createSettings(hookConfig);\n return success(serializeSettings(settings));\n }\n\n // Merge with existing\n const merged = mergeSettings(parseResult.value, hookConfig);\n return success(serializeSettings(merged));\n};\n\n/**\n * Validate hook configuration (pure)\n */\nexport const validateHookConfig = (config: HookConfig): Result<HookConfig, ConfigError> => {\n if (config.sessionCommand !== undefined && config.sessionCommand.trim() === '') {\n return failure(configError('Session command cannot be empty'));\n }\n\n if (config.messageCommand !== undefined && config.messageCommand.trim() === '') {\n return failure(configError('Message command cannot be empty'));\n }\n\n return success(config);\n};\n"
6
6
  ],
7
- "mappings": "sIA0CO,FAAM,JAAuB,MAAO,IAA0C,CACnF,MAAO,CACL,eAAgB,4CAA4C,IAC5D,eAAgB,4CAA4C,IAC5D,oBAAqB,iDAAiD,GACxE,GAOW,EAA4B,CACvC,eAAgB,uDAChB,eAAgB,uDAChB,oBAAqB,2DACvB,EAKa,EAAgB,CAAC,IAA6D,CACzF,OAAO,EACL,IAAM,KAAK,MAAM,CAAO,EACxB,CAAC,IACC,EAAY,uCAAwC,CAClD,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL,GAMW,EAAyB,CACpC,EAAqB,IACW,CAChC,IAAM,EAAiB,EAAO,gBAAkB,EAAc,eACxD,EAAiB,EAAO,gBAAkB,EAAc,eACxD,EAAsB,EAAO,qBAAuB,EAAc,oBAExE,MAAO,CACL,aAAc,CACZ,CACE,MAAO,CACL,CACE,KAAM,UACN,QAAS,CACX,CACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,MAAO,CACL,CACE,KAAM,UACN,QAAS,CACX,CACF,CACF,CACF,EACA,aAAc,CACZ,CACE,QAAS,GACT,MAAO,CACL,CACE,KAAM,UACN,QAAS,CACX,CACF,CACF,CACF,CACF,GAMW,EAAgB,CAC3B,EACA,EAAyB,IACF,CACvB,IAAM,EAAW,EAAuB,CAAU,EAElD,MAAO,IACF,EACH,MAAO,IACD,EAAiB,OAAS,CAAC,KAC5B,CACL,CACF,GAMW,EAAiB,CAAC,EAAyB,IAAsC,CAC5F,MAAO,CACL,MAAO,EAAuB,CAAU,CAC1C,GAMW,EAAoB,CAAC,IAAyC,CACzE,OAAO,KAAK,UAAU,EAAU,KAAM,CAAC,GAM5B,EAAoB,IAAc,CAC7C,MAAO,8FAMI,EAAkB,CAC7B,EACA,EAAyB,IACO,CAChC,GAAI,IAAoB,MAAQ,EAAgB,KAAK,IAAM,GAAI,CAE7D,IAAM,EAAW,EAAe,CAAU,EAC1C,OAAO,EAAQ,EAAkB,CAAQ,CAAC,EAI5C,IAAM,EAAc,EAAc,CAAe,EACjD,GAAI,EAAY,OAAS,UAAW,CAElC,IAAM,EAAW,EAAe,CAAU,EAC1C,OAAO,EAAQ,EAAkB,CAAQ,CAAC,EAI5C,IAAM,EAAS,EAAc,EAAY,MAAO,CAAU,EAC1D,OAAO,EAAQ,EAAkB,CAAM,CAAC,GAM7B,EAAqB,CAAC,IAAwD,CACzF,GAAI,EAAO,iBAAmB,QAAa,EAAO,eAAe,KAAK,IAAM,GAC1E,OAAO,EAAQ,EAAY,iCAAiC,CAAC,EAG/D,GAAI,EAAO,iBAAmB,QAAa,EAAO,eAAe,KAAK,IAAM,GAC1E,OAAO,EAAQ,EAAY,iCAAiC,CAAC,EAG/D,OAAO,EAAQ,CAAM",
8
- "debugId": "4BF6FAB96D50C47D64756E2164756E21",
7
+ "mappings": "yIA0CO,FAAM,JAAuB,MAAO,IAA0C,CACnF,MAAO,CACL,eAAgB,4CAA4C,IAC5D,eAAgB,4CAA4C,IAC5D,oBAAqB,iDAAiD,GACxE,GAOW,EAA4B,CACvC,eAAgB,uDAChB,eAAgB,uDAChB,oBAAqB,2DACvB,EAKa,EAAgB,CAAC,IAA6D,CACzF,OAAO,EACL,IAAM,KAAK,MAAM,CAAO,EACxB,CAAC,IACC,EAAY,uCAAwC,CAClD,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL,GAMW,EAAyB,CACpC,EAAqB,IACW,CAChC,IAAM,EAAiB,EAAO,gBAAkB,EAAc,eACxD,EAAiB,EAAO,gBAAkB,EAAc,eACxD,EAAsB,EAAO,qBAAuB,EAAc,oBAExE,MAAO,CACL,aAAc,CACZ,CACE,MAAO,CACL,CACE,KAAM,UACN,QAAS,CACX,CACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,MAAO,CACL,CACE,KAAM,UACN,QAAS,CACX,CACF,CACF,CACF,EACA,aAAc,CACZ,CACE,QAAS,GACT,MAAO,CACL,CACE,KAAM,UACN,QAAS,CACX,CACF,CACF,CACF,CACF,GAMW,EAAgB,CAC3B,EACA,EAAyB,IACF,CACvB,IAAM,EAAW,EAAuB,CAAU,EAElD,MAAO,IACF,EACH,MAAO,IACD,EAAiB,OAAS,CAAC,KAC5B,CACL,CACF,GAMW,EAAiB,CAAC,EAAyB,IAAsC,CAC5F,MAAO,CACL,MAAO,EAAuB,CAAU,CAC1C,GAMW,EAAoB,CAAC,IAAyC,CACzE,OAAO,KAAK,UAAU,EAAU,KAAM,CAAC,GAM5B,EAAoB,IAAc,CAC7C,MAAO,8FAMI,EAAkB,CAC7B,EACA,EAAyB,IACO,CAChC,GAAI,IAAoB,MAAQ,EAAgB,KAAK,IAAM,GAAI,CAE7D,IAAM,EAAW,EAAe,CAAU,EAC1C,OAAO,EAAQ,EAAkB,CAAQ,CAAC,EAI5C,IAAM,EAAc,EAAc,CAAe,EACjD,GAAI,EAAY,OAAS,UAAW,CAElC,IAAM,EAAW,EAAe,CAAU,EAC1C,OAAO,EAAQ,EAAkB,CAAQ,CAAC,EAI5C,IAAM,EAAS,EAAc,EAAY,MAAO,CAAU,EAC1D,OAAO,EAAQ,EAAkB,CAAM,CAAC,GAM7B,EAAqB,CAAC,IAAwD,CACzF,GAAI,EAAO,iBAAmB,QAAa,EAAO,eAAe,KAAK,IAAM,GAC1E,OAAO,EAAQ,EAAY,iCAAiC,CAAC,EAG/D,GAAI,EAAO,iBAAmB,QAAa,EAAO,eAAe,KAAK,IAAM,GAC1E,OAAO,EAAQ,EAAY,iCAAiC,CAAC,EAG/D,OAAO,EAAQ,CAAM",
8
+ "debugId": "C5E60CD65BAD377064756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -0,0 +1,7 @@
1
+ import{Fa as M}from"./chunk-z61qdct1.js";import{Ia as E}from"./chunk-mtrcdhzn.js";import"./chunk-etqfkn4f.js";import"./chunk-cv1nhr27.js";import{Qb as Z}from"./chunk-ceyg2zjg.js";import{Rb as N,Ub as R}from"./chunk-f9yb2zk3.js";import V from"node:fs/promises";import J from"node:path";import j from"node:os";var v=E(),x=Z.object({defaultProvider:Z.enum(["anthropic","openai","google","openrouter","claude-code","zai"]).optional(),defaultModel:Z.string().optional(),providers:Z.record(Z.string(),Z.object({defaultModel:Z.string().optional()}).passthrough()).optional()}),z=J.join(j.homedir(),".sylphx-flow","settings.json"),S=".sylphx-flow/settings.json",_=".sylphx-flow/settings.local.json",G=".sylphx-flow/ai-config.json",Y=(q=process.cwd())=>({global:z,project:J.join(q,S),local:J.join(q,_),legacy:J.join(q,G)}),B=async(q)=>{try{let k=await V.readFile(q,"utf8"),D=JSON.parse(k);return x.parse(D)}catch(k){if(k.code==="ENOENT")return null;throw k}},$=(q,k)=>{let D=new Set([...Object.keys(q.providers||{}),...Object.keys(k.providers||{})]),K={};for(let H of D)K[H]={...q.providers?.[H],...k.providers?.[H]};return{defaultProvider:k.defaultProvider??q.defaultProvider,defaultModel:k.defaultModel??q.defaultModel,providers:K}},h=async(q=process.cwd())=>{let k=Y(q);try{return await V.access(k.global).catch(()=>{}),!0}catch{}try{return await V.access(k.project),!0}catch{}try{return await V.access(k.local),!0}catch{}try{return await V.access(k.legacy),!0}catch{}return!1},T=async(q=process.cwd())=>{return M(async()=>{let k=Y(q),[D,K,H,U]=await Promise.all([B(k.global),B(k.project),B(k.local),B(k.legacy)]);if(U&&!D){await y(q);let X=await B(k.global);if(X){let W={};if(W=$(W,X),K)W=$(W,K);if(H)W=$(W,H);return W}}let Q={};if(D)Q=$(Q,D);if(K)Q=$(Q,K);if(H)Q=$(Q,H);if(U)Q=$(Q,U);return Q},(k)=>Error(`Failed to load AI config: ${k.message}`))},L=async(q,k=process.cwd())=>{let K=Y(k).global;return M(async()=>{await V.mkdir(J.dirname(K),{recursive:!0});let H={...q};if(!H.defaultProvider&&H.providers){let{getProvider:Q}=await import("./chunk-mtrcdhzn.js"),X=[];for(let[W,O]of Object.entries(H.providers))try{if(Q(W).isConfigured(O))X.push(W)}catch{}if(X.length>0)H.defaultProvider=X[X.length-1]}let U=x.parse(H);await V.writeFile(K,JSON.stringify(U,null,2)+`
2
+ `,"utf8")},(H)=>Error(`Failed to save AI config: ${H.message}`))},p=async(q,k,D=process.cwd())=>{let H=Y(D)[k];return M(async()=>{await V.mkdir(J.dirname(H),{recursive:!0});let U=x.parse(q);await V.writeFile(H,JSON.stringify(U,null,2)+`
3
+ `,"utf8")},(U)=>Error(`Failed to save AI config to ${k}: ${U.message}`))},C=async(q,k=process.cwd())=>{let D=await T(k);if(D._tag==="Failure")return D;let K={...D.value,...q,providers:{...D.value.providers,...q.providers}};return L(K,k)},l=async(q=process.cwd())=>{let k=await T(q);if(k._tag==="Failure")return[];let D=[],K=k.value;if(!K.providers)return[];let{getProvider:H}=await import("./chunk-mtrcdhzn.js");for(let[U,Q]of Object.entries(K.providers))try{if(H(U).isConfigured(Q))D.push(U)}catch{}return D},y=async(q=process.cwd())=>{return M(async()=>{let k=Y(q),D=await B(k.legacy);if(!D)return;if(await B(k.global)){console.log("Legacy config found but global config already exists. Skipping migration."),console.log(`You can manually delete ${k.legacy} if migration is complete.`);return}await V.mkdir(J.dirname(k.global),{recursive:!0}),await V.writeFile(k.global,JSON.stringify(D,null,2)+`
4
+ `,"utf8"),console.log(`✓ Migrated configuration from ${k.legacy} to ${k.global}`),console.log(` You can now safely delete the legacy file: ${k.legacy}`)},(k)=>Error(`Failed to migrate legacy config: ${k.message}`))};export{C as updateAIConfig,p as saveAIConfigTo,L as saveAIConfig,y as migrateLegacyConfig,T as loadAIConfig,l as getConfiguredProviders,Y as getAIConfigPaths,h as aiConfigExists,v as AI_PROVIDERS};
5
+ export{v as ya,T as za,L as Aa,l as Ba};
6
+
7
+ //# debugId=CC92FC8B2C680A5264756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "/**\n * AI Configuration Management\n *\n * Three-tier configuration system:\n * 1. Global: ~/.sylphx-flow/settings.json (user defaults, contains API keys)\n * 2. Project: ./.sylphx-flow/settings.json (project preferences, no secrets)\n * 3. Local: ./.sylphx-flow/settings.local.json (local overrides, gitignored)\n *\n * Priority: local > project > global\n */\n\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport os from 'node:os';\nimport { z } from 'zod';\nimport { type Result, success, tryCatchAsync } from '../core/functional/result.js';\nimport { getAllProviders } from '../providers/index.js';\n\n/**\n * Provider IDs\n * Provider metadata (name, config schema, etc) comes from provider registry\n */\nexport type ProviderId = 'anthropic' | 'openai' | 'google' | 'openrouter' | 'claude-code' | 'zai';\n\n/**\n * AI_PROVIDERS - Provider metadata from registry\n * Contains basic info (id, name) for UI components\n * Config schemas are defined in each provider's getConfigSchema()\n */\nexport const AI_PROVIDERS = getAllProviders();\n\n/**\n * Provider configuration\n * Each provider can have different config fields (defined by provider.getConfigSchema())\n * Common fields: apiKey, defaultModel, etc\n */\nexport interface ProviderConfigValue {\n defaultModel?: string;\n [key: string]: string | number | boolean | undefined;\n}\n\n/**\n * AI configuration schema\n * Uses generic Record for provider configs - validation happens at provider level\n */\nconst aiConfigSchema = z.object({\n defaultProvider: z.enum(['anthropic', 'openai', 'google', 'openrouter', 'claude-code', 'zai']).optional(),\n defaultModel: z.string().optional(),\n providers: z.record(\n z.string(),\n z.object({\n defaultModel: z.string().optional(),\n }).passthrough() // Allow additional fields defined by provider\n ).optional(),\n});\n\nexport type AIConfig = z.infer<typeof aiConfigSchema>;\n\n/**\n * Configuration file paths\n */\nconst GLOBAL_CONFIG_FILE = path.join(os.homedir(), '.sylphx-flow', 'settings.json');\nconst PROJECT_CONFIG_FILE = '.sylphx-flow/settings.json';\nconst LOCAL_CONFIG_FILE = '.sylphx-flow/settings.local.json';\n\n/**\n * Deprecated config file (for migration)\n */\nconst LEGACY_CONFIG_FILE = '.sylphx-flow/ai-config.json';\n\n/**\n * Get AI config file paths in priority order\n */\nexport const getAIConfigPaths = (cwd: string = process.cwd()): {\n global: string;\n project: string;\n local: string;\n legacy: string;\n} => ({\n global: GLOBAL_CONFIG_FILE,\n project: path.join(cwd, PROJECT_CONFIG_FILE),\n local: path.join(cwd, LOCAL_CONFIG_FILE),\n legacy: path.join(cwd, LEGACY_CONFIG_FILE),\n});\n\n/**\n * Load config from a single file\n */\nconst loadConfigFile = async (filePath: string): Promise<AIConfig | null> => {\n try {\n const content = await fs.readFile(filePath, 'utf8');\n const parsed = JSON.parse(content);\n return aiConfigSchema.parse(parsed);\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return null; // File doesn't exist\n }\n throw error; // Re-throw other errors\n }\n};\n\n/**\n * Deep merge two configs (b overwrites a)\n */\nconst mergeConfigs = (a: AIConfig, b: AIConfig): AIConfig => {\n // Merge provider configs dynamically\n const allProviderIds = new Set([\n ...Object.keys(a.providers || {}),\n ...Object.keys(b.providers || {}),\n ]);\n\n const mergedProviders: Record<string, any> = {};\n for (const providerId of allProviderIds) {\n mergedProviders[providerId] = {\n ...a.providers?.[providerId],\n ...b.providers?.[providerId],\n };\n }\n\n return {\n defaultProvider: b.defaultProvider ?? a.defaultProvider,\n defaultModel: b.defaultModel ?? a.defaultModel,\n providers: mergedProviders,\n };\n};\n\n/**\n * Check if any AI config exists\n */\nexport const aiConfigExists = async (cwd: string = process.cwd()): Promise<boolean> => {\n const paths = getAIConfigPaths(cwd);\n try {\n // Check any of the config files\n await fs.access(paths.global).catch(() => {});\n return true;\n } catch {}\n\n try {\n await fs.access(paths.project);\n return true;\n } catch {}\n\n try {\n await fs.access(paths.local);\n return true;\n } catch {}\n\n try {\n await fs.access(paths.legacy);\n return true;\n } catch {}\n\n return false;\n};\n\n/**\n * Load AI configuration\n * Merges global, project, and local configs with priority: local > project > global\n * Automatically migrates legacy config on first load\n */\nexport const loadAIConfig = async (cwd: string = process.cwd()): Promise<Result<AIConfig, Error>> => {\n return tryCatchAsync(\n async () => {\n const paths = getAIConfigPaths(cwd);\n\n // Load all config files\n const [globalConfig, projectConfig, localConfig, legacyConfig] = await Promise.all([\n loadConfigFile(paths.global),\n loadConfigFile(paths.project),\n loadConfigFile(paths.local),\n loadConfigFile(paths.legacy),\n ]);\n\n // Auto-migrate legacy config if it exists and global doesn't\n if (legacyConfig && !globalConfig) {\n await migrateLegacyConfig(cwd);\n // Reload global config after migration\n const migratedGlobal = await loadConfigFile(paths.global);\n if (migratedGlobal) {\n // Start with empty config\n let merged: AIConfig = {};\n\n // Merge in priority order: global < project < local\n merged = mergeConfigs(merged, migratedGlobal);\n if (projectConfig) merged = mergeConfigs(merged, projectConfig);\n if (localConfig) merged = mergeConfigs(merged, localConfig);\n\n return merged;\n }\n }\n\n // Start with empty config\n let merged: AIConfig = {};\n\n // Merge in priority order: global < project < local < legacy (for backwards compat)\n if (globalConfig) merged = mergeConfigs(merged, globalConfig);\n if (projectConfig) merged = mergeConfigs(merged, projectConfig);\n if (localConfig) merged = mergeConfigs(merged, localConfig);\n if (legacyConfig) merged = mergeConfigs(merged, legacyConfig);\n\n return merged;\n },\n (error: any) => new Error(`Failed to load AI config: ${error.message}`)\n );\n};\n\n/**\n * Save AI configuration to global settings\n * By default, all configuration (including API keys) goes to ~/.sylphx-flow/settings.json\n * Automatically sets default provider if not set\n */\nexport const saveAIConfig = async (\n config: AIConfig,\n cwd: string = process.cwd()\n): Promise<Result<void, Error>> => {\n const paths = getAIConfigPaths(cwd);\n const configPath = paths.global; // Save to global by default\n\n return tryCatchAsync(\n async () => {\n // Ensure directory exists\n await fs.mkdir(path.dirname(configPath), { recursive: true });\n\n // Auto-set default provider if not set\n const configToSave = { ...config };\n if (!configToSave.defaultProvider && configToSave.providers) {\n // Get configured providers (those that pass isConfigured check)\n const { getProvider } = await import('../providers/index.js');\n const configuredProviders: ProviderId[] = [];\n\n for (const [providerId, providerConfig] of Object.entries(configToSave.providers)) {\n try {\n const provider = getProvider(providerId as ProviderId);\n if (provider.isConfigured(providerConfig)) {\n configuredProviders.push(providerId as ProviderId);\n }\n } catch {\n // Skip unknown providers\n }\n }\n\n // Use last configured provider as default\n if (configuredProviders.length > 0) {\n configToSave.defaultProvider = configuredProviders[configuredProviders.length - 1];\n }\n }\n\n // Validate config\n const validated = aiConfigSchema.parse(configToSave);\n\n // Write config\n await fs.writeFile(configPath, JSON.stringify(validated, null, 2) + '\\n', 'utf8');\n },\n (error: any) => new Error(`Failed to save AI config: ${error.message}`)\n );\n};\n\n/**\n * Save AI configuration to a specific location\n */\nexport const saveAIConfigTo = async (\n config: AIConfig,\n location: 'global' | 'project' | 'local',\n cwd: string = process.cwd()\n): Promise<Result<void, Error>> => {\n const paths = getAIConfigPaths(cwd);\n const configPath = paths[location];\n\n return tryCatchAsync(\n async () => {\n // Ensure directory exists\n await fs.mkdir(path.dirname(configPath), { recursive: true });\n\n // Validate config\n const validated = aiConfigSchema.parse(config);\n\n // Write config\n await fs.writeFile(configPath, JSON.stringify(validated, null, 2) + '\\n', 'utf8');\n },\n (error: any) => new Error(`Failed to save AI config to ${location}: ${error.message}`)\n );\n};\n\n/**\n * Update AI configuration (merge with existing)\n * Default provider is auto-set by saveAIConfig to last configured provider\n */\nexport const updateAIConfig = async (\n updates: Partial<AIConfig>,\n cwd: string = process.cwd()\n): Promise<Result<void, Error>> => {\n const currentResult = await loadAIConfig(cwd);\n\n if (currentResult._tag === 'Failure') {\n return currentResult;\n }\n\n const merged: AIConfig = {\n ...currentResult.value,\n ...updates,\n providers: {\n ...currentResult.value.providers,\n ...updates.providers,\n },\n };\n\n // saveAIConfig will auto-set default provider if not set\n return saveAIConfig(merged, cwd);\n};\n\n/**\n * Get configured providers\n * Uses provider's isConfigured() method to check\n */\nexport const getConfiguredProviders = async (\n cwd: string = process.cwd()\n): Promise<ProviderId[]> => {\n const result = await loadAIConfig(cwd);\n\n if (result._tag === 'Failure') {\n return [];\n }\n\n const providers: ProviderId[] = [];\n const config = result.value;\n\n if (!config.providers) {\n return [];\n }\n\n // Dynamically import provider registry to avoid circular dependency\n const { getProvider } = await import('../providers/index.js');\n\n for (const [providerId, providerConfig] of Object.entries(config.providers)) {\n try {\n const provider = getProvider(providerId as ProviderId);\n if (provider.isConfigured(providerConfig)) {\n providers.push(providerId as ProviderId);\n }\n } catch {\n // Skip unknown providers\n }\n }\n\n return providers;\n};\n\n/**\n * Migrate legacy ai-config.json to new settings system\n * Automatically called on first load if legacy config exists\n */\nexport const migrateLegacyConfig = async (cwd: string = process.cwd()): Promise<Result<void, Error>> => {\n return tryCatchAsync(\n async () => {\n const paths = getAIConfigPaths(cwd);\n\n // Check if legacy config exists\n const legacyConfig = await loadConfigFile(paths.legacy);\n if (!legacyConfig) {\n return; // No legacy config to migrate\n }\n\n // Check if global config already exists\n const globalConfig = await loadConfigFile(paths.global);\n if (globalConfig) {\n // Global config exists, don't overwrite it\n console.log('Legacy config found but global config already exists. Skipping migration.');\n console.log(`You can manually delete ${paths.legacy} if migration is complete.`);\n return;\n }\n\n // Migrate to global config\n await fs.mkdir(path.dirname(paths.global), { recursive: true });\n await fs.writeFile(paths.global, JSON.stringify(legacyConfig, null, 2) + '\\n', 'utf8');\n\n console.log(`✓ Migrated configuration from ${paths.legacy} to ${paths.global}`);\n console.log(` You can now safely delete the legacy file: ${paths.legacy}`);\n },\n (error: any) => new Error(`Failed to migrate legacy config: ${error.message}`)\n );\n};\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "FBF983CB802E661664756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "CC92FC8B2C680A5264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -0,0 +1,4 @@
1
+ import{_ as U}from"./chunk-372bgp30.js";import{Rb as C}from"./chunk-f9yb2zk3.js";var b=C(U(),1);import{readFile as B,readdir as M,access as w}from"node:fs/promises";import{join as Z,parse as y,relative as N}from"node:path";import{homedir as j}from"node:os";async function G(k,q=!1,x){try{let H=await B(k,"utf-8"),{data:Q,content:J}=b.default(H);if(!Q.name||typeof Q.name!=="string")return console.error(`Agent file ${k} missing required 'name' field`),null;let V={name:Q.name,description:Q.description||""};return{id:x||y(k).name,metadata:V,systemPrompt:J.trim(),isBuiltin:q,filePath:k}}catch(H){return console.error(`Failed to load agent from ${k}:`,H),null}}async function z(k,q=!1){try{let H=(await M(k,{recursive:!0,withFileTypes:!0})).filter((J)=>J.isFile()&&J.name.endsWith(".md")).map((J)=>{let V=Z(J.parentPath||J.path,J.name),Y=N(k,V).replace(/\.md$/,"");return{fullPath:V,agentId:Y}});return(await Promise.all(H.map(({fullPath:J,agentId:V})=>G(J,q,V)))).filter((J)=>J!==null)}catch(x){return[]}}async function S(){let k=new URL(".",import.meta.url).pathname,q=Z(k,"..","assets","agents"),x=Z(k,"..","..","assets","agents");try{return await w(q),q}catch{return x}}function D(k){let q=Z(j(),".sylphx-flow","agents"),x=Z(k,".sylphx-flow","agents");return[q,x]}async function v(k){let q=await S(),[x,H]=D(k),[Q,J,V]=await Promise.all([z(q,!0),z(x,!1),z(H,!1)]),Y=new Map;for(let W of Q)Y.set(W.id,W);for(let W of J)Y.set(W.id,W);for(let W of V)Y.set(W.id,W);return Array.from(Y.values())}var X="coder";var O=null,R=null,$={id:X,metadata:{name:"Coder",description:"Fallback agent (agent manager not initialized)"},systemPrompt:"You are a helpful coding assistant.",isBuiltin:!0};function f(k){R=k}async function u(k){let q=await v(k),x=new Map;for(let H of q)x.set(H.id,H);if(O={agents:x,cwd:k},R){let H=R();if(H.getState){let Q=H.getState().currentAgentId||X;if(!x.has(Q))H.getState().setCurrentAgentId(X)}}}function P(){if(!O)return[$];return Array.from(O.agents.values())}function h(k){if(!O)return k===X?$:null;return O.agents.get(k)||null}function L(){let k=K();if(!O)return $;return O.agents.get(k)||$}function K(){if(R){let k=R();if(k.getState)return k.getState().currentAgentId||X}return X}function p(k){if(!O)return!1;if(!O.agents.get(k))return!1;if(R){let x=R();if(x.getState)x.getState().setCurrentAgentId(k)}return!0}async function l(){if(!O)return;let k=O.cwd,q=K();if(await u(k),O&&!O.agents.has(q)){if(R){let x=R();if(x.getState)x.getState().setCurrentAgentId(X)}}}function o(){return L().systemPrompt}export{p as switchAgent,f as setAppStoreGetter,l as reloadAgents,u as initializeAgentManager,o as getCurrentSystemPrompt,K as getCurrentAgentId,L as getCurrentAgent,P as getAllAgents,h as getAgentById};
2
+ export{f as U,u as V,P as W,h as X,p as Y,o as Z};
3
+
4
+ //# debugId=F688D1C80F5BC5DB64756E2164756E21
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/core/agent-loader.ts", "../src/core/builtin-agents.ts", "../src/core/agent-manager.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Agent Loader\n * Loads agent definitions from markdown files with front matter\n */\n\nimport { readFile, readdir, access } from 'node:fs/promises';\nimport { join, parse, relative } from 'node:path';\nimport { homedir } from 'node:os';\nimport matter from 'gray-matter';\nimport type { Agent, AgentMetadata } from '../types/agent.types.js';\n\n/**\n * Load a single agent from a markdown file\n */\nexport async function loadAgentFromFile(\n filePath: string,\n isBuiltin: boolean = false,\n agentId?: string\n): Promise<Agent | null> {\n try {\n const content = await readFile(filePath, 'utf-8');\n const { data, content: systemPrompt } = matter(content);\n\n // Validate front matter\n if (!data.name || typeof data.name !== 'string') {\n console.error(`Agent file ${filePath} missing required 'name' field`);\n return null;\n }\n\n const metadata: AgentMetadata = {\n name: data.name,\n description: data.description || '',\n };\n\n // Get agent ID from parameter or filename\n const id = agentId || parse(filePath).name;\n\n return {\n id,\n metadata,\n systemPrompt: systemPrompt.trim(),\n isBuiltin,\n filePath,\n };\n } catch (error) {\n console.error(`Failed to load agent from ${filePath}:`, error);\n return null;\n }\n}\n\n/**\n * Load all agents from a directory (recursively)\n */\nexport async function loadAgentsFromDirectory(dirPath: string, isBuiltin: boolean = false): Promise<Agent[]> {\n try {\n // Read directory recursively to support subdirectories\n const files = await readdir(dirPath, { recursive: true, withFileTypes: true });\n\n // Filter for .md files and calculate agent IDs from relative paths\n const agentFiles = files\n .filter((f) => f.isFile() && f.name.endsWith('.md'))\n .map((f) => {\n const fullPath = join(f.parentPath || f.path, f.name);\n // Calculate relative path from dirPath and remove .md extension\n const relativePath = relative(dirPath, fullPath).replace(/\\.md$/, '');\n return { fullPath, agentId: relativePath };\n });\n\n const agents = await Promise.all(\n agentFiles.map(({ fullPath, agentId }) => loadAgentFromFile(fullPath, isBuiltin, agentId))\n );\n\n return agents.filter((agent): agent is Agent => agent !== null);\n } catch (error) {\n // Directory doesn't exist or can't be read\n return [];\n }\n}\n\n/**\n * Get system agents path (bundled with the app)\n */\nexport async function getSystemAgentsPath(): Promise<string> {\n // Get the directory of the current module\n const currentDir = new URL('.', import.meta.url).pathname;\n\n // In production (dist), assets are at dist/assets/agents\n // In development (src), go up to project root: src/core -> project root\n const distPath = join(currentDir, '..', 'assets', 'agents');\n const devPath = join(currentDir, '..', '..', 'assets', 'agents');\n\n // Check which one exists (try dist first, then dev)\n try {\n await access(distPath);\n return distPath;\n } catch {\n return devPath;\n }\n}\n\n/**\n * Get all agent search paths\n */\nexport function getAgentSearchPaths(cwd: string): string[] {\n const globalPath = join(homedir(), '.sylphx-flow', 'agents');\n const projectPath = join(cwd, '.sylphx-flow', 'agents');\n\n return [globalPath, projectPath];\n}\n\n/**\n * Load all available agents from all sources\n */\nexport async function loadAllAgents(cwd: string): Promise<Agent[]> {\n const systemPath = await getSystemAgentsPath();\n const [globalPath, projectPath] = getAgentSearchPaths(cwd);\n\n const [systemAgents, globalAgents, projectAgents] = await Promise.all([\n loadAgentsFromDirectory(systemPath, true), // System agents are marked as builtin\n loadAgentsFromDirectory(globalPath, false),\n loadAgentsFromDirectory(projectPath, false),\n ]);\n\n // Priority: system < global < project\n // Use Map to deduplicate by ID (later entries override earlier ones)\n const agentMap = new Map<string, Agent>();\n\n // Add system agents first (lowest priority)\n for (const agent of systemAgents) {\n agentMap.set(agent.id, agent);\n }\n\n // Add global agents (override system)\n for (const agent of globalAgents) {\n agentMap.set(agent.id, agent);\n }\n\n // Add project agents (override globals and system)\n for (const agent of projectAgents) {\n agentMap.set(agent.id, agent);\n }\n\n return Array.from(agentMap.values());\n}\n",
6
+ "/**\n * Agent Constants\n * Default agent ID for fallback purposes\n */\n\n/**\n * Default agent ID (must match an agent in assets/agents/)\n */\nexport const DEFAULT_AGENT_ID = 'coder';\n",
7
+ "/**\n * Agent Manager\n * Manages agent state and operations\n */\n\nimport type { Agent } from '../types/agent.types.js';\nimport { loadAllAgents } from './agent-loader.js';\nimport { DEFAULT_AGENT_ID } from './builtin-agents.js';\n\n/**\n * Agent manager state\n */\ninterface AgentManagerState {\n agents: Map<string, Agent>;\n cwd: string;\n}\n\nlet state: AgentManagerState | null = null;\n\n/**\n * Get the app store (lazy import to avoid circular dependencies)\n */\nlet getAppStore: (() => any) | null = null;\n\n/**\n * Fallback agent when state is not initialized\n */\nconst FALLBACK_AGENT: Agent = {\n id: DEFAULT_AGENT_ID,\n metadata: {\n name: 'Coder',\n description: 'Fallback agent (agent manager not initialized)',\n },\n systemPrompt: 'You are a helpful coding assistant.',\n isBuiltin: true,\n};\n\n/**\n * Set the app store getter (called during initialization)\n */\nexport function setAppStoreGetter(getter: () => any): void {\n getAppStore = getter;\n}\n\n/**\n * Initialize agent manager\n */\nexport async function initializeAgentManager(cwd: string): Promise<void> {\n const allAgents = await loadAllAgents(cwd);\n\n const agentMap = new Map<string, Agent>();\n for (const agent of allAgents) {\n agentMap.set(agent.id, agent);\n }\n\n state = {\n agents: agentMap,\n cwd,\n };\n\n // Initialize store with default agent if store is available\n if (getAppStore) {\n const store = getAppStore();\n if (store.getState) {\n const currentAgentId = store.getState().currentAgentId || DEFAULT_AGENT_ID;\n // Ensure the current agent exists, fallback to default if not\n if (!agentMap.has(currentAgentId)) {\n store.getState().setCurrentAgentId(DEFAULT_AGENT_ID);\n }\n }\n }\n}\n\n/**\n * Get all available agents\n */\nexport function getAllAgents(): Agent[] {\n if (!state) {\n return [FALLBACK_AGENT];\n }\n return Array.from(state.agents.values());\n}\n\n/**\n * Get agent by ID\n */\nexport function getAgentById(id: string): Agent | null {\n if (!state) {\n return id === DEFAULT_AGENT_ID ? FALLBACK_AGENT : null;\n }\n return state.agents.get(id) || null;\n}\n\n/**\n * Get current agent\n */\nexport function getCurrentAgent(): Agent {\n const currentAgentId = getCurrentAgentId();\n\n if (!state) {\n return FALLBACK_AGENT;\n }\n return state.agents.get(currentAgentId) || FALLBACK_AGENT;\n}\n\n/**\n * Get current agent ID\n */\nexport function getCurrentAgentId(): string {\n // Try to get from store first\n if (getAppStore) {\n const store = getAppStore();\n if (store.getState) {\n return store.getState().currentAgentId || DEFAULT_AGENT_ID;\n }\n }\n // Fallback to default\n return DEFAULT_AGENT_ID;\n}\n\n/**\n * Switch to a different agent\n */\nexport function switchAgent(agentId: string): boolean {\n if (!state) {\n return false;\n }\n\n const agent = state.agents.get(agentId);\n if (!agent) {\n return false;\n }\n\n // Update store if available (this triggers reactive updates)\n if (getAppStore) {\n const store = getAppStore();\n if (store.getState) {\n store.getState().setCurrentAgentId(agentId);\n }\n }\n\n return true;\n}\n\n/**\n * Reload agents from disk\n */\nexport async function reloadAgents(): Promise<void> {\n if (!state) {\n return;\n }\n\n const cwd = state.cwd;\n const currentAgentId = getCurrentAgentId();\n\n await initializeAgentManager(cwd);\n\n // Restore current agent if it still exists, otherwise reset to default\n if (state && !state.agents.has(currentAgentId)) {\n if (getAppStore) {\n const store = getAppStore();\n if (store.getState) {\n store.getState().setCurrentAgentId(DEFAULT_AGENT_ID);\n }\n }\n }\n}\n\n/**\n * Get system prompt for current agent\n */\nexport function getCurrentSystemPrompt(): string {\n return getCurrentAgent().systemPrompt;\n}\n"
8
+ ],
9
+ "mappings": "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",
10
+ "debugId": "F688D1C80F5BC5DB64756E2164756E21",
11
+ "names": []
12
+ }