blink 0.1.90 → 0.1.91

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.
package/dist/cli/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{__commonJSMin as e,__require as t,__toESM as n}from"./chunk-D9KrCrVq.js";import{import_websocket as r}from"./wrapper-B0SBsJWP.js";import{findNearestEntry as i,require_ignore as a,resolveConfig as o}from"./ignore-9sH8Tr-1.js";import{Client as s,loginIfNeeded as c,source_default as l}from"./auth-LbmPJoxc.js";import{Y as u,pD as d,ve as f,ye as p}from"./dist-BNbSDxaw.js";import"./open-BCzBcoW-.js";import{migrateBlinkToData as m,require_main as h}from"./main-C1pxMrgd.js";import{randomUUID as g}from"crypto";import{basename as _,dirname as v,join as y,relative as b}from"node:path";import{existsSync as ee}from"node:fs";import{mkdir as te,readdir as x,writeFile as ne}from"fs/promises";import{readFile as S,stat as C}from"node:fs/promises";var w=e((e=>{var t=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},n=class extends t{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),T=e((e=>{let{InvalidArgumentError:t}=w();var n=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function r(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}e.Argument=n,e.humanReadableArgName=r})),E=e((e=>{let{humanReadableArgName:t}=T();var n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(e=>t(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(n?` `+n:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
2
+ import{__commonJSMin as e,__require as t,__toESM as n}from"./chunk-D9KrCrVq.js";import{import_websocket as r}from"./wrapper-B0SBsJWP.js";import{findNearestEntry as i,require_ignore as a,resolveConfig as o}from"./ignore-9sH8Tr-1.js";import{Client as s,loginIfNeeded as c,source_default as l}from"./auth-DpiyIVyb.js";import{Y as u,pD as d,ve as f,ye as p}from"./dist-wyfWuz5A.js";import"./open-ydKPp-AQ.js";import{migrateBlinkToData as m,require_main as h}from"./main-DSwQ2okO.js";import{randomUUID as g}from"crypto";import{basename as _,dirname as v,join as y,relative as b}from"node:path";import{existsSync as ee}from"node:fs";import{mkdir as te,readdir as x,writeFile as ne}from"fs/promises";import{readFile as S,stat as C}from"node:fs/promises";var w=e((e=>{var t=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},n=class extends t{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),T=e((e=>{let{InvalidArgumentError:t}=w();var n=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function r(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}e.Argument=n,e.humanReadableArgName=r})),E=e((e=>{let{humanReadableArgName:t}=T();var n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(e=>t(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(n?` `+n:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
3
3
  `)}displayWidth(e){return r(e).length}styleTitle(e){return e}styleUsage(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e===`[command]`?this.styleSubcommandText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleCommandText(e)).join(` `)}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleSubcommandText(e)).join(` `)}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,t,n,r){let i=` `.repeat(2);if(!n)return i+e;let a=e.padEnd(t+e.length-r.displayWidth(e)),o=(this.helpWidth??80)-t-2-2,s;return s=o<this.minWidthToWrap||r.preformatted(n)?n:r.boxWrap(n,o).replace(/\n/g,`
4
4
  `+` `.repeat(t+2)),i+a+` `.repeat(2)+s.replace(/\n/g,`\n${i}`)}boxWrap(e,t){if(t<this.minWidthToWrap)return e;let n=e.split(/\r\n|\n/),r=/[\s]*[^\s]+/g,i=[];return n.forEach(e=>{let n=e.match(r);if(n===null){i.push(``);return}let a=[n.shift()],o=this.displayWidth(a[0]);n.forEach(e=>{let n=this.displayWidth(e);if(o+n<=t){a.push(e),o+=n;return}i.push(a.join(``));let r=e.trimStart();a=[r],o=this.displayWidth(r)}),i.push(a.join(``))}),i.join(`
5
5
  `)}};function r(e){return e.replace(/\x1b\[\d*(;\d*)*m/g,``)}e.Help=n,e.stripColor=r})),D=e((e=>{let{InvalidArgumentError:t}=w();var n=class{constructor(e,t){this.flags=e,this.description=t||``,this.required=e.includes(`<`),this.optional=e.includes(`[`),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=a(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith(`--no-`)),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e==`string`&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,n)=>{if(!this.argChoices.includes(e))throw new t(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,n):e},this}name(){return this.long?this.long.replace(/^--/,``):this.short.replace(/^-/,``)}attributeName(){return this.negate?i(this.name().replace(/^no-/,``)):i(this.name())}helpGroup(e){return this.helpGroupHeading=e,this}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},r=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(e=>{e.negate?this.negativeOptions.set(e.attributeName(),e):this.positiveOptions.set(e.attributeName(),e)}),this.negativeOptions.forEach((e,t)=>{this.positiveOptions.has(t)&&this.dualOptions.add(t)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let r=this.negativeOptions.get(n).presetArg,i=r===void 0?!1:r;return t.negate===(i===e)}};function i(e){return e.split(`-`).reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function a(e){let t,n,r=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat(`guard`);if(r.test(a[0])&&(t=a.shift()),i.test(a[0])&&(n=a.shift()),!t&&r.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=n,n=a.shift()),a[0].startsWith(`-`)){let t=a[0],n=`option creation failed due to '${t}' in option flags '${e}'`;throw/^-[^-][^-]/.test(t)?Error(`${n}
@@ -17,6 +17,6 @@ Expecting one of '${n.join(`', '`)}'`);return this._lifeCycleHooks[e]?this._life
17
17
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
18
18
  - ${r}`;throw Error(i)}_executeSubCommand(e,t){t=t.slice();let n=!1,s=[`.js`,`.ts`,`.tsx`,`.mjs`,`.cjs`];function c(e,t){let n=i.resolve(e,t);if(a.existsSync(n))return n;if(s.includes(i.extname(t)))return;let r=s.find(e=>a.existsSync(`${n}${e}`));if(r)return`${n}${r}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let u=e._executableFile||`${this._name}-${e._name}`,d=this._executableDir||``;if(this._scriptPath){let e;try{e=a.realpathSync(this._scriptPath)}catch{e=this._scriptPath}d=i.resolve(i.dirname(e),d)}if(d){let t=c(d,u);if(!t&&!e._executableFile&&this._scriptPath){let n=i.basename(this._scriptPath,i.extname(this._scriptPath));n!==this._name&&(t=c(d,`${n}-${e._name}`))}u=t||u}n=s.includes(i.extname(u));let f;o.platform===`win32`?(this._checkForMissingExecutable(u,d,e._name),t.unshift(u),t=g(o.execArgv).concat(t),f=r.spawn(o.execPath,t,{stdio:`inherit`})):n?(t.unshift(u),t=g(o.execArgv).concat(t),f=r.spawn(o.argv[0],t,{stdio:`inherit`})):f=r.spawn(u,t,{stdio:`inherit`}),f.killed||[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`].forEach(e=>{o.on(e,()=>{f.killed===!1&&f.exitCode===null&&f.kill(e)})});let p=this._exitCallback;f.on(`close`,e=>{e??=1,p?p(new l(e,`commander.executeSubCommandAsync`,`(close)`)):o.exit(e)}),f.on(`error`,t=>{if(t.code===`ENOENT`)this._checkForMissingExecutable(u,d,e._name);else if(t.code===`EACCES`)throw Error(`'${u}' not executable`);if(!p)o.exit(1);else{let e=new l(1,`commander.executeSubCommandAsync`,`(error)`);e.nestedError=t,p(e)}}),this.runningCommand=f}_dispatchSubcommand(e,t,n){let r=this._findCommand(e);r||this.help({error:!0}),r._prepareForParse();let i;return i=this._chainOrCallSubCommandHook(i,r,`preSubcommand`),i=this._chainOrCall(i,()=>{if(r._executableHandler)this._executeSubCommand(r,t.concat(n));else return r._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??`--help`])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(e,t,n)=>{let r=t;if(t!==null&&e.parseArg){let i=`error: command-argument value '${t}' is invalid for argument '${e.name()}'.`;r=this._callParseArg(e,t,n,i)}return r};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,r)=>{let i=n.defaultValue;n.variadic?r<this.args.length?(i=this.args.slice(r),n.parseArg&&(i=i.reduce((t,r)=>e(n,r,t),n.defaultValue))):i===void 0&&(i=[]):r<this.args.length&&(i=this.args[r],n.parseArg&&(i=e(n,i,n.defaultValue))),t[r]=i}),this.processedArgs=t}_chainOrCall(e,t){return e?.then&&typeof e.then==`function`?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,r=[];return this._getCommandAndAncestors().reverse().filter(e=>e._lifeCycleHooks[t]!==void 0).forEach(e=>{e._lifeCycleHooks[t].forEach(t=>{r.push({hookedCommand:e,callback:t})})}),t===`postAction`&&r.reverse(),r.forEach(e=>{n=this._chainOrCall(n,()=>e.callback(e.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let r=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(e=>{r=this._chainOrCall(r,()=>e(this,t))}),r}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let r=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){r(),this._processArguments();let n;return n=this._chainOrCallHooks(n,`preAction`),n=this._chainOrCall(n,()=>this._actionHandler(this.processedArgs)),this.parent&&(n=this._chainOrCall(n,()=>{this.parent.emit(i,e,t)})),n=this._chainOrCallHooks(n,`postAction`),n}if(this.parent?.listenerCount(i))r(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand(`*`))return this._dispatchSubcommand(`*`,e,t);this.listenerCount(`command:*`)?this.emit(`command:*`,e,t):this.commands.length?this.unknownCommand():(r(),this._processArguments())}else this.commands.length?(r(),this.help({error:!0})):(r(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(e=>{let t=e.attributeName();return this.getOptionValue(t)===void 0?!1:this.getOptionValueSource(t)!==`default`});e.filter(e=>e.conflictsWith.length>0).forEach(t=>{let n=e.find(e=>t.conflictsWith.includes(e.attributeName()));n&&this._conflictingOption(t,n)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],r=t;function i(e){return e.length>1&&e[0]===`-`}let a=e=>/^-\d*\.?\d+(e[+-]?\d+)?$/.test(e)?!this._getCommandAndAncestors().some(e=>e.options.map(e=>e.short).some(e=>/^-\d$/.test(e))):!1,o=null,s=null,c=0;for(;c<e.length||s;){let l=s??e[c++];if(s=null,l===`--`){r===n&&r.push(l),r.push(...e.slice(c));break}if(o&&(!i(l)||a(l))){this.emit(`option:${o.name()}`,l);continue}if(o=null,i(l)){let t=this._findOption(l);if(t){if(t.required){let n=e[c++];n===void 0&&this.optionMissingArgument(t),this.emit(`option:${t.name()}`,n)}else if(t.optional){let n=null;c<e.length&&(!i(e[c])||a(e[c]))&&(n=e[c++]),this.emit(`option:${t.name()}`,n)}else this.emit(`option:${t.name()}`);o=t.variadic?t:null;continue}}if(l.length>2&&l[0]===`-`&&l[1]!==`-`){let e=this._findOption(`-${l[1]}`);if(e){e.required||e.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${e.name()}`,l.slice(2)):(this.emit(`option:${e.name()}`),s=`-${l.slice(2)}`);continue}}if(/^--[^=]+=/.test(l)){let e=l.indexOf(`=`),t=this._findOption(l.slice(0,e));if(t&&(t.required||t.optional)){this.emit(`option:${t.name()}`,l.slice(e+1));continue}}if(r===t&&i(l)&&!(this.commands.length===0&&a(l))&&(r=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(l)){t.push(l),n.push(...e.slice(c));break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){t.push(l,...e.slice(c));break}else if(this._defaultCommandName){n.push(l,...e.slice(c));break}}if(this._passThroughOptions){r.push(l,...e.slice(c));break}r.push(l)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let t=this.options[n].attributeName();e[t]=t===this._versionOptionName?this._version:this[t]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}\n`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==`string`?this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
19
19
  `),this.outputHelp({error:!0}));let n=t||{},r=n.exitCode||1,i=n.code||`commander.error`;this._exit(r,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in o.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||[`default`,`config`,`env`].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,o.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new p(this.options),t=e=>this.getOptionValue(e)!==void 0&&![`default`,`implied`].includes(this.getOptionValueSource(e));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(e=>{Object.keys(e.implied).filter(e=>!t(e)).forEach(t=>{this.setOptionValueWithSource(t,e.implied[t],`implied`)})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:`commander.missingArgument`})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:`commander.optionMissingArgument`})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:`commander.missingMandatoryOptionValue`})}_conflictingOption(e,t){let n=e=>{let t=e.attributeName(),n=this.getOptionValue(t),r=this.options.find(e=>e.negate&&t===e.attributeName()),i=this.options.find(e=>!e.negate&&t===e.attributeName());return r&&(r.presetArg===void 0&&n===!1||r.presetArg!==void 0&&n===r.presetArg)?r:i||e},r=e=>{let t=n(e),r=t.attributeName();return this.getOptionValueSource(r)===`env`?`environment variable '${t.envVar}'`:`option '${t.flags}'`},i=`error: ${r(e)} cannot be used with ${r(t)}`;this.error(i,{code:`commander.conflictingOption`})}unknownOption(e){if(this._allowUnknownOption)return;let t=``;if(e.startsWith(`--`)&&this._showSuggestionAfterError){let n=[],r=this;do{let e=r.createHelp().visibleOptions(r).filter(e=>e.long).map(e=>e.long);n=n.concat(e),r=r.parent}while(r&&!r._enablePositionalOptions);t=m(e,n)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:`commander.unknownOption`})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?``:`s`,r=`error: too many arguments${this.parent?` for '${this.name()}'`:``}. Expected ${t} argument${n} but got ${e.length}.`;this.error(r,{code:`commander.excessArguments`})}unknownCommand(){let e=this.args[0],t=``;if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach(e=>{n.push(e.name()),e.alias()&&n.push(e.alias())}),t=m(e,n)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:`commander.unknownCommand`})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t||=`-V, --version`,n||=`output the version number`;let r=this.createOption(t,n);return this._versionOptionName=r.attributeName(),this._registerOption(r),this.on(`option:`+r.name(),()=>{this._outputConfiguration.writeOut(`${e}\n`),this._exit(0,`commander.version`,e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw Error(`Command alias can't be the same as its name`);let n=this.parent?._findCommand(e);if(n){let t=[n.name()].concat(n.aliases()).join(`|`);throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${t}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(e=>this.alias(e)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let e=this.registeredArguments.map(e=>c(e));return[].concat(this.options.length||this._helpOption!==null?`[options]`:[],this.commands.length?`[command]`:[],this.registeredArguments.length?e:[]).join(` `)}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}helpGroup(e){return e===void 0?this._helpGroupHeading??``:(this._helpGroupHeading=e,this)}commandsGroup(e){return e===void 0?this._defaultCommandGroup??``:(this._defaultCommandGroup=e,this)}optionsGroup(e){return e===void 0?this._defaultOptionGroup??``:(this._defaultOptionGroup=e,this)}_initOptionGroup(e){this._defaultOptionGroup&&!e.helpGroupHeading&&e.helpGroup(this._defaultOptionGroup)}_initCommandGroup(e){this._defaultCommandGroup&&!e.helpGroup()&&e.helpGroup(this._defaultCommandGroup)}nameFromFilename(e){return this._name=i.basename(e,i.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp(),n=this._getOutputContext(e);t.prepareContext({error:n.error,helpWidth:n.helpWidth,outputHasColors:n.hasColors});let r=t.formatHelp(this,t);return n.hasColors?r:this._outputConfiguration.stripColor(r)}_getOutputContext(e){e||={};let t=!!e.error,n,r,i;return t?(n=e=>this._outputConfiguration.writeErr(e),r=this._outputConfiguration.getErrHasColors(),i=this._outputConfiguration.getErrHelpWidth()):(n=e=>this._outputConfiguration.writeOut(e),r=this._outputConfiguration.getOutHasColors(),i=this._outputConfiguration.getOutHelpWidth()),{error:t,write:e=>(r||(e=this._outputConfiguration.stripColor(e)),n(e)),hasColors:r,helpWidth:i}}outputHelp(e){let t;typeof e==`function`&&(t=e,e=void 0);let n=this._getOutputContext(e),r={error:n.error,write:n.write,command:this};this._getCommandAndAncestors().reverse().forEach(e=>e.emit(`beforeAllHelp`,r)),this.emit(`beforeHelp`,r);let i=this.helpInformation({error:n.error});if(t&&(i=t(i),typeof i!=`string`&&!Buffer.isBuffer(i)))throw Error(`outputHelp callback must return a string or a Buffer`);n.write(i),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit(`afterHelp`,r),this._getCommandAndAncestors().forEach(e=>e.emit(`afterAllHelp`,r))}helpOption(e,t){return typeof e==`boolean`?(e?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(e??`-h, --help`,t??`display help for command`),(e||t)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this._initOptionGroup(e),this}help(e){this.outputHelp(e);let t=Number(o.exitCode??0);t===0&&e&&typeof e!=`function`&&e.error&&(t=1),this._exit(t,`commander.help`,`(outputHelp)`)}addHelpText(e,t){let n=[`beforeAll`,`before`,`after`,`afterAll`];if(!n.includes(e))throw Error(`Unexpected value for position to addHelpText.
20
- Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function g(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function _(){if(o.env.NO_COLOR||o.env.FORCE_COLOR===`0`||o.env.FORCE_COLOR===`false`)return!1;if(o.env.FORCE_COLOR||o.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=h,e.useColor=_}));const{program:A,createCommand:j,createArgument:re,createOption:M,CommanderError:N,InvalidArgumentError:ie,InvalidOptionArgumentError:P,Command:ae,Argument:F,Option:I,Help:oe}=n(e((e=>{let{Argument:t}=T(),{Command:n}=k(),{CommanderError:r,InvalidArgumentError:i}=w(),{Help:a}=E(),{Option:o}=D();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default;var L=`0.1.89`;async function R(e){e||=process.cwd();let t=o(e);await t.build({cwd:e,entry:t.entry,outdir:t.outdir,watch:!1,onStart:()=>{console.log(`Building agent...`)},onResult:e=>{`error`in e&&(console.error(e.error),process.exit(1));for(let t of e.warnings)console.warn(t.message);console.log(`Built agent to ${e.entry}`)}})}var z=n(h(),1),B=n(a(),1);async function V(e,t){e||=process.cwd(),await m(e);let n=await c(),r=new s({authToken:n,fetch:(e,t)=>{let n=new Headers(t?.headers);return n.set(`x-blink-cli-version`,L),fetch(e,{...t,headers:n})}}),a=await i(e,`package.json`);if(!a)throw Error(`package.json not found`);let h=await S(a,`utf-8`),g=JSON.parse(h),w=v(a),T=y(w,`data`,`config.json`),E={};if(ee(T)){let e=await S(T,`utf-8`);E=JSON.parse(e)}let D;if(E?.organizationId)try{D=(await r.organizations.get(E.organizationId)).name}catch{E.organizationId=void 0}if(!E?.organizationId){let e=await r.organizations.list();if(e.length===1){let t=e[0];E.organizationId=t.id,D=t.name}else{let t=await f({message:`Which organization should contain this agent?`,options:e.map(e=>({value:e.id,label:e.name}))});if(d(t))return;E.organizationId=t,D=e.find(e=>e.id===t).name}}if(!E.organizationId)throw Error(`Developer error: No organization ID found.`);let O;if(E?.agentId)try{O=(await r.agents.get(E.agentId)).name}catch{E.agentId=void 0}if(!E?.agentId)try{let e=await r.organizations.agents.get({organization_id:E.organizationId,agent_name:g.name});E.agentId=e.id,O=e.name}catch{let e=await r.agents.create({name:g.name,organization_id:E.organizationId});E.agentId=e.id,O=e.name}if(!E.agentId)throw Error(`Developer error: No agent ID found.`);await te(v(T),{recursive:!0}),await ne(T,JSON.stringify({_:`This file can be source controlled. It contains no secrets.`,...E},null,2),`utf-8`);let k=o(w),A=await new Promise((e,t)=>{k.build({cwd:w,entry:k.entry,outdir:k.outdir,watch:!1,onStart:()=>{},onResult:t=>{e(t)}}).catch(t)});if(!A)throw Error(`Failed to build agent`);if(`error`in A)throw Error(A.error.message);let j={},re=await x(A.outdir);for(let e of re)j[y(A.outdir,e)]=e;let M=y(e,`README.md`);await H(M)&&(j[M]=`README.md`);let N={},ie=await ce(w);for(let e of ie)N[e]=b(w,e);let P=Object.entries(j),ae=Object.entries(N),F=[...P,...ae],I=F.length,oe=0,R=0,B=0,V=Array(I);await se(F,10,async([e,t],n)=>{let i=(await C(e)).size,a=++oe;W(`${l.dim(`[${a}/${I}]`)} Uploading ${t} (${U(i)})...`);let o=await S(e),s=await r.files.upload(new File([Buffer.from(o)],t));V[n]={path:t,id:s.id},R+=1,B+=i}),W(`${l.dim(`[${R}/${I}]`)} Uploaded files (${U(B)}).`),process.stdout.write(`
20
+ Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function g(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function _(){if(o.env.NO_COLOR||o.env.FORCE_COLOR===`0`||o.env.FORCE_COLOR===`false`)return!1;if(o.env.FORCE_COLOR||o.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=h,e.useColor=_}));const{program:A,createCommand:j,createArgument:re,createOption:M,CommanderError:N,InvalidArgumentError:ie,InvalidOptionArgumentError:P,Command:ae,Argument:F,Option:I,Help:oe}=n(e((e=>{let{Argument:t}=T(),{Command:n}=k(),{CommanderError:r,InvalidArgumentError:i}=w(),{Help:a}=E(),{Option:o}=D();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default;var L=`0.1.91`;async function R(e){e||=process.cwd();let t=o(e);await t.build({cwd:e,entry:t.entry,outdir:t.outdir,watch:!1,onStart:()=>{console.log(`Building agent...`)},onResult:e=>{`error`in e&&(console.error(e.error),process.exit(1));for(let t of e.warnings)console.warn(t.message);console.log(`Built agent to ${e.entry}`)}})}var z=n(h(),1),B=n(a(),1);async function V(e,t){e||=process.cwd(),await m(e);let n=await c(),r=new s({authToken:n,fetch:(e,t)=>{let n=new Headers(t?.headers);return n.set(`x-blink-cli-version`,L),fetch(e,{...t,headers:n})}}),a=await i(e,`package.json`);if(!a)throw Error(`package.json not found`);let h=await S(a,`utf-8`),g=JSON.parse(h),w=v(a),T=y(w,`data`,`config.json`),E={};if(ee(T)){let e=await S(T,`utf-8`);E=JSON.parse(e)}let D;if(E?.organizationId)try{D=(await r.organizations.get(E.organizationId)).name}catch{E.organizationId=void 0}if(!E?.organizationId){let e=await r.organizations.list();if(e.length===1){let t=e[0];E.organizationId=t.id,D=t.name}else{let t=await f({message:`Which organization should contain this agent?`,options:e.map(e=>({value:e.id,label:e.name}))});if(d(t))return;E.organizationId=t,D=e.find(e=>e.id===t).name}}if(!E.organizationId)throw Error(`Developer error: No organization ID found.`);let O;if(E?.agentId)try{O=(await r.agents.get(E.agentId)).name}catch{E.agentId=void 0}if(!E?.agentId)try{let e=await r.organizations.agents.get({organization_id:E.organizationId,agent_name:g.name});E.agentId=e.id,O=e.name}catch{let e=await r.agents.create({name:g.name,organization_id:E.organizationId});E.agentId=e.id,O=e.name}if(!E.agentId)throw Error(`Developer error: No agent ID found.`);await te(v(T),{recursive:!0}),await ne(T,JSON.stringify({_:`This file can be source controlled. It contains no secrets.`,...E},null,2),`utf-8`);let k=o(w),A=await new Promise((e,t)=>{k.build({cwd:w,entry:k.entry,outdir:k.outdir,watch:!1,onStart:()=>{},onResult:t=>{e(t)}}).catch(t)});if(!A)throw Error(`Failed to build agent`);if(`error`in A)throw Error(A.error.message);let j={},re=await x(A.outdir);for(let e of re)j[y(A.outdir,e)]=e;let M=y(e,`README.md`);await H(M)&&(j[M]=`README.md`);let N={},ie=await ce(w);for(let e of ie)N[e]=b(w,e);let P=Object.entries(j),ae=Object.entries(N),F=[...P,...ae],I=F.length,oe=0,R=0,B=0,V=Array(I);await se(F,10,async([e,t],n)=>{let i=(await C(e)).size,a=++oe;W(`${l.dim(`[${a}/${I}]`)} Uploading ${t} (${U(i)})...`);let o=await S(e),s=await r.files.upload(new File([Buffer.from(o)],t));V[n]={path:t,id:s.id},R+=1,B+=i}),W(`${l.dim(`[${R}/${I}]`)} Uploaded files (${U(B)}).`),process.stdout.write(`
21
21
  `);let G=V.filter(Boolean),le=G.slice(0,P.length),ue=G.slice(P.length),K=y(e,`.env.local`),q=[];if(await H(K)){let e=(0,z.parse)(await S(K,`utf-8`));q=Object.keys(e)}let J=[];J=(await r.agents.env.list({agent_id:E.agentId})).map(e=>e.key);let Y=y(e,`.env.production`);if(await H(Y)){let e=(0,z.parse)(await S(Y,`utf-8`)),t=Object.entries(e),n=t.length,i=0;for(let[e,a]of t){let t=await r.agents.env.create({agent_id:E.agentId,key:e,value:a,target:[`production`,`preview`],secret:!0,upsert:!0});J.push(t.key),i+=1,W(`${l.dim(`[${i}/${n}]`)} Updating environment variable: ${e} ${l.dim(`(.env.production)`)}`)}W(`${l.dim(`[${i}/${n}]`)} Updated environment variables! ${l.dim(`(.env.production)`)}`),process.stdout.write(`
22
- `)}let X=q.filter(e=>!J.includes(e));if(X.length>0){console.log(`Warning: The following environment variables are set in .env.local but not in .env.production:`);for(let e of X)console.log(`- ${e}`);let e=await p({message:`Do you want to deploy anyway?`});if(e===!1||d(e))return}let Z=await r.agents.deployments.create({agent_id:E.agentId,target:`production`,entrypoint:_(A.entry),output_files:le,source_files:ue,message:t?.message}),Q=`https://blink.so/${D}/${O}/deployments/${Z.number}`;console.log(`Deployed:`,Q);let $=u();$.start(`Waiting for deployment to be live...`);try{for(;;){let e=await r.agents.deployments.get({agent_id:E.agentId,deployment_id:Z.id});if(e.status===`success`){let t=`Deployment successful.`;e.target===`production`&&(t+=` All chats will use this deployment!`),$.stop(t);let n=await r.agents.get(E.agentId);n.request_url&&console.log(`\nSend webhooks from anywhere: ${n.request_url}`);break}if(e.status===`failed`){let t=`Deployment failed.`;e.error_message&&(t+=` ${e.error_message}`),$.stop(t),console.log(`Read logs for details:`,Q);return}await new Promise(e=>setTimeout(e,500))}}catch{$.stop(`Failed to poll for deployment status.`),console.log(`Read logs for details:`,Q);return}}const H=async e=>{try{return await C(e),!0}catch{return!1}};async function se(e,t,n){let r=Array(e.length),i=0,a=Array(Math.min(t,e.length)).fill(0).map(async()=>{for(;;){let t=i++;if(t>=e.length)break;r[t]=await n(e[t],t)}});return await Promise.all(a),r}function U(e){if(e===0)return`0B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t)),i=e/t**+r;return`${i.toFixed(i>=100?0:i>=10?1:2)}${n[r]}`}function W(e){if(process.stdout.isTTY)try{process.stdout.clearLine(0),process.stdout.cursorTo(0),process.stdout.write(e);return}catch{}console.log(e)}async function ce(e){let t=[],n=(0,B.default)().add([`.git`,`node_modules`,`data`,`.env`,`.env.*`]),r=y(e,`.gitignore`);if(await H(r)){let e=await S(r,`utf-8`);n.add(e)}async function i(r,a=e){let o=await x(r,{withFileTypes:!0});for(let e of o){let o=y(r,e.name),s=b(a,o);n.ignores(s)||(e.isDirectory()?await i(o,a):e.isFile()&&t.push(o))}}return await i(e),t}if(globalThis.WebSocket||(globalThis.WebSocket=r.default),globalThis.Bun!==void 0){let e=t(`perf_hooks`);e.monitorEventLoopDelay=()=>({enable:()=>{}})}globalThis.crypto||(globalThis.crypto={}),globalThis.crypto.randomUUID||(globalThis.crypto.randomUUID=()=>g()),A.name(`blink`).description(`Blink is a runtime for building and deploying AI agents.`).version(L).action(()=>{A.outputHelp()});const G=e=>async(...t)=>{let{default:n}=await e();return n(...t)};A.command(`init [directory]`).description(`Initialize a new Blink agent.`).action(G(()=>import(`./init-iySs9KUe.js`))),A.command(`dev [directory] [options]`).description(`Start a development server for your agent.`).action(G(()=>import(`./dev-B9pnx4gR.js`))),A.command(`deploy [directory]`).description(`Deploy your agent to the Blink Cloud.`).option(`-m, --message <message>`,`Message for this deployment`).action(V),A.command(`build [directory]`).description(`Build your agent for production.`).action(R),A.command(`telemetry [boolean]`).description(`Enable or disable telemetry.`),A.command(`start [directory]`).description("Starts the Blink runtime in production mode. The agent must be compiled with `blink build` first."),A.command(`run <message...>`).description(`Run your agent programmatically and get the response.`).option(`-d, --directory <directory>`,`Directory to run the agent from (default: current directory)`).option(`-c, --chat <chat>`,`Chat key to use (default: 'default')`).action(G(()=>import(`./run-uX68Fap5.js`))),A.command(`connect`,{hidden:!0}).description(`Connect compute to the Blink Cloud.`).action(G(()=>import(`./connect-Qsug6N0M.js`))),A.command(`chat`,{hidden:!0}).description(`Start a Blink chat connected to your machine.`).action(G(()=>import(`./chat-wW8YeqK0.js`))),A.command(`login`,{hidden:!0}).description(`Log in to the Blink Cloud.`).action(G(()=>import(`./login-DySo65on.js`))),A.parse(process.argv);export{};
22
+ `)}let X=q.filter(e=>!J.includes(e));if(X.length>0){console.log(`Warning: The following environment variables are set in .env.local but not in .env.production:`);for(let e of X)console.log(`- ${e}`);let e=await p({message:`Do you want to deploy anyway?`});if(e===!1||d(e))return}let Z=await r.agents.deployments.create({agent_id:E.agentId,target:`production`,entrypoint:_(A.entry),output_files:le,source_files:ue,message:t?.message}),Q=`https://blink.so/${D}/${O}/deployments/${Z.number}`;console.log(`Deployed:`,Q);let $=u();$.start(`Waiting for deployment to be live...`);try{for(;;){let e=await r.agents.deployments.get({agent_id:E.agentId,deployment_id:Z.id});if(e.status===`success`){let t=`Deployment successful.`;e.target===`production`&&(t+=` All chats will use this deployment!`),$.stop(t);let n=await r.agents.get(E.agentId);n.request_url&&console.log(`\nSend webhooks from anywhere: ${n.request_url}`);break}if(e.status===`failed`){let t=`Deployment failed.`;e.error_message&&(t+=` ${e.error_message}`),$.stop(t),console.log(`Read logs for details:`,Q);return}await new Promise(e=>setTimeout(e,500))}}catch{$.stop(`Failed to poll for deployment status.`),console.log(`Read logs for details:`,Q);return}}const H=async e=>{try{return await C(e),!0}catch{return!1}};async function se(e,t,n){let r=Array(e.length),i=0,a=Array(Math.min(t,e.length)).fill(0).map(async()=>{for(;;){let t=i++;if(t>=e.length)break;r[t]=await n(e[t],t)}});return await Promise.all(a),r}function U(e){if(e===0)return`0B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t)),i=e/t**+r;return`${i.toFixed(i>=100?0:i>=10?1:2)}${n[r]}`}function W(e){if(process.stdout.isTTY)try{process.stdout.clearLine(0),process.stdout.cursorTo(0),process.stdout.write(e);return}catch{}console.log(e)}async function ce(e){let t=[],n=(0,B.default)().add([`.git`,`node_modules`,`data`,`.env`,`.env.*`]),r=y(e,`.gitignore`);if(await H(r)){let e=await S(r,`utf-8`);n.add(e)}async function i(r,a=e){let o=await x(r,{withFileTypes:!0});for(let e of o){let o=y(r,e.name),s=b(a,o);n.ignores(s)||(e.isDirectory()?await i(o,a):e.isFile()&&t.push(o))}}return await i(e),t}if(globalThis.WebSocket||(globalThis.WebSocket=r.default),globalThis.Bun!==void 0){let e=t(`perf_hooks`);e.monitorEventLoopDelay=()=>({enable:()=>{}})}globalThis.crypto||(globalThis.crypto={}),globalThis.crypto.randomUUID||(globalThis.crypto.randomUUID=()=>g()),A.name(`blink`).description(`Blink is a runtime for building and deploying AI agents.`).version(L).action(()=>{A.outputHelp()});const G=e=>async(...t)=>{let{default:n}=await e();return n(...t)};A.command(`init [directory]`).description(`Initialize a new Blink agent.`).action(G(()=>import(`./init-m-BdPD26.js`))),A.command(`dev [directory] [options]`).description(`Start a development server for your agent.`).action(G(()=>import(`./dev-DPi0w-yZ.js`))),A.command(`deploy [directory]`).description(`Deploy your agent to the Blink Cloud.`).option(`-m, --message <message>`,`Message for this deployment`).action(V),A.command(`build [directory]`).description(`Build your agent for production.`).action(R),A.command(`telemetry [boolean]`).description(`Enable or disable telemetry.`),A.command(`start [directory]`).description("Starts the Blink runtime in production mode. The agent must be compiled with `blink build` first."),A.command(`run <message...>`).description(`Run your agent programmatically and get the response.`).option(`-d, --directory <directory>`,`Directory to run the agent from (default: current directory)`).option(`-c, --chat <chat>`,`Chat key to use (default: 'default')`).action(G(()=>import(`./run-zYfUW2Ad.js`))),A.command(`connect`,{hidden:!0}).description(`Connect compute to the Blink Cloud.`).action(G(()=>import(`./connect-Qsug6N0M.js`))),A.command(`chat`,{hidden:!0}).description(`Start a Blink chat connected to your machine.`).action(G(()=>import(`./chat-COey7v82.js`))),A.command(`login`,{hidden:!0}).description(`Log in to the Blink Cloud.`).action(G(()=>import(`./login-CoiO1E6k.js`))),A.parse(process.argv);export{};
@@ -1,4 +1,4 @@
1
- import{Ie as e,M as t,Se as n,pD as r,ve as i,xe as a,ye as o}from"./dist-BNbSDxaw.js";import{basename as s,join as c}from"path";import{mkdir as l,readdir as u,writeFile as d}from"fs/promises";import{spawn as f}from"child_process";async function p(p){if(p||=process.cwd(),e(`Initializing a new Blink Agent`),(await u(p)).length>0){let e=await o({message:`Directory is not empty. Create agent in ".blink" instead? Blink looks for the nearest ".blink" directory for agents.`});if(r(e)&&(a(`Initialization cancelled.`),process.exit(1)),e)p=c(p,`.blink`),await l(p,{recursive:!0}),t.info(`Creating project in ${p}`);else{let e=await o({message:`Initialize in non-empty directory anyway?`});(e===!1||r(e))&&(a(`Initialization cancelled.`),process.exit(1))}}let m=s(p).replace(/[^a-zA-Z0-9]/g,`-`),h;if(process.env.npm_config_user_agent?.includes(`bun/`)?h=`bun`:process.env.npm_config_user_agent?.includes(`pnpm/`)?h=`pnpm`:process.env.npm_config_user_agent?.includes(`yarn/`)?h=`yarn`:process.env.npm_config_user_agent?.includes(`npm/`)&&(h=`npm`),!h){let e=await i({options:[{label:`Bun`,value:`bun`},{label:`NPM`,value:`npm`},{label:`PNPM`,value:`pnpm`},{label:`Yarn`,value:`yarn`}],message:`What package manager do you want to use?`});r(e)&&process.exit(0),h=e}t.info(`Using ${h} as the package manager.`);let g={"package.json":JSON.stringify({name:m,main:`agent.ts`,type:`module`,private:!0}),"agent.ts":`import { convertToModelMessages, streamText, tool } from "ai";
1
+ import{Ie as e,M as t,Se as n,pD as r,ve as i,xe as a,ye as o}from"./dist-wyfWuz5A.js";import{basename as s,join as c}from"path";import{mkdir as l,readdir as u,writeFile as d}from"fs/promises";import{spawn as f}from"child_process";async function p(p){if(p||=process.cwd(),e(`Initializing a new Blink Agent`),(await u(p)).length>0){let e=await o({message:`Directory is not empty. Create agent in ".blink" instead? Blink looks for the nearest ".blink" directory for agents.`});if(r(e)&&(a(`Initialization cancelled.`),process.exit(1)),e)p=c(p,`.blink`),await l(p,{recursive:!0}),t.info(`Creating project in ${p}`);else{let e=await o({message:`Initialize in non-empty directory anyway?`});(e===!1||r(e))&&(a(`Initialization cancelled.`),process.exit(1))}}let m=s(p).replace(/[^a-zA-Z0-9]/g,`-`),h;if(process.env.npm_config_user_agent?.includes(`bun/`)?h=`bun`:process.env.npm_config_user_agent?.includes(`pnpm/`)?h=`pnpm`:process.env.npm_config_user_agent?.includes(`yarn/`)?h=`yarn`:process.env.npm_config_user_agent?.includes(`npm/`)&&(h=`npm`),!h){let e=await i({options:[{label:`Bun`,value:`bun`},{label:`NPM`,value:`npm`},{label:`PNPM`,value:`pnpm`},{label:`Yarn`,value:`yarn`}],message:`What package manager do you want to use?`});r(e)&&process.exit(0),h=e}t.info(`Using ${h} as the package manager.`);let g={"package.json":JSON.stringify({name:m,main:`agent.ts`,type:`module`,private:!0}),"agent.ts":`import { convertToModelMessages, streamText, tool } from "ai";
2
2
  import * as blink from "blink";
3
3
  import { z } from "zod";
4
4
 
@@ -0,0 +1 @@
1
+ import{login as e}from"./auth-DpiyIVyb.js";import"./dist-wyfWuz5A.js";import"./open-ydKPp-AQ.js";async function t(){await e()}export{t as default};
@@ -1,4 +1,4 @@
1
- import{__commonJSMin as e,__require as t}from"./chunk-D9KrCrVq.js";import{source_default as n}from"./auth-LbmPJoxc.js";import{join as r}from"path";import{existsSync as i,readFileSync as a,readdirSync as o,writeFileSync as s}from"fs";import{rename as c,rm as l}from"fs/promises";async function u(e){let t=r(e,`.blink`),u=r(e,`data`);if(!i(t)||i(u))return;let d=r(t,`data`);if(i(d)){console.log(n.yellow(`Migrating .blink/data/ to data/...`)),await c(d,u);let e=o(t);for(let n of e){let e=r(t,n),a=r(u,n);i(a)||await c(e,a)}await l(t,{recursive:!0,force:!0})}else{if(!(i(r(t,`build`))||i(r(t,`chats`))||i(r(t,`storage.json`))||i(r(t,`config.json`))||i(r(t,`devhook.txt`))))return;console.log(n.yellow(`Migrating .blink/ to data/...`)),await c(t,u)}let f=r(e,`.gitignore`);if(i(f)){let e=a(f,`utf-8`);if(!e.includes(`data`)){let t=e.split(`
1
+ import{__commonJSMin as e,__require as t}from"./chunk-D9KrCrVq.js";import{source_default as n}from"./auth-DpiyIVyb.js";import{join as r}from"path";import{existsSync as i,readFileSync as a,readdirSync as o,writeFileSync as s}from"fs";import{rename as c,rm as l}from"fs/promises";async function u(e){let t=r(e,`.blink`),u=r(e,`data`);if(!i(t)||i(u))return;let d=r(t,`data`);if(i(d)){console.log(n.yellow(`Migrating .blink/data/ to data/...`)),await c(d,u);let e=o(t);for(let n of e){let e=r(t,n),a=r(u,n);i(a)||await c(e,a)}await l(t,{recursive:!0,force:!0})}else{if(!(i(r(t,`build`))||i(r(t,`chats`))||i(r(t,`storage.json`))||i(r(t,`config.json`))||i(r(t,`devhook.txt`))))return;console.log(n.yellow(`Migrating .blink/ to data/...`)),await c(t,u)}let f=r(e,`.gitignore`);if(i(f)){let e=a(f,`utf-8`);if(!e.includes(`data`)){let t=e.split(`
2
2
  `),r=t.findIndex(e=>e.trim().match(/^\.blink\s*$/));r===-1?(e.endsWith(`
3
3
  `)||t.push(``),t.push(`# .blink has migrated to data/`),t.push(`data`)):(t[r]=`data`,(r===0||!t[r-1]?.trim().startsWith(`#`))&&t.splice(r,0,`# .blink has migrated to data/`)),s(f,t.join(`
4
4
  `)),console.log(n.green(`Updated .gitignore`))}}console.log(n.green(`Migration complete!`))}var d=e(((e,t)=>{t.exports={name:`dotenv`,version:`17.2.3`,description:`Loads environment variables from .env file`,main:`lib/main.js`,types:`lib/main.d.ts`,exports:{".":{types:`./lib/main.d.ts`,require:`./lib/main.js`,default:`./lib/main.js`},"./config":`./config.js`,"./config.js":`./config.js`,"./lib/env-options":`./lib/env-options.js`,"./lib/env-options.js":`./lib/env-options.js`,"./lib/cli-options":`./lib/cli-options.js`,"./lib/cli-options.js":`./lib/cli-options.js`,"./package.json":`./package.json`},scripts:{"dts-check":`tsc --project tests/types/tsconfig.json`,lint:`standard`,pretest:`npm run lint && npm run dts-check`,test:`tap run tests/**/*.js --allow-empty-coverage --disable-coverage --timeout=60000`,"test:coverage":`tap run tests/**/*.js --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov`,prerelease:`npm test`,release:`standard-version`},repository:{type:`git`,url:`git://github.com/motdotla/dotenv.git`},homepage:`https://github.com/motdotla/dotenv#readme`,funding:`https://dotenvx.com`,keywords:[`dotenv`,`env`,`.env`,`environment`,`variables`,`config`,`settings`],readmeFilename:`README.md`,license:`BSD-2-Clause`,devDependencies:{"@types/node":`^18.11.3`,decache:`^4.6.2`,sinon:`^14.0.1`,standard:`^17.0.0`,"standard-version":`^9.5.0`,tap:`^19.2.0`,typescript:`^4.8.4`},engines:{node:`>=12`},browser:{fs:!1}}})),f=e(((e,n)=>{let r=t(`fs`),i=t(`path`),a=t(`os`),o=t(`crypto`),s=d().version,c=[`🔐 encrypt with Dotenvx: https://dotenvx.com`,`🔐 prevent committing .env to code: https://dotenvx.com/precommit`,`🔐 prevent building .env in docker: https://dotenvx.com/prebuild`,`📡 add observability to secrets: https://dotenvx.com/ops`,`👥 sync secrets across teammates & machines: https://dotenvx.com/ops`,`🗂️ backup and recover secrets: https://dotenvx.com/ops`,`✅ audit secrets and track compliance: https://dotenvx.com/ops`,`🔄 add secrets lifecycle management: https://dotenvx.com/ops`,`🔑 add access controls to secrets: https://dotenvx.com/ops`,"🛠️ run anywhere with `dotenvx run -- yourcommand`",`⚙️ specify custom .env file path with { path: '/custom/path/.env' }`,`⚙️ enable debug logging with { debug: true }`,`⚙️ override existing env vars with { override: true }`,`⚙️ suppress all logs with { quiet: true }`,`⚙️ write to custom object with { processEnv: myObject }`,`⚙️ load multiple .env files with { path: ['.env.local', '.env'] }`];function l(){return c[Math.floor(Math.random()*c.length)]}function u(e){return typeof e==`string`?![`false`,`0`,`no`,`off`,``].includes(e.toLowerCase()):!!e}function f(){return process.stdout.isTTY}function p(e){return f()?`\x1b[2m${e}\x1b[0m`:e}let m=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function h(e){let t={},n=e.toString();n=n.replace(/\r\n?/gm,`
@@ -1 +1 @@
1
- import{__toESM as e}from"./chunk-D9KrCrVq.js";import{getAuthToken as t}from"./auth-LbmPJoxc.js";import"./dist-BNbSDxaw.js";import"./open-BCzBcoW-.js";import{migrateBlinkToData as n,require_main as r}from"./main-C1pxMrgd.js";import{Client as i,createDiskStore as a,runAgent as o}from"./run-agent-BVF1YDCN.js";import{spawn as s}from"node:child_process";import{join as c,resolve as l}from"node:path";import{readFile as u}from"node:fs/promises";import{createServer as d}from"node:net";async function f(e){let t=e.env?.PORT??await p(),n=e.env?.HOST??`127.0.0.1`,r=`http://${n}:${t}`,a={...e.env??process.env,PORT:t.toString(),HOST:n},o=s(e.command,e.args,{stdio:`pipe`,env:a});e.signal?.addEventListener(`abort`,()=>{try{o.kill()}catch{}},{once:!0});let c=new AbortController,l=[c.signal];e.signal&&l.push(e.signal);let u=AbortSignal.any(l);o.stdout.on(`data`,t=>{e.onStdout?.(Buffer.from(t).toString(`utf-8`))});let d=``;o.stderr.on(`data`,t=>{c.signal.aborted||(d+=Buffer.from(t).toString(`utf-8`)),e.onStderr?.(Buffer.from(t).toString(`utf-8`))}),o.on(`error`,e=>{c.abort(e)}),o.on(`exit`,(t,n)=>{c.signal.aborted?e.onExit?.(t,n):c.abort()});let f=new i({baseUrl:r}),m=0;for(;!u.aborted;){try{await f.health();break}catch{}if(await new Promise(e=>setTimeout(e,m*5)),m++,m>100)throw Error(`Health endpoint timed out`)}if(u.aborted)throw u.reason;return c.abort(),{client:f,dispose:()=>{o.kill()}}}async function p(){let e=d();return new Promise((t,n)=>{e.listen(0,()=>{let n=e.address().port;t(n)}).on(`error`,e=>{n(e)})}).finally(()=>{e.close()})}var m=e(r(),1);async function h(e,r){let i=l(r?.directory??process.cwd());await n(i);let s=(0,m.parse)(await u(c(i,`.env.local`),`utf-8`)),d=await t(),p=await f({command:`node`,args:[`--experimental-strip-types`,`--no-deprecation`,l(i,`agent.ts`)],env:{...process.env,...s,BLINK_TOKEN:d}}),h=l(r?.directory??process.cwd(),`data`,`chats`),g=a(h,`id`),_=await g.lock(r?.chat??`default`);try{await _.set({id:r?.chat??`default`,messages:[{id:crypto.randomUUID(),created_at:new Date().toISOString(),metadata:void 0,parts:[{type:`text`,text:e.join(` `)}],role:`user`}],created_at:new Date().toISOString(),updated_at:new Date().toISOString()});let t=(await o({agent:p.client,chat:_})).getReader();for(;;){let{done:e,value:n}=await t.read();if(e)break;console.log(n)}}finally{await _.release(),p.dispose(),g.dispose()}}export{h as default};
1
+ import{__toESM as e}from"./chunk-D9KrCrVq.js";import{getAuthToken as t}from"./auth-DpiyIVyb.js";import"./dist-wyfWuz5A.js";import"./open-ydKPp-AQ.js";import{migrateBlinkToData as n,require_main as r}from"./main-DSwQ2okO.js";import{Client as i,createDiskStore as a,runAgent as o}from"./run-agent-BVF1YDCN.js";import{spawn as s}from"node:child_process";import{join as c,resolve as l}from"node:path";import{readFile as u}from"node:fs/promises";import{createServer as d}from"node:net";async function f(e){let t=e.env?.PORT??await p(),n=e.env?.HOST??`127.0.0.1`,r=`http://${n}:${t}`,a={...e.env??process.env,PORT:t.toString(),HOST:n},o=s(e.command,e.args,{stdio:`pipe`,env:a});e.signal?.addEventListener(`abort`,()=>{try{o.kill()}catch{}},{once:!0});let c=new AbortController,l=[c.signal];e.signal&&l.push(e.signal);let u=AbortSignal.any(l);o.stdout.on(`data`,t=>{e.onStdout?.(Buffer.from(t).toString(`utf-8`))});let d=``;o.stderr.on(`data`,t=>{c.signal.aborted||(d+=Buffer.from(t).toString(`utf-8`)),e.onStderr?.(Buffer.from(t).toString(`utf-8`))}),o.on(`error`,e=>{c.abort(e)}),o.on(`exit`,(t,n)=>{c.signal.aborted?e.onExit?.(t,n):c.abort()});let f=new i({baseUrl:r}),m=0;for(;!u.aborted;){try{await f.health();break}catch{}if(await new Promise(e=>setTimeout(e,m*5)),m++,m>100)throw Error(`Health endpoint timed out`)}if(u.aborted)throw u.reason;return c.abort(),{client:f,dispose:()=>{o.kill()}}}async function p(){let e=d();return new Promise((t,n)=>{e.listen(0,()=>{let n=e.address().port;t(n)}).on(`error`,e=>{n(e)})}).finally(()=>{e.close()})}var m=e(r(),1);async function h(e,r){let i=l(r?.directory??process.cwd());await n(i);let s=(0,m.parse)(await u(c(i,`.env.local`),`utf-8`)),d=await t(),p=await f({command:`node`,args:[`--experimental-strip-types`,`--no-deprecation`,l(i,`agent.ts`)],env:{...process.env,...s,BLINK_TOKEN:d}}),h=l(r?.directory??process.cwd(),`data`,`chats`),g=a(h,`id`),_=await g.lock(r?.chat??`default`);try{await _.set({id:r?.chat??`default`,messages:[{id:crypto.randomUUID(),created_at:new Date().toISOString(),metadata:void 0,parts:[{type:`text`,text:e.join(` `)}],role:`user`}],created_at:new Date().toISOString(),updated_at:new Date().toISOString()});let t=(await o({agent:p.client,chat:_})).getReader();for(;;){let{done:e,value:n}=await t.read();if(e)break;console.log(n)}}finally{await _.release(),p.dispose(),g.dispose()}}export{h as default};
@@ -120,7 +120,7 @@ ${ma}${t.trimStart()}`),n=3+(0,o.stripVTControlCharacters)(t.trimStart()).length
120
120
  `);process.stdout.write(Ai.cursor.move(-999,e.length-1)),process.stdout.write(Ai.erase.down(e.length))},g=e=>e.replace(/\.+$/,``),_=e=>{let t=(performance.now()-e)/1e3,n=Math.floor(t/60),r=Math.floor(t%60);return n>0?`[${n}m ${r}s]`:`[${r}s]`},v=(u=``)=>{o=!0,i=Qr(),s=g(u),l=performance.now(),process.stdout.write(`${Y.default.gray(X)}
121
121
  `);let d=0,f=0;p(),a=setInterval(()=>{if(r&&s===c)return;h(),c=s;let n=Y.default.magenta(t[d]);if(r)process.stdout.write(`${n} ${s}...`);else if(e===`timer`)process.stdout.write(`${n} ${s} ${_(l)}`);else{let e=`.`.repeat(Math.floor(f)).slice(0,3);process.stdout.write(`${n} ${s}${e}`)}d=d+1<t.length?d+1:0,f=f<t.length?f+.125:0},n)},y=(t=``,n=0)=>{o=!1,clearInterval(a),h();let r=n===0?Y.default.green(Li):n===1?Y.default.red(Fi):Y.default.red(Ii);s=g(t??s),e===`timer`?process.stdout.write(`${r} ${s} ${_(l)}
122
122
  `):process.stdout.write(`${r} ${s}
123
- `),m(),i()};return{start:v,stop:y,message:(e=``)=>{s=g(e??s)}}},_a=async(e,t)=>{let n={},r=Object.keys(e);for(let i of r){let r=e[i],a=await r({results:n})?.catch(e=>{throw e});if(typeof t?.onCancel==`function`&&Xr(a)){n[i]=`canceled`,t.onCancel({results:n});continue}n[i]=a}return n},va=async e=>{for(let t of e){if(t.enabled===!1)continue;let e=ga();e.start(t.title);let n=await t.task(e.message);e.stop(n||t.title)}};function ya(){let e=ba();if((0,u.existsSync)(e)){let t=(0,u.readFileSync)(e,`utf8`);return JSON.parse(t).token}}function ba(){let e=cr(`blink`).dataDirs();if(e.length===0)throw Error(`No suitable data directory for Blink storage found!`);return(0,c.join)(e[0],`auth.json`)}function xa(e){let t=(0,c.join)(e,`data`,`devhook.txt`);if((0,u.mkdirSync)((0,c.dirname)(t),{recursive:!0}),(0,u.existsSync)(t))return(0,u.readFileSync)(t,`utf-8`);let n=crypto.randomUUID();return(0,u.writeFileSync)(t,n),n}const Sa=(e,t)=>e.json({error:t},400),Ca=e=>{let t=e.req.param(`key`);return!t||t===``?{key:t,err:`Key is required`}:t.length>475?{key:t,err:`Key is too long. Max length is 475 characters.`}:{key:t}},wa=()=>new t.Hono,Ta=wa().get(`/:key`,async e=>{let{key:t,err:n}=Ca(e);if(n)return Sa(e,n);let r=await e.env.context.store.get(t);return e.json({value:r},200)}).post(`/:key`,t.validator(`json`,(e,t)=>{let n=e.value;return n?typeof n==`string`?n.length>2e4?Sa(t,`Value is too long. Max length is 20,000 characters.`):{value:n}:Sa(t,`Value must be a string`):Sa(t,`Value is required`)}),async e=>{let{key:t,err:n}=Ca(e);if(n)return Sa(e,n);let{value:r}=e.req.valid(`json`);return await e.env.context.store.set(t,r),e.body(null,204)}).delete(`/:key`,async e=>{let{key:t,err:n}=Ca(e);return n?Sa(e,n):(await e.env.context.store.delete(t),e.body(null,204))}).get(`/`,async e=>{let{cursor:t,limit:n,prefix:r}=e.req.query(),{entries:i,cursor:a}=await e.env.context.store.list(r,{cursor:t?String(t):void 0,limit:n?Number(n):100});return e.json({entries:i,cursor:a})}),Ea=e=>{let t=e.req.param(`key`);return t?t.length>475?{key:t,err:`Key is too long. Max length is 475 characters.`}:{key:t}:{key:t,err:`Key is required`}},Da=wa().basePath(`/:key`).post(`/`,async e=>{let{key:t,err:n}=Ea(e);return n?Sa(e,n):e.json(await e.env.context.chat.ensure(t),200)}).post(`/sendMessages`,t.validator(`json`,(e,t)=>({message:e.message,options:e.options})),async e=>{let{key:t,err:n}=Ea(e);if(n)return Sa(e,n);let{message:r,options:i}=e.req.valid(`json`);try{await e.env.context.chat.message(t,r,i)}catch(t){return Sa(e,t instanceof Error?t.message:`Unknown error`)}return e.body(null,204)}),Oa=wa().post(`/v1/traces`,async e=>e.env.context.otlp?e.env.context.otlp.traces(e.req.raw):e.body(null,204)),ka=new t.Hono().route(`/kv`,Ta).route(`/chat`,Da).route(`/otlp`,Oa);function Aa(e){let n=(0,g.join)(e.dataDirectory,`chats`),r=ie(n,`id`),a={},o=(0,g.join)(e.dataDirectory,`storage.json`);i.existsSync(o)&&(a=JSON.parse(i.readFileSync(o,`utf-8`)));let c=new Map,l=async t=>{let n=e.getAgent();if(!n)throw Error(`No agent available`);let i=c.get(t);i&&(i.controller.abort(),await i.promise.catch(()=>{}));let a=new AbortController,o=(async()=>{let e;try{e=await r.lock(t);let i=(await se({agent:n,chat:e,signal:a.signal})).getReader();try{for(;;){let{done:e}=await i.read();if(e||a.signal.aborted)break}}finally{i.releaseLock()}}catch(e){e?.name!==`AbortError`&&console.error(`Error running agent for chat ${t}:`,e)}finally{if(e)try{await e.release()}catch(e){console.error(`Error releasing lock for chat ${t}:`,e)}c.delete(t)}})();c.set(t,{controller:a,promise:o}),await o},u={chat:{async ensure(e){let t=await r.get(e),n=!1;if(!t){let t=await r.lock(e);await t.set({id:e,messages:[],created_at:new Date().toISOString(),updated_at:new Date().toISOString()}),await t.release(),n=!0}return{key:e,created:n}},async message(e,t,n){if(!await r.get(e))throw Error(`Chat not found`);if(n?.behavior===`append`){let n=await r.lock(e),i=await n.get();await n.set({...i,messages:[...i.messages,W(t)],updated_at:new Date().toISOString()}),await n.release();return}if(n?.behavior===`interrupt`){let n=await r.lock(e),i=await n.get();await n.update({messages:[...i.messages,W(t)],updated_at:new Date().toISOString()}),await n.release(),l(e).catch(t=>{console.error(`Error running agent for chat ${e}:`,t)});return}let i=await r.lock(e),a=await i.get();await i.set({...a,messages:[...a.messages,W(t)],updated_at:new Date().toISOString()}),await i.release()}},store:{get(e){return Promise.resolve(a[e])},set(e,t){return a[e]=t,i.writeFileSync(o,JSON.stringify(a),`utf-8`),Promise.resolve()},delete(e){return delete a[e],i.writeFileSync(o,JSON.stringify(a),`utf-8`),Promise.resolve()},list(e,t){let n=Math.min(t?.limit??100,1e3),r=t?.cursor,i=Object.keys(a).filter(t=>t.startsWith(e??``)).sort(),o=0;if(r){let e=i.indexOf(r);e!==-1&&(o=e+1)}let s=i.slice(o,o+n),c=o+n<i.length?s[s.length-1]:void 0;return Promise.resolve({entries:s.map(e=>({key:e})),cursor:c})}}},d=(0,s.createServer)(t.createServerAdapter(e=>ka.fetch(e,{context:u})));return d.listen(e.port??0),{url:`http://127.0.0.1:${d.address().port}`,runtime:u,chatStore:r,chatsDirectory:n,startChat:e=>{l(e).catch(t=>{console.error(`Error running agent for chat ${e}:`,t)})},stopChat:e=>{c.get(e)?.controller.abort()},dispose:()=>{for(let e of c.values())e.controller.abort();d.close(),r.dispose()}}}function ja({agent:e,capabilities:n,messages:r}){let[i,a]=(0,h.useState)(void 0),[o,s]=(0,h.useState)(!0),[c,l]=(0,h.useState)(void 0),u=(0,h.useRef)(c);(0,h.useEffect)(()=>{u.current=c},[c]);let[d,f]=(0,h.useState)(()=>t.lastUIOptions(r));(0,h.useEffect)(()=>{f(e=>{let n=t.lastUIOptions(r);return JSON.stringify(n)===JSON.stringify(e)?e:n})},[r]);let[p,m]=(0,h.useState)(void 0),g=(0,h.useCallback)((e,t)=>{if(!u.current)return!1;let n=u.current[e];return n?n.values.some(e=>e.id===t):!1},[]),_=(0,h.useCallback)(e=>{m(t=>{let n={...d,...t,...e};for(let[e,t]of Object.entries(n))g(e,t)||delete n[e];for(let[e,t]of Object.entries(u.current??{}))!n[e]&&t.defaultValue!==void 0&&(n[e]=t.defaultValue);return JSON.stringify(n)===JSON.stringify(t)?t:n})},[d,g]);(0,h.useEffect)(()=>{if(!d&&!c){m(void 0);return}_()},[d,c,_]);let v=(0,h.useRef)(void 0),y=(0,h.useRef)(void 0);(0,h.useEffect)(()=>{e!==y.current&&(y.current=e,l(void 0),m(void 0),a(void 0),s(!0),v.current=void 0)},[e]),(0,h.useEffect)(()=>{if(n&&!n.ui||!e){l(void 0),m(void 0),a(void 0),v.current=void 0;return}let t=p?JSON.stringify(p):``;if(v.current===t){s(!1),a(void 0);return}let r=new AbortController;return s(!0),a(void 0),e.ui(p?{selectedOptions:p}:{},{signal:r.signal}).then(e=>{if(!e){l(void 0);return}r.signal.aborted||(l(t=>JSON.stringify(t)===JSON.stringify(e)?t:e),v.current=t)}).catch(e=>{r.signal.aborted||a(e instanceof Error?e:Error(String(e)))}).finally(()=>{s(!1)}),()=>{r.abort()}},[e,n,p]);let b=(0,h.useCallback)((e,t)=>{_({[e]:t})},[_]);return{schema:c,options:p,setOption:b,loading:o,error:i}}function Ma(e){let t=(0,h.useRef)(e.onRequest);(0,h.useEffect)(()=>{t.current=e.onRequest},[e.onRequest]);let n=(0,h.useRef)(e.id??crypto.randomUUID()),[r,i]=(0,h.useState)(`disconnected`);return(0,h.useEffect)(()=>{if(e.disabled){i(`disconnected`);return}let r=!1,a,o,s=()=>{r||(a=new Zn().devhook.listen({id:n.current,onRequest:async e=>t.current(e),onConnect:()=>{i(`connected`)},onDisconnect:()=>{i(`disconnected`),r||(o=setTimeout(s,2e3))},onError:e=>{i(`error`),r||(o=setTimeout(s,2e3))}}))};return s(),()=>{r=!0,o&&clearTimeout(o),a&&a.dispose()}},[e.disabled]),{id:n.current,status:r}}var Na=e.__commonJSMin(((e,t)=>{t.exports={name:`dotenv`,version:`17.2.3`,description:`Loads environment variables from .env file`,main:`lib/main.js`,types:`lib/main.d.ts`,exports:{".":{types:`./lib/main.d.ts`,require:`./lib/main.js`,default:`./lib/main.js`},"./config":`./config.js`,"./config.js":`./config.js`,"./lib/env-options":`./lib/env-options.js`,"./lib/env-options.js":`./lib/env-options.js`,"./lib/cli-options":`./lib/cli-options.js`,"./lib/cli-options.js":`./lib/cli-options.js`,"./package.json":`./package.json`},scripts:{"dts-check":`tsc --project tests/types/tsconfig.json`,lint:`standard`,pretest:`npm run lint && npm run dts-check`,test:`tap run tests/**/*.js --allow-empty-coverage --disable-coverage --timeout=60000`,"test:coverage":`tap run tests/**/*.js --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov`,prerelease:`npm test`,release:`standard-version`},repository:{type:`git`,url:`git://github.com/motdotla/dotenv.git`},homepage:`https://github.com/motdotla/dotenv#readme`,funding:`https://dotenvx.com`,keywords:[`dotenv`,`env`,`.env`,`environment`,`variables`,`config`,`settings`],readmeFilename:`README.md`,license:`BSD-2-Clause`,devDependencies:{"@types/node":`^18.11.3`,decache:`^4.6.2`,sinon:`^14.0.1`,standard:`^17.0.0`,"standard-version":`^9.5.0`,tap:`^19.2.0`,typescript:`^4.8.4`},engines:{node:`>=12`},browser:{fs:!1}}})),Pa=e.__commonJSMin(((e,t)=>{let n=require(`fs`),r=require(`path`),i=require(`os`),a=require(`crypto`),o=Na().version,s=[`🔐 encrypt with Dotenvx: https://dotenvx.com`,`🔐 prevent committing .env to code: https://dotenvx.com/precommit`,`🔐 prevent building .env in docker: https://dotenvx.com/prebuild`,`📡 add observability to secrets: https://dotenvx.com/ops`,`👥 sync secrets across teammates & machines: https://dotenvx.com/ops`,`🗂️ backup and recover secrets: https://dotenvx.com/ops`,`✅ audit secrets and track compliance: https://dotenvx.com/ops`,`🔄 add secrets lifecycle management: https://dotenvx.com/ops`,`🔑 add access controls to secrets: https://dotenvx.com/ops`,"🛠️ run anywhere with `dotenvx run -- yourcommand`",`⚙️ specify custom .env file path with { path: '/custom/path/.env' }`,`⚙️ enable debug logging with { debug: true }`,`⚙️ override existing env vars with { override: true }`,`⚙️ suppress all logs with { quiet: true }`,`⚙️ write to custom object with { processEnv: myObject }`,`⚙️ load multiple .env files with { path: ['.env.local', '.env'] }`];function c(){return s[Math.floor(Math.random()*s.length)]}function l(e){return typeof e==`string`?![`false`,`0`,`no`,`off`,``].includes(e.toLowerCase()):!!e}function u(){return process.stdout.isTTY}function d(e){return u()?`\x1b[2m${e}\x1b[0m`:e}let f=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function p(e){let t={},n=e.toString();n=n.replace(/\r\n?/gm,`
123
+ `),m(),i()};return{start:v,stop:y,message:(e=``)=>{s=g(e??s)}}},_a=async(e,t)=>{let n={},r=Object.keys(e);for(let i of r){let r=e[i],a=await r({results:n})?.catch(e=>{throw e});if(typeof t?.onCancel==`function`&&Xr(a)){n[i]=`canceled`,t.onCancel({results:n});continue}n[i]=a}return n},va=async e=>{for(let t of e){if(t.enabled===!1)continue;let e=ga();e.start(t.title);let n=await t.task(e.message);e.stop(n||t.title)}};function ya(){let e=ba();if((0,u.existsSync)(e)){let t=(0,u.readFileSync)(e,`utf8`);return JSON.parse(t).token}}function ba(){let e=cr(`blink`).dataDirs();if(e.length===0)throw Error(`No suitable data directory for Blink storage found!`);return(0,c.join)(e[0],`auth.json`)}function xa(e){let t=(0,c.join)(e,`data`,`devhook.txt`);if((0,u.mkdirSync)((0,c.dirname)(t),{recursive:!0}),(0,u.existsSync)(t))return(0,u.readFileSync)(t,`utf-8`);let n=crypto.randomUUID();return(0,u.writeFileSync)(t,n),n}const Sa=(e,t)=>e.json({error:t},400),Ca=e=>{let t=e.req.param(`key`);return!t||t===``?{key:t,err:`Key is required`}:t.length>475?{key:t,err:`Key is too long. Max length is 475 characters.`}:{key:t}},wa=()=>new t.Hono,Ta=wa().get(`/:key`,async e=>{let{key:t,err:n}=Ca(e);if(n)return Sa(e,n);let r=await e.env.context.store.get(t);return e.json({value:r},200)}).post(`/:key`,t.validator(`json`,(e,t)=>{let n=e.value;return n?typeof n==`string`?n.length>2e4?Sa(t,`Value is too long. Max length is 20,000 characters.`):{value:n}:Sa(t,`Value must be a string`):Sa(t,`Value is required`)}),async e=>{let{key:t,err:n}=Ca(e);if(n)return Sa(e,n);let{value:r}=e.req.valid(`json`);return await e.env.context.store.set(t,r),e.body(null,204)}).delete(`/:key`,async e=>{let{key:t,err:n}=Ca(e);return n?Sa(e,n):(await e.env.context.store.delete(t),e.body(null,204))}).get(`/`,async e=>{let{cursor:t,limit:n,prefix:r}=e.req.query(),{entries:i,cursor:a}=await e.env.context.store.list(r,{cursor:t?String(t):void 0,limit:n?Number(n):100});return e.json({entries:i,cursor:a})}),Ea=e=>{let t=e.req.param(`key`);return t?t.length>475?{key:t,err:`Key is too long. Max length is 475 characters.`}:{key:t}:{key:t,err:`Key is required`}},Da=wa().basePath(`/:key`).post(`/`,async e=>{let{key:t,err:n}=Ea(e);return n?Sa(e,n):e.json(await e.env.context.chat.ensure(t),200)}).post(`/sendMessages`,t.validator(`json`,(e,t)=>({message:e.message,options:e.options})),async e=>{let{key:t,err:n}=Ea(e);if(n)return Sa(e,n);let{message:r,options:i}=e.req.valid(`json`);try{await e.env.context.chat.message(t,r,i)}catch(t){return Sa(e,t instanceof Error?t.message:`Unknown error`)}return e.body(null,204)}),Oa=wa().post(`/v1/traces`,async e=>e.env.context.otlp?e.env.context.otlp.traces(e.req.raw):e.body(null,204)),ka=new t.Hono().route(`/kv`,Ta).route(`/chat`,Da).route(`/otlp`,Oa);function Aa(e){let n=(0,g.join)(e.dataDirectory,`chats`),r=ie(n,`id`),a={},o=(0,g.join)(e.dataDirectory,`storage.json`);i.existsSync(o)&&(a=JSON.parse(i.readFileSync(o,`utf-8`)));let c=new Map,l=async t=>{let n=e.getAgent();if(!n)throw Error(`No agent available`);let i=c.get(t);i&&(i.controller.abort(),await i.promise.catch(()=>{}));let a=new AbortController,o=(async()=>{let e;try{e=await r.lock(t);let i=(await se({agent:n,chat:e,signal:a.signal})).getReader();try{for(;;){let{done:e}=await i.read();if(e||a.signal.aborted)break}}finally{i.releaseLock()}}catch(e){e?.name!==`AbortError`&&console.error(`Error running agent for chat ${t}:`,e)}finally{if(e)try{await e.release()}catch(e){console.error(`Error releasing lock for chat ${t}:`,e)}c.delete(t)}})();c.set(t,{controller:a,promise:o}),await o},u={chat:{async ensure(e){let t=await r.get(e),n=!1;if(!t){let t=await r.lock(e);await t.set({id:e,messages:[],created_at:new Date().toISOString(),updated_at:new Date().toISOString()}),await t.release(),n=!0}return{key:e,created:n}},async message(e,t,n){if(!await r.get(e))throw Error(`Chat not found`);if(n?.behavior===`append`){let n=await r.lock(e),i=await n.get();await n.set({...i,messages:[...i.messages,W(t)],updated_at:new Date().toISOString()}),await n.release();return}if(n?.behavior===`interrupt`){let n=await r.lock(e),i=await n.get();await n.update({messages:[...i.messages,W(t)],updated_at:new Date().toISOString()}),await n.release(),l(e).catch(t=>{console.error(`Error running agent for chat ${e}:`,t)});return}let i=await r.lock(e),a=await i.get();await i.set({...a,messages:[...a.messages,W(t)],updated_at:new Date().toISOString()}),await i.release()}},store:{get(e){return Promise.resolve(a[e])},set(e,t){return a[e]=t,i.writeFileSync(o,JSON.stringify(a),`utf-8`),Promise.resolve()},delete(e){return delete a[e],i.writeFileSync(o,JSON.stringify(a),`utf-8`),Promise.resolve()},list(e,t){let n=Math.min(t?.limit??100,1e3),r=t?.cursor,i=Object.keys(a).filter(t=>t.startsWith(e??``)).sort(),o=0;if(r){let e=i.indexOf(r);e!==-1&&(o=e+1)}let s=i.slice(o,o+n),c=o+n<i.length?s[s.length-1]:void 0;return Promise.resolve({entries:s.map(e=>({key:e})),cursor:c})}}},d=(0,s.createServer)(t.createServerAdapter(e=>ka.fetch(e,{context:u})));return d.listen(e.port??0),{url:`http://127.0.0.1:${d.address().port}`,runtime:u,chatStore:r,chatsDirectory:n,startChat:e=>{l(e).catch(t=>{console.error(`Error running agent for chat ${e}:`,t)})},stopChat:e=>{c.get(e)?.controller.abort()},dispose:()=>{for(let e of c.values())e.controller.abort();d.close(),r.dispose()}}}function ja({agent:e,capabilities:n,messages:r}){let[i,a]=(0,h.useState)(void 0),[o,s]=(0,h.useState)(!0),[c,l]=(0,h.useState)(void 0),u=(0,h.useRef)(c);(0,h.useEffect)(()=>{u.current=c},[c]);let[d,f]=(0,h.useState)(()=>t.lastUIOptions(r));(0,h.useEffect)(()=>{f(e=>{let n=t.lastUIOptions(r);return JSON.stringify(n)===JSON.stringify(e)?e:n})},[r]);let[p,m]=(0,h.useState)(void 0),g=(0,h.useCallback)((e,t)=>{if(!u.current)return!1;let n=u.current[e];return n?n.values.some(e=>e.id===t):!1},[]),_=(0,h.useCallback)(e=>{m(t=>{let n={...d,...t,...e};for(let[e,t]of Object.entries(n))g(e,t)||delete n[e];for(let[e,t]of Object.entries(u.current??{}))!n[e]&&t.defaultValue!==void 0&&(n[e]=t.defaultValue);return JSON.stringify(n)===JSON.stringify(t)?t:n})},[d,g]);(0,h.useEffect)(()=>{if(!d&&!c){m(void 0);return}_()},[d,c,_]);let v=(0,h.useRef)(void 0),y=(0,h.useRef)(void 0);(0,h.useEffect)(()=>{e!==y.current&&(y.current=e,l(void 0),m(void 0),a(void 0),s(!0),v.current=void 0)},[e]),(0,h.useEffect)(()=>{if(n&&!n.ui||!e){l(void 0),m(void 0),a(void 0),v.current=void 0;return}let t=p?JSON.stringify(p):``;if(v.current===t){s(!1),a(void 0);return}let r=new AbortController;return s(!0),a(void 0),e.ui(p?{selectedOptions:p}:{},{signal:r.signal}).then(e=>{if(!e){l(void 0);return}r.signal.aborted||(l(t=>JSON.stringify(t)===JSON.stringify(e)?t:e),v.current=t)}).catch(e=>{r.signal.aborted||a(e instanceof Error?e:Error(String(e)))}).finally(()=>{s(!1)}),()=>{r.abort()}},[e,n,p]);let b=(0,h.useCallback)((e,t)=>{_({[e]:t})},[_]);return{schema:c,options:p,setOption:b,loading:o,error:i}}function Ma(e){let t=(0,h.useRef)(e.onRequest);(0,h.useEffect)(()=>{t.current=e.onRequest},[e.onRequest]);let n=(0,h.useRef)(e.id??crypto.randomUUID()),[r,i]=(0,h.useState)(`disconnected`);return(0,h.useEffect)(()=>{if(e.disabled){i(`disconnected`);return}let r=!1,a,o,s=()=>{r||(a=new Zn({baseURL:`https://blink.so`}).devhook.listen({id:n.current,onRequest:async e=>t.current(e),onConnect:()=>{i(`connected`)},onDisconnect:()=>{i(`disconnected`),r||(o=setTimeout(s,2e3))},onError:e=>{i(`error`),r||(o=setTimeout(s,2e3))}}))};return s(),()=>{r=!0,o&&clearTimeout(o),a&&a.dispose()}},[e.disabled]),{id:n.current,status:r}}var Na=e.__commonJSMin(((e,t)=>{t.exports={name:`dotenv`,version:`17.2.3`,description:`Loads environment variables from .env file`,main:`lib/main.js`,types:`lib/main.d.ts`,exports:{".":{types:`./lib/main.d.ts`,require:`./lib/main.js`,default:`./lib/main.js`},"./config":`./config.js`,"./config.js":`./config.js`,"./lib/env-options":`./lib/env-options.js`,"./lib/env-options.js":`./lib/env-options.js`,"./lib/cli-options":`./lib/cli-options.js`,"./lib/cli-options.js":`./lib/cli-options.js`,"./package.json":`./package.json`},scripts:{"dts-check":`tsc --project tests/types/tsconfig.json`,lint:`standard`,pretest:`npm run lint && npm run dts-check`,test:`tap run tests/**/*.js --allow-empty-coverage --disable-coverage --timeout=60000`,"test:coverage":`tap run tests/**/*.js --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov`,prerelease:`npm test`,release:`standard-version`},repository:{type:`git`,url:`git://github.com/motdotla/dotenv.git`},homepage:`https://github.com/motdotla/dotenv#readme`,funding:`https://dotenvx.com`,keywords:[`dotenv`,`env`,`.env`,`environment`,`variables`,`config`,`settings`],readmeFilename:`README.md`,license:`BSD-2-Clause`,devDependencies:{"@types/node":`^18.11.3`,decache:`^4.6.2`,sinon:`^14.0.1`,standard:`^17.0.0`,"standard-version":`^9.5.0`,tap:`^19.2.0`,typescript:`^4.8.4`},engines:{node:`>=12`},browser:{fs:!1}}})),Pa=e.__commonJSMin(((e,t)=>{let n=require(`fs`),r=require(`path`),i=require(`os`),a=require(`crypto`),o=Na().version,s=[`🔐 encrypt with Dotenvx: https://dotenvx.com`,`🔐 prevent committing .env to code: https://dotenvx.com/precommit`,`🔐 prevent building .env in docker: https://dotenvx.com/prebuild`,`📡 add observability to secrets: https://dotenvx.com/ops`,`👥 sync secrets across teammates & machines: https://dotenvx.com/ops`,`🗂️ backup and recover secrets: https://dotenvx.com/ops`,`✅ audit secrets and track compliance: https://dotenvx.com/ops`,`🔄 add secrets lifecycle management: https://dotenvx.com/ops`,`🔑 add access controls to secrets: https://dotenvx.com/ops`,"🛠️ run anywhere with `dotenvx run -- yourcommand`",`⚙️ specify custom .env file path with { path: '/custom/path/.env' }`,`⚙️ enable debug logging with { debug: true }`,`⚙️ override existing env vars with { override: true }`,`⚙️ suppress all logs with { quiet: true }`,`⚙️ write to custom object with { processEnv: myObject }`,`⚙️ load multiple .env files with { path: ['.env.local', '.env'] }`];function c(){return s[Math.floor(Math.random()*s.length)]}function l(e){return typeof e==`string`?![`false`,`0`,`no`,`off`,``].includes(e.toLowerCase()):!!e}function u(){return process.stdout.isTTY}function d(e){return u()?`\x1b[2m${e}\x1b[0m`:e}let f=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function p(e){let t={},n=e.toString();n=n.replace(/\r\n?/gm,`
124
124
  `);let r;for(;(r=f.exec(n))!=null;){let e=r[1],n=r[2]||``;n=n.trim();let i=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/gm,`$2`),i===`"`&&(n=n.replace(/\\n/g,`
125
125
  `),n=n.replace(/\\r/g,`\r`)),t[e]=n}return t}function m(e){e||={};let t=b(e);e.path=t;let n=D.configDotenv(e);if(!n.parsed){let e=Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw e.code=`MISSING_DATA`,e}let r=v(e).split(`,`),i=r.length,a;for(let e=0;e<i;e++)try{let t=r[e].trim(),i=y(n,t);a=D.decrypt(i.ciphertext,i.key);break}catch(t){if(e+1>=i)throw t}return D.parse(a)}function h(e){console.error(`[dotenv@${o}][WARN] ${e}`)}function g(e){console.log(`[dotenv@${o}][DEBUG] ${e}`)}function _(e){console.log(`[dotenv@${o}] ${e}`)}function v(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:``}function y(e,t){let n;try{n=new URL(t)}catch(e){if(e.code===`ERR_INVALID_URL`){let e=Error(`INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development`);throw e.code=`INVALID_DOTENV_KEY`,e}throw e}let r=n.password;if(!r){let e=Error(`INVALID_DOTENV_KEY: Missing key part`);throw e.code=`INVALID_DOTENV_KEY`,e}let i=n.searchParams.get(`environment`);if(!i){let e=Error(`INVALID_DOTENV_KEY: Missing environment part`);throw e.code=`INVALID_DOTENV_KEY`,e}let a=`DOTENV_VAULT_${i.toUpperCase()}`,o=e.parsed[a];if(!o){let e=Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${a} in your .env.vault file.`);throw e.code=`NOT_FOUND_DOTENV_ENVIRONMENT`,e}return{ciphertext:o,key:r}}function b(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)n.existsSync(r)&&(t=r.endsWith(`.vault`)?r:`${r}.vault`);else t=e.path.endsWith(`.vault`)?e.path:`${e.path}.vault`;else t=r.resolve(process.cwd(),`.env.vault`);return n.existsSync(t)?t:null}function x(e){return e[0]===`~`?r.join(i.homedir(),e.slice(1)):e}function S(e){let t=l(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),n=l(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);(t||!n)&&_(`Loading env from encrypted .env.vault`);let r=D._parseVault(e),i=process.env;return e&&e.processEnv!=null&&(i=e.processEnv),D.populate(i,r,e),{parsed:r}}function C(e){let t=r.resolve(process.cwd(),`.env`),i=`utf8`,a=process.env;e&&e.processEnv!=null&&(a=e.processEnv);let o=l(a.DOTENV_CONFIG_DEBUG||e&&e.debug),s=l(a.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?i=e.encoding:o&&g(`No encoding is specified. UTF-8 is used by default`);let u=[t];if(e&&e.path)if(!Array.isArray(e.path))u=[x(e.path)];else{u=[];for(let t of e.path)u.push(x(t))}let f,p={};for(let t of u)try{let r=D.parse(n.readFileSync(t,{encoding:i}));D.populate(p,r,e)}catch(e){o&&g(`Failed to load ${t} ${e.message}`),f=e}let m=D.populate(a,p,e);if(o=l(a.DOTENV_CONFIG_DEBUG||o),s=l(a.DOTENV_CONFIG_QUIET||s),o||!s){let e=Object.keys(m).length,t=[];for(let e of u)try{let n=r.relative(process.cwd(),e);t.push(n)}catch(t){o&&g(`Failed to load ${e} ${t.message}`),f=t}_(`injecting env (${e}) from ${t.join(`,`)} ${d(`-- tip: ${c()}`)}`)}return f?{parsed:p,error:f}:{parsed:p}}function w(e){if(v(e).length===0)return D.configDotenv(e);let t=b(e);return t?D._configVault(e):(h(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),D.configDotenv(e))}function T(e,t){let n=Buffer.from(t.slice(-64),`hex`),r=Buffer.from(e,`base64`),i=r.subarray(0,12),o=r.subarray(-16);r=r.subarray(12,-16);try{let e=a.createDecipheriv(`aes-256-gcm`,n,i);return e.setAuthTag(o),`${e.update(r)}${e.final()}`}catch(e){let t=e instanceof RangeError,n=e.message===`Invalid key length`,r=e.message===`Unsupported state or unable to authenticate data`;if(t||n){let e=Error(`INVALID_DOTENV_KEY: It must be 64 characters long (or more)`);throw e.code=`INVALID_DOTENV_KEY`,e}else if(r){let e=Error(`DECRYPTION_FAILED: Please check your DOTENV_KEY`);throw e.code=`DECRYPTION_FAILED`,e}else throw e}}function E(e,t,n={}){let r=!!(n&&n.debug),i=!!(n&&n.override),a={};if(typeof t!=`object`){let e=Error(`OBJECT_REQUIRED: Please check the processEnv argument being passed to populate`);throw e.code=`OBJECT_REQUIRED`,e}for(let n of Object.keys(t))Object.prototype.hasOwnProperty.call(e,n)?(i===!0&&(e[n]=t[n],a[n]=t[n]),r&&g(i===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):(e[n]=t[n],a[n]=t[n]);return a}let D={configDotenv:C,_configVault:S,_parseVault:m,config:w,decrypt:T,parse:p,populate:E};t.exports.configDotenv=D.configDotenv,t.exports._configVault=D._configVault,t.exports._parseVault=D._parseVault,t.exports.config=D.config,t.exports.decrypt=D.decrypt,t.exports.parse=D.parse,t.exports.populate=D.populate,t.exports=D})),Fa=e.__toESM(Pa(),1);async function Ia(e,t){let n=e;for(;n!==(0,c.dirname)(n);){let e=(0,c.join)(n,t);try{return await(0,p.stat)(e),e}catch{}n=(0,c.dirname)(n)}}function La(e,t=`.env.local`){let[n,r]=(0,h.useState)({});return(0,h.useEffect)(()=>{let n,i=e=>{try{let t=(0,u.readFileSync)(e,`utf-8`),n=(0,Fa.parse)(t);r(n)}catch(e){console.error(`Error reading ${t}:`,e),r({})}};return Ia(e,t).then(e=>{if(!e){r({});return}i(e),n=(0,u.watch)(e,{persistent:!1},()=>{i(e)})}),()=>{n&&n.close()}},[e,t]),n}const Ra=(e,t)=>{let n=typeof e==`string`;typeof e==`string`&&(e=t.encode(e));let r=new Uint8Array(1+e.byteLength);return r[0]=n?0:1,r.set(new Uint8Array(e),1),r},za=(e,t)=>e[0]===0?t.decode(e.subarray(1)):new Uint8Array(e.subarray(1));let Ba=function(e){return e[e.REQUEST=0]=`REQUEST`,e[e.PROXY_INIT=1]=`PROXY_INIT`,e[e.PROXY_BODY=2]=`PROXY_BODY`,e[e.PROXY_WEBSOCKET_MESSAGE=3]=`PROXY_WEBSOCKET_MESSAGE`,e[e.PROXY_WEBSOCKET_CLOSE=4]=`PROXY_WEBSOCKET_CLOSE`,e}({}),Va=function(e){return e[e.RESPONSE=0]=`RESPONSE`,e[e.NOTIFICATION=1]=`NOTIFICATION`,e[e.PROXY_INIT=2]=`PROXY_INIT`,e[e.PROXY_DATA=3]=`PROXY_DATA`,e[e.PROXY_WEBSOCKET_MESSAGE=4]=`PROXY_WEBSOCKET_MESSAGE`,e[e.PROXY_WEBSOCKET_CLOSE=5]=`PROXY_WEBSOCKET_CLOSE`,e}({});const Ha={[Ba.REQUEST]:v.z.string(),[Ba.PROXY_INIT]:v.z.object({method:v.z.string(),headers:v.z.record(v.z.string(),v.z.string()),url:v.z.string()}),[Ba.PROXY_BODY]:v.z.instanceof(Uint8Array),[Ba.PROXY_WEBSOCKET_MESSAGE]:v.z.object({type:v.z.enum([`text`,`binary`]),data:v.z.instanceof(Uint8Array)}),[Ba.PROXY_WEBSOCKET_CLOSE]:v.z.object({code:v.z.number().optional(),reason:v.z.string().optional()})},Ua={[Va.RESPONSE]:v.z.string(),[Va.NOTIFICATION]:v.z.string(),[Va.PROXY_INIT]:v.z.object({status_code:v.z.number(),status_message:v.z.string(),headers:v.z.record(v.z.string(),v.z.string())}),[Va.PROXY_DATA]:v.z.instanceof(Uint8Array),[Va.PROXY_WEBSOCKET_MESSAGE]:v.z.instanceof(Uint8Array),[Va.PROXY_WEBSOCKET_CLOSE]:v.z.object({code:v.z.number(),reason:v.z.string()})},Wa={[Ba.PROXY_INIT]:{method:v.z.string(),headers:v.z.record(v.z.string(),v.z.string()),url:v.z.string()}},Ga={process_execute:v.z.object({command:v.z.string(),args:v.z.array(v.z.string()),env_file:v.z.string().optional(),env:v.z.record(v.z.string(),v.z.string()).optional(),cwd:v.z.string().optional()}),process_send_input:v.z.object({pid:v.z.number(),data:v.z.string()}),process_wait:v.z.object({pid:v.z.number(),output_idle_timeout_ms:v.z.number().optional(),timeout_ms:v.z.number().optional()}),process_list:v.z.object({include_dead:v.z.boolean().optional()}),process_read_plain_output:v.z.object({pid:v.z.number(),start_line:v.z.number().optional(),end_line:v.z.number().optional()}),process_kill:v.z.object({pid:v.z.number(),signal:v.z.string().optional()}),set_env:v.z.object({env:v.z.record(v.z.string(),v.z.string())}),read_file:v.z.object({path:v.z.string(),line_start:v.z.number().optional(),line_end:v.z.number().optional()}),write_file:v.z.object({path:v.z.string(),content:v.z.string(),base64:v.z.boolean().optional(),mode:v.z.number().optional()}),read_directory:v.z.object({path:v.z.string()}),watch_directory:v.z.object({path:v.z.string()}),deploy_static_files:v.z.object({path:v.z.string()})},Ka=v.z.object({pid:v.z.number(),command:v.z.string(),args:v.z.array(v.z.string()),title:v.z.string().optional(),cwd:v.z.string(),env:v.z.record(v.z.string(),v.z.string()),exit_code:v.z.number().optional(),exit_signal:v.z.number().optional(),duration_ms:v.z.number().optional(),output_total_lines:v.z.number()}),qa=Ka.extend({ansi_output:v.z.string(),plain_output:v.z.object({lines:v.z.array(v.z.string()),total_lines:v.z.number()})}),Ja={process_execute:v.z.object({pid:v.z.number()}),process_send_input:v.z.object({}),process_wait:qa,process_list:v.z.object({processes:v.z.array(Ka)}),process_read_plain_output:v.z.object({lines:v.z.array(v.z.string()),total_lines:v.z.number(),duration_ms:v.z.number(),exit_code:v.z.number().optional(),exit_signal:v.z.number().optional()}),process_kill:v.z.object({}),set_env:v.z.object({}),read_file:v.z.object({total_lines:v.z.number(),lines_read:v.z.number(),start_line:v.z.number(),content:v.z.string(),mime_type:v.z.string()}),write_file:v.z.object({}),read_directory:v.z.object({entries:v.z.array(v.z.object({name:v.z.string(),type:v.z.enum([`file`,`directory`,`symlink`])}))}),watch_directory:v.z.object({}),deploy_static_files:v.z.object({deployment_id:v.z.string()})},Ya=v.z.object({type:v.z.enum([`create`,`update`,`delete`]),path:v.z.string()}),Xa=v.z.object({type:v.z.enum([`context`,`added`,`deleted`]),content:v.z.string(),oldLineNumber:v.z.number().optional(),newLineNumber:v.z.number().optional()}),Za=v.z.object({oldStart:v.z.number(),oldLines:v.z.number(),newStart:v.z.number(),newLines:v.z.number(),lines:v.z.array(Xa)}),Qa=v.z.object({path:v.z.string(),status:v.z.enum([`added`,`modified`,`deleted`,`renamed`,`copied`,`untracked`,`ignored`,`unmerged`,`typechange`]),oldPath:v.z.string().optional(),insertions:v.z.number(),deletions:v.z.number(),chunks:v.z.array(Za)}),$a=v.z.object({totalFiles:v.z.number(),totalInsertions:v.z.number(),totalDeletions:v.z.number(),netChange:v.z.number(),startHash:v.z.string().optional(),currentHash:v.z.string().optional(),timespan:v.z.number(),files:v.z.array(Qa)}),eo=v.z.object({path:v.z.string(),status:v.z.enum([`added`,`modified`,`deleted`,`renamed`,`copied`,`untracked`,`ignored`,`unmerged`,`typechange`]),staged:v.z.boolean()}),to=v.z.object({hash:v.z.string(),shortHash:v.z.string(),message:v.z.string(),author:v.z.string(),email:v.z.string(),date:v.z.date(),timestamp:v.z.date(),filesChanged:v.z.number(),insertions:v.z.number(),deletions:v.z.number(),commitDiff:v.z.array(Qa).optional()}),no=v.z.object({files:v.z.array(eo),branch:v.z.string(),ahead:v.z.number(),behind:v.z.number(),timestamp:v.z.date(),sessionDiff:$a.optional(),workingDirectoryDiff:$a.optional(),newCommits:v.z.array(to),currentCommit:v.z.object({hash:v.z.string(),shortHash:v.z.string(),message:v.z.string(),author:v.z.string(),date:v.z.date()}).optional(),diffSkipped:v.z.boolean().optional(),payloadTruncated:v.z.boolean().optional(),estimatedSizeKB:v.z.number().optional()}),ro=v.z.object({debounceDelay:v.z.number().optional(),gitStatusInterval:v.z.number().optional(),ignoreDotfiles:v.z.boolean().optional(),ignored:v.z.array(v.z.string()).optional(),watchGit:v.z.boolean().optional(),includeDiffs:v.z.boolean().optional(),maxDiffFiles:v.z.number().optional(),maxPayloadSizeKB:v.z.number().optional(),truncateLargeDiffs:v.z.boolean().optional()}),io={process_status:v.z.object({status:Ka}),process_output:v.z.object({pid:v.z.number(),output:v.z.string()}),file_change:v.z.object({changes:v.z.array(Ya)}),git_status:no};var ao=class{notificationCallbacks=new Map;disposables=[];requestHandlers=new Map;send;jwt;requestTimeoutMS;constructor({send:e,jwt:t,requestTimeoutMS:n}){this.send=e,this.jwt=t,this.requestTimeoutMS=n}handleMessage(e){if(typeof e!=`string`)return;let t=JSON.parse(e);if(`id`in t){let e=this.requestHandlers.get(t.id);if(!e)return;e(t.payload,t.error)}else if(`type`in t)this.notificationCallbacks.get(t.type)?.forEach(e=>{e(t.payload)});else return}dispose(e){this.disposables.forEach(t=>t.dispose(e))}async request(e,t,n){let r=crypto.randomUUID(),i,a,o=new Promise((e,t)=>{i=e,a=t}),s={dispose:e=>{l();let t=`Client was disposed!`;e&&(t+=` Reason: ${e}`),a(Error(t))}};this.disposables.push(s);let c;this.requestTimeoutMS&&(c=setTimeout(()=>{a(Error(`Request timed out`))},this.requestTimeoutMS));let l=()=>{this.disposables.splice(this.disposables.indexOf(s),1),this.requestHandlers.delete(r),c&&clearTimeout(c)};n?.signal&&n.signal.addEventListener(`abort`,()=>{l(),a(n.signal?.reason)}),this.requestHandlers.set(r,(e,t)=>{if(l(),t)return a(Error(t));i(e)});let u={id:r,type:e,payload:t,jwt:this.jwt};return this.send(JSON.stringify(u)),o}onNotification(e,t){let n=this.notificationCallbacks.get(e)??[];return n.push(t),this.notificationCallbacks.set(e,n),{dispose:()=>{let n=this.notificationCallbacks.get(e)??[],r=n.indexOf(t);r!==-1&&n.splice(r,1)}}}},oo=e.__commonJSMin(((e,t)=>{let n=[`nodebuffer`,`arraybuffer`,`fragments`],r=typeof Blob<`u`;r&&n.push(`blob`),t.exports={BINARY_TYPES:n,EMPTY_BUFFER:Buffer.alloc(0),GUID:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,hasBlob:r,kForOnEventAttribute:Symbol(`kIsForOnEventAttribute`),kListener:Symbol(`kListener`),kStatusCode:Symbol(`status-code`),kWebSocket:Symbol(`websocket`),NOOP:()=>{}}})),so=e.__commonJSMin(((e,t)=>{let{EMPTY_BUFFER:n}=oo(),r=Buffer[Symbol.species];function i(e,t){if(e.length===0)return n;if(e.length===1)return e[0];let i=Buffer.allocUnsafe(t),a=0;for(let t=0;t<e.length;t++){let n=e[t];i.set(n,a),a+=n.length}return a<t?new r(i.buffer,i.byteOffset,a):i}function a(e,t,n,r,i){for(let a=0;a<i;a++)n[r+a]=e[a]^t[a&3]}function o(e,t){for(let n=0;n<e.length;n++)e[n]^=t[n&3]}function s(e){return e.length===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}function c(e){if(c.readOnly=!0,Buffer.isBuffer(e))return e;let t;return e instanceof ArrayBuffer?t=new r(e):ArrayBuffer.isView(e)?t=new r(e.buffer,e.byteOffset,e.byteLength):(t=Buffer.from(e),c.readOnly=!1),t}if(t.exports={concat:i,mask:a,toArrayBuffer:s,toBuffer:c,unmask:o},!process.env.WS_NO_BUFFER_UTIL)try{let e=require(`bufferutil`);t.exports.mask=function(t,n,r,i,o){o<48?a(t,n,r,i,o):e.mask(t,n,r,i,o)},t.exports.unmask=function(t,n){t.length<32?o(t,n):e.unmask(t,n)}}catch{}})),co=e.__commonJSMin(((e,t)=>{let n=Symbol(`kDone`),r=Symbol(`kRun`);t.exports=class{constructor(e){this[n]=()=>{this.pending--,this[r]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[r]()}[r](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[n])}}}})),lo=e.__commonJSMin(((e,t)=>{let n=require(`zlib`),r=so(),i=co(),{kStatusCode:a}=oo(),o=Buffer[Symbol.species],s=Buffer.from([0,0,255,255]),c=Symbol(`permessage-deflate`),l=Symbol(`total-length`),u=Symbol(`callback`),d=Symbol(`buffers`),f=Symbol(`error`),p;t.exports=class{constructor(e,t,n){if(this._maxPayload=n|0,this._options=e||{},this._threshold=this._options.threshold===void 0?1024:this._options.threshold,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!p){let e=this._options.concurrencyLimit===void 0?10:this._options.concurrencyLimit;p=new i(e)}}static get extensionName(){return`permessage-deflate`}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits??(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&=(this._inflate.close(),null),this._deflate){let e=this._deflate[u];this._deflate.close(),this._deflate=null,e&&e(Error(`The deflate stream was closed while data was being processed`))}}acceptAsServer(e){let t=this._options,n=e.find(e=>!(t.serverNoContextTakeover===!1&&e.server_no_context_takeover||e.server_max_window_bits&&(t.serverMaxWindowBits===!1||typeof t.serverMaxWindowBits==`number`&&t.serverMaxWindowBits>e.server_max_window_bits)||typeof t.clientMaxWindowBits==`number`&&!e.client_max_window_bits));if(!n)throw Error(`None of the extension offers can be accepted`);return t.serverNoContextTakeover&&(n.server_no_context_takeover=!0),t.clientNoContextTakeover&&(n.client_no_context_takeover=!0),typeof t.serverMaxWindowBits==`number`&&(n.server_max_window_bits=t.serverMaxWindowBits),typeof t.clientMaxWindowBits==`number`?n.client_max_window_bits=t.clientMaxWindowBits:(n.client_max_window_bits===!0||t.clientMaxWindowBits===!1)&&delete n.client_max_window_bits,n}acceptAsClient(e){let t=e[0];if(this._options.clientNoContextTakeover===!1&&t.client_no_context_takeover)throw Error(`Unexpected parameter "client_no_context_takeover"`);if(!t.client_max_window_bits)typeof this._options.clientMaxWindowBits==`number`&&(t.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==`number`&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw Error(`Unexpected or invalid parameter "client_max_window_bits"`);return t}normalizeParams(e){return e.forEach(e=>{Object.keys(e).forEach(t=>{let n=e[t];if(n.length>1)throw Error(`Parameter "${t}" must have only a single value`);if(n=n[0],t===`client_max_window_bits`){if(n!==!0){let e=+n;if(!Number.isInteger(e)||e<8||e>15)throw TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${t}": ${n}`)}else if(t===`server_max_window_bits`){let e=+n;if(!Number.isInteger(e)||e<8||e>15)throw TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else if(t===`client_no_context_takeover`||t===`server_no_context_takeover`){if(n!==!0)throw TypeError(`Invalid value for parameter "${t}": ${n}`)}else throw Error(`Unknown parameter "${t}"`);e[t]=n})}),e}decompress(e,t,n){p.add(r=>{this._decompress(e,t,(e,t)=>{r(),n(e,t)})})}compress(e,t,n){p.add(r=>{this._compress(e,t,(e,t)=>{r(),n(e,t)})})}_decompress(e,t,i){let a=this._isServer?`client`:`server`;if(!this._inflate){let e=`${a}_max_window_bits`,t=typeof this.params[e]==`number`?this.params[e]:n.Z_DEFAULT_WINDOWBITS;this._inflate=n.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[c]=this,this._inflate[l]=0,this._inflate[d]=[],this._inflate.on(`error`,g),this._inflate.on(`data`,h)}this._inflate[u]=i,this._inflate.write(e),t&&this._inflate.write(s),this._inflate.flush(()=>{let e=this._inflate[f];if(e){this._inflate.close(),this._inflate=null,i(e);return}let n=r.concat(this._inflate[d],this._inflate[l]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[l]=0,this._inflate[d]=[],t&&this.params[`${a}_no_context_takeover`]&&this._inflate.reset()),i(null,n)})}_compress(e,t,i){let a=this._isServer?`server`:`client`;if(!this._deflate){let e=`${a}_max_window_bits`,t=typeof this.params[e]==`number`?this.params[e]:n.Z_DEFAULT_WINDOWBITS;this._deflate=n.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[l]=0,this._deflate[d]=[],this._deflate.on(`data`,m)}this._deflate[u]=i,this._deflate.write(e),this._deflate.flush(n.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let e=r.concat(this._deflate[d],this._deflate[l]);t&&(e=new o(e.buffer,e.byteOffset,e.length-4)),this._deflate[u]=null,this._deflate[l]=0,this._deflate[d]=[],t&&this.params[`${a}_no_context_takeover`]&&this._deflate.reset(),i(null,e)})}};function m(e){this[d].push(e),this[l]+=e.length}function h(e){if(this[l]+=e.length,this[c]._maxPayload<1||this[l]<=this[c]._maxPayload){this[d].push(e);return}this[f]=RangeError(`Max payload size exceeded`),this[f].code=`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`,this[f][a]=1009,this.removeListener(`data`,h),this.reset()}function g(e){if(this[c]._inflate=null,this[f]){this[u](this[f]);return}e[a]=1007,this[u](e)}})),uo=e.__commonJSMin(((e,t)=>{let{isUtf8:n}=require(`buffer`),{hasBlob:r}=oo(),i=[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 a(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function o(e){let t=e.length,n=0;for(;n<t;)if(!(e[n]&128))n++;else if((e[n]&224)==192){if(n+1===t||(e[n+1]&192)!=128||(e[n]&254)==192)return!1;n+=2}else if((e[n]&240)==224){if(n+2>=t||(e[n+1]&192)!=128||(e[n+2]&192)!=128||e[n]===224&&(e[n+1]&224)==128||e[n]===237&&(e[n+1]&224)==160)return!1;n+=3}else if((e[n]&248)==240){if(n+3>=t||(e[n+1]&192)!=128||(e[n+2]&192)!=128||(e[n+3]&192)!=128||e[n]===240&&(e[n+1]&240)==128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function s(e){return r&&typeof e==`object`&&typeof e.arrayBuffer==`function`&&typeof e.type==`string`&&typeof e.stream==`function`&&(e[Symbol.toStringTag]===`Blob`||e[Symbol.toStringTag]===`File`)}if(t.exports={isBlob:s,isValidStatusCode:a,isValidUTF8:o,tokenChars:i},n)t.exports.isValidUTF8=function(e){return e.length<24?o(e):n(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=require(`utf-8-validate`);t.exports.isValidUTF8=function(t){return t.length<32?o(t):e(t)}}catch{}})),fo=e.__commonJSMin(((e,t)=>{let{Writable:n}=require(`stream`),r=lo(),{BINARY_TYPES:i,EMPTY_BUFFER:a,kStatusCode:o,kWebSocket:s}=oo(),{concat:c,toArrayBuffer:l,unmask:u}=so(),{isValidStatusCode:d,isValidUTF8:f}=uo(),p=Buffer[Symbol.species];t.exports=class extends n{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents===void 0?!0:e.allowSynchronousEvents,this._binaryType=e.binaryType||i[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[s]=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(e,t,n){if(this._opcode===8&&this._state==0)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let t=this._buffers[0];return this._buffers[0]=new p(t.buffer,t.byteOffset+e,t.length-e),new p(t.buffer,t.byteOffset,e)}let t=Buffer.allocUnsafe(e);do{let n=this._buffers[0],r=t.length-e;e>=n.length?t.set(this._buffers.shift(),r):(t.set(new Uint8Array(n.buffer,n.byteOffset,e),r),this._buffers[0]=new p(n.buffer,n.byteOffset+e,n.length-e)),e-=n.length}while(e>0);return t}startLoop(e){this._loop=!0;do switch(this._state){case 0:this.getInfo(e);break;case 1:this.getPayloadLength16(e);break;case 2:this.getPayloadLength64(e);break;case 3:this.getMask();break;case 4:this.getData(e);break;case 5:case 6:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let t=this.consume(2);if(t[0]&48){let t=this.createError(RangeError,`RSV2 and RSV3 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_2_3`);e(t);return}let n=(t[0]&64)==64;if(n&&!this._extensions[r.extensionName]){let t=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);e(t);return}if(this._fin=(t[0]&128)==128,this._opcode=t[0]&15,this._payloadLength=t[1]&127,this._opcode===0){if(n){let t=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);e(t);return}if(!this._fragmented){let t=this.createError(RangeError,`invalid opcode 0`,!0,1002,`WS_ERR_INVALID_OPCODE`);e(t);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let t=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`);e(t);return}this._compressed=n}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let t=this.createError(RangeError,`FIN must be set`,!0,1002,`WS_ERR_EXPECTED_FIN`);e(t);return}if(n){let t=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);e(t);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let t=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,`WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH`);e(t);return}}else{let t=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`);e(t);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(t[1]&128)==128,this._isServer){if(!this._masked){let t=this.createError(RangeError,`MASK must be set`,!0,1002,`WS_ERR_EXPECTED_MASK`);e(t);return}}else if(this._masked){let t=this.createError(RangeError,`MASK must be clear`,!0,1002,`WS_ERR_UNEXPECTED_MASK`);e(t);return}this._payloadLength===126?this._state=1:this._payloadLength===127?this._state=2:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let t=this.consume(8),n=t.readUInt32BE(0);if(n>2**21-1){let t=this.createError(RangeError,`Unsupported WebSocket frame: payload length > 2^53 - 1`,!1,1009,`WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH`);e(t);return}this._payloadLength=n*2**32+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let t=this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`);e(t);return}this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(e){let t=a;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}t=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&u(t,this._mask)}if(this._opcode>7){this.controlMessage(t,e);return}if(this._compressed){this._state=5,this.decompress(t,e);return}t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}decompress(e,t){this._extensions[r.extensionName].decompress(e,this._fin,(e,n)=>{if(e)return t(e);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let e=this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`);t(e);return}this._fragments.push(n)}this.dataMessage(t),this._state===0&&this.startLoop(t)})}dataMessage(e){if(!this._fin){this._state=0;return}let t=this._messageLength,n=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let r;r=this._binaryType===`nodebuffer`?c(n,t):this._binaryType===`arraybuffer`?l(c(n,t)):this._binaryType===`blob`?new Blob(n):n,this._allowSynchronousEvents?(this.emit(`message`,r,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,r,!0),this._state=0,this.startLoop(e)}))}else{let r=c(n,t);if(!this._skipUTF8Validation&&!f(r)){let t=this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`);e(t);return}this._state===5||this._allowSynchronousEvents?(this.emit(`message`,r,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,r,!1),this._state=0,this.startLoop(e)}))}}controlMessage(e,t){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit(`conclude`,1005,a),this.end();else{let n=e.readUInt16BE(0);if(!d(n)){let e=this.createError(RangeError,`invalid status code ${n}`,!0,1002,`WS_ERR_INVALID_CLOSE_CODE`);t(e);return}let r=new p(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!f(r)){let e=this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`);t(e);return}this._loop=!1,this.emit(`conclude`,n,r),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?`ping`:`pong`,e),this._state=0):(this._state=6,setImmediate(()=>{this.emit(this._opcode===9?`ping`:`pong`,e),this._state=0,this.startLoop(t)}))}createError(e,t,n,r,i){this._loop=!1,this._errored=!0;let a=new e(n?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(a,this.createError),a.code=i,a[o]=r,a}}})),po=e.__commonJSMin(((e,t)=>{let{Duplex:n}=require(`stream`),{randomFillSync:r}=require(`crypto`),i=lo(),{EMPTY_BUFFER:a,kWebSocket:o,NOOP:s}=oo(),{isBlob:c,isValidStatusCode:l}=uo(),{mask:u,toBuffer:d}=so(),f=Symbol(`kByteLength`),p=Buffer.alloc(4),m=8*1024,h,g=m;t.exports=class e{constructor(e,t,n){this._extensions=t||{},n&&(this._generateMask=n,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=s,this[o]=void 0}static frame(e,t){let n,i=!1,a=2,o=!1;t.mask&&(n=t.maskBuffer||p,t.generateMask?t.generateMask(n):(g===m&&(h===void 0&&(h=Buffer.alloc(m)),r(h,0,m),g=0),n[0]=h[g++],n[1]=h[g++],n[2]=h[g++],n[3]=h[g++]),o=(n[0]|n[1]|n[2]|n[3])===0,a=6);let s;typeof e==`string`?(!t.mask||o)&&t[f]!==void 0?s=t[f]:(e=Buffer.from(e),s=e.length):(s=e.length,i=t.mask&&t.readOnly&&!o);let c=s;s>=65536?(a+=8,c=127):s>125&&(a+=2,c=126);let l=Buffer.allocUnsafe(i?s+a:a);return l[0]=t.fin?t.opcode|128:t.opcode,t.rsv1&&(l[0]|=64),l[1]=c,c===126?l.writeUInt16BE(s,2):c===127&&(l[2]=l[3]=0,l.writeUIntBE(s,4,6)),!t.mask||(l[1]|=128,l[a-4]=n[0],l[a-3]=n[1],l[a-2]=n[2],l[a-1]=n[3],o)?[l,e]:i?(u(e,n,l,a,s),[l]):(u(e,n,e,0,s),[l,e])}close(t,n,r,i){let o;if(t===void 0)o=a;else if(typeof t!=`number`||!l(t))throw TypeError(`First argument must be a valid error code number`);else if(n===void 0||!n.length)o=Buffer.allocUnsafe(2),o.writeUInt16BE(t,0);else{let e=Buffer.byteLength(n);if(e>123)throw RangeError(`The message must not be greater than 123 bytes`);o=Buffer.allocUnsafe(2+e),o.writeUInt16BE(t,0),typeof n==`string`?o.write(n,2):o.set(n,2)}let s={[f]:o.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state===0?this.sendFrame(e.frame(o,s),i):this.enqueue([this.dispatch,o,!1,s,i])}ping(t,n,r){let i,a;if(typeof t==`string`?(i=Buffer.byteLength(t),a=!1):c(t)?(i=t.size,a=!1):(t=d(t),i=t.length,a=d.readOnly),i>125)throw RangeError(`The data size must not be greater than 125 bytes`);let o={[f]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:a,rsv1:!1};c(t)?this._state===0?this.getBlobData(t,!1,o,r):this.enqueue([this.getBlobData,t,!1,o,r]):this._state===0?this.sendFrame(e.frame(t,o),r):this.enqueue([this.dispatch,t,!1,o,r])}pong(t,n,r){let i,a;if(typeof t==`string`?(i=Buffer.byteLength(t),a=!1):c(t)?(i=t.size,a=!1):(t=d(t),i=t.length,a=d.readOnly),i>125)throw RangeError(`The data size must not be greater than 125 bytes`);let o={[f]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:a,rsv1:!1};c(t)?this._state===0?this.getBlobData(t,!1,o,r):this.enqueue([this.getBlobData,t,!1,o,r]):this._state===0?this.sendFrame(e.frame(t,o),r):this.enqueue([this.dispatch,t,!1,o,r])}send(e,t,n){let r=this._extensions[i.extensionName],a=t.binary?2:1,o=t.compress,s,l;typeof e==`string`?(s=Buffer.byteLength(e),l=!1):c(e)?(s=e.size,l=!1):(e=d(e),s=e.length,l=d.readOnly),this._firstFragment?(this._firstFragment=!1,o&&r&&r.params[r._isServer?`server_no_context_takeover`:`client_no_context_takeover`]&&(o=s>=r._threshold),this._compress=o):(o=!1,a=0),t.fin&&(this._firstFragment=!0);let u={[f]:s,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:a,readOnly:l,rsv1:o};c(e)?this._state===0?this.getBlobData(e,this._compress,u,n):this.enqueue([this.getBlobData,e,this._compress,u,n]):this._state===0?this.dispatch(e,this._compress,u,n):this.enqueue([this.dispatch,e,this._compress,u,n])}getBlobData(t,n,r,i){this._bufferedBytes+=r[f],this._state=2,t.arrayBuffer().then(t=>{if(this._socket.destroyed){let e=Error(`The socket was closed while the blob was being read`);process.nextTick(_,this,e,i);return}this._bufferedBytes-=r[f];let a=d(t);n?this.dispatch(a,n,r,i):(this._state=0,this.sendFrame(e.frame(a,r),i),this.dequeue())}).catch(e=>{process.nextTick(v,this,e,i)})}dispatch(t,n,r,a){if(!n){this.sendFrame(e.frame(t,r),a);return}let o=this._extensions[i.extensionName];this._bufferedBytes+=r[f],this._state=1,o.compress(t,r.fin,(t,n)=>{if(this._socket.destroyed){_(this,Error(`The socket was closed while data was being compressed`),a);return}this._bufferedBytes-=r[f],this._state=0,r.readOnly=!1,this.sendFrame(e.frame(n,r),a),this.dequeue()})}dequeue(){for(;this._state===0&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][f],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][f],this._queue.push(e)}sendFrame(e,t){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}};function _(e,t,n){typeof n==`function`&&n(t);for(let n=0;n<e._queue.length;n++){let r=e._queue[n],i=r[r.length-1];typeof i==`function`&&i(t)}}function v(e,t,n){_(e,t,n),e.onerror(t)}})),mo=e.__commonJSMin(((e,t)=>{let{kForOnEventAttribute:n,kListener:r}=oo(),i=Symbol(`kCode`),a=Symbol(`kData`),o=Symbol(`kError`),s=Symbol(`kMessage`),c=Symbol(`kReason`),l=Symbol(`kTarget`),u=Symbol(`kType`),d=Symbol(`kWasClean`);var f=class{constructor(e){this[l]=null,this[u]=e}get target(){return this[l]}get type(){return this[u]}};Object.defineProperty(f.prototype,`target`,{enumerable:!0}),Object.defineProperty(f.prototype,`type`,{enumerable:!0});var p=class extends f{constructor(e,t={}){super(e),this[i]=t.code===void 0?0:t.code,this[c]=t.reason===void 0?``:t.reason,this[d]=t.wasClean===void 0?!1:t.wasClean}get code(){return this[i]}get reason(){return this[c]}get wasClean(){return this[d]}};Object.defineProperty(p.prototype,`code`,{enumerable:!0}),Object.defineProperty(p.prototype,`reason`,{enumerable:!0}),Object.defineProperty(p.prototype,`wasClean`,{enumerable:!0});var m=class extends f{constructor(e,t={}){super(e),this[o]=t.error===void 0?null:t.error,this[s]=t.message===void 0?``:t.message}get error(){return this[o]}get message(){return this[s]}};Object.defineProperty(m.prototype,`error`,{enumerable:!0}),Object.defineProperty(m.prototype,`message`,{enumerable:!0});var h=class extends f{constructor(e,t={}){super(e),this[a]=t.data===void 0?null:t.data}get data(){return this[a]}};Object.defineProperty(h.prototype,`data`,{enumerable:!0}),t.exports={CloseEvent:p,ErrorEvent:m,Event:f,EventTarget:{addEventListener(e,t,i={}){for(let a of this.listeners(e))if(!i[n]&&a[r]===t&&!a[n])return;let a;if(e===`message`)a=function(e,n){let r=new h(`message`,{data:n?e:e.toString()});r[l]=this,g(t,this,r)};else if(e===`close`)a=function(e,n){let r=new p(`close`,{code:e,reason:n.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});r[l]=this,g(t,this,r)};else if(e===`error`)a=function(e){let n=new m(`error`,{error:e,message:e.message});n[l]=this,g(t,this,n)};else if(e===`open`)a=function(){let e=new f(`open`);e[l]=this,g(t,this,e)};else return;a[n]=!!i[n],a[r]=t,i.once?this.once(e,a):this.on(e,a)},removeEventListener(e,t){for(let i of this.listeners(e))if(i[r]===t&&!i[n]){this.removeListener(e,i);break}}},MessageEvent:h};function g(e,t,n){typeof e==`object`&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}})),ho=e.__commonJSMin(((e,t)=>{let{tokenChars:n}=uo();function r(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function i(e){let t=Object.create(null),i=Object.create(null),a=!1,o=!1,s=!1,c,l,u=-1,d=-1,f=-1,p=0;for(;p<e.length;p++)if(d=e.charCodeAt(p),c===void 0)if(f===-1&&n[d]===1)u===-1&&(u=p);else if(p!==0&&(d===32||d===9))f===-1&&u!==-1&&(f=p);else if(d===59||d===44){if(u===-1)throw SyntaxError(`Unexpected character at index ${p}`);f===-1&&(f=p);let n=e.slice(u,f);d===44?(r(t,n,i),i=Object.create(null)):c=n,u=f=-1}else throw SyntaxError(`Unexpected character at index ${p}`);else if(l===void 0)if(f===-1&&n[d]===1)u===-1&&(u=p);else if(d===32||d===9)f===-1&&u!==-1&&(f=p);else if(d===59||d===44){if(u===-1)throw SyntaxError(`Unexpected character at index ${p}`);f===-1&&(f=p),r(i,e.slice(u,f),!0),d===44&&(r(t,c,i),i=Object.create(null),c=void 0),u=f=-1}else if(d===61&&u!==-1&&f===-1)l=e.slice(u,p),u=f=-1;else throw SyntaxError(`Unexpected character at index ${p}`);else if(o){if(n[d]!==1)throw SyntaxError(`Unexpected character at index ${p}`);u===-1?u=p:a||=!0,o=!1}else if(s)if(n[d]===1)u===-1&&(u=p);else if(d===34&&u!==-1)s=!1,f=p;else if(d===92)o=!0;else throw SyntaxError(`Unexpected character at index ${p}`);else if(d===34&&e.charCodeAt(p-1)===61)s=!0;else if(f===-1&&n[d]===1)u===-1&&(u=p);else if(u!==-1&&(d===32||d===9))f===-1&&(f=p);else if(d===59||d===44){if(u===-1)throw SyntaxError(`Unexpected character at index ${p}`);f===-1&&(f=p);let n=e.slice(u,f);a&&=(n=n.replace(/\\/g,``),!1),r(i,l,n),d===44&&(r(t,c,i),i=Object.create(null),c=void 0),l=void 0,u=f=-1}else throw SyntaxError(`Unexpected character at index ${p}`);if(u===-1||s||d===32||d===9)throw SyntaxError(`Unexpected end of input`);f===-1&&(f=p);let m=e.slice(u,f);return c===void 0?r(t,m,i):(l===void 0?r(i,m,!0):a?r(i,l,m.replace(/\\/g,``)):r(i,l,m),r(t,c,i)),t}function a(e){return Object.keys(e).map(t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(e=>[t].concat(Object.keys(e).map(t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(e=>e===!0?t:`${t}=${e}`).join(`; `)})).join(`; `)).join(`, `)}).join(`, `)}t.exports={format:a,parse:i}})),go=e.__commonJSMin(((e,t)=>{let n=require(`events`),r=require(`https`),i=require(`http`),a=require(`net`),o=require(`tls`),{randomBytes:s,createHash:c}=require(`crypto`),{Duplex:l,Readable:u}=require(`stream`),{URL:d}=require(`url`),f=lo(),p=fo(),m=po(),{isBlob:h}=uo(),{BINARY_TYPES:g,EMPTY_BUFFER:_,GUID:v,kForOnEventAttribute:y,kListener:b,kStatusCode:x,kWebSocket:S,NOOP:C}=oo(),{EventTarget:{addEventListener:w,removeEventListener:T}}=mo(),{format:E,parse:D}=ho(),{toBuffer:O}=so(),k=Symbol(`kAborted`),A=[8,13],j=[`CONNECTING`,`OPEN`,`CLOSING`,`CLOSED`],M=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;var N=class e extends n{constructor(t,n,r){super(),this._binaryType=g[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=_,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol=``,this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t===null?(this._autoPong=r.autoPong,this._isServer=!0):(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,n===void 0?n=[]:Array.isArray(n)||(typeof n==`object`&&n?(r=n,n=[]):n=[n]),P(this,t,n,r))}get binaryType(){return this._binaryType}set binaryType(e){g.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}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(t,n,r){let i=new p({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),a=new m(t,this._extensions,r.generateMask);this._receiver=i,this._sender=a,this._socket=t,i[S]=this,a[S]=this,t[S]=this,i.on(`conclude`,te),i.on(`drain`,z),i.on(`error`,B),i.on(`message`,H),i.on(`ping`,ne),i.on(`pong`,U),a.onerror=ie,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on(`close`,W),t.on(`data`,oe),t.on(`end`,se),t.on(`error`,ce),this._readyState=e.OPEN,this.emit(`open`)}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage);return}this._extensions[f.extensionName]&&this._extensions[f.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){L(this,this._req,`WebSocket was closed before the connection was established`);return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,e=>{e||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),ae(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,n,r){if(this.readyState===e.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof t==`function`?(r=t,t=n=void 0):typeof n==`function`&&(r=n,n=void 0),typeof t==`number`&&(t=t.toString()),this.readyState!==e.OPEN){R(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||_,n,r)}pong(t,n,r){if(this.readyState===e.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof t==`function`?(r=t,t=n=void 0):typeof n==`function`&&(r=n,n=void 0),typeof t==`number`&&(t=t.toString()),this.readyState!==e.OPEN){R(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||_,n,r)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,r){if(this.readyState===e.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof n==`function`&&(r=n,n={}),typeof t==`number`&&(t=t.toString()),this.readyState!==e.OPEN){R(this,t,r);return}let i={binary:typeof t!=`string`,mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[f.extensionName]||(i.compress=!1),this._sender.send(t||_,i,r)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){L(this,this._req,`WebSocket was closed before the connection was established`);return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(N,`CONNECTING`,{enumerable:!0,value:j.indexOf(`CONNECTING`)}),Object.defineProperty(N.prototype,`CONNECTING`,{enumerable:!0,value:j.indexOf(`CONNECTING`)}),Object.defineProperty(N,`OPEN`,{enumerable:!0,value:j.indexOf(`OPEN`)}),Object.defineProperty(N.prototype,`OPEN`,{enumerable:!0,value:j.indexOf(`OPEN`)}),Object.defineProperty(N,`CLOSING`,{enumerable:!0,value:j.indexOf(`CLOSING`)}),Object.defineProperty(N.prototype,`CLOSING`,{enumerable:!0,value:j.indexOf(`CLOSING`)}),Object.defineProperty(N,`CLOSED`,{enumerable:!0,value:j.indexOf(`CLOSED`)}),Object.defineProperty(N.prototype,`CLOSED`,{enumerable:!0,value:j.indexOf(`CLOSED`)}),[`binaryType`,`bufferedAmount`,`extensions`,`isPaused`,`protocol`,`readyState`,`url`].forEach(e=>{Object.defineProperty(N.prototype,e,{enumerable:!0})}),[`open`,`error`,`close`,`message`].forEach(e=>{Object.defineProperty(N.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[y])return t[b];return null},set(t){for(let t of this.listeners(e))if(t[y]){this.removeListener(e,t);break}typeof t==`function`&&this.addEventListener(e,t,{[y]:!0})}})}),N.prototype.addEventListener=w,N.prototype.removeEventListener=T,t.exports=N;function P(e,t,n,a){let o={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:A[1],maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...a,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:`GET`,host:void 0,path:void 0,port:void 0};if(e._autoPong=o.autoPong,!A.includes(o.protocolVersion))throw RangeError(`Unsupported protocol version: ${o.protocolVersion} (supported versions: ${A.join(`, `)})`);let l;if(t instanceof d)l=t;else try{l=new d(t)}catch{throw SyntaxError(`Invalid URL: ${t}`)}l.protocol===`http:`?l.protocol=`ws:`:l.protocol===`https:`&&(l.protocol=`wss:`),e._url=l.href;let u=l.protocol===`wss:`,p=l.protocol===`ws+unix:`,m;if(l.protocol!==`ws:`&&!u&&!p?m=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:p&&!l.pathname?m=`The URL's pathname is empty`:l.hash&&(m=`The URL contains a fragment identifier`),m){let t=SyntaxError(m);if(e._redirects===0)throw t;F(e,t);return}let h=u?443:80,g=s(16).toString(`base64`),_=u?r.request:i.request,y=new Set,b;if(o.createConnection=o.createConnection||(u?ee:I),o.defaultPort=o.defaultPort||h,o.port=l.port||h,o.host=l.hostname.startsWith(`[`)?l.hostname.slice(1,-1):l.hostname,o.headers={...o.headers,"Sec-WebSocket-Version":o.protocolVersion,"Sec-WebSocket-Key":g,Connection:`Upgrade`,Upgrade:`websocket`},o.path=l.pathname+l.search,o.timeout=o.handshakeTimeout,o.perMessageDeflate&&(b=new f(o.perMessageDeflate===!0?{}:o.perMessageDeflate,!1,o.maxPayload),o.headers[`Sec-WebSocket-Extensions`]=E({[f.extensionName]:b.offer()})),n.length){for(let e of n){if(typeof e!=`string`||!M.test(e)||y.has(e))throw SyntaxError(`An invalid or duplicated subprotocol was specified`);y.add(e)}o.headers[`Sec-WebSocket-Protocol`]=n.join(`,`)}if(o.origin&&(o.protocolVersion<13?o.headers[`Sec-WebSocket-Origin`]=o.origin:o.headers.Origin=o.origin),(l.username||l.password)&&(o.auth=`${l.username}:${l.password}`),p){let e=o.path.split(`:`);o.socketPath=e[0],o.path=e[1]}let x;if(o.followRedirects){if(e._redirects===0){e._originalIpc=p,e._originalSecure=u,e._originalHostOrSocketPath=p?o.socketPath:l.host;let t=a&&a.headers;if(a={...a,headers:{}},t)for(let[e,n]of Object.entries(t))a.headers[e.toLowerCase()]=n}else if(e.listenerCount(`redirect`)===0){let t=p?e._originalIpc?o.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:l.host===e._originalHostOrSocketPath;(!t||e._originalSecure&&!u)&&(delete o.headers.authorization,delete o.headers.cookie,t||delete o.headers.host,o.auth=void 0)}o.auth&&!a.headers.authorization&&(a.headers.authorization=`Basic `+Buffer.from(o.auth).toString(`base64`)),x=e._req=_(o),e._redirects&&e.emit(`redirect`,e.url,x)}else x=e._req=_(o);o.timeout&&x.on(`timeout`,()=>{L(e,x,`Opening handshake has timed out`)}),x.on(`error`,t=>{x===null||x[k]||(x=e._req=null,F(e,t))}),x.on(`response`,r=>{let i=r.headers.location,s=r.statusCode;if(i&&o.followRedirects&&s>=300&&s<400){if(++e._redirects>o.maxRedirects){L(e,x,`Maximum redirects exceeded`);return}x.abort();let r;try{r=new d(i,t)}catch{let t=SyntaxError(`Invalid URL: ${i}`);F(e,t);return}P(e,r,n,a)}else e.emit(`unexpected-response`,x,r)||L(e,x,`Unexpected server response: ${r.statusCode}`)}),x.on(`upgrade`,(t,n,r)=>{if(e.emit(`upgrade`,t),e.readyState!==N.CONNECTING)return;x=e._req=null;let i=t.headers.upgrade;if(i===void 0||i.toLowerCase()!==`websocket`){L(e,n,`Invalid Upgrade header`);return}let a=c(`sha1`).update(g+v).digest(`base64`);if(t.headers[`sec-websocket-accept`]!==a){L(e,n,`Invalid Sec-WebSocket-Accept header`);return}let s=t.headers[`sec-websocket-protocol`],l;if(s===void 0?y.size&&(l=`Server sent no subprotocol`):y.size?y.has(s)||(l=`Server sent an invalid subprotocol`):l=`Server sent a subprotocol but none was requested`,l){L(e,n,l);return}s&&(e._protocol=s);let u=t.headers[`sec-websocket-extensions`];if(u!==void 0){if(!b){L(e,n,`Server sent a Sec-WebSocket-Extensions header but no extension was requested`);return}let t;try{t=D(u)}catch{L(e,n,`Invalid Sec-WebSocket-Extensions header`);return}let r=Object.keys(t);if(r.length!==1||r[0]!==f.extensionName){L(e,n,`Server indicated an extension that was not requested`);return}try{b.accept(t[f.extensionName])}catch{L(e,n,`Invalid Sec-WebSocket-Extensions header`);return}e._extensions[f.extensionName]=b}e.setSocket(n,r,{allowSynchronousEvents:o.allowSynchronousEvents,generateMask:o.generateMask,maxPayload:o.maxPayload,skipUTF8Validation:o.skipUTF8Validation})}),o.finishRequest?o.finishRequest(x,e):x.end()}function F(e,t){e._readyState=N.CLOSING,e._errorEmitted=!0,e.emit(`error`,t),e.emitClose()}function I(e){return e.path=e.socketPath,a.connect(e)}function ee(e){return e.path=void 0,!e.servername&&e.servername!==``&&(e.servername=a.isIP(e.host)?``:e.host),o.connect(e)}function L(e,t,n){e._readyState=N.CLOSING;let r=Error(n);Error.captureStackTrace(r,L),t.setHeader?(t[k]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(F,e,r)):(t.destroy(r),t.once(`error`,e.emit.bind(e,`error`)),t.once(`close`,e.emitClose.bind(e)))}function R(e,t,n){if(t){let n=h(t)?t.size:O(t).length;e._socket?e._sender._bufferedBytes+=n:e._bufferedAmount+=n}if(n){let t=Error(`WebSocket is not open: readyState ${e.readyState} (${j[e.readyState]})`);process.nextTick(n,t)}}function te(e,t){let n=this[S];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[S]!==void 0&&(n._socket.removeListener(`data`,oe),process.nextTick(re,n._socket),e===1005?n.close():n.close(e,t))}function z(){let e=this[S];e.isPaused||e._socket.resume()}function B(e){let t=this[S];t._socket[S]!==void 0&&(t._socket.removeListener(`data`,oe),process.nextTick(re,t._socket),t.close(e[x])),t._errorEmitted||(t._errorEmitted=!0,t.emit(`error`,e))}function V(){this[S].emitClose()}function H(e,t){this[S].emit(`message`,e,t)}function ne(e){let t=this[S];t._autoPong&&t.pong(e,!this._isServer,C),t.emit(`ping`,e)}function U(e){this[S].emit(`pong`,e)}function re(e){e.resume()}function ie(e){let t=this[S];t.readyState!==N.CLOSED&&(t.readyState===N.OPEN&&(t._readyState=N.CLOSING,ae(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit(`error`,e)))}function ae(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),3e4)}function W(){let e=this[S];this.removeListener(`close`,W),this.removeListener(`data`,oe),this.removeListener(`end`,se),e._readyState=N.CLOSING;let t;!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&(t=e._socket.read())!==null&&e._receiver.write(t),e._receiver.end(),this[S]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on(`error`,V),e._receiver.on(`finish`,V))}function oe(e){this[S]._receiver.write(e)||this.pause()}function se(){let e=this[S];e._readyState=N.CLOSING,e._receiver.end(),this.end()}function ce(){let e=this[S];this.removeListener(`error`,ce),this.on(`error`,C),e&&(e._readyState=N.CLOSING,this.destroy())}})),_o=e.__commonJSMin(((e,t)=>{go();let{Duplex:n}=require(`stream`);function r(e){e.emit(`close`)}function i(){!this.destroyed&&this._writableState.finished&&this.destroy()}function a(e){this.removeListener(`error`,a),this.destroy(),this.listenerCount(`error`)===0&&this.emit(`error`,e)}function o(e,t){let o=!0,s=new n({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on(`message`,function(t,n){let r=!n&&s._readableState.objectMode?t.toString():t;s.push(r)||e.pause()}),e.once(`error`,function(e){s.destroyed||(o=!1,s.destroy(e))}),e.once(`close`,function(){s.destroyed||s.push(null)}),s._destroy=function(t,n){if(e.readyState===e.CLOSED){n(t),process.nextTick(r,s);return}let i=!1;e.once(`error`,function(e){i=!0,n(e)}),e.once(`close`,function(){i||n(t),process.nextTick(r,s)}),o&&e.terminate()},s._final=function(t){if(e.readyState===e.CONNECTING){e.once(`open`,function(){s._final(t)});return}e._socket!==null&&(e._socket._writableState.finished?(t(),s._readableState.endEmitted&&s.destroy()):(e._socket.once(`finish`,function(){t()}),e.close()))},s._read=function(){e.isPaused&&e.resume()},s._write=function(t,n,r){if(e.readyState===e.CONNECTING){e.once(`open`,function(){s._write(t,n,r)});return}e.send(t,r)},s.on(`end`,i),s.on(`error`,a),s}t.exports=o})),vo=e.__commonJSMin(((e,t)=>{let{tokenChars:n}=uo();function r(e){let t=new Set,r=-1,i=-1,a=0;for(;a<e.length;a++){let o=e.charCodeAt(a);if(i===-1&&n[o]===1)r===-1&&(r=a);else if(a!==0&&(o===32||o===9))i===-1&&r!==-1&&(i=a);else if(o===44){if(r===-1)throw SyntaxError(`Unexpected character at index ${a}`);i===-1&&(i=a);let n=e.slice(r,i);if(t.has(n))throw SyntaxError(`The "${n}" subprotocol is duplicated`);t.add(n),r=i=-1}else throw SyntaxError(`Unexpected character at index ${a}`)}if(r===-1||i!==-1)throw SyntaxError(`Unexpected end of input`);let o=e.slice(r,a);if(t.has(o))throw SyntaxError(`The "${o}" subprotocol is duplicated`);return t.add(o),t}t.exports={parse:r}})),yo=e.__commonJSMin(((e,t)=>{let n=require(`events`),r=require(`http`),{Duplex:i}=require(`stream`),{createHash:a}=require(`crypto`),o=ho(),s=lo(),c=vo(),l=go(),{GUID:u,kWebSocket:d}=oo(),f=/^[+/0-9A-Za-z]{22}==$/;t.exports=class extends n{constructor(e,t){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:l,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw TypeError(`One and only one of the "port", "server", or "noServer" options must be specified`);if(e.port==null?e.server&&(this._server=e.server):(this._server=r.createServer((e,t)=>{let n=r.STATUS_CODES[426];t.writeHead(426,{"Content-Length":n.length,"Content-Type":`text/plain`}),t.end(n)}),this._server.listen(e.port,e.host,e.backlog,t)),this._server){let e=this.emit.bind(this,`connection`);this._removeListeners=p(this._server,{listening:this.emit.bind(this,`listening`),error:this.emit.bind(this,`error`),upgrade:(t,n,r)=>{this.handleUpgrade(t,n,r,e)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=0}address(){if(this.options.noServer)throw Error(`The server is operating in "noServer" mode`);return this._server?this._server.address():null}close(e){if(this._state===2){e&&this.once(`close`,()=>{e(Error(`The server is not running`))}),process.nextTick(m,this);return}if(e&&this.once(`close`,e),this._state!==1)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(m,this);else{let e=this._server;this._removeListeners(),this._removeListeners=this._server=null,e.close(()=>{m(this)})}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf(`?`);if((t===-1?e.url:e.url.slice(0,t))!==this.options.path)return!1}return!0}handleUpgrade(e,t,n,r){t.on(`error`,h);let i=e.headers[`sec-websocket-key`],a=e.headers.upgrade,l=+e.headers[`sec-websocket-version`];if(e.method!==`GET`){_(this,e,t,405,`Invalid HTTP method`);return}if(a===void 0||a.toLowerCase()!==`websocket`){_(this,e,t,400,`Invalid Upgrade header`);return}if(i===void 0||!f.test(i)){_(this,e,t,400,`Missing or invalid Sec-WebSocket-Key header`);return}if(l!==13&&l!==8){_(this,e,t,400,`Missing or invalid Sec-WebSocket-Version header`,{"Sec-WebSocket-Version":`13, 8`});return}if(!this.shouldHandle(e)){g(t,400);return}let u=e.headers[`sec-websocket-protocol`],d=new Set;if(u!==void 0)try{d=c.parse(u)}catch{_(this,e,t,400,`Invalid Sec-WebSocket-Protocol header`);return}let p=e.headers[`sec-websocket-extensions`],m={};if(this.options.perMessageDeflate&&p!==void 0){let n=new s(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let e=o.parse(p);e[s.extensionName]&&(n.accept(e[s.extensionName]),m[s.extensionName]=n)}catch{_(this,e,t,400,`Invalid or unacceptable Sec-WebSocket-Extensions header`);return}}if(this.options.verifyClient){let a={origin:e.headers[`${l===8?`sec-websocket-origin`:`origin`}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(a,(a,o,s,c)=>{if(!a)return g(t,o||401,s,c);this.completeUpgrade(m,i,d,e,t,n,r)});return}if(!this.options.verifyClient(a))return g(t,401)}this.completeUpgrade(m,i,d,e,t,n,r)}completeUpgrade(e,t,n,r,i,c,l){if(!i.readable||!i.writable)return i.destroy();if(i[d])throw Error(`server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration`);if(this._state>0)return g(i,503);let f=[`HTTP/1.1 101 Switching Protocols`,`Upgrade: websocket`,`Connection: Upgrade`,`Sec-WebSocket-Accept: ${a(`sha1`).update(t+u).digest(`base64`)}`],p=new this.options.WebSocket(null,void 0,this.options);if(n.size){let e=this.options.handleProtocols?this.options.handleProtocols(n,r):n.values().next().value;e&&(f.push(`Sec-WebSocket-Protocol: ${e}`),p._protocol=e)}if(e[s.extensionName]){let t=e[s.extensionName].params,n=o.format({[s.extensionName]:[t]});f.push(`Sec-WebSocket-Extensions: ${n}`),p._extensions=e}this.emit(`headers`,f,r),i.write(f.concat(`\r
126
126
  `).join(`\r
@@ -623,4 +623,4 @@ Instead:
623
623
 
624
624
  The agent process can restart at any time, so all important state must be externalized.
625
625
  </technical_knowledge>
626
- `;function tf(e){let[n,r]=(0,h.useState)(void 0),[i,a]=(0,h.useState)(void 0),o=(0,h.useRef)(void 0);return(0,h.useEffect)(()=>{let n=new AbortController;return(async()=>{o.current=$d({directory:e.directory});let i=await nf(),a=o.current.agent.serve({port:i,host:`127.0.0.1`,apiUrl:e.apiServerUrl});n.signal.addEventListener(`abort`,()=>{try{a.close()}catch{}});let s=new t.Client({baseUrl:`http://127.0.0.1:${i}`});for(;!n.signal.aborted;){try{await s.health();break}catch{}await new Promise(e=>setTimeout(e,100))}if(n.signal.aborted)throw n.signal.reason;r(s)})().catch(e=>{a(e instanceof Error?e:Error(String(e)))}),()=>n.abort()},[e.directory,e.apiServerUrl]),(0,h.useMemo)(()=>({client:n,error:i,setUserAgentUrl:e=>{o.current?.setUserAgentUrl(e)}}),[n,i])}async function nf(){let e=(0,s.createServer)();return new Promise((t,n)=>{e.listen(0,()=>{let n=e.address().port;t(n)}).on(`error`,e=>{n(e)})}).finally(()=>{e.close()})}function rf(e){let{directory:n}=e,[r,i]=(0,h.useState)(`run`),a=(0,h.useRef)(`run`);(0,h.useEffect)(()=>{a.current=r},[r]);let o=(0,h.useCallback)(t=>{i(t),e.onModeChange?.(t)},[e.onModeChange]),s=(0,h.useCallback)(()=>{o(r===`run`?`edit`:`run`)},[r,o]),{error:l,status:u,result:d,entry:p}=C({directory:n,onBuildStart:e.onBuildStart,onBuildSuccess:e.onBuildSuccess,onBuildError:e.onBuildError}),m=La(n),g=(0,h.useMemo)(()=>{let e=ya();return e?{...m,BLINK_TOKEN:e}:m},[m]),_=(0,h.useRef)(void 0);(0,h.useEffect)(()=>{let t=Object.keys(g);if(t.length===_.current||_.current===void 0){_.current=t.length;return}_.current=t.length,e.onEnvLoaded?.(t)},[g,e.onEnvLoaded]);let v=(0,h.useRef)(void 0),y=(0,h.useMemo)(()=>Aa({port:0,dataDirectory:(0,c.join)(n,`data`),getAgent:()=>v.current}),[n]),{agent:b,logs:S,error:w,capabilities:T}=x({buildResult:d,env:g,apiServerUrl:y.url}),{client:E,error:D,setUserAgentUrl:O}=tf({directory:n,apiServerUrl:y.url}),k=(0,h.useRef)(0);(0,h.useEffect)(()=>{if(S.length===k.current)return;let t=k.current;for(let n of S.slice(t))e.onAgentLog?.(n);k.current=S.length},[S,e.onAgentLog]);let[A,j]=(0,h.useState)(`default`);(0,h.useEffect)(()=>{b&&O(b.baseUrl),r===`run`?b?v.current=b:(v.current=void 0,y.stopChat(A)):r===`edit`&&(E?v.current=E:(v.current=void 0,y.stopChat(A)))},[b,E,r,A,y]);let M=le({chatId:A,agent:r===`run`?b:E,chatStore:y.chatStore,chatsDirectory:y.chatsDirectory,filterMessages:r===`run`?e=>!oe(e.metadata):void 0}),[N,P]=(0,h.useState)([]);(0,h.useEffect)(()=>{y.chatStore.list().then(e=>{P(e.map(e=>e.key))})},[y.chatStore]);let F=(0,h.useMemo)(()=>xa(n),[n]),I=Ma({id:F,disabled:!T?.request,onRequest:async e=>{if(!b)throw Error(`No agent`);let t=new URL(e.url),n=new URL(b.baseUrl);return n.pathname=t.pathname,n.search=t.search,await fetch(n.toString(),e)}});(0,h.useEffect)(()=>{I.status===`connected`&&e.onDevhookConnected?.(`https://${I.id}.dev.blink.host`)},[I.status,I.id]);let{schema:ee,options:L,error:R,setOption:te}=ja({agent:v.current,capabilities:T,messages:M.messages}),z=(0,h.useMemo)(()=>{let e=[];return w&&r===`run`&&e.push(w.message),D&&r===`edit`&&e.push(`Edit agent error: ${D.message}`),M.error&&e.push(`Chat error: ${M.error.message}`),R&&e.push(`Options error: ${R.message}`),e},[w,D,M.error,R,r]);(0,h.useEffect)(()=>{for(let t of z)e.onError?.(t)},[z,e.onError]),(0,h.useEffect)(()=>{M.upsertMessage({id:crypto.randomUUID(),created_at:new Date().toISOString(),role:`assistant`,parts:[{type:`text`,text:r===`run`?`<run_mode />`:`<edit_mode />`}],metadata:{__blink_internal:!0,type:`mode`,mode:r}}).catch(e=>{console.error(`Error inserting mode delimiter:`,e)})},[r,M.upsertMessage]);let[B,V]=(0,h.useState)(),H=(0,h.useMemo)(()=>{let e=[...M.messages].reverse().find(e=>!(e.role!==`assistant`||e.metadata&&e.metadata.ephemeral));if(!e||B===e.id)return;let n=e.parts.filter(f.isToolOrDynamicToolUIPart);if(n.length!==0&&n.some(e=>t.isToolApprovalOutput(e.output)&&e.output.outcome===`pending`))return e},[M.messages,B]),ne=(0,h.useCallback)(async e=>{if(!H)return;V(H.id);let n=await y.chatStore.lock(A);try{let r=await n.get();if(r.messages.length>0){let i=r.messages[r.messages.length-1];if(i&&i.role===`assistant`&&Array.isArray(i.parts)){let a=i.parts.map(n=>(0,f.isToolOrDynamicToolUIPart)(n)&&n.output&&t.isToolApprovalOutput(n.output)&&n.output.outcome===`pending`?{...n,output:{...n.output,outcome:e?`approved`:`rejected`}}:n),o=[...r.messages];o[o.length-1]={...i,parts:a},await n.update({messages:o})}}}finally{await n.release()}y.startChat(A)},[H,y,A]),U=(0,h.useCallback)(()=>{j(crypto.randomUUID())},[]),re=(0,h.useMemo)(()=>{if(H)return{message:H,approve:()=>ne(!0),reject:()=>ne(!1)}},[H,ne]),ie=(0,h.useMemo)(()=>{let e=M.messages;if(e.length===0)return;let t=e[e.length-1];if(!t||t.role!==`assistant`||!t.metadata)return;let n=t.metadata,r=n.usage||n.totalUsage;if(r)return{inputTokens:r.inputTokens||0,outputTokens:r.outputTokens||0,totalTokens:r.totalTokens||0,cachedInputTokens:r.cachedInputTokens}},[M.messages]);return{mode:r,setMode:o,toggleMode:s,chat:M,chats:N,switchChat:j,newChat:U,build:{status:u,error:l,entrypoint:p},devhook:{connected:I.status===`connected`,url:I.status===`connected`?`https://${I.id}.dev.blink.host`:void 0},capabilities:T,options:{schema:ee,selected:L,error:R,setOption:te},approval:re,tokenUsage:ie,server:y}}exports.useAgent=x,exports.useBundler=C,exports.useChat=le,exports.useDevMode=rf,exports.useDevhook=Ma,exports.useDotenv=La,exports.useEditAgent=tf,exports.useOptions=ja;
626
+ `;function tf(e){let[n,r]=(0,h.useState)(void 0),[i,a]=(0,h.useState)(void 0),o=(0,h.useRef)(void 0);return(0,h.useEffect)(()=>{let n=new AbortController;return(async()=>{o.current=$d({directory:e.directory});let i=await nf(),a=o.current.agent.serve({port:i,host:`127.0.0.1`,apiUrl:e.apiServerUrl});n.signal.addEventListener(`abort`,()=>{try{a.close()}catch{}});let s=new t.Client({baseUrl:`http://127.0.0.1:${i}`});for(;!n.signal.aborted;){try{await s.health();break}catch{}await new Promise(e=>setTimeout(e,100))}if(n.signal.aborted)throw n.signal.reason;r(s)})().catch(e=>{a(e instanceof Error?e:Error(String(e)))}),()=>n.abort()},[e.directory,e.apiServerUrl]),(0,h.useMemo)(()=>({client:n,error:i,setUserAgentUrl:e=>{o.current?.setUserAgentUrl(e)}}),[n,i])}async function nf(){let e=(0,s.createServer)();return new Promise((t,n)=>{e.listen(0,()=>{let n=e.address().port;t(n)}).on(`error`,e=>{n(e)})}).finally(()=>{e.close()})}function rf(e){let{directory:n}=e,[r,i]=(0,h.useState)(`run`),a=(0,h.useRef)(`run`);(0,h.useEffect)(()=>{a.current=r},[r]);let o=(0,h.useCallback)(t=>{i(t),e.onModeChange?.(t)},[e.onModeChange]),s=(0,h.useCallback)(()=>{o(r===`run`?`edit`:`run`)},[r,o]),{error:l,status:u,result:d,entry:p}=C({directory:n,onBuildStart:e.onBuildStart,onBuildSuccess:e.onBuildSuccess,onBuildError:e.onBuildError}),m=La(n),g=(0,h.useMemo)(()=>{let e=ya();return e?{...m,BLINK_TOKEN:e}:m},[m]),_=(0,h.useRef)(void 0);(0,h.useEffect)(()=>{let t=Object.keys(g);if(t.length===_.current||_.current===void 0){_.current=t.length;return}_.current=t.length,e.onEnvLoaded?.(t)},[g,e.onEnvLoaded]);let v=(0,h.useRef)(void 0),y=(0,h.useMemo)(()=>Aa({port:0,dataDirectory:(0,c.join)(n,`data`),getAgent:()=>v.current}),[n]),{agent:b,logs:S,error:w,capabilities:T}=x({buildResult:d,env:g,apiServerUrl:y.url}),{client:E,error:D,setUserAgentUrl:O}=tf({directory:n,apiServerUrl:y.url}),k=(0,h.useRef)(0);(0,h.useEffect)(()=>{if(S.length===k.current)return;let t=k.current;for(let n of S.slice(t))e.onAgentLog?.(n);k.current=S.length},[S,e.onAgentLog]);let[A,j]=(0,h.useState)(`default`);(0,h.useEffect)(()=>{b&&O(b.baseUrl),r===`run`?b?v.current=b:(v.current=void 0,y.stopChat(A)):r===`edit`&&(E?v.current=E:(v.current=void 0,y.stopChat(A)))},[b,E,r,A,y]);let M=le({chatId:A,agent:r===`run`?b:E,chatStore:y.chatStore,chatsDirectory:y.chatsDirectory,filterMessages:r===`run`?e=>!oe(e.metadata):void 0}),[N,P]=(0,h.useState)([]);(0,h.useEffect)(()=>{y.chatStore.list().then(e=>{P(e.map(e=>e.key))})},[y.chatStore]),(0,h.useEffect)(()=>{A&&!N.includes(A)&&P(e=>[...e,A])},[A,N]);let F=(0,h.useMemo)(()=>xa(n),[n]),I=Ma({id:F,disabled:!T?.request,onRequest:async e=>{if(!b)throw Error(`No agent`);let t=new URL(e.url),n=new URL(b.baseUrl);return n.pathname=t.pathname,n.search=t.search,await fetch(n.toString(),e)}});(0,h.useEffect)(()=>{I.status===`connected`&&e.onDevhookConnected?.(`https://${I.id}.dev.blink.host`)},[I.status,I.id]);let{schema:ee,options:L,error:R,setOption:te}=ja({agent:v.current,capabilities:T,messages:M.messages}),z=(0,h.useMemo)(()=>{let e=[];return w&&r===`run`&&e.push(w.message),D&&r===`edit`&&e.push(`Edit agent error: ${D.message}`),M.error&&e.push(`Chat error: ${M.error.message}`),R&&e.push(`Options error: ${R.message}`),e},[w,D,M.error,R,r]);(0,h.useEffect)(()=>{for(let t of z)e.onError?.(t)},[z,e.onError]),(0,h.useEffect)(()=>{M.upsertMessage({id:crypto.randomUUID(),created_at:new Date().toISOString(),role:`assistant`,parts:[{type:`text`,text:r===`run`?`<run_mode />`:`<edit_mode />`}],metadata:{__blink_internal:!0,type:`mode`,mode:r}}).catch(e=>{console.error(`Error inserting mode delimiter:`,e)})},[r,M.upsertMessage]);let[B,V]=(0,h.useState)(),H=(0,h.useMemo)(()=>{let e=[...M.messages].reverse().find(e=>!(e.role!==`assistant`||e.metadata&&e.metadata.ephemeral));if(!e||B===e.id)return;let n=e.parts.filter(f.isToolOrDynamicToolUIPart);if(n.length!==0&&n.some(e=>t.isToolApprovalOutput(e.output)&&e.output.outcome===`pending`))return e},[M.messages,B]),ne=(0,h.useCallback)(async e=>{if(!H)return;V(H.id);let n=await y.chatStore.lock(A);try{let r=await n.get();if(r.messages.length>0){let i=r.messages[r.messages.length-1];if(i&&i.role===`assistant`&&Array.isArray(i.parts)){let a=i.parts.map(n=>(0,f.isToolOrDynamicToolUIPart)(n)&&n.output&&t.isToolApprovalOutput(n.output)&&n.output.outcome===`pending`?{...n,output:{...n.output,outcome:e?`approved`:`rejected`}}:n),o=[...r.messages];o[o.length-1]={...i,parts:a},await n.update({messages:o})}}}finally{await n.release()}y.startChat(A)},[H,y,A]),U=(0,h.useCallback)(()=>{let e=crypto.randomUUID();j(e),P(t=>[...t,e])},[]),re=(0,h.useMemo)(()=>{if(H)return{message:H,approve:()=>ne(!0),reject:()=>ne(!1)}},[H,ne]),ie=(0,h.useMemo)(()=>{let e=M.messages;if(e.length===0)return;let t=e[e.length-1];if(!t||t.role!==`assistant`||!t.metadata)return;let n=t.metadata,r=n.usage||n.totalUsage;if(r)return{inputTokens:r.inputTokens||0,outputTokens:r.outputTokens||0,totalTokens:r.totalTokens||0,cachedInputTokens:r.cachedInputTokens}},[M.messages]);return{mode:r,setMode:o,toggleMode:s,chat:M,chats:N,switchChat:j,newChat:U,build:{status:u,error:l,entrypoint:p},devhook:{connected:I.status===`connected`,url:I.status===`connected`?`https://${I.id}.dev.blink.host`:void 0},capabilities:T,options:{schema:ee,selected:L,error:R,setOption:te},approval:re,tokenUsage:ie,server:y}}exports.useAgent=x,exports.useBundler=C,exports.useChat=le,exports.useDevMode=rf,exports.useDevhook=Ma,exports.useDotenv=La,exports.useEditAgent=tf,exports.useOptions=ja;
@@ -241,7 +241,7 @@ interface UseDevhookOptions {
241
241
  }
242
242
  declare function useDevhook(options: UseDevhookOptions): {
243
243
  id: string;
244
- status: "connected" | "disconnected" | "error";
244
+ status: "error" | "connected" | "disconnected";
245
245
  };
246
246
  //#endregion
247
247
  //#region src/react/use-dotenv.d.ts
@@ -241,7 +241,7 @@ interface UseDevhookOptions {
241
241
  }
242
242
  declare function useDevhook(options: UseDevhookOptions): {
243
243
  id: string;
244
- status: "connected" | "disconnected" | "error";
244
+ status: "error" | "connected" | "disconnected";
245
245
  };
246
246
  //#endregion
247
247
  //#region src/react/use-dotenv.d.ts