blink 0.1.103 → 0.1.104
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/{auth-DjAEZyZZ.js → auth-B_s9F0vP.js} +1 -1
- package/dist/cli/{chat-DX_V608z.js → chat-CLFi7jlw.js} +1 -1
- package/dist/cli/{chat-manager-Cx6mpwEh.js → chat-manager-r6Y3l4iZ.js} +1 -1
- package/dist/cli/{dev-BatLoJtN.js → dev-1uScQ90j.js} +75 -70
- package/dist/cli/index.js +3 -3
- package/dist/cli/{init-iySs9KUe.js → init-m-BdPD26.js} +1 -1
- package/dist/cli/login-DC5VCVrz.js +1 -0
- package/dist/cli/{main-BdSSlDIs.js → main-CenN47Xk.js} +1 -1
- package/dist/cli/{run-kzhNLg8f.js → run-RA_dpA15.js} +1 -1
- package/dist/node/agent/index.node.cjs +1 -1
- package/dist/node/agent/index.node.js +1 -1
- package/dist/node/{index.node-hG-farUz.js → index.node-SyKw4kKs.js} +1 -1
- package/dist/node/{index.node-DlfrLUZ3.cjs → index.node-nrQ20r3u.cjs} +1 -1
- package/dist/node/react/index.node.cjs +18 -13
- package/dist/node/react/index.node.js +18 -13
- package/package.json +1 -1
- package/dist/cli/login-DTwQcbaT.js +0 -1
- /package/dist/cli/{dist-BNbSDxaw.js → dist-wyfWuz5A.js} +0 -0
- /package/dist/cli/{open-DCYivxgo.js → open-S_jcQ0nw.js} +0 -0
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-6Nkv6BEs.js";import{Client as s,loginIfNeeded as c,require_source as l}from"./auth-
|
|
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-6Nkv6BEs.js";import{Client as s,loginIfNeeded as c,require_source as l}from"./auth-B_s9F0vP.js";import{Y as u,pD as d,ve as f,ye as p}from"./dist-wyfWuz5A.js";import"./open-S_jcQ0nw.js";import{migrateBlinkToData as m,require_main as h}from"./main-CenN47Xk.js";import{randomUUID as g}from"crypto";import{basename as _,dirname as v,join as y,relative as ee}from"node:path";import{existsSync as te}from"node:fs";import{mkdir as ne,readdir as b,writeFile as re}from"fs/promises";import{readFile as x,stat as S}from"node:fs/promises";var C=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})),w=e((e=>{let{InvalidArgumentError:t}=C();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})),T=e((e=>{let{humanReadableArgName:t}=w();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})),E=e((e=>{let{InvalidArgumentError:t}=C();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:k,createCommand:ie,createArgument:A,createOption:j,CommanderError:ae,InvalidArgumentError:M,InvalidOptionArgumentError:oe,Command:N,Argument:P,Option:se,Help:F}=n(e((e=>{let{Argument:t}=w(),{Command:n}=O(),{CommanderError:r,InvalidArgumentError:i}=C(),{Help:a}=T(),{Option:o}=E();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 I=`0.1.
|
|
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:k,createCommand:ie,createArgument:A,createOption:j,CommanderError:ae,InvalidArgumentError:M,InvalidOptionArgumentError:oe,Command:N,Argument:P,Option:se,Help:F}=n(e((e=>{let{Argument:t}=w(),{Command:n}=O(),{CommanderError:r,InvalidArgumentError:i}=C(),{Help:a}=T(),{Option:o}=E();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 I=`0.1.104`;async function L(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 R=n(h(),1),z=n(l(),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`,I),fetch(e,{...t,headers:n})}}),a=await i(e,`package.json`);if(!a)throw Error(`package.json not found`);let l=await x(a,`utf-8`),h=JSON.parse(l),g=v(a),C=y(g,`data`,`config.json`),w={};if(te(C)){let e=await x(C,`utf-8`);w=JSON.parse(e)}let T;if(w?.organizationId)try{T=(await r.organizations.get(w.organizationId)).name}catch{w.organizationId=void 0}if(!w?.organizationId){let e=await r.organizations.list();if(e.length===1){let t=e[0];w.organizationId=t.id,T=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;w.organizationId=t,T=e.find(e=>e.id===t).name}}if(!w.organizationId)throw Error(`Developer error: No organization ID found.`);let E;if(w?.agentId)try{E=(await r.agents.get(w.agentId)).name}catch{w.agentId=void 0}if(!w?.agentId)try{let e=await r.organizations.agents.get({organization_id:w.organizationId,agent_name:h.name});w.agentId=e.id,E=e.name}catch{let e=await r.agents.create({name:h.name,organization_id:w.organizationId});w.agentId=e.id,E=e.name}if(!w.agentId)throw Error(`Developer error: No agent ID found.`);await ne(v(C),{recursive:!0}),await re(C,JSON.stringify({_:`This file can be source controlled. It contains no secrets.`,...w},null,2),`utf-8`);let D=o(g),O=await new Promise((e,t)=>{D.build({cwd:g,entry:D.entry,outdir:D.outdir,watch:!1,onStart:()=>{},onResult:t=>{e(t)}}).catch(t)});if(!O)throw Error(`Failed to build agent`);if(`error`in O)throw Error(O.error.message);let k={},ie=await b(O.outdir);for(let e of ie)k[y(O.outdir,e)]=e;let A=y(e,`README.md`);await H(A)&&(k[A]=`README.md`);let j={},ae=await le(g);for(let e of ae)j[e]=ee(g,e);let M=Object.entries(k),oe=Object.entries(j),N=[...M,...oe],P=N.length,se=0,F=0,L=0,B=Array(P);await ce(N,10,async([e,t],n)=>{let i=(await S(e)).size,a=++se;W(`${z.default.dim(`[${a}/${P}]`)} Uploading ${t} (${U(i)})...`);let o=await x(e),s=await r.files.upload(new File([Buffer.from(o)],t));B[n]={path:t,id:s.id},F+=1,L+=i}),W(`${z.default.dim(`[${F}/${P}]`)} Uploaded files (${U(L)}).`),process.stdout.write(`
|
|
21
21
|
`);let V=B.filter(Boolean),G=V.slice(0,M.length),ue=V.slice(M.length),K=y(e,`.env.local`),q=[];if(await H(K)){let e=(0,R.parse)(await x(K,`utf-8`));q=Object.keys(e)}let J=[];J=(await r.agents.env.list({agent_id:w.agentId})).map(e=>e.key);let Y=y(e,`.env.production`);if(await H(Y)){let e=(0,R.parse)(await x(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:w.agentId,key:e,value:a,target:[`production`,`preview`],secret:!0,upsert:!0});J.push(t.key),i+=1,W(`${z.default.dim(`[${i}/${n}]`)} Updating environment variable: ${e} ${z.default.dim(`(.env.production)`)}`)}W(`${z.default.dim(`[${i}/${n}]`)} Updated environment variables! ${z.default.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:w.agentId,target:`production`,entrypoint:_(O.entry),output_files:G,source_files:ue,message:t?.message}),Q=`https://blink.so/${T}/${E}/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:w.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(w.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 S(e),!0}catch{return!1}};async function ce(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 le(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 x(r,`utf-8`);n.add(e)}async function i(r,a=e){let o=await b(r,{withFileTypes:!0});for(let e of o){let o=y(r,e.name),s=ee(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()),k.name(`blink`).description(`Blink is a runtime for building and deploying AI agents.`).version(I).action(()=>{k.outputHelp()});const G=e=>async(...t)=>{let{default:n}=await e();return n(...t)};k.command(`init [directory]`).description(`Initialize a new Blink agent.`).action(G(()=>import(`./init-
|
|
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:w.agentId,target:`production`,entrypoint:_(O.entry),output_files:G,source_files:ue,message:t?.message}),Q=`https://blink.so/${T}/${E}/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:w.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(w.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 S(e),!0}catch{return!1}};async function ce(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 le(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 x(r,`utf-8`);n.add(e)}async function i(r,a=e){let o=await b(r,{withFileTypes:!0});for(let e of o){let o=y(r,e.name),s=ee(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()),k.name(`blink`).description(`Blink is a runtime for building and deploying AI agents.`).version(I).action(()=>{k.outputHelp()});const G=e=>async(...t)=>{let{default:n}=await e();return n(...t)};k.command(`init [directory]`).description(`Initialize a new Blink agent.`).action(G(()=>import(`./init-m-BdPD26.js`))),k.command(`dev [directory] [options]`).description(`Start a development server for your agent.`).action(G(()=>import(`./dev-1uScQ90j.js`))),k.command(`deploy [directory]`).description(`Deploy your agent to the Blink Cloud.`).option(`-m, --message <message>`,`Message for this deployment`).action(V),k.command(`build [directory]`).description(`Build your agent for production.`).action(L),k.command(`telemetry [boolean]`).description(`Enable or disable telemetry.`),k.command(`start [directory]`).description("Starts the Blink runtime in production mode. The agent must be compiled with `blink build` first."),k.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-RA_dpA15.js`))),k.command(`connect`,{hidden:!0}).description(`Connect compute to the Blink Cloud.`).action(G(()=>import(`./connect-D8dpOtYY.js`))),k.command(`chat`,{hidden:!0}).description(`Start a Blink chat connected to your machine.`).action(G(()=>import(`./chat-CLFi7jlw.js`))),k.command(`login`,{hidden:!0}).description(`Log in to the Blink Cloud.`).action(G(()=>import(`./login-DC5VCVrz.js`))),k.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-
|
|
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-B_s9F0vP.js";import"./dist-wyfWuz5A.js";import"./open-S_jcQ0nw.js";async function t(){await e()}export{t as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__commonJSMin as e,__require as t,__toESM as n}from"./chunk-D9KrCrVq.js";import{require_source as r}from"./auth-
|
|
1
|
+
import{__commonJSMin as e,__require as t,__toESM as n}from"./chunk-D9KrCrVq.js";import{require_source as r}from"./auth-B_s9F0vP.js";import{join as i}from"path";import{existsSync as a,readFileSync as o,readdirSync as s,writeFileSync as c}from"fs";import{rename as l,rm as u}from"fs/promises";var d=n(r(),1);async function f(e){let t=i(e,`.blink`),n=i(e,`data`);if(!a(t)||a(n))return;let r=i(t,`data`);if(a(r)){console.log(d.default.yellow(`Migrating .blink/data/ to data/...`)),await l(r,n);let e=s(t);for(let r of e){let e=i(t,r),o=i(n,r);a(o)||await l(e,o)}await u(t,{recursive:!0,force:!0})}else{if(!(a(i(t,`build`))||a(i(t,`chats`))||a(i(t,`storage.json`))||a(i(t,`config.json`))||a(i(t,`devhook.txt`))))return;console.log(d.default.yellow(`Migrating .blink/ to data/...`)),await l(t,n)}let f=i(e,`.gitignore`);if(a(f)){let e=o(f,`utf-8`);if(!e.includes(`data`)){let t=e.split(`
|
|
2
2
|
`),n=t.findIndex(e=>e.trim().match(/^\.blink\s*$/));n===-1?(e.endsWith(`
|
|
3
3
|
`)||t.push(``),t.push(`# .blink has migrated to data/`),t.push(`data`)):(t[n]=`data`,(n===0||!t[n-1]?.trim().startsWith(`#`))&&t.splice(n,0,`# .blink has migrated to data/`)),c(f,t.join(`
|
|
4
4
|
`)),console.log(d.default.green(`Updated .gitignore`))}}console.log(d.default.green(`Migration complete!`))}var p=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}}})),m=e(((e,n)=>{let r=t(`fs`),i=t(`path`),a=t(`os`),o=t(`crypto`),s=p().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 d(){return process.stdout.isTTY}function f(e){return d()?`\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-
|
|
1
|
+
import{__toESM as e}from"./chunk-D9KrCrVq.js";import{getAuthToken as t}from"./auth-B_s9F0vP.js";import"./dist-wyfWuz5A.js";import"./open-S_jcQ0nw.js";import{migrateBlinkToData as n,require_main as r}from"./main-CenN47Xk.js";import{ChatManager as i,Client as a}from"./chat-manager-r6Y3l4iZ.js";import{spawn as o}from"node:child_process";import{join as s,resolve as c}from"node:path";import{readFile as l}from"node:fs/promises";import{createServer as u}from"node:net";async function d(e){let t=e.env?.PORT??await f(),n=e.env?.HOST??`127.0.0.1`,r=`http://${n}:${t}`,i={...e.env??process.env,PORT:t.toString(),HOST:n},s=o(e.command,e.args,{stdio:`pipe`,env:i});e.signal?.addEventListener(`abort`,()=>{try{s.kill()}catch{}},{once:!0});let c=new AbortController,l=[c.signal];e.signal&&l.push(e.signal);let u=AbortSignal.any(l);s.stdout.on(`data`,t=>{e.onStdout?.(Buffer.from(t).toString(`utf-8`))});let d=``;s.stderr.on(`data`,t=>{c.signal.aborted||(d+=Buffer.from(t).toString(`utf-8`)),e.onStderr?.(Buffer.from(t).toString(`utf-8`))}),s.on(`error`,e=>{c.abort(e)}),s.on(`exit`,(t,n)=>{c.signal.aborted?e.onExit?.(t,n):c.abort()});let p=new a({baseUrl:r}),m=0;for(;!u.aborted;){try{await p.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:p,dispose:()=>{s.kill()}}}async function f(){let e=u();return new Promise((t,n)=>{e.listen(0,()=>{let n=e.address().port;t(n)}).on(`error`,e=>{n(e)})}).finally(()=>{e.close()})}var p=e(r(),1);async function m(e,r){let a=c(r?.directory??process.cwd());await n(a);let o=(0,p.parse)(await l(s(a,`.env.local`),`utf-8`)),u=await t(),f=await d({command:`node`,args:[`--experimental-strip-types`,`--no-deprecation`,c(a,`agent.ts`)],env:{...process.env,...o,BLINK_TOKEN:u}}),m=c(r?.directory??process.cwd(),`data`,`chats`),h=r?.chat??`default`,g=new i({chatId:h,chatsDirectory:m});g.setAgent(f.client);try{await g.sendMessage({id:crypto.randomUUID(),created_at:new Date().toISOString(),metadata:void 0,parts:[{type:`text`,text:e.join(` `)}],role:`user`,mode:`run`}),await new Promise(e=>{let t=g.subscribe(n=>{(n.status===`idle`||n.status===`error`)&&(t(),e()),n.streamingMessage&&console.log(n.streamingMessage)})});let t=g.getState();t.error&&console.error(`Error:`,t.error)}finally{g.dispose(),f.dispose()}}export{m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../chunk-iXuH7AlR.cjs`),t=require(`../index.node-
|
|
1
|
+
const e=require(`../chunk-iXuH7AlR.cjs`),t=require(`../index.node-nrQ20r3u.cjs`);require(`../token-error-BoNG8ooW.cjs`),require(`../esm-0UNjvroT.cjs`),exports.StreamResponseFormatHeader=t.StreamResponseFormatHeader,exports.agent=t.agent,exports.api=t.api,exports.isToolApprovalOutput=t.isToolApprovalOutput,exports.lastUIOptions=t.lastUIOptions,exports.model=t.model,exports.toolWithApproval=t.toolWithApproval,exports.tools=t.tools,exports.withResponseFormat=t.withResponseFormat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{StreamResponseFormatHeader as e,agent as t,api as n,isToolApprovalOutput as r,lastUIOptions as i,model as a,toolWithApproval as o,tools as s,withResponseFormat as c}from"../index.node-
|
|
1
|
+
import{StreamResponseFormatHeader as e,agent as t,api as n,isToolApprovalOutput as r,lastUIOptions as i,model as a,toolWithApproval as o,tools as s,withResponseFormat as c}from"../index.node-SyKw4kKs.js";import"../token-error-488npYdU.js";import"../esm-CbZfjZBn.js";export{e as StreamResponseFormatHeader,t as agent,n as api,r as isToolApprovalOutput,i as lastUIOptions,a as model,o as toolWithApproval,s as tools,c as withResponseFormat};
|
|
@@ -154,7 +154,7 @@ ${assistantMessage}
|
|
|
154
154
|
`,{prompt:text,stopSequences:[`
|
|
155
155
|
${user}:`]}}function getResponseMetadata2({id,model:model$1,created}){return{id:id??void 0,modelId:model$1??void 0,timestamp:created==null?void 0:new Date(created*1e3)}}function mapOpenAIFinishReason2(finishReason){switch(finishReason){case`stop`:return`stop`;case`length`:return`length`;case`content_filter`:return`content-filter`;case`function_call`:case`tool_calls`:return`tool-calls`;default:return`unknown`}}var openaiCompletionProviderOptions=z.object({echo:z.boolean().optional(),logitBias:z.record(z.string(),z.number()).optional(),suffix:z.string().optional(),user:z.string().optional(),logprobs:z.union([z.boolean(),z.number()]).optional()}),OpenAICompletionLanguageModel=class{constructor(modelId,config){this.specificationVersion=`v2`,this.supportedUrls={},this.modelId=modelId,this.config=config}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}get provider(){return this.config.provider}async getArgs({prompt,maxOutputTokens,temperature,topP,topK,frequencyPenalty,presencePenalty,stopSequences:userStopSequences,responseFormat,tools:tools$1,toolChoice,seed,providerOptions}){let warnings=[],openaiOptions={...await parseProviderOptions({provider:`openai`,providerOptions,schema:openaiCompletionProviderOptions}),...await parseProviderOptions({provider:this.providerOptionsName,providerOptions,schema:openaiCompletionProviderOptions})};topK!=null&&warnings.push({type:`unsupported-setting`,setting:`topK`}),tools$1?.length&&warnings.push({type:`unsupported-setting`,setting:`tools`}),toolChoice!=null&&warnings.push({type:`unsupported-setting`,setting:`toolChoice`}),responseFormat!=null&&responseFormat.type!==`text`&&warnings.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format is not supported.`});let{prompt:completionPrompt,stopSequences}=convertToOpenAICompletionPrompt({prompt}),stop=[...stopSequences??[],...userStopSequences??[]];return{args:{model:this.modelId,echo:openaiOptions.echo,logit_bias:openaiOptions.logitBias,logprobs:openaiOptions?.logprobs===!0?0:openaiOptions?.logprobs===!1?void 0:openaiOptions?.logprobs,suffix:openaiOptions.suffix,user:openaiOptions.user,max_tokens:maxOutputTokens,temperature,top_p:topP,frequency_penalty:frequencyPenalty,presence_penalty:presencePenalty,seed,prompt:completionPrompt,stop:stop.length>0?stop:void 0},warnings}}async doGenerate(options){var _a$7,_b$2,_c$1;let{args,warnings}=await this.getArgs(options),{responseHeaders,value:response,rawValue:rawResponse}=await postJsonToApi({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:combineHeaders(this.config.headers(),options.headers),body:args,failedResponseHandler:openaiFailedResponseHandler,successfulResponseHandler:createJsonResponseHandler(openaiCompletionResponseSchema),abortSignal:options.abortSignal,fetch:this.config.fetch}),choice=response.choices[0],providerMetadata={openai:{}};return choice.logprobs!=null&&(providerMetadata.openai.logprobs=choice.logprobs),{content:[{type:`text`,text:choice.text}],usage:{inputTokens:response.usage?.prompt_tokens,outputTokens:response.usage?.completion_tokens,totalTokens:response.usage?.total_tokens},finishReason:mapOpenAIFinishReason2(choice.finish_reason),request:{body:args},response:{...getResponseMetadata2(response),headers:responseHeaders,body:rawResponse},providerMetadata,warnings}}async doStream(options){let{args,warnings}=await this.getArgs(options),body={...args,stream:!0,stream_options:{include_usage:!0}},{responseHeaders,value:response}=await postJsonToApi({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:combineHeaders(this.config.headers(),options.headers),body,failedResponseHandler:openaiFailedResponseHandler,successfulResponseHandler:createEventSourceResponseHandler(openaiCompletionChunkSchema),abortSignal:options.abortSignal,fetch:this.config.fetch}),finishReason=`unknown`,providerMetadata={openai:{}},usage={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},isFirstChunk=!0;return{stream:response.pipeThrough(new TransformStream({start(controller){controller.enqueue({type:`stream-start`,warnings})},transform(chunk,controller){if(options.includeRawChunks&&controller.enqueue({type:`raw`,rawValue:chunk.rawValue}),!chunk.success){finishReason=`error`,controller.enqueue({type:`error`,error:chunk.error});return}let value=chunk.value;if(`error`in value){finishReason=`error`,controller.enqueue({type:`error`,error:value.error});return}isFirstChunk&&(isFirstChunk=!1,controller.enqueue({type:`response-metadata`,...getResponseMetadata2(value)}),controller.enqueue({type:`text-start`,id:`0`})),value.usage!=null&&(usage.inputTokens=value.usage.prompt_tokens,usage.outputTokens=value.usage.completion_tokens,usage.totalTokens=value.usage.total_tokens);let choice=value.choices[0];choice?.finish_reason!=null&&(finishReason=mapOpenAIFinishReason2(choice.finish_reason)),choice?.logprobs!=null&&(providerMetadata.openai.logprobs=choice.logprobs),choice?.text!=null&&choice.text.length>0&&controller.enqueue({type:`text-delta`,id:`0`,delta:choice.text})},flush(controller){isFirstChunk||controller.enqueue({type:`text-end`,id:`0`}),controller.enqueue({type:`finish`,finishReason,providerMetadata,usage})}})),request:{body},response:{headers:responseHeaders}}}},usageSchema$1=z.object({prompt_tokens:z.number(),completion_tokens:z.number(),total_tokens:z.number()}),openaiCompletionResponseSchema=z.object({id:z.string().nullish(),created:z.number().nullish(),model:z.string().nullish(),choices:z.array(z.object({text:z.string(),finish_reason:z.string(),logprobs:z.object({tokens:z.array(z.string()),token_logprobs:z.array(z.number()),top_logprobs:z.array(z.record(z.string(),z.number())).nullish()}).nullish()})),usage:usageSchema$1.nullish()}),openaiCompletionChunkSchema=z.union([z.object({id:z.string().nullish(),created:z.number().nullish(),model:z.string().nullish(),choices:z.array(z.object({text:z.string(),finish_reason:z.string().nullish(),index:z.number(),logprobs:z.object({tokens:z.array(z.string()),token_logprobs:z.array(z.number()),top_logprobs:z.array(z.record(z.string(),z.number())).nullish()}).nullish()})),usage:usageSchema$1.nullish()}),openaiErrorDataSchema]),openaiEmbeddingProviderOptions=z.object({dimensions:z.number().optional(),user:z.string().optional()}),OpenAIEmbeddingModel=class{constructor(modelId,config){this.specificationVersion=`v2`,this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0,this.modelId=modelId,this.config=config}get provider(){return this.config.provider}async doEmbed({values,headers,abortSignal,providerOptions}){var _a$7;if(values.length>this.maxEmbeddingsPerCall)throw new TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values});let openaiOptions=await parseProviderOptions({provider:`openai`,providerOptions,schema:openaiEmbeddingProviderOptions})??{},{responseHeaders,value:response,rawValue}=await postJsonToApi({url:this.config.url({path:`/embeddings`,modelId:this.modelId}),headers:combineHeaders(this.config.headers(),headers),body:{model:this.modelId,input:values,encoding_format:`float`,dimensions:openaiOptions.dimensions,user:openaiOptions.user},failedResponseHandler:openaiFailedResponseHandler,successfulResponseHandler:createJsonResponseHandler(openaiTextEmbeddingResponseSchema$1),abortSignal,fetch:this.config.fetch});return{embeddings:response.data.map(item=>item.embedding),usage:response.usage?{tokens:response.usage.prompt_tokens}:void 0,response:{headers:responseHeaders,body:rawValue}}}},openaiTextEmbeddingResponseSchema$1=z.object({data:z.array(z.object({embedding:z.array(z.number())})),usage:z.object({prompt_tokens:z.number()}).nullish()}),modelMaxImagesPerCall={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10},hasDefaultResponseFormat=new Set([`gpt-image-1`]),OpenAIImageModel=class{constructor(modelId,config){this.modelId=modelId,this.config=config,this.specificationVersion=`v2`}get maxImagesPerCall(){var _a$7;return modelMaxImagesPerCall[this.modelId]??1}get provider(){return this.config.provider}async doGenerate({prompt,n,size,aspectRatio,seed,providerOptions,headers,abortSignal}){var _a$7,_b$2,_c$1,_d$1;let warnings=[];aspectRatio!=null&&warnings.push({type:`unsupported-setting`,setting:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),seed!=null&&warnings.push({type:`unsupported-setting`,setting:`seed`});let currentDate=((_a$7=this.config._internal)?.currentDate)?.call(_a$7)??new Date,{value:response,responseHeaders}=await postJsonToApi({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:combineHeaders(this.config.headers(),headers),body:{model:this.modelId,prompt,n,size,...providerOptions.openai??{},...hasDefaultResponseFormat.has(this.modelId)?{}:{response_format:`b64_json`}},failedResponseHandler:openaiFailedResponseHandler,successfulResponseHandler:createJsonResponseHandler(openaiImageResponseSchema),abortSignal,fetch:this.config.fetch});return{images:response.data.map(item=>item.b64_json),warnings,response:{timestamp:currentDate,modelId:this.modelId,headers:responseHeaders},providerMetadata:{openai:{images:response.data.map(item=>item.revised_prompt?{revisedPrompt:item.revised_prompt}:null)}}}}},openaiImageResponseSchema=z.object({data:z.array(z.object({b64_json:z.string(),revised_prompt:z.string().optional()}))}),codeInterpreterInputSchema=z.object({code:z.string().nullish(),containerId:z.string()}),codeInterpreterOutputSchema=z.object({outputs:z.array(z.discriminatedUnion(`type`,[z.object({type:z.literal(`logs`),logs:z.string()}),z.object({type:z.literal(`image`),url:z.string()})])).nullish()}),codeInterpreterArgsSchema=z.object({container:z.union([z.string(),z.object({fileIds:z.array(z.string()).optional()})]).optional()}),codeInterpreterToolFactory=createProviderDefinedToolFactoryWithOutputSchema({id:`openai.code_interpreter`,name:`code_interpreter`,inputSchema:codeInterpreterInputSchema,outputSchema:codeInterpreterOutputSchema}),codeInterpreter=(args={})=>codeInterpreterToolFactory(args),comparisonFilterSchema=z.object({key:z.string(),type:z.enum([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`]),value:z.union([z.string(),z.number(),z.boolean()])}),compoundFilterSchema=z.object({type:z.enum([`and`,`or`]),filters:z.array(z.union([comparisonFilterSchema,z.lazy(()=>compoundFilterSchema)]))}),fileSearchArgsSchema=z.object({vectorStoreIds:z.array(z.string()),maxNumResults:z.number().optional(),ranking:z.object({ranker:z.string().optional(),scoreThreshold:z.number().optional()}).optional(),filters:z.union([comparisonFilterSchema,compoundFilterSchema]).optional()}),fileSearchOutputSchema=z.object({queries:z.array(z.string()),results:z.array(z.object({attributes:z.record(z.string(),z.unknown()),fileId:z.string(),filename:z.string(),score:z.number(),text:z.string()})).nullable()}),fileSearch=createProviderDefinedToolFactoryWithOutputSchema({id:`openai.file_search`,name:`file_search`,inputSchema:z.object({}),outputSchema:fileSearchOutputSchema}),imageGenerationArgsSchema=z.object({background:z.enum([`auto`,`opaque`,`transparent`]).optional(),inputFidelity:z.enum([`low`,`high`]).optional(),inputImageMask:z.object({fileId:z.string().optional(),imageUrl:z.string().optional()}).optional(),model:z.string().optional(),moderation:z.enum([`auto`]).optional(),outputCompression:z.number().int().min(0).max(100).optional(),outputFormat:z.enum([`png`,`jpeg`,`webp`]).optional(),quality:z.enum([`auto`,`low`,`medium`,`high`]).optional(),size:z.enum([`1024x1024`,`1024x1536`,`1536x1024`,`auto`]).optional()}).strict(),imageGenerationOutputSchema=z.object({result:z.string()}),imageGenerationToolFactory=createProviderDefinedToolFactoryWithOutputSchema({id:`openai.image_generation`,name:`image_generation`,inputSchema:z.object({}),outputSchema:imageGenerationOutputSchema}),imageGeneration=(args={})=>imageGenerationToolFactory(args),localShellInputSchema=z.object({action:z.object({type:z.literal(`exec`),command:z.array(z.string()),timeoutMs:z.number().optional(),user:z.string().optional(),workingDirectory:z.string().optional(),env:z.record(z.string(),z.string()).optional()})}),localShellOutputSchema=z.object({output:z.string()}),localShell=createProviderDefinedToolFactoryWithOutputSchema({id:`openai.local_shell`,name:`local_shell`,inputSchema:localShellInputSchema,outputSchema:localShellOutputSchema}),webSearchArgsSchema=z.object({filters:z.object({allowedDomains:z.array(z.string()).optional()}).optional(),searchContextSize:z.enum([`low`,`medium`,`high`]).optional(),userLocation:z.object({type:z.literal(`approximate`),country:z.string().optional(),city:z.string().optional(),region:z.string().optional(),timezone:z.string().optional()}).optional()}),webSearchToolFactory=createProviderDefinedToolFactory({id:`openai.web_search`,name:`web_search`,inputSchema:z.object({action:z.discriminatedUnion(`type`,[z.object({type:z.literal(`search`),query:z.string().nullish()}),z.object({type:z.literal(`open_page`),url:z.string()}),z.object({type:z.literal(`find`),url:z.string(),pattern:z.string()})]).nullish()})}),webSearch=(args={})=>webSearchToolFactory(args),webSearchPreviewArgsSchema=z.object({searchContextSize:z.enum([`low`,`medium`,`high`]).optional(),userLocation:z.object({type:z.literal(`approximate`),country:z.string().optional(),city:z.string().optional(),region:z.string().optional(),timezone:z.string().optional()}).optional()}),webSearchPreview=createProviderDefinedToolFactory({id:`openai.web_search_preview`,name:`web_search_preview`,inputSchema:z.object({action:z.discriminatedUnion(`type`,[z.object({type:z.literal(`search`),query:z.string().nullish()}),z.object({type:z.literal(`open_page`),url:z.string()}),z.object({type:z.literal(`find`),url:z.string(),pattern:z.string()})]).nullish()})}),openaiTools={codeInterpreter,fileSearch,imageGeneration,localShell,webSearchPreview,webSearch};function isFileId(data$2,prefixes){return prefixes?prefixes.some(prefix=>data$2.startsWith(prefix)):!1}async function convertToOpenAIResponsesInput({prompt,systemMessageMode,fileIdPrefixes,store,hasLocalShellTool=!1}){var _a$7,_b$2,_c$1,_d$1,_e,_f,_g,_h,_i;let input=[],warnings=[];for(let{role,content}of prompt)switch(role){case`system`:switch(systemMessageMode){case`system`:input.push({role:`system`,content});break;case`developer`:input.push({role:`developer`,content});break;case`remove`:warnings.push({type:`other`,message:`system messages are removed for this model`});break;default:{let _exhaustiveCheck=systemMessageMode;throw Error(`Unsupported system message mode: ${_exhaustiveCheck}`)}}break;case`user`:input.push({role:`user`,content:content.map((part,index)=>{var _a2$2,_b2$1,_c2;switch(part.type){case`text`:return{type:`input_text`,text:part.text};case`file`:if(part.mediaType.startsWith(`image/`)){let mediaType=part.mediaType===`image/*`?`image/jpeg`:part.mediaType;return{type:`input_image`,...part.data instanceof URL?{image_url:part.data.toString()}:typeof part.data==`string`&&isFileId(part.data,fileIdPrefixes)?{file_id:part.data}:{image_url:`data:${mediaType};base64,${convertToBase64(part.data)}`},detail:part.providerOptions?.openai?.imageDetail}}else if(part.mediaType===`application/pdf`)return part.data instanceof URL?{type:`input_file`,file_url:part.data.toString()}:{type:`input_file`,...typeof part.data==`string`&&isFileId(part.data,fileIdPrefixes)?{file_id:part.data}:{filename:part.filename??`part-${index}.pdf`,file_data:`data:application/pdf;base64,${convertToBase64(part.data)}`}};else throw new UnsupportedFunctionalityError({functionality:`file part media type ${part.mediaType}`})}})});break;case`assistant`:{let reasoningMessages={},toolCallParts={};for(let part of content)switch(part.type){case`text`:input.push({role:`assistant`,content:[{type:`output_text`,text:part.text}],id:part.providerOptions?.openai?.itemId??void 0});break;case`tool-call`:if(toolCallParts[part.toolCallId]=part,part.providerExecuted)break;if(hasLocalShellTool&&part.toolName===`local_shell`){let parsedInput=localShellInputSchema.parse(part.input);input.push({type:`local_shell_call`,call_id:part.toolCallId,id:part.providerOptions?.openai?.itemId??void 0,action:{type:`exec`,command:parsedInput.action.command,timeout_ms:parsedInput.action.timeoutMs,user:parsedInput.action.user,working_directory:parsedInput.action.workingDirectory,env:parsedInput.action.env}});break}input.push({type:`function_call`,call_id:part.toolCallId,name:part.toolName,arguments:JSON.stringify(part.input),id:part.providerOptions?.openai?.itemId??void 0});break;case`tool-result`:store?input.push({type:`item_reference`,id:part.toolCallId}):warnings.push({type:`other`,message:`Results for OpenAI tool ${part.toolName} are not sent to the API when store is false`});break;case`reasoning`:{let providerOptions=await parseProviderOptions({provider:`openai`,providerOptions:part.providerOptions,schema:openaiResponsesReasoningProviderOptionsSchema}),reasoningId=providerOptions?.itemId;if(reasoningId!=null){let reasoningMessage=reasoningMessages[reasoningId];if(store)reasoningMessage===void 0&&(input.push({type:`item_reference`,id:reasoningId}),reasoningMessages[reasoningId]={type:`reasoning`,id:reasoningId,summary:[]});else{let summaryParts=[];part.text.length>0?summaryParts.push({type:`summary_text`,text:part.text}):reasoningMessage!==void 0&&warnings.push({type:`other`,message:`Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(part)}.`}),reasoningMessage===void 0?(reasoningMessages[reasoningId]={type:`reasoning`,id:reasoningId,encrypted_content:providerOptions?.reasoningEncryptedContent,summary:summaryParts},input.push(reasoningMessages[reasoningId])):reasoningMessage.summary.push(...summaryParts)}}else warnings.push({type:`other`,message:`Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(part)}.`});break}}break}case`tool`:for(let part of content){let output=part.output;if(hasLocalShellTool&&part.toolName===`local_shell`&&output.type===`json`){input.push({type:`local_shell_call_output`,call_id:part.toolCallId,output:localShellOutputSchema.parse(output.value).output});break}let contentValue;switch(output.type){case`text`:case`error-text`:contentValue=output.value;break;case`content`:case`json`:case`error-json`:contentValue=JSON.stringify(output.value);break}input.push({type:`function_call_output`,call_id:part.toolCallId,output:contentValue})}break;default:{let _exhaustiveCheck=role;throw Error(`Unsupported role: ${_exhaustiveCheck}`)}}return{input,warnings}}var openaiResponsesReasoningProviderOptionsSchema=z.object({itemId:z.string().nullish(),reasoningEncryptedContent:z.string().nullish()});function mapOpenAIResponseFinishReason({finishReason,hasFunctionCall}){switch(finishReason){case void 0:case null:return hasFunctionCall?`tool-calls`:`stop`;case`max_output_tokens`:return`length`;case`content_filter`:return`content-filter`;default:return hasFunctionCall?`tool-calls`:`unknown`}}function prepareResponsesTools({tools:tools$1,toolChoice,strictJsonSchema}){tools$1=tools$1?.length?tools$1:void 0;let toolWarnings=[];if(tools$1==null)return{tools:void 0,toolChoice:void 0,toolWarnings};let openaiTools2=[];for(let tool$2 of tools$1)switch(tool$2.type){case`function`:openaiTools2.push({type:`function`,name:tool$2.name,description:tool$2.description,parameters:tool$2.inputSchema,strict:strictJsonSchema});break;case`provider-defined`:switch(tool$2.id){case`openai.file_search`:{let args=fileSearchArgsSchema.parse(tool$2.args);openaiTools2.push({type:`file_search`,vector_store_ids:args.vectorStoreIds,max_num_results:args.maxNumResults,ranking_options:args.ranking?{ranker:args.ranking.ranker,score_threshold:args.ranking.scoreThreshold}:void 0,filters:args.filters});break}case`openai.local_shell`:openaiTools2.push({type:`local_shell`});break;case`openai.web_search_preview`:{let args=webSearchPreviewArgsSchema.parse(tool$2.args);openaiTools2.push({type:`web_search_preview`,search_context_size:args.searchContextSize,user_location:args.userLocation});break}case`openai.web_search`:{let args=webSearchArgsSchema.parse(tool$2.args);openaiTools2.push({type:`web_search`,filters:args.filters==null?void 0:{allowed_domains:args.filters.allowedDomains},search_context_size:args.searchContextSize,user_location:args.userLocation});break}case`openai.code_interpreter`:{let args=codeInterpreterArgsSchema.parse(tool$2.args);openaiTools2.push({type:`code_interpreter`,container:args.container==null?{type:`auto`,file_ids:void 0}:typeof args.container==`string`?args.container:{type:`auto`,file_ids:args.container.fileIds}});break}case`openai.image_generation`:{let args=imageGenerationArgsSchema.parse(tool$2.args);openaiTools2.push({type:`image_generation`,background:args.background,input_fidelity:args.inputFidelity,input_image_mask:args.inputImageMask?{file_id:args.inputImageMask.fileId,image_url:args.inputImageMask.imageUrl}:void 0,model:args.model,size:args.size,quality:args.quality,moderation:args.moderation,output_format:args.outputFormat,output_compression:args.outputCompression});break}}break;default:toolWarnings.push({type:`unsupported-tool`,tool:tool$2});break}if(toolChoice==null)return{tools:openaiTools2,toolChoice:void 0,toolWarnings};let type=toolChoice.type;switch(type){case`auto`:case`none`:case`required`:return{tools:openaiTools2,toolChoice:type,toolWarnings};case`tool`:return{tools:openaiTools2,toolChoice:toolChoice.toolName===`code_interpreter`||toolChoice.toolName===`file_search`||toolChoice.toolName===`image_generation`||toolChoice.toolName===`web_search_preview`||toolChoice.toolName===`web_search`?{type:toolChoice.toolName}:{type:`function`,name:toolChoice.toolName},toolWarnings};default:throw new UnsupportedFunctionalityError({functionality:`tool choice type: ${type}`})}}var webSearchCallItem=z.object({type:z.literal(`web_search_call`),id:z.string(),status:z.string(),action:z.discriminatedUnion(`type`,[z.object({type:z.literal(`search`),query:z.string().nullish()}),z.object({type:z.literal(`open_page`),url:z.string()}),z.object({type:z.literal(`find`),url:z.string(),pattern:z.string()})]).nullish()}),fileSearchCallItem=z.object({type:z.literal(`file_search_call`),id:z.string(),queries:z.array(z.string()),results:z.array(z.object({attributes:z.record(z.string(),z.unknown()),file_id:z.string(),filename:z.string(),score:z.number(),text:z.string()})).nullish()}),codeInterpreterCallItem=z.object({type:z.literal(`code_interpreter_call`),id:z.string(),code:z.string().nullable(),container_id:z.string(),outputs:z.array(z.discriminatedUnion(`type`,[z.object({type:z.literal(`logs`),logs:z.string()}),z.object({type:z.literal(`image`),url:z.string()})])).nullable()}),localShellCallItem=z.object({type:z.literal(`local_shell_call`),id:z.string(),call_id:z.string(),action:z.object({type:z.literal(`exec`),command:z.array(z.string()),timeout_ms:z.number().optional(),user:z.string().optional(),working_directory:z.string().optional(),env:z.record(z.string(),z.string()).optional()})}),imageGenerationCallItem=z.object({type:z.literal(`image_generation_call`),id:z.string(),result:z.string()}),TOP_LOGPROBS_MAX=20,LOGPROBS_SCHEMA=z.array(z.object({token:z.string(),logprob:z.number(),top_logprobs:z.array(z.object({token:z.string(),logprob:z.number()}))})),OpenAIResponsesLanguageModel=class{constructor(modelId,config){this.specificationVersion=`v2`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/]},this.modelId=modelId,this.config=config}get provider(){return this.config.provider}async getArgs({maxOutputTokens,temperature,stopSequences,topP,topK,presencePenalty,frequencyPenalty,seed,prompt,providerOptions,tools:tools$1,toolChoice,responseFormat}){var _a$7,_b$2,_c$1,_d$1;let warnings=[],modelConfig=getResponsesModelConfig(this.modelId);topK!=null&&warnings.push({type:`unsupported-setting`,setting:`topK`}),seed!=null&&warnings.push({type:`unsupported-setting`,setting:`seed`}),presencePenalty!=null&&warnings.push({type:`unsupported-setting`,setting:`presencePenalty`}),frequencyPenalty!=null&&warnings.push({type:`unsupported-setting`,setting:`frequencyPenalty`}),stopSequences!=null&&warnings.push({type:`unsupported-setting`,setting:`stopSequences`});let openaiOptions=await parseProviderOptions({provider:`openai`,providerOptions,schema:openaiResponsesProviderOptionsSchema}),{input,warnings:inputWarnings}=await convertToOpenAIResponsesInput({prompt,systemMessageMode:modelConfig.systemMessageMode,fileIdPrefixes:this.config.fileIdPrefixes,store:openaiOptions?.store??!0,hasLocalShellTool:hasOpenAITool(`openai.local_shell`)});warnings.push(...inputWarnings);let strictJsonSchema=openaiOptions?.strictJsonSchema??!1,include=openaiOptions?.include;function addInclude(key){include=include==null?[key]:[...include,key]}function hasOpenAITool(id){return tools$1?.find(tool$2=>tool$2.type===`provider-defined`&&tool$2.id===id)!=null}let topLogprobs=typeof openaiOptions?.logprobs==`number`?openaiOptions?.logprobs:openaiOptions?.logprobs===!0?TOP_LOGPROBS_MAX:void 0;topLogprobs&&addInclude(`message.output_text.logprobs`);let webSearchToolName=tools$1?.find(tool$2=>tool$2.type===`provider-defined`&&(tool$2.id===`openai.web_search`||tool$2.id===`openai.web_search_preview`))?.name;webSearchToolName&&addInclude(`web_search_call.action.sources`),hasOpenAITool(`openai.code_interpreter`)&&addInclude(`code_interpreter_call.outputs`);let baseArgs={model:this.modelId,input,temperature,top_p:topP,max_output_tokens:maxOutputTokens,...(responseFormat?.type===`json`||openaiOptions?.textVerbosity)&&{text:{...responseFormat?.type===`json`&&{format:responseFormat.schema==null?{type:`json_object`}:{type:`json_schema`,strict:strictJsonSchema,name:responseFormat.name??`response`,description:responseFormat.description,schema:responseFormat.schema}},...openaiOptions?.textVerbosity&&{verbosity:openaiOptions.textVerbosity}}},max_tool_calls:openaiOptions?.maxToolCalls,metadata:openaiOptions?.metadata,parallel_tool_calls:openaiOptions?.parallelToolCalls,previous_response_id:openaiOptions?.previousResponseId,store:openaiOptions?.store,user:openaiOptions?.user,instructions:openaiOptions?.instructions,service_tier:openaiOptions?.serviceTier,include,prompt_cache_key:openaiOptions?.promptCacheKey,safety_identifier:openaiOptions?.safetyIdentifier,top_logprobs:topLogprobs,...modelConfig.isReasoningModel&&(openaiOptions?.reasoningEffort!=null||openaiOptions?.reasoningSummary!=null)&&{reasoning:{...openaiOptions?.reasoningEffort!=null&&{effort:openaiOptions.reasoningEffort},...openaiOptions?.reasoningSummary!=null&&{summary:openaiOptions.reasoningSummary}}},...modelConfig.requiredAutoTruncation&&{truncation:`auto`}};modelConfig.isReasoningModel?(baseArgs.temperature!=null&&(baseArgs.temperature=void 0,warnings.push({type:`unsupported-setting`,setting:`temperature`,details:`temperature is not supported for reasoning models`})),baseArgs.top_p!=null&&(baseArgs.top_p=void 0,warnings.push({type:`unsupported-setting`,setting:`topP`,details:`topP is not supported for reasoning models`}))):(openaiOptions?.reasoningEffort!=null&&warnings.push({type:`unsupported-setting`,setting:`reasoningEffort`,details:`reasoningEffort is not supported for non-reasoning models`}),openaiOptions?.reasoningSummary!=null&&warnings.push({type:`unsupported-setting`,setting:`reasoningSummary`,details:`reasoningSummary is not supported for non-reasoning models`})),openaiOptions?.serviceTier===`flex`&&!modelConfig.supportsFlexProcessing&&(warnings.push({type:`unsupported-setting`,setting:`serviceTier`,details:`flex processing is only available for o3, o4-mini, and gpt-5 models`}),delete baseArgs.service_tier),openaiOptions?.serviceTier===`priority`&&!modelConfig.supportsPriorityProcessing&&(warnings.push({type:`unsupported-setting`,setting:`serviceTier`,details:`priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported`}),delete baseArgs.service_tier);let{tools:openaiTools2,toolChoice:openaiToolChoice,toolWarnings}=prepareResponsesTools({tools:tools$1,toolChoice,strictJsonSchema});return{webSearchToolName,args:{...baseArgs,tools:openaiTools2,tool_choice:openaiToolChoice},warnings:[...warnings,...toolWarnings]}}async doGenerate(options){var _a$7,_b$2,_c$1,_d$1,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s;let{args:body,warnings,webSearchToolName}=await this.getArgs(options),url$2=this.config.url({path:`/responses`,modelId:this.modelId}),{responseHeaders,value:response,rawValue:rawResponse}=await postJsonToApi({url:url$2,headers:combineHeaders(this.config.headers(),options.headers),body,failedResponseHandler:openaiFailedResponseHandler,successfulResponseHandler:createJsonResponseHandler(z.object({id:z.string(),created_at:z.number(),error:z.object({code:z.string(),message:z.string()}).nullish(),model:z.string(),output:z.array(z.discriminatedUnion(`type`,[z.object({type:z.literal(`message`),role:z.literal(`assistant`),id:z.string(),content:z.array(z.object({type:z.literal(`output_text`),text:z.string(),logprobs:LOGPROBS_SCHEMA.nullish(),annotations:z.array(z.discriminatedUnion(`type`,[z.object({type:z.literal(`url_citation`),start_index:z.number(),end_index:z.number(),url:z.string(),title:z.string()}),z.object({type:z.literal(`file_citation`),file_id:z.string(),filename:z.string().nullish(),index:z.number().nullish(),start_index:z.number().nullish(),end_index:z.number().nullish(),quote:z.string().nullish()}),z.object({type:z.literal(`container_file_citation`)})]))}))}),webSearchCallItem,fileSearchCallItem,codeInterpreterCallItem,imageGenerationCallItem,localShellCallItem,z.object({type:z.literal(`function_call`),call_id:z.string(),name:z.string(),arguments:z.string(),id:z.string()}),z.object({type:z.literal(`computer_call`),id:z.string(),status:z.string().optional()}),z.object({type:z.literal(`reasoning`),id:z.string(),encrypted_content:z.string().nullish(),summary:z.array(z.object({type:z.literal(`summary_text`),text:z.string()}))})])),service_tier:z.string().nullish(),incomplete_details:z.object({reason:z.string()}).nullish(),usage:usageSchema2})),abortSignal:options.abortSignal,fetch:this.config.fetch});if(response.error)throw new APICallError({message:response.error.message,url:url$2,requestBodyValues:body,statusCode:400,responseHeaders,responseBody:rawResponse,isRetryable:!1});let content=[],logprobs=[],hasFunctionCall=!1;for(let part of response.output)switch(part.type){case`reasoning`:part.summary.length===0&&part.summary.push({type:`summary_text`,text:``});for(let summary of part.summary)content.push({type:`reasoning`,text:summary.text,providerMetadata:{openai:{itemId:part.id,reasoningEncryptedContent:part.encrypted_content??null}}});break;case`image_generation_call`:content.push({type:`tool-call`,toolCallId:part.id,toolName:`image_generation`,input:`{}`,providerExecuted:!0}),content.push({type:`tool-result`,toolCallId:part.id,toolName:`image_generation`,result:{result:part.result},providerExecuted:!0});break;case`local_shell_call`:content.push({type:`tool-call`,toolCallId:part.call_id,toolName:`local_shell`,input:JSON.stringify({action:part.action}),providerMetadata:{openai:{itemId:part.id}}});break;case`message`:for(let contentPart of part.content){options.providerOptions?.openai?.logprobs&&contentPart.logprobs&&logprobs.push(contentPart.logprobs),content.push({type:`text`,text:contentPart.text,providerMetadata:{openai:{itemId:part.id}}});for(let annotation of contentPart.annotations)annotation.type===`url_citation`?content.push({type:`source`,sourceType:`url`,id:(_d$1=this.config).generateId?.call(_d$1)??generateId(),url:annotation.url,title:annotation.title}):annotation.type===`file_citation`&&content.push({type:`source`,sourceType:`document`,id:(_g=this.config).generateId?.call(_g)??generateId(),mediaType:`text/plain`,title:annotation.quote??annotation.filename??`Document`,filename:annotation.filename??annotation.file_id})}break;case`function_call`:hasFunctionCall=!0,content.push({type:`tool-call`,toolCallId:part.call_id,toolName:part.name,input:part.arguments,providerMetadata:{openai:{itemId:part.id}}});break;case`web_search_call`:content.push({type:`tool-call`,toolCallId:part.id,toolName:webSearchToolName??`web_search`,input:JSON.stringify({action:part.action}),providerExecuted:!0}),content.push({type:`tool-result`,toolCallId:part.id,toolName:webSearchToolName??`web_search`,result:{status:part.status},providerExecuted:!0});break;case`computer_call`:content.push({type:`tool-call`,toolCallId:part.id,toolName:`computer_use`,input:``,providerExecuted:!0}),content.push({type:`tool-result`,toolCallId:part.id,toolName:`computer_use`,result:{type:`computer_use_tool_result`,status:part.status||`completed`},providerExecuted:!0});break;case`file_search_call`:content.push({type:`tool-call`,toolCallId:part.id,toolName:`file_search`,input:`{}`,providerExecuted:!0}),content.push({type:`tool-result`,toolCallId:part.id,toolName:`file_search`,result:{queries:part.queries,results:part.results?.map(result=>({attributes:result.attributes,fileId:result.file_id,filename:result.filename,score:result.score,text:result.text}))??null},providerExecuted:!0});break;case`code_interpreter_call`:content.push({type:`tool-call`,toolCallId:part.id,toolName:`code_interpreter`,input:JSON.stringify({code:part.code,containerId:part.container_id}),providerExecuted:!0}),content.push({type:`tool-result`,toolCallId:part.id,toolName:`code_interpreter`,result:{outputs:part.outputs},providerExecuted:!0});break}let providerMetadata={openai:{responseId:response.id}};return logprobs.length>0&&(providerMetadata.openai.logprobs=logprobs),typeof response.service_tier==`string`&&(providerMetadata.openai.serviceTier=response.service_tier),{content,finishReason:mapOpenAIResponseFinishReason({finishReason:response.incomplete_details?.reason,hasFunctionCall}),usage:{inputTokens:response.usage.input_tokens,outputTokens:response.usage.output_tokens,totalTokens:response.usage.input_tokens+response.usage.output_tokens,reasoningTokens:response.usage.output_tokens_details?.reasoning_tokens??void 0,cachedInputTokens:response.usage.input_tokens_details?.cached_tokens??void 0},request:{body},response:{id:response.id,timestamp:new Date(response.created_at*1e3),modelId:response.model,headers:responseHeaders,body:rawResponse},providerMetadata,warnings}}async doStream(options){let{args:body,warnings,webSearchToolName}=await this.getArgs(options),{responseHeaders,value:response}=await postJsonToApi({url:this.config.url({path:`/responses`,modelId:this.modelId}),headers:combineHeaders(this.config.headers(),options.headers),body:{...body,stream:!0},failedResponseHandler:openaiFailedResponseHandler,successfulResponseHandler:createEventSourceResponseHandler(openaiResponsesChunkSchema),abortSignal:options.abortSignal,fetch:this.config.fetch}),self$1=this,finishReason=`unknown`,usage={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},logprobs=[],responseId=null,ongoingToolCalls={},hasFunctionCall=!1,activeReasoning={},serviceTier;return{stream:response.pipeThrough(new TransformStream({start(controller){controller.enqueue({type:`stream-start`,warnings})},transform(chunk,controller){var _a$7,_b$2,_c$1,_d$1,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_u,_v,_w;if(options.includeRawChunks&&controller.enqueue({type:`raw`,rawValue:chunk.rawValue}),!chunk.success){finishReason=`error`,controller.enqueue({type:`error`,error:chunk.error});return}let value=chunk.value;if(isResponseOutputItemAddedChunk(value))value.item.type===`function_call`?(ongoingToolCalls[value.output_index]={toolName:value.item.name,toolCallId:value.item.call_id},controller.enqueue({type:`tool-input-start`,id:value.item.call_id,toolName:value.item.name})):value.item.type===`web_search_call`?(ongoingToolCalls[value.output_index]={toolName:webSearchToolName??`web_search`,toolCallId:value.item.id},controller.enqueue({type:`tool-input-start`,id:value.item.id,toolName:webSearchToolName??`web_search`})):value.item.type===`computer_call`?(ongoingToolCalls[value.output_index]={toolName:`computer_use`,toolCallId:value.item.id},controller.enqueue({type:`tool-input-start`,id:value.item.id,toolName:`computer_use`})):value.item.type===`code_interpreter_call`?(ongoingToolCalls[value.output_index]={toolName:`code_interpreter`,toolCallId:value.item.id,codeInterpreter:{containerId:value.item.container_id}},controller.enqueue({type:`tool-input-start`,id:value.item.id,toolName:`code_interpreter`}),controller.enqueue({type:`tool-input-delta`,id:value.item.id,delta:`{"containerId":"${value.item.container_id}","code":"`})):value.item.type===`file_search_call`?controller.enqueue({type:`tool-call`,toolCallId:value.item.id,toolName:`file_search`,input:`{}`,providerExecuted:!0}):value.item.type===`image_generation_call`?controller.enqueue({type:`tool-call`,toolCallId:value.item.id,toolName:`image_generation`,input:`{}`,providerExecuted:!0}):value.item.type===`message`?controller.enqueue({type:`text-start`,id:value.item.id,providerMetadata:{openai:{itemId:value.item.id}}}):isResponseOutputItemAddedReasoningChunk(value)&&(activeReasoning[value.item.id]={encryptedContent:value.item.encrypted_content,summaryParts:[0]},controller.enqueue({type:`reasoning-start`,id:`${value.item.id}:0`,providerMetadata:{openai:{itemId:value.item.id,reasoningEncryptedContent:value.item.encrypted_content??null}}}));else if(isResponseOutputItemDoneChunk(value)){if(value.item.type===`function_call`)ongoingToolCalls[value.output_index]=void 0,hasFunctionCall=!0,controller.enqueue({type:`tool-input-end`,id:value.item.call_id}),controller.enqueue({type:`tool-call`,toolCallId:value.item.call_id,toolName:value.item.name,input:value.item.arguments,providerMetadata:{openai:{itemId:value.item.id}}});else if(value.item.type===`web_search_call`)ongoingToolCalls[value.output_index]=void 0,controller.enqueue({type:`tool-input-end`,id:value.item.id}),controller.enqueue({type:`tool-call`,toolCallId:value.item.id,toolName:`web_search`,input:JSON.stringify({action:value.item.action}),providerExecuted:!0}),controller.enqueue({type:`tool-result`,toolCallId:value.item.id,toolName:`web_search`,result:{status:value.item.status},providerExecuted:!0});else if(value.item.type===`computer_call`)ongoingToolCalls[value.output_index]=void 0,controller.enqueue({type:`tool-input-end`,id:value.item.id}),controller.enqueue({type:`tool-call`,toolCallId:value.item.id,toolName:`computer_use`,input:``,providerExecuted:!0}),controller.enqueue({type:`tool-result`,toolCallId:value.item.id,toolName:`computer_use`,result:{type:`computer_use_tool_result`,status:value.item.status||`completed`},providerExecuted:!0});else if(value.item.type===`file_search_call`)ongoingToolCalls[value.output_index]=void 0,controller.enqueue({type:`tool-result`,toolCallId:value.item.id,toolName:`file_search`,result:{queries:value.item.queries,results:value.item.results?.map(result=>({attributes:result.attributes,fileId:result.file_id,filename:result.filename,score:result.score,text:result.text}))??null},providerExecuted:!0});else if(value.item.type===`code_interpreter_call`)ongoingToolCalls[value.output_index]=void 0,controller.enqueue({type:`tool-result`,toolCallId:value.item.id,toolName:`code_interpreter`,result:{outputs:value.item.outputs},providerExecuted:!0});else if(value.item.type===`image_generation_call`)controller.enqueue({type:`tool-result`,toolCallId:value.item.id,toolName:`image_generation`,result:{result:value.item.result},providerExecuted:!0});else if(value.item.type===`local_shell_call`)ongoingToolCalls[value.output_index]=void 0,controller.enqueue({type:`tool-call`,toolCallId:value.item.call_id,toolName:`local_shell`,input:JSON.stringify({action:{type:`exec`,command:value.item.action.command,timeoutMs:value.item.action.timeout_ms,user:value.item.action.user,workingDirectory:value.item.action.working_directory,env:value.item.action.env}}),providerMetadata:{openai:{itemId:value.item.id}}});else if(value.item.type===`message`)controller.enqueue({type:`text-end`,id:value.item.id});else if(isResponseOutputItemDoneReasoningChunk(value)){let activeReasoningPart=activeReasoning[value.item.id];for(let summaryIndex of activeReasoningPart.summaryParts)controller.enqueue({type:`reasoning-end`,id:`${value.item.id}:${summaryIndex}`,providerMetadata:{openai:{itemId:value.item.id,reasoningEncryptedContent:value.item.encrypted_content??null}}});delete activeReasoning[value.item.id]}}else if(isResponseFunctionCallArgumentsDeltaChunk(value)){let toolCall=ongoingToolCalls[value.output_index];toolCall!=null&&controller.enqueue({type:`tool-input-delta`,id:toolCall.toolCallId,delta:value.delta})}else if(isResponseCodeInterpreterCallCodeDeltaChunk(value)){let toolCall=ongoingToolCalls[value.output_index];toolCall!=null&&controller.enqueue({type:`tool-input-delta`,id:toolCall.toolCallId,delta:JSON.stringify(value.delta).slice(1,-1)})}else if(isResponseCodeInterpreterCallCodeDoneChunk(value)){let toolCall=ongoingToolCalls[value.output_index];toolCall!=null&&(controller.enqueue({type:`tool-input-delta`,id:toolCall.toolCallId,delta:`"}`}),controller.enqueue({type:`tool-input-end`,id:toolCall.toolCallId}),controller.enqueue({type:`tool-call`,toolCallId:toolCall.toolCallId,toolName:`code_interpreter`,input:JSON.stringify({code:value.code,containerId:toolCall.codeInterpreter.containerId}),providerExecuted:!0}))}else isResponseCreatedChunk(value)?(responseId=value.response.id,controller.enqueue({type:`response-metadata`,id:value.response.id,timestamp:new Date(value.response.created_at*1e3),modelId:value.response.model})):isTextDeltaChunk(value)?(controller.enqueue({type:`text-delta`,id:value.item_id,delta:value.delta}),options.providerOptions?.openai?.logprobs&&value.logprobs&&logprobs.push(value.logprobs)):isResponseReasoningSummaryPartAddedChunk(value)?value.summary_index>0&&((_g=activeReasoning[value.item_id])==null||_g.summaryParts.push(value.summary_index),controller.enqueue({type:`reasoning-start`,id:`${value.item_id}:${value.summary_index}`,providerMetadata:{openai:{itemId:value.item_id,reasoningEncryptedContent:activeReasoning[value.item_id]?.encryptedContent??null}}})):isResponseReasoningSummaryTextDeltaChunk(value)?controller.enqueue({type:`reasoning-delta`,id:`${value.item_id}:${value.summary_index}`,delta:value.delta,providerMetadata:{openai:{itemId:value.item_id}}}):isResponseFinishedChunk(value)?(finishReason=mapOpenAIResponseFinishReason({finishReason:value.response.incomplete_details?.reason,hasFunctionCall}),usage.inputTokens=value.response.usage.input_tokens,usage.outputTokens=value.response.usage.output_tokens,usage.totalTokens=value.response.usage.input_tokens+value.response.usage.output_tokens,usage.reasoningTokens=value.response.usage.output_tokens_details?.reasoning_tokens??void 0,usage.cachedInputTokens=value.response.usage.input_tokens_details?.cached_tokens??void 0,typeof value.response.service_tier==`string`&&(serviceTier=value.response.service_tier)):isResponseAnnotationAddedChunk(value)?value.annotation.type===`url_citation`?controller.enqueue({type:`source`,sourceType:`url`,id:(_o=self$1.config).generateId?.call(_o)??generateId(),url:value.annotation.url,title:value.annotation.title}):value.annotation.type===`file_citation`&&controller.enqueue({type:`source`,sourceType:`document`,id:(_r=self$1.config).generateId?.call(_r)??generateId(),mediaType:`text/plain`,title:value.annotation.quote??value.annotation.filename??`Document`,filename:value.annotation.filename??value.annotation.file_id}):isErrorChunk(value)&&controller.enqueue({type:`error`,error:value})},flush(controller){let providerMetadata={openai:{responseId}};logprobs.length>0&&(providerMetadata.openai.logprobs=logprobs),serviceTier!==void 0&&(providerMetadata.openai.serviceTier=serviceTier),controller.enqueue({type:`finish`,finishReason,usage,providerMetadata})}})),request:{body},response:{headers:responseHeaders}}}},usageSchema2=z.object({input_tokens:z.number(),input_tokens_details:z.object({cached_tokens:z.number().nullish()}).nullish(),output_tokens:z.number(),output_tokens_details:z.object({reasoning_tokens:z.number().nullish()}).nullish()}),textDeltaChunkSchema=z.object({type:z.literal(`response.output_text.delta`),item_id:z.string(),delta:z.string(),logprobs:LOGPROBS_SCHEMA.nullish()}),errorChunkSchema=z.object({type:z.literal(`error`),code:z.string(),message:z.string(),param:z.string().nullish(),sequence_number:z.number()}),responseFinishedChunkSchema=z.object({type:z.enum([`response.completed`,`response.incomplete`]),response:z.object({incomplete_details:z.object({reason:z.string()}).nullish(),usage:usageSchema2,service_tier:z.string().nullish()})}),responseCreatedChunkSchema=z.object({type:z.literal(`response.created`),response:z.object({id:z.string(),created_at:z.number(),model:z.string(),service_tier:z.string().nullish()})}),responseOutputItemAddedSchema=z.object({type:z.literal(`response.output_item.added`),output_index:z.number(),item:z.discriminatedUnion(`type`,[z.object({type:z.literal(`message`),id:z.string()}),z.object({type:z.literal(`reasoning`),id:z.string(),encrypted_content:z.string().nullish()}),z.object({type:z.literal(`function_call`),id:z.string(),call_id:z.string(),name:z.string(),arguments:z.string()}),z.object({type:z.literal(`web_search_call`),id:z.string(),status:z.string(),action:z.object({type:z.literal(`search`),query:z.string().optional()}).nullish()}),z.object({type:z.literal(`computer_call`),id:z.string(),status:z.string()}),z.object({type:z.literal(`file_search_call`),id:z.string()}),z.object({type:z.literal(`image_generation_call`),id:z.string()}),z.object({type:z.literal(`code_interpreter_call`),id:z.string(),container_id:z.string(),code:z.string().nullable(),outputs:z.array(z.discriminatedUnion(`type`,[z.object({type:z.literal(`logs`),logs:z.string()}),z.object({type:z.literal(`image`),url:z.string()})])).nullable(),status:z.string()})])}),responseOutputItemDoneSchema=z.object({type:z.literal(`response.output_item.done`),output_index:z.number(),item:z.discriminatedUnion(`type`,[z.object({type:z.literal(`message`),id:z.string()}),z.object({type:z.literal(`reasoning`),id:z.string(),encrypted_content:z.string().nullish()}),z.object({type:z.literal(`function_call`),id:z.string(),call_id:z.string(),name:z.string(),arguments:z.string(),status:z.literal(`completed`)}),codeInterpreterCallItem,imageGenerationCallItem,webSearchCallItem,fileSearchCallItem,localShellCallItem,z.object({type:z.literal(`computer_call`),id:z.string(),status:z.literal(`completed`)})])}),responseFunctionCallArgumentsDeltaSchema=z.object({type:z.literal(`response.function_call_arguments.delta`),item_id:z.string(),output_index:z.number(),delta:z.string()}),responseCodeInterpreterCallCodeDeltaSchema=z.object({type:z.literal(`response.code_interpreter_call_code.delta`),item_id:z.string(),output_index:z.number(),delta:z.string()}),responseCodeInterpreterCallCodeDoneSchema=z.object({type:z.literal(`response.code_interpreter_call_code.done`),item_id:z.string(),output_index:z.number(),code:z.string()}),responseAnnotationAddedSchema=z.object({type:z.literal(`response.output_text.annotation.added`),annotation:z.discriminatedUnion(`type`,[z.object({type:z.literal(`url_citation`),url:z.string(),title:z.string()}),z.object({type:z.literal(`file_citation`),file_id:z.string(),filename:z.string().nullish(),index:z.number().nullish(),start_index:z.number().nullish(),end_index:z.number().nullish(),quote:z.string().nullish()})])}),responseReasoningSummaryPartAddedSchema=z.object({type:z.literal(`response.reasoning_summary_part.added`),item_id:z.string(),summary_index:z.number()}),responseReasoningSummaryTextDeltaSchema=z.object({type:z.literal(`response.reasoning_summary_text.delta`),item_id:z.string(),summary_index:z.number(),delta:z.string()}),openaiResponsesChunkSchema=z.union([textDeltaChunkSchema,responseFinishedChunkSchema,responseCreatedChunkSchema,responseOutputItemAddedSchema,responseOutputItemDoneSchema,responseFunctionCallArgumentsDeltaSchema,responseCodeInterpreterCallCodeDeltaSchema,responseCodeInterpreterCallCodeDoneSchema,responseAnnotationAddedSchema,responseReasoningSummaryPartAddedSchema,responseReasoningSummaryTextDeltaSchema,errorChunkSchema,z.object({type:z.string()}).loose()]);function isTextDeltaChunk(chunk){return chunk.type===`response.output_text.delta`}function isResponseOutputItemDoneChunk(chunk){return chunk.type===`response.output_item.done`}function isResponseOutputItemDoneReasoningChunk(chunk){return isResponseOutputItemDoneChunk(chunk)&&chunk.item.type===`reasoning`}function isResponseFinishedChunk(chunk){return chunk.type===`response.completed`||chunk.type===`response.incomplete`}function isResponseCreatedChunk(chunk){return chunk.type===`response.created`}function isResponseFunctionCallArgumentsDeltaChunk(chunk){return chunk.type===`response.function_call_arguments.delta`}function isResponseCodeInterpreterCallCodeDeltaChunk(chunk){return chunk.type===`response.code_interpreter_call_code.delta`}function isResponseCodeInterpreterCallCodeDoneChunk(chunk){return chunk.type===`response.code_interpreter_call_code.done`}function isResponseOutputItemAddedChunk(chunk){return chunk.type===`response.output_item.added`}function isResponseOutputItemAddedReasoningChunk(chunk){return isResponseOutputItemAddedChunk(chunk)&&chunk.item.type===`reasoning`}function isResponseAnnotationAddedChunk(chunk){return chunk.type===`response.output_text.annotation.added`}function isResponseReasoningSummaryPartAddedChunk(chunk){return chunk.type===`response.reasoning_summary_part.added`}function isResponseReasoningSummaryTextDeltaChunk(chunk){return chunk.type===`response.reasoning_summary_text.delta`}function isErrorChunk(chunk){return chunk.type===`error`}function getResponsesModelConfig(modelId){let supportsFlexProcessing2=modelId.startsWith(`o3`)||modelId.startsWith(`o4-mini`)||modelId.startsWith(`gpt-5`)&&!modelId.startsWith(`gpt-5-chat`),supportsPriorityProcessing2=modelId.startsWith(`gpt-4`)||modelId.startsWith(`gpt-5-mini`)||modelId.startsWith(`gpt-5`)&&!modelId.startsWith(`gpt-5-nano`)&&!modelId.startsWith(`gpt-5-chat`)||modelId.startsWith(`o3`)||modelId.startsWith(`o4-mini`),defaults={requiredAutoTruncation:!1,systemMessageMode:`system`,supportsFlexProcessing:supportsFlexProcessing2,supportsPriorityProcessing:supportsPriorityProcessing2};return modelId.startsWith(`gpt-5-chat`)?{...defaults,isReasoningModel:!1}:modelId.startsWith(`o`)||modelId.startsWith(`gpt-5`)||modelId.startsWith(`codex-`)||modelId.startsWith(`computer-use`)?modelId.startsWith(`o1-mini`)||modelId.startsWith(`o1-preview`)?{...defaults,isReasoningModel:!0,systemMessageMode:`remove`}:{...defaults,isReasoningModel:!0,systemMessageMode:`developer`}:{...defaults,isReasoningModel:!1}}var openaiResponsesProviderOptionsSchema=z.object({include:z.array(z.enum([`reasoning.encrypted_content`,`file_search_call.results`,`message.output_text.logprobs`])).nullish(),instructions:z.string().nullish(),logprobs:z.union([z.boolean(),z.number().min(1).max(TOP_LOGPROBS_MAX)]).optional(),maxToolCalls:z.number().nullish(),metadata:z.any().nullish(),parallelToolCalls:z.boolean().nullish(),previousResponseId:z.string().nullish(),promptCacheKey:z.string().nullish(),reasoningEffort:z.string().nullish(),reasoningSummary:z.string().nullish(),safetyIdentifier:z.string().nullish(),serviceTier:z.enum([`auto`,`flex`,`priority`]).nullish(),store:z.boolean().nullish(),strictJsonSchema:z.boolean().nullish(),textVerbosity:z.enum([`low`,`medium`,`high`]).nullish(),user:z.string().nullish()}),OpenAIProviderOptionsSchema=z.object({instructions:z.string().nullish(),speed:z.number().min(.25).max(4).default(1).nullish()}),OpenAISpeechModel=class{constructor(modelId,config){this.modelId=modelId,this.config=config,this.specificationVersion=`v2`}get provider(){return this.config.provider}async getArgs({text,voice=`alloy`,outputFormat=`mp3`,speed,instructions,language,providerOptions}){let warnings=[],openAIOptions=await parseProviderOptions({provider:`openai`,providerOptions,schema:OpenAIProviderOptionsSchema}),requestBody={model:this.modelId,input:text,voice,response_format:`mp3`,speed,instructions};if(outputFormat&&([`mp3`,`opus`,`aac`,`flac`,`wav`,`pcm`].includes(outputFormat)?requestBody.response_format=outputFormat:warnings.push({type:`unsupported-setting`,setting:`outputFormat`,details:`Unsupported output format: ${outputFormat}. Using mp3 instead.`})),openAIOptions){let speechModelOptions={};for(let key in speechModelOptions){let value=speechModelOptions[key];value!==void 0&&(requestBody[key]=value)}}return language&&warnings.push({type:`unsupported-setting`,setting:`language`,details:`OpenAI speech models do not support language selection. Language parameter "${language}" was ignored.`}),{requestBody,warnings}}async doGenerate(options){var _a$7,_b$2,_c$1;let currentDate=((_a$7=this.config._internal)?.currentDate)?.call(_a$7)??new Date,{requestBody,warnings}=await this.getArgs(options),{value:audio,responseHeaders,rawValue:rawResponse}=await postJsonToApi({url:this.config.url({path:`/audio/speech`,modelId:this.modelId}),headers:combineHeaders(this.config.headers(),options.headers),body:requestBody,failedResponseHandler:openaiFailedResponseHandler,successfulResponseHandler:createBinaryResponseHandler(),abortSignal:options.abortSignal,fetch:this.config.fetch});return{audio,warnings,request:{body:JSON.stringify(requestBody)},response:{timestamp:currentDate,modelId:this.modelId,headers:responseHeaders,body:rawResponse}}}},openAITranscriptionProviderOptions=z.object({include:z.array(z.string()).optional(),language:z.string().optional(),prompt:z.string().optional(),temperature:z.number().min(0).max(1).default(0).optional(),timestampGranularities:z.array(z.enum([`word`,`segment`])).default([`segment`]).optional()}),languageMap={afrikaans:`af`,arabic:`ar`,armenian:`hy`,azerbaijani:`az`,belarusian:`be`,bosnian:`bs`,bulgarian:`bg`,catalan:`ca`,chinese:`zh`,croatian:`hr`,czech:`cs`,danish:`da`,dutch:`nl`,english:`en`,estonian:`et`,finnish:`fi`,french:`fr`,galician:`gl`,german:`de`,greek:`el`,hebrew:`he`,hindi:`hi`,hungarian:`hu`,icelandic:`is`,indonesian:`id`,italian:`it`,japanese:`ja`,kannada:`kn`,kazakh:`kk`,korean:`ko`,latvian:`lv`,lithuanian:`lt`,macedonian:`mk`,malay:`ms`,marathi:`mr`,maori:`mi`,nepali:`ne`,norwegian:`no`,persian:`fa`,polish:`pl`,portuguese:`pt`,romanian:`ro`,russian:`ru`,serbian:`sr`,slovak:`sk`,slovenian:`sl`,spanish:`es`,swahili:`sw`,swedish:`sv`,tagalog:`tl`,tamil:`ta`,thai:`th`,turkish:`tr`,ukrainian:`uk`,urdu:`ur`,vietnamese:`vi`,welsh:`cy`},OpenAITranscriptionModel=class{constructor(modelId,config){this.modelId=modelId,this.config=config,this.specificationVersion=`v2`}get provider(){return this.config.provider}async getArgs({audio,mediaType,providerOptions}){let warnings=[],openAIOptions=await parseProviderOptions({provider:`openai`,providerOptions,schema:openAITranscriptionProviderOptions}),formData=new FormData,blob=audio instanceof Uint8Array?new Blob([audio]):new Blob([convertBase64ToUint8Array(audio)]);formData.append(`model`,this.modelId);let fileExtension=mediaTypeToExtension(mediaType);if(formData.append(`file`,new File([blob],`audio`,{type:mediaType}),`audio.${fileExtension}`),openAIOptions){let transcriptionModelOptions={include:openAIOptions.include,language:openAIOptions.language,prompt:openAIOptions.prompt,response_format:[`gpt-4o-transcribe`,`gpt-4o-mini-transcribe`].includes(this.modelId)?`json`:`verbose_json`,temperature:openAIOptions.temperature,timestamp_granularities:openAIOptions.timestampGranularities};for(let[key,value]of Object.entries(transcriptionModelOptions))if(value!=null)if(Array.isArray(value))for(let item of value)formData.append(`${key}[]`,String(item));else formData.append(key,String(value))}return{formData,warnings}}async doGenerate(options){var _a$7,_b$2,_c$1,_d$1,_e,_f,_g,_h;let currentDate=((_a$7=this.config._internal)?.currentDate)?.call(_a$7)??new Date,{formData,warnings}=await this.getArgs(options),{value:response,responseHeaders,rawValue:rawResponse}=await postFormDataToApi({url:this.config.url({path:`/audio/transcriptions`,modelId:this.modelId}),headers:combineHeaders(this.config.headers(),options.headers),formData,failedResponseHandler:openaiFailedResponseHandler,successfulResponseHandler:createJsonResponseHandler(openaiTranscriptionResponseSchema),abortSignal:options.abortSignal,fetch:this.config.fetch}),language=response.language!=null&&response.language in languageMap?languageMap[response.language]:void 0;return{text:response.text,segments:response.segments?.map(segment=>({text:segment.text,startSecond:segment.start,endSecond:segment.end}))??response.words?.map(word=>({text:word.word,startSecond:word.start,endSecond:word.end}))??[],language,durationInSeconds:response.duration??void 0,warnings,response:{timestamp:currentDate,modelId:this.modelId,headers:responseHeaders,body:rawResponse}}}},openaiTranscriptionResponseSchema=z.object({text:z.string(),language:z.string().nullish(),duration:z.number().nullish(),words:z.array(z.object({word:z.string(),start:z.number(),end:z.number()})).nullish(),segments:z.array(z.object({id:z.number(),seek:z.number(),start:z.number(),end:z.number(),text:z.string(),tokens:z.array(z.number()),temperature:z.number(),avg_logprob:z.number(),compression_ratio:z.number(),no_speech_prob:z.number()})).nullish()}),VERSION$1=`2.0.42`;function createOpenAI(options={}){var _a$7,_b$2;let baseURL=withoutTrailingSlash(loadOptionalSetting({settingValue:options.baseURL,environmentVariableName:`OPENAI_BASE_URL`}))??`https://api.openai.com/v1`,providerName=options.name??`openai`,getHeaders$1=()=>withUserAgentSuffix({Authorization:`Bearer ${loadApiKey({apiKey:options.apiKey,environmentVariableName:`OPENAI_API_KEY`,description:`OpenAI`})}`,"OpenAI-Organization":options.organization,"OpenAI-Project":options.project,...options.headers},`ai-sdk/openai/${VERSION$1}`),createChatModel=modelId=>new OpenAIChatLanguageModel(modelId,{provider:`${providerName}.chat`,url:({path:path$13})=>`${baseURL}${path$13}`,headers:getHeaders$1,fetch:options.fetch}),createCompletionModel=modelId=>new OpenAICompletionLanguageModel(modelId,{provider:`${providerName}.completion`,url:({path:path$13})=>`${baseURL}${path$13}`,headers:getHeaders$1,fetch:options.fetch}),createEmbeddingModel=modelId=>new OpenAIEmbeddingModel(modelId,{provider:`${providerName}.embedding`,url:({path:path$13})=>`${baseURL}${path$13}`,headers:getHeaders$1,fetch:options.fetch}),createImageModel=modelId=>new OpenAIImageModel(modelId,{provider:`${providerName}.image`,url:({path:path$13})=>`${baseURL}${path$13}`,headers:getHeaders$1,fetch:options.fetch}),createTranscriptionModel=modelId=>new OpenAITranscriptionModel(modelId,{provider:`${providerName}.transcription`,url:({path:path$13})=>`${baseURL}${path$13}`,headers:getHeaders$1,fetch:options.fetch}),createSpeechModel=modelId=>new OpenAISpeechModel(modelId,{provider:`${providerName}.speech`,url:({path:path$13})=>`${baseURL}${path$13}`,headers:getHeaders$1,fetch:options.fetch}),createLanguageModel=modelId=>{if(new.target)throw Error(`The OpenAI model function cannot be called with the new keyword.`);return createResponsesModel(modelId)},createResponsesModel=modelId=>new OpenAIResponsesLanguageModel(modelId,{provider:`${providerName}.responses`,url:({path:path$13})=>`${baseURL}${path$13}`,headers:getHeaders$1,fetch:options.fetch,fileIdPrefixes:[`file-`]}),provider=function(modelId){return createLanguageModel(modelId)};return provider.languageModel=createLanguageModel,provider.chat=createChatModel,provider.completion=createCompletionModel,provider.responses=createResponsesModel,provider.embedding=createEmbeddingModel,provider.textEmbedding=createEmbeddingModel,provider.textEmbeddingModel=createEmbeddingModel,provider.image=createImageModel,provider.imageModel=createImageModel,provider.transcription=createTranscriptionModel,provider.transcriptionModel=createTranscriptionModel,provider.speech=createSpeechModel,provider.speechModel=createSpeechModel,provider.tools=openaiTools,provider}var openai=createOpenAI(),openaiCompatibleProviderOptions=z.object({user:z.string().optional(),reasoningEffort:z.string().optional()}),defaultOpenAICompatibleErrorStructure={errorSchema:z.object({error:z.object({message:z.string(),type:z.string().nullish(),param:z.any().nullish(),code:z.union([z.string(),z.number()]).nullish()})}),errorToMessage:data$2=>data$2.error.message},openaiCompatibleTokenUsageSchema=z.object({prompt_tokens:z.number().nullish(),completion_tokens:z.number().nullish(),total_tokens:z.number().nullish(),prompt_tokens_details:z.object({cached_tokens:z.number().nullish()}).nullish(),completion_tokens_details:z.object({reasoning_tokens:z.number().nullish(),accepted_prediction_tokens:z.number().nullish(),rejected_prediction_tokens:z.number().nullish()}).nullish()}).nullish(),OpenAICompatibleChatResponseSchema=z.object({id:z.string().nullish(),created:z.number().nullish(),model:z.string().nullish(),choices:z.array(z.object({message:z.object({role:z.literal(`assistant`).nullish(),content:z.string().nullish(),reasoning_content:z.string().nullish(),reasoning:z.string().nullish(),tool_calls:z.array(z.object({id:z.string().nullish(),function:z.object({name:z.string(),arguments:z.string()})})).nullish()}),finish_reason:z.string().nullish()})),usage:openaiCompatibleTokenUsageSchema}),openaiCompatibleCompletionProviderOptions=z.object({echo:z.boolean().optional(),logitBias:z.record(z.string(),z.number()).optional(),suffix:z.string().optional(),user:z.string().optional()}),usageSchema=z.object({prompt_tokens:z.number(),completion_tokens:z.number(),total_tokens:z.number()}),openaiCompatibleCompletionResponseSchema=z.object({id:z.string().nullish(),created:z.number().nullish(),model:z.string().nullish(),choices:z.array(z.object({text:z.string(),finish_reason:z.string()})),usage:usageSchema.nullish()}),openaiCompatibleEmbeddingProviderOptions=z.object({dimensions:z.number().optional(),user:z.string().optional()}),openaiTextEmbeddingResponseSchema=z.object({data:z.array(z.object({embedding:z.array(z.number())})),usage:z.object({prompt_tokens:z.number()}).nullish(),providerMetadata:z.record(z.string(),z.record(z.string(),z.any())).optional()}),OpenAICompatibleImageModel=class{constructor(modelId,config){this.modelId=modelId,this.config=config,this.specificationVersion=`v2`,this.maxImagesPerCall=10}get provider(){return this.config.provider}async doGenerate({prompt,n,size,aspectRatio,seed,providerOptions,headers,abortSignal}){var _a$7,_b$2,_c$1,_d$1,_e;let warnings=[];aspectRatio!=null&&warnings.push({type:`unsupported-setting`,setting:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),seed!=null&&warnings.push({type:`unsupported-setting`,setting:`seed`});let currentDate=((_a$7=this.config._internal)?.currentDate)?.call(_a$7)??new Date,{value:response,responseHeaders}=await postJsonToApi({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:combineHeaders(this.config.headers(),headers),body:{model:this.modelId,prompt,n,size,...providerOptions.openai??{},response_format:`b64_json`},failedResponseHandler:createJsonErrorResponseHandler(this.config.errorStructure??defaultOpenAICompatibleErrorStructure),successfulResponseHandler:createJsonResponseHandler(openaiCompatibleImageResponseSchema),abortSignal,fetch:this.config.fetch});return{images:response.data.map(item=>item.b64_json),warnings,response:{timestamp:currentDate,modelId:this.modelId,headers:responseHeaders}}}},openaiCompatibleImageResponseSchema=z.object({data:z.array(z.object({b64_json:z.string()}))});function convertToXaiChatMessages(prompt){let messages=[],warnings=[];for(let{role,content}of prompt)switch(role){case`system`:messages.push({role:`system`,content});break;case`user`:if(content.length===1&&content[0].type===`text`){messages.push({role:`user`,content:content[0].text});break}messages.push({role:`user`,content:content.map(part=>{switch(part.type){case`text`:return{type:`text`,text:part.text};case`file`:if(part.mediaType.startsWith(`image/`)){let mediaType=part.mediaType===`image/*`?`image/jpeg`:part.mediaType;return{type:`image_url`,image_url:{url:part.data instanceof URL?part.data.toString():`data:${mediaType};base64,${convertToBase64(part.data)}`}}}else throw new UnsupportedFunctionalityError({functionality:`file part media type ${part.mediaType}`})}})});break;case`assistant`:{let text=``,toolCalls=[];for(let part of content)switch(part.type){case`text`:text+=part.text;break;case`tool-call`:toolCalls.push({id:part.toolCallId,type:`function`,function:{name:part.toolName,arguments:JSON.stringify(part.input)}});break}messages.push({role:`assistant`,content:text,tool_calls:toolCalls.length>0?toolCalls:void 0});break}case`tool`:for(let toolResponse of content){let output=toolResponse.output,contentValue;switch(output.type){case`text`:case`error-text`:contentValue=output.value;break;case`content`:case`json`:case`error-json`:contentValue=JSON.stringify(output.value);break}messages.push({role:`tool`,tool_call_id:toolResponse.toolCallId,content:contentValue})}break;default:{let _exhaustiveCheck=role;throw Error(`Unsupported role: ${_exhaustiveCheck}`)}}return{messages,warnings}}function getResponseMetadata({id,model:model$1,created}){return{id:id??void 0,modelId:model$1??void 0,timestamp:created==null?void 0:new Date(created*1e3)}}function mapXaiFinishReason(finishReason){switch(finishReason){case`stop`:return`stop`;case`length`:return`length`;case`tool_calls`:case`function_call`:return`tool-calls`;case`content_filter`:return`content-filter`;default:return`unknown`}}var webSourceSchema=z.object({type:z.literal(`web`),country:z.string().length(2).optional(),excludedWebsites:z.array(z.string()).max(5).optional(),allowedWebsites:z.array(z.string()).max(5).optional(),safeSearch:z.boolean().optional()}),xSourceSchema=z.object({type:z.literal(`x`),excludedXHandles:z.array(z.string()).optional(),includedXHandles:z.array(z.string()).optional(),postFavoriteCount:z.number().int().optional(),postViewCount:z.number().int().optional(),xHandles:z.array(z.string()).optional()}),newsSourceSchema=z.object({type:z.literal(`news`),country:z.string().length(2).optional(),excludedWebsites:z.array(z.string()).max(5).optional(),safeSearch:z.boolean().optional()}),rssSourceSchema=z.object({type:z.literal(`rss`),links:z.array(z.string().url()).max(1)}),searchSourceSchema=z.discriminatedUnion(`type`,[webSourceSchema,xSourceSchema,newsSourceSchema,rssSourceSchema]),xaiProviderOptions=z.object({reasoningEffort:z.enum([`low`,`high`]).optional(),searchParameters:z.object({mode:z.enum([`off`,`auto`,`on`]),returnCitations:z.boolean().optional(),fromDate:z.string().optional(),toDate:z.string().optional(),maxSearchResults:z.number().min(1).max(50).optional(),sources:z.array(searchSourceSchema).optional()}).optional()}),xaiErrorDataSchema=z.object({error:z.object({message:z.string(),type:z.string().nullish(),param:z.any().nullish(),code:z.union([z.string(),z.number()]).nullish()})}),xaiFailedResponseHandler=createJsonErrorResponseHandler({errorSchema:xaiErrorDataSchema,errorToMessage:data$2=>data$2.error.message});function prepareTools({tools:tools$1,toolChoice}){tools$1=tools$1?.length?tools$1:void 0;let toolWarnings=[];if(tools$1==null)return{tools:void 0,toolChoice:void 0,toolWarnings};let xaiTools=[];for(let tool$2 of tools$1)tool$2.type===`provider-defined`?toolWarnings.push({type:`unsupported-tool`,tool:tool$2}):xaiTools.push({type:`function`,function:{name:tool$2.name,description:tool$2.description,parameters:tool$2.inputSchema}});if(toolChoice==null)return{tools:xaiTools,toolChoice:void 0,toolWarnings};let type=toolChoice.type;switch(type){case`auto`:case`none`:return{tools:xaiTools,toolChoice:type,toolWarnings};case`required`:return{tools:xaiTools,toolChoice:`required`,toolWarnings};case`tool`:return{tools:xaiTools,toolChoice:{type:`function`,function:{name:toolChoice.toolName}},toolWarnings};default:throw new UnsupportedFunctionalityError({functionality:`tool choice type: ${type}`})}}var XaiChatLanguageModel=class{constructor(modelId,config){this.specificationVersion=`v2`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=modelId,this.config=config}get provider(){return this.config.provider}async getArgs({prompt,maxOutputTokens,temperature,topP,topK,frequencyPenalty,presencePenalty,stopSequences,seed,responseFormat,providerOptions,tools:tools$1,toolChoice}){var _a$7,_b$2,_c$1;let warnings=[],options=await parseProviderOptions({provider:`xai`,providerOptions,schema:xaiProviderOptions})??{};topK!=null&&warnings.push({type:`unsupported-setting`,setting:`topK`}),frequencyPenalty!=null&&warnings.push({type:`unsupported-setting`,setting:`frequencyPenalty`}),presencePenalty!=null&&warnings.push({type:`unsupported-setting`,setting:`presencePenalty`}),stopSequences!=null&&warnings.push({type:`unsupported-setting`,setting:`stopSequences`}),responseFormat!=null&&responseFormat.type===`json`&&responseFormat.schema!=null&&warnings.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format schema is not supported`});let{messages,warnings:messageWarnings}=convertToXaiChatMessages(prompt);warnings.push(...messageWarnings);let{tools:xaiTools,toolChoice:xaiToolChoice,toolWarnings}=prepareTools({tools:tools$1,toolChoice});return warnings.push(...toolWarnings),{args:{model:this.modelId,max_tokens:maxOutputTokens,temperature,top_p:topP,seed,reasoning_effort:options.reasoningEffort,response_format:responseFormat?.type===`json`?responseFormat.schema==null?{type:`json_object`}:{type:`json_schema`,json_schema:{name:responseFormat.name??`response`,schema:responseFormat.schema,strict:!0}}:void 0,search_parameters:options.searchParameters?{mode:options.searchParameters.mode,return_citations:options.searchParameters.returnCitations,from_date:options.searchParameters.fromDate,to_date:options.searchParameters.toDate,max_search_results:options.searchParameters.maxSearchResults,sources:options.searchParameters.sources?.map(source=>{var _a2$2;return{type:source.type,...source.type===`web`&&{country:source.country,excluded_websites:source.excludedWebsites,allowed_websites:source.allowedWebsites,safe_search:source.safeSearch},...source.type===`x`&&{excluded_x_handles:source.excludedXHandles,included_x_handles:source.includedXHandles??source.xHandles,post_favorite_count:source.postFavoriteCount,post_view_count:source.postViewCount},...source.type===`news`&&{country:source.country,excluded_websites:source.excludedWebsites,safe_search:source.safeSearch},...source.type===`rss`&&{links:source.links}}})}:void 0,messages,tools:xaiTools,tool_choice:xaiToolChoice},warnings}}async doGenerate(options){var _a$7,_b$2,_c$1;let{args:body,warnings}=await this.getArgs(options),{responseHeaders,value:response,rawValue:rawResponse}=await postJsonToApi({url:`${this.config.baseURL??`https://api.x.ai/v1`}/chat/completions`,headers:combineHeaders(this.config.headers(),options.headers),body,failedResponseHandler:xaiFailedResponseHandler,successfulResponseHandler:createJsonResponseHandler(xaiChatResponseSchema),abortSignal:options.abortSignal,fetch:this.config.fetch}),choice=response.choices[0],content=[];if(choice.message.content!=null&&choice.message.content.length>0){let text=choice.message.content,lastMessage=body.messages[body.messages.length-1];lastMessage?.role===`assistant`&&text===lastMessage.content&&(text=``),text.length>0&&content.push({type:`text`,text})}if(choice.message.reasoning_content!=null&&choice.message.reasoning_content.length>0&&content.push({type:`reasoning`,text:choice.message.reasoning_content}),choice.message.tool_calls!=null)for(let toolCall of choice.message.tool_calls)content.push({type:`tool-call`,toolCallId:toolCall.id,toolName:toolCall.function.name,input:toolCall.function.arguments});if(response.citations!=null)for(let url$2 of response.citations)content.push({type:`source`,sourceType:`url`,id:this.config.generateId(),url:url$2});return{content,finishReason:mapXaiFinishReason(choice.finish_reason),usage:{inputTokens:response.usage.prompt_tokens,outputTokens:response.usage.completion_tokens,totalTokens:response.usage.total_tokens,reasoningTokens:response.usage.completion_tokens_details?.reasoning_tokens??void 0},request:{body},response:{...getResponseMetadata(response),headers:responseHeaders,body:rawResponse},warnings}}async doStream(options){var _a$7;let{args,warnings}=await this.getArgs(options),body={...args,stream:!0,stream_options:{include_usage:!0}},{responseHeaders,value:response}=await postJsonToApi({url:`${this.config.baseURL??`https://api.x.ai/v1`}/chat/completions`,headers:combineHeaders(this.config.headers(),options.headers),body,failedResponseHandler:xaiFailedResponseHandler,successfulResponseHandler:createEventSourceResponseHandler(xaiChatChunkSchema),abortSignal:options.abortSignal,fetch:this.config.fetch}),finishReason=`unknown`,usage={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},isFirstChunk=!0,contentBlocks={},lastReasoningDeltas={},self$1=this;return{stream:response.pipeThrough(new TransformStream({start(controller){controller.enqueue({type:`stream-start`,warnings})},transform(chunk,controller){var _a2$2,_b$2;if(options.includeRawChunks&&controller.enqueue({type:`raw`,rawValue:chunk.rawValue}),!chunk.success){controller.enqueue({type:`error`,error:chunk.error});return}let value=chunk.value;if(isFirstChunk&&=(controller.enqueue({type:`response-metadata`,...getResponseMetadata(value)}),!1),value.citations!=null)for(let url$2 of value.citations)controller.enqueue({type:`source`,sourceType:`url`,id:self$1.config.generateId(),url:url$2});value.usage!=null&&(usage.inputTokens=value.usage.prompt_tokens,usage.outputTokens=value.usage.completion_tokens,usage.totalTokens=value.usage.total_tokens,usage.reasoningTokens=value.usage.completion_tokens_details?.reasoning_tokens??void 0);let choice=value.choices[0];if(choice?.finish_reason!=null&&(finishReason=mapXaiFinishReason(choice.finish_reason)),choice?.delta==null)return;let delta=choice.delta,choiceIndex=choice.index;if(delta.content!=null&&delta.content.length>0){let textContent=delta.content,lastMessage=body.messages[body.messages.length-1];if(lastMessage?.role===`assistant`&&textContent===lastMessage.content)return;let blockId=`text-${value.id||choiceIndex}`;contentBlocks[blockId]??(contentBlocks[blockId]={type:`text`},controller.enqueue({type:`text-start`,id:blockId})),controller.enqueue({type:`text-delta`,id:blockId,delta:textContent})}if(delta.reasoning_content!=null&&delta.reasoning_content.length>0){let blockId=`reasoning-${value.id||choiceIndex}`;if(lastReasoningDeltas[blockId]===delta.reasoning_content)return;lastReasoningDeltas[blockId]=delta.reasoning_content,contentBlocks[blockId]??(contentBlocks[blockId]={type:`reasoning`},controller.enqueue({type:`reasoning-start`,id:blockId})),controller.enqueue({type:`reasoning-delta`,id:blockId,delta:delta.reasoning_content})}if(delta.tool_calls!=null)for(let toolCall of delta.tool_calls){let toolCallId=toolCall.id;controller.enqueue({type:`tool-input-start`,id:toolCallId,toolName:toolCall.function.name}),controller.enqueue({type:`tool-input-delta`,id:toolCallId,delta:toolCall.function.arguments}),controller.enqueue({type:`tool-input-end`,id:toolCallId}),controller.enqueue({type:`tool-call`,toolCallId,toolName:toolCall.function.name,input:toolCall.function.arguments})}},flush(controller){for(let[blockId,block]of Object.entries(contentBlocks))controller.enqueue({type:block.type===`text`?`text-end`:`reasoning-end`,id:blockId});controller.enqueue({type:`finish`,finishReason,usage})}})),request:{body},response:{headers:responseHeaders}}}},xaiUsageSchema=z.object({prompt_tokens:z.number(),completion_tokens:z.number(),total_tokens:z.number(),completion_tokens_details:z.object({reasoning_tokens:z.number().nullish()}).nullish()}),xaiChatResponseSchema=z.object({id:z.string().nullish(),created:z.number().nullish(),model:z.string().nullish(),choices:z.array(z.object({message:z.object({role:z.literal(`assistant`),content:z.string().nullish(),reasoning_content:z.string().nullish(),tool_calls:z.array(z.object({id:z.string(),type:z.literal(`function`),function:z.object({name:z.string(),arguments:z.string()})})).nullish()}),index:z.number(),finish_reason:z.string().nullish()})),object:z.literal(`chat.completion`),usage:xaiUsageSchema,citations:z.array(z.string().url()).nullish()}),xaiChatChunkSchema=z.object({id:z.string().nullish(),created:z.number().nullish(),model:z.string().nullish(),choices:z.array(z.object({delta:z.object({role:z.enum([`assistant`]).optional(),content:z.string().nullish(),reasoning_content:z.string().nullish(),tool_calls:z.array(z.object({id:z.string(),type:z.literal(`function`),function:z.object({name:z.string(),arguments:z.string()})})).nullish()}),finish_reason:z.string().nullish(),index:z.number()})),usage:xaiUsageSchema.nullish(),citations:z.array(z.string().url()).nullish()}),VERSION=`2.0.23`,xaiErrorStructure={errorSchema:xaiErrorDataSchema,errorToMessage:data$2=>data$2.error.message};function createXai(options={}){var _a$7;let baseURL=withoutTrailingSlash(options.baseURL??`https://api.x.ai/v1`),getHeaders$1=()=>withUserAgentSuffix({Authorization:`Bearer ${loadApiKey({apiKey:options.apiKey,environmentVariableName:`XAI_API_KEY`,description:`xAI API key`})}`,...options.headers},`ai-sdk/xai/${VERSION}`),createLanguageModel=modelId=>new XaiChatLanguageModel(modelId,{provider:`xai.chat`,baseURL,headers:getHeaders$1,generateId,fetch:options.fetch}),createImageModel=modelId=>new OpenAICompatibleImageModel(modelId,{provider:`xai.image`,url:({path:path$13})=>`${baseURL}${path$13}`,headers:getHeaders$1,fetch:options.fetch,errorStructure:xaiErrorStructure}),provider=modelId=>createLanguageModel(modelId);return provider.languageModel=createLanguageModel,provider.chat=createLanguageModel,provider.textEmbeddingModel=modelId=>{throw new NoSuchModelError({modelId,modelType:`textEmbeddingModel`})},provider.imageModel=createImageModel,provider.image=createImageModel,provider}var xai=createXai();function toolWithApproval(tool$2){return tool$2}const tools=Object.freeze({withContext(tools$1,context){let withTools={};for(let key of Object.keys(tools$1))withTools[key]=tools$1[key].withContext(context);return withTools},with(tools$1,context){let withTools={};for(let key of Object.keys(tools$1))withTools[key]=tools$1[key].withContext(context);return withTools},async withApproval(options){let newTools={};for(let[key,tool$2]of Object.entries(options.tools)){let originalExecute=tool$2.execute;newTools[key]={...tool$2,execute:async(input,options$1)=>tool$2.autoApprove&&originalExecute&&await tool$2.autoApprove(input)?originalExecute(input,options$1):{type:`tool-approval`,outcome:`pending`}}}let lastMessage=options.messages[options.messages.length-1];if(!lastMessage?.parts)return newTools;let toolsToRun=[];for(let part of lastMessage.parts){if(!isToolUIPart(part))continue;let toolName=getToolName(part),tool$2=options.tools[toolName];tool$2&&part.state===`output-available`&&tool$2.execute&&isToolApprovalOutput(part.output)&&part.output.outcome===`approved`&&toolsToRun.push({toolName:getToolName(part),tool:tool$2,input:part.input,toolCallId:part.toolCallId})}if(toolsToRun.length>0){let stream=createUIMessageStream({execute:async({writer})=>{writer.write({type:`start-step`}),await Promise.all(toolsToRun.map(async toRun=>{if(!toRun.tool.execute)throw Error(`Tool does not support execute.`);writer.write({type:`tool-input-available`,toolCallId:toRun.toolCallId,toolName:toRun.toolName,input:toRun.input});try{let result=await toRun.tool.execute(toRun.input,{toolCallId:toRun.toolCallId,messages:convertToModelMessages(options.messages,{tools:options.tools}),abortSignal:options.abortSignal});if(isAsyncIterable(result))for await(let chunk of result)writer.write({type:`tool-output-available`,toolCallId:toRun.toolCallId,output:chunk,preliminary:!0});writer.write({type:`tool-output-available`,toolCallId:toRun.toolCallId,output:result})}catch(err){writer.write({type:`tool-output-error`,toolCallId:toRun.toolCallId,errorText:err instanceof Error?err.message:String(err)})}})),writer.write({type:`finish`})}});throw new CustomChatResponseError(`Executing tools`,stream)}return newTools},prefix(tools$1,prefix){let prefixed={};for(let[key,tool$2]of Object.entries(tools$1))prefixed[`${prefix}${key}`]=tool$2;return prefixed}});function isToolApprovalOutput(output){return typeof output==`object`&&!!output&&`type`in output&&output.type===`tool-approval`}function lastUIOptions(messages){for(let i$1=messages.length-1;i$1>=0;i$1--){let message=messages[i$1];if(message!==void 0&&message.role===`user`&&!(typeof message.metadata!=`object`||message.metadata===null)&&`options`in message.metadata)return message.metadata.options}}const StreamResponseFormatHeader=`x-blink-stream-response-format`;function withResponseFormat(response,format){let headers=new Headers(response.headers);return headers.set(StreamResponseFormatHeader,format),new Response(response.body,{status:response.status,statusText:response.statusText,headers})}function convertResponseToUIMessageStream(response){if(!response.body)throw Error(`Response body is required`);let responseFormat=response.headers.get(StreamResponseFormatHeader);if(!responseFormat||responseFormat===`ui-message`)return response.body.pipeThrough(new TextDecoderStream).pipeThrough(new EventSourceParserStream).pipeThrough(new TransformStream({async transform(chunk,controller){if(chunk.data!==`[DONE]`)try{let result=JSON.parse(chunk.data);controller.enqueue(result)}catch(err){controller.error(err);return}}}));let createStream=model$1=>streamText({model:model$1,prompt:[{role:`user`,content:[{type:`text`,text:`Hello, world!`}]}]}).toUIMessageStream();switch(responseFormat){case`openai-chat`:return createStream(createOpenAI({apiKey:`ignored`,fetch:(init$1,options)=>response}).chat(`fake-model`));case`openai-response`:return createStream(createOpenAI({apiKey:`ignored`,fetch:(init$1,options)=>response}).responses(`fake-model`));case`anthropic`:return createStream(createAnthropic({apiKey:`ignored`,fetch:(init$1,options)=>response}).chat(`fake-model`));case`google`:return createStream(createGoogleGenerativeAI({apiKey:`ignored`,fetch:(init$1,options)=>response}).chat(`fake-model`));case`xai`:return createStream(createXai({apiKey:`ignored`,fetch:(init$1,options)=>response}).chat(`fake-model`));default:throw Error(`Unsupported response format: ${responseFormat}`)}}const APIServerURLEnvironmentVariable=`BLINK_API_URL`;var Client=class{baseUrl;client;constructor(options){this.client=hc(options.baseUrl),this.baseUrl=options.baseUrl}async chat(request$1,options){let response=await this.client._agent.chat.$post({json:request$1},{headers:options?.headers,init:{signal:options?.signal}});return response.ok||await this.handleError(response),convertResponseToUIMessageStream(response)}async capabilities(){let response=await this.client._agent.capabilities.$get();return response.ok||await this.handleError(response),response.json()}async ui(request$1,options){let response=await this.client._agent.ui.$get({query:request$1.selectedOptions?{selected_options:JSON.stringify(request$1.selectedOptions)}:{}},{init:{signal:options?.signal}});if(!response.ok||response.status!==200){if(response.status===404)return;await this.handleError(response)}return response.json()}async health(){let response=await this.client._agent.health.$get();response.ok||await this.handleError(response)}async handleError(response){let body;try{body=await response.text()}catch{}if(body){let parsed;try{parsed=JSON.parse(body)}catch{}throw parsed?Error(parsed.error):Error(`Failed (${response.status}): ${body}`)}throw Error(`Failed (${response.status}): ${response.statusText}`)}};init_esm$11();var import_src=__toESM(require_src$90(),1),import_src$1=__toESM(require_src$35(),1),import_src$2=__toESM(require_src(),1),import_src$3=__toESM(require_src$31(),1);let otelSDK;var FilteringSpanProcessor=class{constructor(delegate,shouldExport){this.delegate=delegate,this.shouldExport=shouldExport}onStart(span,parentContext){this.delegate.onStart(span,parentContext)}onEnd(span){this.shouldExport(span)&&this.delegate.onEnd(span)}async shutdown(){return this.delegate.shutdown()}async forceFlush(){return this.delegate.forceFlush()}};function initOtel(){if(otelSDK)return otelSDK;let apiUrl=process.env[APIServerURLEnvironmentVariable];return otelSDK=new import_src$2.NodeSDK({spanProcessors:apiUrl?[new FilteringSpanProcessor(new import_src$3.BatchSpanProcessor(new import_src.OTLPTraceExporter({url:new URL(`/otlp/v1/traces`,apiUrl).toString()})),span=>{let urlPath=span.attributes[`url.path`];return!(span.instrumentationScope.name.includes(`opentelemetry`)&&typeof urlPath==`string`&&urlPath.endsWith(`v1/traces`))})]:[],instrumentations:[(0,import_src$1.getNodeAutoInstrumentations)({"@opentelemetry/instrumentation-undici":{requireParentforSpans:!0}})]}),otelSDK.start(),otelSDK}const otelMiddleware=async(c,next)=>{initOtel();let pathname=new URL(c.req.raw.url).pathname;return pathname.startsWith(`/_agent/flush-otel`)?await next():await trace.getTracer(`blink`).startActiveSpan(`${c.req.method} ${pathname}`,async span=>{try{return await next()}finally{span.end(),flushOtel()}})},flushOtel=async()=>{try{if(!otelSDK)return;let provider=otelSDK._tracerProvider;if(!(provider&&provider.forceFlush))return;await provider.forceFlush()}catch(err){console.warn(`Error flushing OpenTelemetry`,err)}};init_esm$11();function agent(){let listeners={chat:[],ui:[],request:[],error:[]},agent$1={on:(event,handler)=>(listeners[event]=[...listeners[event]??[],handler],agent$1),serve:options=>{options||={},options.host||=process.env.HOST??`127.0.0.1`,options.port||=parseInt(process.env.PORT??`3000`),options.apiUrl||=process.env.BLINK_API_URL;let client=hc(options.apiUrl??``,{fetch:options.apiUrl?void 0:async()=>{throw console.warn(`Your code is attempting to use the Blink API server, but no API server is configured for this Blink agent.`),Error(`No API server is configured for this Blink agent. External APIs are not available.`)}}),context={chat:{async ensure(key){let response=await client.chat[`:key`].$post({param:{key}});if(response.status!==200)throw Error(`Failed to ensure chat!`);return response.json()},async message(key,message,options$1){if((await client.chat[`:key`].sendMessages.$post({param:{key},json:{message,options:options$1??{}}})).status!==204)throw Error(`Failed to send message!`)}},store:{async get(key){let response=await client.kv[`:key`].$get({param:{key:encodeURIComponent(key)}});if(response.status!==200)throw Error(`Failed to get value!`);let{value}=await response.json();return value},async set(key,value){if((await client.kv[`:key`].$post({param:{key:encodeURIComponent(key)},json:{value}})).status!==204)throw Error(`Failed to set value!`)},async delete(key){if((await client.kv[`:key`].$delete({param:{key:encodeURIComponent(key)}})).status!==204)throw Error(`Failed to delete value!`)},async list(prefix,options$1){let response=await client.kv.$get({query:{prefix:prefix?encodeURIComponent(prefix):void 0,limit:options$1?.limit,cursor:options$1?.cursor}});if(response.status!==200)throw Error(`Failed to list values!`);return response.json()}},otlp:{traces:async _request=>{throw Error(`OTLP is not supported by this client.`)}}};return http$1.createServer(createServerAdapter(req$1=>api.fetch(req$1,{context,listeners}))).listen(options?.port??3e3,options?.host??`127.0.0.1`)}};return agent$1}const api=new Hono().use(otelMiddleware).post(`/_agent/chat`,validator(`json`,body=>({messages:body.messages,chat:body.chat})),async c=>{let handlers=c.env.listeners.chat,req$1=c.req.valid(`json`);for(let handler of handlers){let result;try{result=await handler({chat:req$1.chat,messages:req$1.messages,abortSignal:c.req.raw.signal,context:c.env.context})}catch(err){if(err instanceof CustomChatResponseError)result=err.response;else throw err}if(!result)continue;if(result instanceof Response)return result;let stream;if(result instanceof ReadableStream)stream=result;else if(typeof result==`object`&&`toUIMessageStream`in result)stream=result.toUIMessageStream({messageMetadata:({part})=>{switch(part.type){case`finish`:return{totalUsage:part.totalUsage};case`finish-step`:return{usage:part.usage,model:part.response.modelId}}}});else throw Error(`Invalid chat handler result! Must be a Response, ReadableStream, or toUIMessageStream function.`);return new Response(stream.pipeThrough(new TransformStream({transform(chunk,controller){controller.enqueue(`data: ${JSON.stringify(chunk)}\n\n`)},flush(controller){controller.enqueue(`data: [DONE]
|
|
156
156
|
|
|
157
|
-
`)}})).pipeThrough(new TextEncoderStream),{headers:sseHeaders})}return c.json({error:`No chat handlers found.`},404)}).get(`/_agent/capabilities`,async c=>{let handlers=c.env.listeners,capabilities={ui:handlers.ui.length>0,chat:handlers.chat.length>0,request:handlers.request.length>0,error:handlers.error.length>0};return c.json(capabilities,200)}).get(`/_agent/health`,async c=>c.body(`OK`,200)).get(`/_agent/ui`,async c=>{let selectedOptionsRaw=c.req.query(`selected_options`),selectedOptions;if(selectedOptionsRaw)try{selectedOptions=JSON.parse(selectedOptionsRaw)}catch{return c.json({error:`Invalid selected_options query parameter!`},400)}let handlers=c.env.listeners.ui;for(let handler of handlers){let result=await handler({selectedOptions});if(result)return c.json(result,200)}return c.json({error:`No UI listener returned a response`},404)}).post(`/_agent/flush-otel`,async c=>(await flushOtel(),c.body(null,204))).all(`*`,async c=>{let handlers=c.env.listeners.request;for(let handler of handlers){let result=await handler(c.req.raw,c.env.context);if(result)return result}return c.json({error:`No request handlers found.`},404)}).onError((err,c)=>{
|
|
157
|
+
`)}})).pipeThrough(new TextEncoderStream),{headers:sseHeaders})}return c.json({error:`No chat handlers found.`},404)}).get(`/_agent/capabilities`,async c=>{let handlers=c.env.listeners,capabilities={ui:handlers.ui.length>0,chat:handlers.chat.length>0,request:handlers.request.length>0,error:handlers.error.length>0};return c.json(capabilities,200)}).get(`/_agent/health`,async c=>c.body(`OK`,200)).get(`/_agent/ui`,async c=>{let selectedOptionsRaw=c.req.query(`selected_options`),selectedOptions;if(selectedOptionsRaw)try{selectedOptions=JSON.parse(selectedOptionsRaw)}catch{return c.json({error:`Invalid selected_options query parameter!`},400)}let handlers=c.env.listeners.ui;for(let handler of handlers){let result=await handler({selectedOptions});if(result)return c.json(result,200)}return c.json({error:`No UI listener returned a response`},404)}).post(`/_agent/flush-otel`,async c=>(await flushOtel(),c.body(null,204))).all(`*`,async c=>{let handlers=c.env.listeners.request;for(let handler of handlers){let result=await handler(c.req.raw,c.env.context);if(result)return result}return c.json({error:`No request handlers found.`},404)}).onError((err,c)=>{let activeSpan=trace.getActiveSpan();return activeSpan&&(activeSpan.recordException(err),activeSpan.setStatus({code:SpanStatusCode.ERROR})),c.json({error:`Internal server error`},500)}),sseHeaders={"content-type":`text/event-stream`,"cache-control":`no-cache, no-transform`,connection:`keep-alive`,"x-accel-buffering":`no`},model=model$1=>{let token=process.env.BLINK_TOKEN??process.env.BLINK_INVOCATION_AUTH_TOKEN;if(!token)throw Error(`You must be authenticated with Blink to use the model gateway.
|
|
158
158
|
|
|
159
159
|
Authenticate with "blink login".
|
|
160
160
|
|