blink 0.1.86 → 0.1.88
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/browser/control/index.d.cts +16 -16
- package/dist/browser/control/index.d.ts +16 -16
- package/dist/cli/{auth-xjF_htDn.js → auth-B3n8RcUK.js} +1 -1
- package/dist/cli/{chat-C_6OPF3i.js → chat-bPVE3_lZ.js} +1 -1
- package/dist/cli/{dev-G5Uo_ETr.js → dev-DL-po_ai.js} +61 -61
- package/dist/cli/{ignore-BA3hDG56.js → ignore-ZV2R2f0u.js} +26 -5
- package/dist/cli/index.js +3 -3
- package/dist/cli/{init-iSl35rQ-.js → init-DUmqpktD.js} +1 -1
- package/dist/cli/login-B8L9R4GV.js +1 -0
- package/dist/node/build/index.cjs +24 -3
- package/dist/node/build/index.js +24 -3
- package/package.json +1 -1
- package/dist/cli/login-C7Hi9NEW.js +0 -1
- /package/dist/cli/{open-DfjrUP4O.js → open-FpexaS6S.js} +0 -0
|
@@ -1,9 +1,30 @@
|
|
|
1
|
-
import{__commonJSMin as e,__require as t}from"./chunk-ByIbJXPc.js";import n,{dirname as r,join as i}from"path";import{existsSync as a}from"fs";import{builtinModules as o}from"module";import{mkdir as s,rm as c,stat as l,writeFile as u}from"fs/promises";function
|
|
1
|
+
import{__commonJSMin as e,__require as t}from"./chunk-ByIbJXPc.js";import n,{dirname as r,join as i}from"path";import{existsSync as a}from"fs";import{builtinModules as o}from"module";import{mkdir as s,rm as c,stat as l,writeFile as u}from"fs/promises";const d=`ai-telemetry-wrapper`;function f(e={}){let{functions:t=[`streamText`,`generateText`,`generateObject`,`streamObject`,`embed`,`embedMany`],telemetryConfig:n={isEnabled:!0}}=e;return{name:`ai-telemetry`,setup(e){e.onResolve({filter:/^ai$/},e=>{if(e.namespace!==d)return{path:`ai`,namespace:d,pluginData:{resolveDir:e.resolveDir}}}),e.onLoad({filter:/^ai$/,namespace:d},e=>{let r=JSON.stringify(n),i=e.pluginData,a=`
|
|
2
|
+
// Import everything from the original 'ai' package
|
|
3
|
+
import * as aiOriginal from 'ai';
|
|
4
|
+
|
|
5
|
+
// Re-export everything from 'ai'
|
|
6
|
+
export * from 'ai';
|
|
7
|
+
|
|
8
|
+
// Create wrapped versions that inject telemetry by default
|
|
9
|
+
${t.map(e=>`
|
|
10
|
+
export function ${e}(options) {
|
|
11
|
+
// If experimental_telemetry is not provided, inject the default
|
|
12
|
+
if (!options || !options.experimental_telemetry) {
|
|
13
|
+
return aiOriginal.${e}({
|
|
14
|
+
...options,
|
|
15
|
+
experimental_telemetry: ${r}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
// If it's already provided, use the original function as-is
|
|
19
|
+
return aiOriginal.${e}(options);
|
|
20
|
+
}
|
|
21
|
+
`).join(``)}
|
|
22
|
+
`;return{contents:a,loader:`js`,resolveDir:i?.resolveDir}})}}}function p(e){return async t=>{let r=await import(`esbuild`),i=await r.context({entryPoints:[t.entry],outdir:t.outdir,bundle:!0,write:!1,logLevel:`silent`,format:`esm`,platform:`node`,target:`node22`,sourcemap:!1,mainFields:[`module`,`main`],conditions:[`import`,`module`],plugins:[{name:`blink-esm-require-to-import`,setup(e){e.onEnd(t=>{e.initialOptions.format!==`esm`||e.initialOptions.platform!==`node`||t.outputFiles?.forEach(e=>{if(e.path.endsWith(`.js`)||e.path.endsWith(`.mjs`)){let t=Buffer.from(e.contents).toString(`utf-8`),n=new Map,r=RegExp(`\\b__require\\("(node:)?(${o.join(`|`)})"\\)`,`gm`);if(t=t.replace(r,(e,t,r)=>{let i=`__import_${r.toUpperCase().replace(/-/g,`_`)}`,a=`node:${r}`;return n.set(i,a),i}),n.size>0){let e=Array.from(n.entries()).map(([e,t])=>`import ${e} from "${t}";`).join(`
|
|
2
23
|
`);t=e+`
|
|
3
24
|
|
|
4
25
|
`+t}e.contents=Buffer.from(t,`utf-8`)}})})}},{name:`blink-dev-server`,setup(e){let r;e.onStart(()=>{t.onStart(),r=performance.now()}),e.onEnd(async e=>{await c(t.outdir,{recursive:!0,force:!0}),await s(t.outdir,{recursive:!0});let a=e.outputFiles?.map(e=>({path:e.path,contents:e.contents}))??[];a.push({path:n.resolve(t.outdir,`package.json`),contents:Buffer.from(JSON.stringify({type:`module`},null,2),`utf-8`)});for(let e of a)await u(e.path,e.contents);e.errors.length>0?t.onResult({error:{message:e.errors.map(e=>`${e.text} (${e.location?.file})`).join(`
|
|
5
|
-
`)}}):t.onResult({entry:n.resolve(t.outdir,n.basename(t.entry).replace(`.ts`,`.js`)),duration:performance.now()-r,outdir:t.outdir,warnings:e.warnings.map(e=>({message:e.text,file:e.location?.file}))}),t.watch||(i.dispose(),i.cancel())})}}],...e});await i.watch()}}function
|
|
26
|
+
`)}}):t.onResult({entry:n.resolve(t.outdir,n.basename(t.entry).replace(`.ts`,`.js`)),duration:performance.now()-r,outdir:t.outdir,warnings:e.warnings.map(e=>({message:e.text,file:e.location?.file}))}),t.watch||(i.dispose(),i.cancel())})}},f()],...e});await i.watch()}}function m(e){let r=[`blink.config.ts`],i;for(let o of r){let r=n.resolve(e,o);if(a(r)){let e=t(r);if(e.default){i={...e.default};break}}}if(i||(i={}),!i.entry){let t=[`src/agent.ts`,`src/agent.js`,`agent.ts`,`agent.js`];for(let r of t){let t=n.resolve(e,r);if(a(t)){i.entry=t;break}}if(!i.entry)throw Error(`Agent entrypoint not found.
|
|
6
27
|
|
|
7
|
-
Try creating "agent.ts" or specify "entry" in a blink.config.ts file.`)}return i.outdir||(i.outdir=n.resolve(e,`.blink/build`)),i.build||(i.build=
|
|
8
|
-
`);let r;for(;(r=
|
|
9
|
-
`),n=n.replace(/\\r/g,`\r`)),t[e]=n}return t}function _(e){e=e||{};let t=C(e);e.path=t;let n=A.configDotenv(e);if(!n.parsed){let e=Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw e.code=`MISSING_DATA`,e}let r=x(e).split(`,`),i=r.length,a;for(let e=0;e<i;e++)try{let t=r[e].trim(),i=S(n,t);a=A.decrypt(i.ciphertext,i.key);break}catch(t){if(e+1>=i)throw t}return A.parse(a)}function v(e){console.error(`[dotenv@${c}][WARN] ${e}`)}function y(e){console.log(`[dotenv@${c}][DEBUG] ${e}`)}function b(e){console.log(`[dotenv@${c}] ${e}`)}function x(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:``}function S(e,t){let n;try{n=new URL(t)}catch(e){if(e.code===`ERR_INVALID_URL`){let e=Error(`INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development`);throw e.code=`INVALID_DOTENV_KEY`,e}throw e}let r=n.password;if(!r){let e=Error(`INVALID_DOTENV_KEY: Missing key part`);throw e.code=`INVALID_DOTENV_KEY`,e}let i=n.searchParams.get(`environment`);if(!i){let e=Error(`INVALID_DOTENV_KEY: Missing environment part`);throw e.code=`INVALID_DOTENV_KEY`,e}let a=`DOTENV_VAULT_${i.toUpperCase()}`,o=e.parsed[a];if(!o){let e=Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${a} in your .env.vault file.`);throw e.code=`NOT_FOUND_DOTENV_ENVIRONMENT`,e}return{ciphertext:o,key:r}}function C(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let n of e.path)r.existsSync(n)&&(t=n.endsWith(`.vault`)?n:`${n}.vault`);else t=e.path.endsWith(`.vault`)?e.path:`${e.path}.vault`;else t=i.resolve(process.cwd(),`.env.vault`);return r.existsSync(t)?t:null}function w(e){return e[0]===`~`?i.join(a.homedir(),e.slice(1)):e}function T(e){let t=d(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),n=d(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);(t||!n)&&b(`Loading env from encrypted .env.vault`);let r=A._parseVault(e),i=process.env;return e&&e.processEnv!=null&&(i=e.processEnv),A.populate(i,r,e),{parsed:r}}function E(e){let t=i.resolve(process.cwd(),`.env`),n=`utf8`,a=process.env;e&&e.processEnv!=null&&(a=e.processEnv);let o=d(a.DOTENV_CONFIG_DEBUG||e&&e.debug),s=d(a.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?n=e.encoding:o&&y(`No encoding is specified. UTF-8 is used by default`);let c=[t];if(e&&e.path)if(!Array.isArray(e.path))c=[w(e.path)];else{c=[];for(let t of e.path)c.push(w(t))}let l,f={};for(let t of c)try{let i=A.parse(r.readFileSync(t,{encoding:n}));A.populate(f,i,e)}catch(e){o&&y(`Failed to load ${t} ${e.message}`),l=e}let
|
|
28
|
+
Try creating "agent.ts" or specify "entry" in a blink.config.ts file.`)}return i.outdir||(i.outdir=n.resolve(e,`.blink/build`)),i.build||(i.build=p()),i}var h=e(((exports,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}}})),g=e(((exports,n)=>{let r=t(`fs`),i=t(`path`),a=t(`os`),o=t(`crypto`),s=h(),c=s.version,l=[`🔐 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 u(){return l[Math.floor(Math.random()*l.length)]}function d(e){return typeof e==`string`?![`false`,`0`,`no`,`off`,``].includes(e.toLowerCase()):!!e}function f(){return process.stdout.isTTY}function p(e){return f()?`\x1b[2m${e}\x1b[0m`:e}let m=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function g(e){let t={},n=e.toString();n=n.replace(/\r\n?/gm,`
|
|
29
|
+
`);let r;for(;(r=m.exec(n))!=null;){let e=r[1],n=r[2]||``;n=n.trim();let i=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/gm,`$2`),i===`"`&&(n=n.replace(/\\n/g,`
|
|
30
|
+
`),n=n.replace(/\\r/g,`\r`)),t[e]=n}return t}function _(e){e=e||{};let t=C(e);e.path=t;let n=A.configDotenv(e);if(!n.parsed){let e=Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw e.code=`MISSING_DATA`,e}let r=x(e).split(`,`),i=r.length,a;for(let e=0;e<i;e++)try{let t=r[e].trim(),i=S(n,t);a=A.decrypt(i.ciphertext,i.key);break}catch(t){if(e+1>=i)throw t}return A.parse(a)}function v(e){console.error(`[dotenv@${c}][WARN] ${e}`)}function y(e){console.log(`[dotenv@${c}][DEBUG] ${e}`)}function b(e){console.log(`[dotenv@${c}] ${e}`)}function x(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:``}function S(e,t){let n;try{n=new URL(t)}catch(e){if(e.code===`ERR_INVALID_URL`){let e=Error(`INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development`);throw e.code=`INVALID_DOTENV_KEY`,e}throw e}let r=n.password;if(!r){let e=Error(`INVALID_DOTENV_KEY: Missing key part`);throw e.code=`INVALID_DOTENV_KEY`,e}let i=n.searchParams.get(`environment`);if(!i){let e=Error(`INVALID_DOTENV_KEY: Missing environment part`);throw e.code=`INVALID_DOTENV_KEY`,e}let a=`DOTENV_VAULT_${i.toUpperCase()}`,o=e.parsed[a];if(!o){let e=Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${a} in your .env.vault file.`);throw e.code=`NOT_FOUND_DOTENV_ENVIRONMENT`,e}return{ciphertext:o,key:r}}function C(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let n of e.path)r.existsSync(n)&&(t=n.endsWith(`.vault`)?n:`${n}.vault`);else t=e.path.endsWith(`.vault`)?e.path:`${e.path}.vault`;else t=i.resolve(process.cwd(),`.env.vault`);return r.existsSync(t)?t:null}function w(e){return e[0]===`~`?i.join(a.homedir(),e.slice(1)):e}function T(e){let t=d(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),n=d(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);(t||!n)&&b(`Loading env from encrypted .env.vault`);let r=A._parseVault(e),i=process.env;return e&&e.processEnv!=null&&(i=e.processEnv),A.populate(i,r,e),{parsed:r}}function E(e){let t=i.resolve(process.cwd(),`.env`),n=`utf8`,a=process.env;e&&e.processEnv!=null&&(a=e.processEnv);let o=d(a.DOTENV_CONFIG_DEBUG||e&&e.debug),s=d(a.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?n=e.encoding:o&&y(`No encoding is specified. UTF-8 is used by default`);let c=[t];if(e&&e.path)if(!Array.isArray(e.path))c=[w(e.path)];else{c=[];for(let t of e.path)c.push(w(t))}let l,f={};for(let t of c)try{let i=A.parse(r.readFileSync(t,{encoding:n}));A.populate(f,i,e)}catch(e){o&&y(`Failed to load ${t} ${e.message}`),l=e}let m=A.populate(a,f,e);if(o=d(a.DOTENV_CONFIG_DEBUG||o),s=d(a.DOTENV_CONFIG_QUIET||s),o||!s){let e=Object.keys(m).length,t=[];for(let e of c)try{let n=i.relative(process.cwd(),e);t.push(n)}catch(t){o&&y(`Failed to load ${e} ${t.message}`),l=t}b(`injecting env (${e}) from ${t.join(`,`)} ${p(`-- tip: ${u()}`)}`)}return l?{parsed:f,error:l}:{parsed:f}}function D(e){if(x(e).length===0)return A.configDotenv(e);let t=C(e);return t?A._configVault(e):(v(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),A.configDotenv(e))}function O(e,t){let n=Buffer.from(t.slice(-64),`hex`),r=Buffer.from(e,`base64`),i=r.subarray(0,12),a=r.subarray(-16);r=r.subarray(12,-16);try{let e=o.createDecipheriv(`aes-256-gcm`,n,i);return e.setAuthTag(a),`${e.update(r)}${e.final()}`}catch(e){let t=e instanceof RangeError,n=e.message===`Invalid key length`,r=e.message===`Unsupported state or unable to authenticate data`;if(t||n){let e=Error(`INVALID_DOTENV_KEY: It must be 64 characters long (or more)`);throw e.code=`INVALID_DOTENV_KEY`,e}else if(r){let e=Error(`DECRYPTION_FAILED: Please check your DOTENV_KEY`);throw e.code=`DECRYPTION_FAILED`,e}else throw e}}function k(e,t,n={}){let r=!!(n&&n.debug),i=!!(n&&n.override),a={};if(typeof t!=`object`){let e=Error(`OBJECT_REQUIRED: Please check the processEnv argument being passed to populate`);throw e.code=`OBJECT_REQUIRED`,e}for(let n of Object.keys(t))Object.prototype.hasOwnProperty.call(e,n)?(i===!0&&(e[n]=t[n],a[n]=t[n]),r&&y(i===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):(e[n]=t[n],a[n]=t[n]);return a}let A={configDotenv:E,_configVault:T,_parseVault:_,config:D,decrypt:O,parse:g,populate:k};n.exports.configDotenv=A.configDotenv,n.exports._configVault=A._configVault,n.exports._parseVault=A._parseVault,n.exports.config=A.config,n.exports.decrypt=A.decrypt,n.exports.parse=A.parse,n.exports.populate=A.populate,n.exports=A}));async function _(e,t){let n=e;for(;n!==r(n);){let e=i(n,t);try{return await l(e),e}catch{}n=r(n)}}var v=e(((exports,t)=>{function n(e){return Array.isArray(e)?e:[e]}let r=/^\s+$/,i=/(?:[^\\]|^)\\$/,a=/^\\!/,o=/^\\#/,s=/\r?\n/g,c=/^\.{0,2}\/|^\.{1,2}$/,l=/\/$/,u=`node-ignore`;typeof Symbol<`u`&&(u=Symbol.for(`node-ignore`));let d=u,f=(e,t,n)=>(Object.defineProperty(e,t,{value:n}),n),p=/([0-z])-([0-z])/g,m=()=>!1,h=e=>e.replace(p,(e,t,n)=>t.charCodeAt(0)<=n.charCodeAt(0)?e:``),g=e=>{let{length:t}=e;return e.slice(0,t-t%2)},_=[[/^\uFEFF/,()=>``],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,n)=>t+(n.indexOf(`\\`)===0?` `:``)],[/(\\+?)\s/g,(e,t)=>{let{length:n}=t;return t.slice(0,n-n%2)+` `}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>`[^/]`],[/^\//,()=>`^`],[/\//g,()=>`\\/`],[/^\^*\\\*\\\*\\\//,()=>`^(?:.*\\/)?`],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?`^`:`(?:^|\\/)`}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,n)=>t+6<n.length?`(?:\\/[^\\/]+)*`:`\\/.+`],[/(^|[^\\]+)(\\\*)+(?=.+)/g,(e,t,n)=>{let r=n.replace(/\\\*/g,`[^\\/]*`);return t+r}],[/\\\\\\(?=[$.|*+(){^])/g,()=>`\\`],[/\\\\/g,()=>`\\`],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,n,r,i)=>t===`\\`?`\\[${n}${g(r)}${i}`:i===`]`&&r.length%2==0?`[${h(n)}${r}]`:`[]`],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`]],v=/(^|\\\/)?\\\*$/,y=`regex`,b=`checkRegex`,x={[y](e,t){let n=t?`${t}[^/]+`:`[^/]*`;return`${n}(?=$|\\/$)`},[b](e,t){let n=t?`${t}[^/]*`:`[^/]*`;return`${n}(?=$|\\/$)`}},S=e=>_.reduce((t,[n,r])=>t.replace(n,r.bind(e)),e),C=e=>typeof e==`string`,w=e=>e&&C(e)&&!r.test(e)&&!i.test(e)&&e.indexOf(`#`)!==0,T=e=>e.split(s).filter(Boolean);var E=class{constructor(e,t,n,r,i,a){this.pattern=e,this.mark=t,this.negative=i,f(this,`body`,n),f(this,`ignoreCase`,r),f(this,`regexPrefix`,a)}get regex(){let e=`_`+y;return this[e]?this[e]:this._make(y,e)}get checkRegex(){let e=`_`+b;return this[e]?this[e]:this._make(b,e)}_make(e,t){let n=this.regexPrefix.replace(v,x[e]),r=this.ignoreCase?new RegExp(n,`i`):new RegExp(n);return f(this,t,r)}};let D=({pattern:e,mark:t},n)=>{let r=!1,i=e;i.indexOf(`!`)===0&&(r=!0,i=i.substr(1)),i=i.replace(a,`!`).replace(o,`#`);let s=S(i);return new E(e,t,i,n,r,s)};var O=class{constructor(e){this._ignoreCase=e,this._rules=[]}_add(e){if(e&&e[d]){this._rules=this._rules.concat(e._rules._rules),this._added=!0;return}if(C(e)&&(e={pattern:e}),w(e.pattern)){let t=D(e,this._ignoreCase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,n(C(e)?T(e):e).forEach(this._add,this),this._added}test(e,t,n){let r=!1,i=!1,a;this._rules.forEach(o=>{let{negative:s}=o;if(i===s&&r!==i||s&&!r&&!i&&!t)return;let c=o[n].test(e);c&&(r=!s,i=s,a=s?void 0:o)});let o={ignored:r,unignored:i};return a&&(o.rule=a),o}};let k=(e,t)=>{throw new t(e)},A=(e,t,n)=>C(e)?e?A.isNotRelative(e)?n(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:n(`path must not be empty`,TypeError):n(`path must be a string, but got \`${t}\``,TypeError),j=e=>c.test(e);A.isNotRelative=j,A.convert=e=>e;var M=class{constructor({ignorecase:e=!0,ignoreCase:t=e,allowRelativePaths:n=!1}={}){f(this,d,!0),this._rules=new O(t),this._strictPathCheck=!n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}add(e){return this._rules.add(e)&&this._initCache(),this}addPattern(e){return this.add(e)}_test(e,t,n,r){let i=e&&A.convert(e);return A(i,e,this._strictPathCheck?k:m),this._t(i,t,n,r)}checkIgnore(e){if(!l.test(e))return this.test(e);let t=e.split(`/`).filter(Boolean);if(t.pop(),t.length){let e=this._t(t.join(`/`)+`/`,this._testCache,!0,t);if(e.ignored)return e}return this._rules.test(e,!1,b)}_t(e,t,n,r){if(e in t)return t[e];if(r||(r=e.split(`/`).filter(Boolean)),r.pop(),!r.length)return t[e]=this._rules.test(e,n,y);let i=this._t(r.join(`/`)+`/`,t,n,r);return t[e]=i.ignored?i:this._rules.test(e,n,y)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return n(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}};let N=e=>new M(e),P=e=>A(e&&A.convert(e),e,m),F=()=>{let e=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,`/`);A.convert=e;let t=/^[a-z]:\//i;A.isNotRelative=e=>t.test(e)||j(e)};typeof process<`u`&&process.platform===`win32`&&F(),t.exports=N,N.default=N,t.exports.isPathValid=P,f(t.exports,Symbol.for(`setupWindows`),F)}));export{_ as findNearestEntry,v as require_ignore,g as require_main,m as resolveConfig};
|
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-ByIbJXPc.js";import{import_websocket as r}from"./wrapper-B4vDwpOq.js";import{findNearestEntry as i,require_ignore as a,require_main as o,resolveConfig as s}from"./ignore-
|
|
2
|
+
import{__commonJSMin as e,__require as t,__toESM as n}from"./chunk-ByIbJXPc.js";import{import_websocket as r}from"./wrapper-B4vDwpOq.js";import{findNearestEntry as i,require_ignore as a,require_main as o,resolveConfig as s}from"./ignore-ZV2R2f0u.js";import{Client as c,Y as l,loginIfNeeded as u,pD as d,source_default as f,ve as p,ye as m}from"./auth-B3n8RcUK.js";import"./open-FpexaS6S.js";import{randomUUID as h}from"crypto";import{basename as g,dirname as _,join as v,relative as y}from"node:path";import{existsSync as ee}from"node:fs";import{mkdir as te,readdir as b,writeFile as ne}from"fs/promises";import{readFile as x,stat as S}from"node:fs/promises";var C=e((exports=>{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}};exports.CommanderError=t,exports.InvalidArgumentError=n})),w=e((exports=>{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.length>3&&this._name.slice(-3)===`...`&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}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._concatValue(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+`]`}exports.Argument=n,exports.humanReadableArgName=r})),T=e((exports=>{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){let n=e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`;n&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`)}if(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))));a=a.concat(this.formatItemList(`Arguments:`,s,t));let c=this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`);if(c.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))}let l=this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`);return l.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,s=o-t-2-2,c;if(s<this.minWidthToWrap||r.preformatted(n))c=n;else{let e=r.boxWrap(n,s);c=e.replace(/\n/g,`
|
|
4
4
|
`+` `.repeat(t+2))}return i+a+` `.repeat(2)+c.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){let t=/\x1b\[\d*(;\d*)*m/g;return e.replace(t,``)}exports.Help=n,exports.stripColor=r})),E=e((exports=>{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}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}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._concatValue(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;if(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){let e=[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`];e.forEach(e=>{o.on(e,()=>{f.killed===!1&&f.exitCode===null&&f.kill(e)})})}let p=this._exitCallback;f.on(`close`,e=>{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&&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&&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`}),t=e.filter(e=>e.conflictsWith.length>0);t.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,i=e.slice();function a(e){return e.length>1&&e[0]===`-`}let o=e=>/^-\d*\.?\d+(e[+-]?\d+)?$/.test(e)?!this._getCommandAndAncestors().some(e=>e.options.map(e=>e.short).some(e=>/^-\d$/.test(e))):!1,s=null;for(;i.length;){let e=i.shift();if(e===`--`){r===n&&r.push(e),r.push(...i);break}if(s&&(!a(e)||o(e))){this.emit(`option:${s.name()}`,e);continue}if(s=null,a(e)){let t=this._findOption(e);if(t){if(t.required){let e=i.shift();e===void 0&&this.optionMissingArgument(t),this.emit(`option:${t.name()}`,e)}else if(t.optional){let e=null;i.length>0&&(!a(i[0])||o(i[0]))&&(e=i.shift()),this.emit(`option:${t.name()}`,e)}else this.emit(`option:${t.name()}`);s=t.variadic?t:null;continue}}if(e.length>2&&e[0]===`-`&&e[1]!==`-`){let t=this._findOption(`-${e[1]}`);if(t){t.required||t.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${t.name()}`,e.slice(2)):(this.emit(`option:${t.name()}`),i.unshift(`-${e.slice(2)}`));continue}}if(/^--[^=]+=/.test(e)){let t=e.indexOf(`=`),n=this._findOption(e.slice(0,t));if(n&&(n.required||n.optional)){this.emit(`option:${n.name()}`,e.slice(t+1));continue}}if(r===t&&a(e)&&!(this.commands.length===0&&o(e))&&(r=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(e)){t.push(e),i.length>0&&n.push(...i);break}else if(this._getHelpCommand()&&e===this._getHelpCommand().name()){t.push(e),i.length>0&&t.push(...i);break}else if(this._defaultCommandName){n.push(e),i.length>0&&n.push(...i);break}}if(this._passThroughOptions){r.push(e),i.length>0&&r.push(...i);break}r.push(e)}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(),i=this.getOptionValueSource(r);return i===`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=this.parent?` for '${this.name()}'`:``,i=`error: too many arguments${r}. Expected ${t} argument${n} but got ${e.length}.`;this.error(i,{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=t||`-V, --version`,n=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=e||{};let t=!!e.error,n,r,i;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());let a=e=>(r||(e=this._outputConfiguration.stripColor(e)),n(e));return{error:t,write:a,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(),n=t&&e.find(e=>t.is(e));n&&(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}exports.Command=h,exports.useColor=_})),k=e((exports=>{let{Argument:t}=w(),{Command:n}=O(),{CommanderError:r,InvalidArgumentError:i}=C(),{Help:a}=T(),{Option:o}=E();exports.program=new n,exports.createCommand=e=>new n(e),exports.createOption=(e,t)=>new o(e,t),exports.createArgument=(e,n)=>new t(e,n),exports.Command=n,exports.Option=o,exports.Argument=t,exports.Help=a,exports.CommanderError=r,exports.InvalidArgumentError=i,exports.InvalidOptionArgumentError=i})),A=n(k(),1);const{program:j,createCommand:M,createArgument:N,createOption:re,CommanderError:P,InvalidArgumentError:ie,InvalidOptionArgumentError:F,Command:I,Argument:ae,Option:L,Help:R}=A.default;var z=`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(),n=t&&e.find(e=>t.is(e));n&&(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}exports.Command=h,exports.useColor=_})),k=e((exports=>{let{Argument:t}=w(),{Command:n}=O(),{CommanderError:r,InvalidArgumentError:i}=C(),{Help:a}=T(),{Option:o}=E();exports.program=new n,exports.createCommand=e=>new n(e),exports.createOption=(e,t)=>new o(e,t),exports.createArgument=(e,n)=>new t(e,n),exports.Command=n,exports.Option=o,exports.Argument=t,exports.Help=a,exports.CommanderError=r,exports.InvalidArgumentError=i,exports.InvalidOptionArgumentError=i})),A=n(k(),1);const{program:j,createCommand:M,createArgument:N,createOption:re,CommanderError:P,InvalidArgumentError:ie,InvalidOptionArgumentError:F,Command:I,Argument:ae,Option:L,Help:R}=A.default;var z=`0.1.88`;async function B(e){e||(e=process.cwd());let t=s(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 V=n(o(),1),H=n(a(),1);async function U(e,t){e||(e=process.cwd());let n=await u(),r=new c({authToken:n,fetch:(e,t)=>{let n=new Headers(t?.headers);return n.set(`x-blink-cli-version`,z),fetch(e,{...t,headers:n})}}),a=await i(e,`package.json`);if(!a)throw Error(`package.json not found`);let o=await x(a,`utf-8`),h=JSON.parse(o),C=_(a),w=v(C,`.blink`,`config.json`),T={};if(ee(w)){let e=await x(w,`utf-8`);T=JSON.parse(e)}let E;if(T?.organizationId)try{let e=await r.organizations.get(T.organizationId);E=e.name}catch(e){T.organizationId=void 0}if(!T?.organizationId){let e=await r.organizations.list();if(e.length===1){let t=e[0];T.organizationId=t.id,E=t.name}else{let t=await p({message:`Which organization should contain this agent?`,options:e.map(e=>({value:e.id,label:e.name}))});if(d(t))return;T.organizationId=t,E=e.find(e=>e.id===t).name}}if(!T.organizationId)throw Error(`Developer error: No organization ID found.`);let D;if(T?.agentId)try{let e=await r.agents.get(T.agentId);D=e.name}catch(e){T.agentId=void 0}if(!T?.agentId)try{let e=await r.organizations.agents.get({organization_id:T.organizationId,agent_name:h.name});T.agentId=e.id,D=e.name}catch(e){let t=await r.agents.create({name:h.name,organization_id:T.organizationId});T.agentId=t.id,D=t.name}if(!T.agentId)throw Error(`Developer error: No agent ID found.`);await te(_(w),{recursive:!0}),await ne(w,JSON.stringify({_:`This file can be source controlled. It contains no secrets.`,...T},null,2),`utf-8`);let O=s(C),k=await new Promise((e,t)=>{O.build({cwd:C,entry:O.entry,outdir:O.outdir,watch:!1,onStart:()=>{},onResult:t=>{e(t)}}).catch(t)});if(!k)throw Error(`Failed to build agent`);if(`error`in k)throw Error(k.error.message);let A={},j=await b(k.outdir);for(let e of j)A[v(k.outdir,e)]=e;let M=v(e,`README.md`);await W(M)&&(A[M]=`README.md`);let N={},re=await se(C);for(let e of re){let t=y(C,e);N[e]=t}let P=Object.entries(A),ie=Object.entries(N),F=[...P,...ie],I=F.length,ae=0,L=0,R=0,B=Array(I);await oe(F,10,async([e,t],n)=>{let i=await S(e),a=i.size,o=++ae;K(`${f.dim(`[${o}/${I}]`)} Uploading ${t} (${G(a)})...`);let s=await x(e),c=await r.files.upload(new File([s],t));B[n]={path:t,id:c.id},L+=1,R+=a}),K(`${f.dim(`[${L}/${I}]`)} Uploaded files (${G(R)}).`),process.stdout.write(`
|
|
21
21
|
`);let H=B.filter(Boolean),U=H.slice(0,P.length),q=H.slice(P.length),J=v(e,`.env.local`),Y=[];if(await W(J)){let e=(0,V.parse)(await x(J,`utf-8`));Y=Object.keys(e)}let X=[],ce=await r.agents.env.list({agent_id:T.agentId});X=ce.map(e=>e.key);let Z=v(e,`.env.production`);if(await W(Z)){let e=(0,V.parse)(await x(Z,`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:T.agentId,key:e,value:a,target:[`production`,`preview`],secret:!0,upsert:!0});X.push(t.key),i+=1,K(`${f.dim(`[${i}/${n}]`)} Updating environment variable: ${e} ${f.dim(`(.env.production)`)}`)}K(`${f.dim(`[${i}/${n}]`)} Updated environment variables! ${f.dim(`(.env.production)`)}`),process.stdout.write(`
|
|
22
|
-
`)}let le=Y.filter(e=>!X.includes(e));if(le.length>0){console.log(`Warning: The following environment variables are set in .env.local but not in .env.production:`);for(let e of le)console.log(`- ${e}`);let e=await m({message:`Do you want to deploy anyway?`});if(e===!1||d(e))return}let ue=await r.agents.deployments.create({agent_id:T.agentId,target:`production`,entrypoint:g(k.entry),output_files:U,source_files:q,message:t?.message}),Q=`https://blink.so/${E}/${D}/deployments/${ue.number}`;console.log(`Deployed:`,Q);let $=l();$.start(`Waiting for deployment to be live...`);try{for(;;){let e=await r.agents.deployments.get({agent_id:T.agentId,deployment_id:ue.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(T.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(e){$.stop(`Failed to poll for deployment status.`),console.log(`Read logs for details:`,Q);return}}const W=async e=>{try{return await S(e),!0}catch(e){return!1}};async function oe(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 G(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/Math.pow(t,r);return`${i.toFixed(i>=100?0:i>=10?1:2)}${n[r]}`}function K(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 se(e){let t=[],n=[`.git`,`node_modules`,`.blink`,`.env`,`.env.*`],r=(0,H.default)().add(n),i=v(e,`.gitignore`);if(await W(i)){let e=await x(i,`utf-8`);r.add(e)}async function a(n,i=e){let o=await b(n,{withFileTypes:!0});for(let e of o){let o=v(n,e.name),s=y(i,o);if(r.ignores(s))continue;e.isDirectory()?await a(o,i):e.isFile()&&t.push(o)}}return await a(e),t}globalThis.WebSocket||(globalThis.WebSocket=r.default),globalThis.crypto||(globalThis.crypto={}),globalThis.crypto.randomUUID||(globalThis.crypto.randomUUID=()=>h()),j.name(`blink`).description(`Blink is a runtime for building and deploying AI agents.`).version(z).action(()=>{j.outputHelp()});const q=e=>async(...t)=>{let{default:n}=await e();return n(...t)};j.command(`init [directory]`).description(`Initialize a new Blink agent.`).action(q(()=>import(`./init-
|
|
22
|
+
`)}let le=Y.filter(e=>!X.includes(e));if(le.length>0){console.log(`Warning: The following environment variables are set in .env.local but not in .env.production:`);for(let e of le)console.log(`- ${e}`);let e=await m({message:`Do you want to deploy anyway?`});if(e===!1||d(e))return}let ue=await r.agents.deployments.create({agent_id:T.agentId,target:`production`,entrypoint:g(k.entry),output_files:U,source_files:q,message:t?.message}),Q=`https://blink.so/${E}/${D}/deployments/${ue.number}`;console.log(`Deployed:`,Q);let $=l();$.start(`Waiting for deployment to be live...`);try{for(;;){let e=await r.agents.deployments.get({agent_id:T.agentId,deployment_id:ue.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(T.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(e){$.stop(`Failed to poll for deployment status.`),console.log(`Read logs for details:`,Q);return}}const W=async e=>{try{return await S(e),!0}catch(e){return!1}};async function oe(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 G(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/Math.pow(t,r);return`${i.toFixed(i>=100?0:i>=10?1:2)}${n[r]}`}function K(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 se(e){let t=[],n=[`.git`,`node_modules`,`.blink`,`.env`,`.env.*`],r=(0,H.default)().add(n),i=v(e,`.gitignore`);if(await W(i)){let e=await x(i,`utf-8`);r.add(e)}async function a(n,i=e){let o=await b(n,{withFileTypes:!0});for(let e of o){let o=v(n,e.name),s=y(i,o);if(r.ignores(s))continue;e.isDirectory()?await a(o,i):e.isFile()&&t.push(o)}}return await a(e),t}globalThis.WebSocket||(globalThis.WebSocket=r.default),globalThis.crypto||(globalThis.crypto={}),globalThis.crypto.randomUUID||(globalThis.crypto.randomUUID=()=>h()),j.name(`blink`).description(`Blink is a runtime for building and deploying AI agents.`).version(z).action(()=>{j.outputHelp()});const q=e=>async(...t)=>{let{default:n}=await e();return n(...t)};j.command(`init [directory]`).description(`Initialize a new Blink agent.`).action(q(()=>import(`./init-DUmqpktD.js`))),j.command(`dev [directory] [options]`).description(`Start a development server for your agent.`).action(q(()=>import(`./dev-DL-po_ai.js`))),j.command(`deploy [directory]`).description(`Deploy your agent to the Blink Cloud.`).option(`-m, --message <message>`,`Message for this deployment`).action(U),j.command(`build [directory]`).description(`Build your agent for production.`).action(B),j.command(`telemetry [boolean]`).description(`Enable or disable telemetry.`),j.command(`start [directory]`).description("Starts the Blink runtime in production mode. The agent must be compiled with `blink build` first."),j.command(`connect`,{hidden:!0}).description(`Connect compute to the Blink Cloud.`).action(q(()=>import(`./connect-COxOUhV7.js`))),j.command(`chat`,{hidden:!0}).description(`Start a Blink chat connected to your machine.`).action(q(()=>import(`./chat-bPVE3_lZ.js`))),j.command(`login`,{hidden:!0}).description(`Log in to the Blink Cloud.`).action(q(()=>import(`./login-B8L9R4GV.js`))),j.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"./auth-
|
|
1
|
+
import{Ie as e,M as t,Se as n,pD as r,ve as i,xe as a,ye as o}from"./auth-B3n8RcUK.js";import"./open-FpexaS6S.js";import{basename as s,dirname as c,join as l}from"path";import{readdir as u,writeFile as d}from"fs/promises";import{spawn as f}from"child_process";async function p(c){if(c||(c=process.cwd()),e(`Initializing a new Blink Agent`),(await u(c)).length>0){let e=await o({message:`Directory is not empty. Do you want to initialize anyway?`});(e===!1||r(e))&&(a(`Initialization cancelled.`),process.exit(1))}let p=s(c).replace(/[^a-zA-Z0-9]/g,`-`),m;if(process.env.npm_config_user_agent?.includes(`bun/`)?m=`bun`:process.env.npm_config_user_agent?.includes(`pnpm/`)?m=`pnpm`:process.env.npm_config_user_agent?.includes(`yarn/`)?m=`yarn`:process.env.npm_config_user_agent?.includes(`npm/`)&&(m=`npm`),!m){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),m=e}t.info(`Using ${m} as the package manager.`);let h={"package.json":JSON.stringify({name:p,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-B3n8RcUK.js";import"./open-FpexaS6S.js";async function t(){await e()}export{t as default};
|
|
@@ -1,7 +1,28 @@
|
|
|
1
|
-
const e=require(`../chunk-D2ScRZv4.cjs`);let t=require(`path`);t=e.__toESM(t);let n=require(`module`);n=e.__toESM(n);let r=require(`fs`);r=e.__toESM(r);let i=require(`fs/promises`);i=e.__toESM(i);function
|
|
1
|
+
const e=require(`../chunk-D2ScRZv4.cjs`);let t=require(`path`);t=e.__toESM(t);let n=require(`module`);n=e.__toESM(n);let r=require(`fs`);r=e.__toESM(r);let i=require(`fs/promises`);i=e.__toESM(i);const a=`ai-telemetry-wrapper`;function o(e={}){let{functions:t=[`streamText`,`generateText`,`generateObject`,`streamObject`,`embed`,`embedMany`],telemetryConfig:n={isEnabled:!0}}=e;return{name:`ai-telemetry`,setup(e){e.onResolve({filter:/^ai$/},e=>{if(e.namespace!==a)return{path:`ai`,namespace:a,pluginData:{resolveDir:e.resolveDir}}}),e.onLoad({filter:/^ai$/,namespace:a},e=>{let r=JSON.stringify(n),i=e.pluginData,a=`
|
|
2
|
+
// Import everything from the original 'ai' package
|
|
3
|
+
import * as aiOriginal from 'ai';
|
|
4
|
+
|
|
5
|
+
// Re-export everything from 'ai'
|
|
6
|
+
export * from 'ai';
|
|
7
|
+
|
|
8
|
+
// Create wrapped versions that inject telemetry by default
|
|
9
|
+
${t.map(e=>`
|
|
10
|
+
export function ${e}(options) {
|
|
11
|
+
// If experimental_telemetry is not provided, inject the default
|
|
12
|
+
if (!options || !options.experimental_telemetry) {
|
|
13
|
+
return aiOriginal.${e}({
|
|
14
|
+
...options,
|
|
15
|
+
experimental_telemetry: ${r}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
// If it's already provided, use the original function as-is
|
|
19
|
+
return aiOriginal.${e}(options);
|
|
20
|
+
}
|
|
21
|
+
`).join(``)}
|
|
22
|
+
`;return{contents:a,loader:`js`,resolveDir:i?.resolveDir}})}}}function s(e){return async r=>{let a=await import(`esbuild`),s=await a.context({entryPoints:[r.entry],outdir:r.outdir,bundle:!0,write:!1,logLevel:`silent`,format:`esm`,platform:`node`,target:`node22`,sourcemap:!1,mainFields:[`module`,`main`],conditions:[`import`,`module`],plugins:[{name:`blink-esm-require-to-import`,setup(e){e.onEnd(t=>{e.initialOptions.format!==`esm`||e.initialOptions.platform!==`node`||t.outputFiles?.forEach(e=>{if(e.path.endsWith(`.js`)||e.path.endsWith(`.mjs`)){let t=Buffer.from(e.contents).toString(`utf-8`),r=new Map,i=RegExp(`\\b__require\\("(node:)?(${n.builtinModules.join(`|`)})"\\)`,`gm`);if(t=t.replace(i,(e,t,n)=>{let i=`__import_${n.toUpperCase().replace(/-/g,`_`)}`,a=`node:${n}`;return r.set(i,a),i}),r.size>0){let e=Array.from(r.entries()).map(([e,t])=>`import ${e} from "${t}";`).join(`
|
|
2
23
|
`);t=e+`
|
|
3
24
|
|
|
4
25
|
`+t}e.contents=Buffer.from(t,`utf-8`)}})})}},{name:`blink-dev-server`,setup(e){let n;e.onStart(()=>{r.onStart(),n=performance.now()}),e.onEnd(async e=>{await(0,i.rm)(r.outdir,{recursive:!0,force:!0}),await(0,i.mkdir)(r.outdir,{recursive:!0});let a=e.outputFiles?.map(e=>({path:e.path,contents:e.contents}))??[];a.push({path:t.default.resolve(r.outdir,`package.json`),contents:Buffer.from(JSON.stringify({type:`module`},null,2),`utf-8`)});for(let e of a)await(0,i.writeFile)(e.path,e.contents);e.errors.length>0?r.onResult({error:{message:e.errors.map(e=>`${e.text} (${e.location?.file})`).join(`
|
|
5
|
-
`)}}):r.onResult({entry:t.default.resolve(r.outdir,t.default.basename(r.entry).replace(`.ts`,`.js`)),duration:performance.now()-n,outdir:r.outdir,warnings:e.warnings.map(e=>({message:e.text,file:e.location?.file}))}),r.watch||(
|
|
26
|
+
`)}}):r.onResult({entry:t.default.resolve(r.outdir,t.default.basename(r.entry).replace(`.ts`,`.js`)),duration:performance.now()-n,outdir:r.outdir,warnings:e.warnings.map(e=>({message:e.text,file:e.location?.file}))}),r.watch||(s.dispose(),s.cancel())})}},o()],...e});await s.watch()}}function c(e){return e??{}}function l(e){let n=[`blink.config.ts`],i;for(let a of n){let n=t.default.resolve(e,a);if((0,r.existsSync)(n)){let e=require(n);if(e.default){i={...e.default};break}}}if(i||(i={}),!i.entry){let n=[`src/agent.ts`,`src/agent.js`,`agent.ts`,`agent.js`];for(let a of n){let n=t.default.resolve(e,a);if((0,r.existsSync)(n)){i.entry=n;break}}if(!i.entry)throw Error(`Agent entrypoint not found.
|
|
6
27
|
|
|
7
|
-
Try creating "agent.ts" or specify "entry" in a blink.config.ts file.`)}return i.outdir||(i.outdir=t.default.resolve(e,`.blink/build`)),i.build||(i.build=
|
|
28
|
+
Try creating "agent.ts" or specify "entry" in a blink.config.ts file.`)}return i.outdir||(i.outdir=t.default.resolve(e,`.blink/build`)),i.build||(i.build=s()),i}exports.buildWithEsbuild=s,exports.defineConfig=c,exports.resolveConfig=l;
|
package/dist/node/build/index.js
CHANGED
|
@@ -1,7 +1,28 @@
|
|
|
1
|
-
import{__require as e}from"../chunk-BJ0G7Fuz.js";import t from"path";import{builtinModules as n}from"module";import{existsSync as r}from"fs";import{mkdir as i,rm as a,writeFile as o}from"fs/promises";function
|
|
1
|
+
import{__require as e}from"../chunk-BJ0G7Fuz.js";import t from"path";import{builtinModules as n}from"module";import{existsSync as r}from"fs";import{mkdir as i,rm as a,writeFile as o}from"fs/promises";const s=`ai-telemetry-wrapper`;function c(e={}){let{functions:t=[`streamText`,`generateText`,`generateObject`,`streamObject`,`embed`,`embedMany`],telemetryConfig:n={isEnabled:!0}}=e;return{name:`ai-telemetry`,setup(e){e.onResolve({filter:/^ai$/},e=>{if(e.namespace!==s)return{path:`ai`,namespace:s,pluginData:{resolveDir:e.resolveDir}}}),e.onLoad({filter:/^ai$/,namespace:s},e=>{let r=JSON.stringify(n),i=e.pluginData,a=`
|
|
2
|
+
// Import everything from the original 'ai' package
|
|
3
|
+
import * as aiOriginal from 'ai';
|
|
4
|
+
|
|
5
|
+
// Re-export everything from 'ai'
|
|
6
|
+
export * from 'ai';
|
|
7
|
+
|
|
8
|
+
// Create wrapped versions that inject telemetry by default
|
|
9
|
+
${t.map(e=>`
|
|
10
|
+
export function ${e}(options) {
|
|
11
|
+
// If experimental_telemetry is not provided, inject the default
|
|
12
|
+
if (!options || !options.experimental_telemetry) {
|
|
13
|
+
return aiOriginal.${e}({
|
|
14
|
+
...options,
|
|
15
|
+
experimental_telemetry: ${r}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
// If it's already provided, use the original function as-is
|
|
19
|
+
return aiOriginal.${e}(options);
|
|
20
|
+
}
|
|
21
|
+
`).join(``)}
|
|
22
|
+
`;return{contents:a,loader:`js`,resolveDir:i?.resolveDir}})}}}function l(e){return async r=>{let s=await import(`esbuild`),l=await s.context({entryPoints:[r.entry],outdir:r.outdir,bundle:!0,write:!1,logLevel:`silent`,format:`esm`,platform:`node`,target:`node22`,sourcemap:!1,mainFields:[`module`,`main`],conditions:[`import`,`module`],plugins:[{name:`blink-esm-require-to-import`,setup(e){e.onEnd(t=>{e.initialOptions.format!==`esm`||e.initialOptions.platform!==`node`||t.outputFiles?.forEach(e=>{if(e.path.endsWith(`.js`)||e.path.endsWith(`.mjs`)){let t=Buffer.from(e.contents).toString(`utf-8`),r=new Map,i=RegExp(`\\b__require\\("(node:)?(${n.join(`|`)})"\\)`,`gm`);if(t=t.replace(i,(e,t,n)=>{let i=`__import_${n.toUpperCase().replace(/-/g,`_`)}`,a=`node:${n}`;return r.set(i,a),i}),r.size>0){let e=Array.from(r.entries()).map(([e,t])=>`import ${e} from "${t}";`).join(`
|
|
2
23
|
`);t=e+`
|
|
3
24
|
|
|
4
25
|
`+t}e.contents=Buffer.from(t,`utf-8`)}})})}},{name:`blink-dev-server`,setup(e){let n;e.onStart(()=>{r.onStart(),n=performance.now()}),e.onEnd(async e=>{await a(r.outdir,{recursive:!0,force:!0}),await i(r.outdir,{recursive:!0});let s=e.outputFiles?.map(e=>({path:e.path,contents:e.contents}))??[];s.push({path:t.resolve(r.outdir,`package.json`),contents:Buffer.from(JSON.stringify({type:`module`},null,2),`utf-8`)});for(let e of s)await o(e.path,e.contents);e.errors.length>0?r.onResult({error:{message:e.errors.map(e=>`${e.text} (${e.location?.file})`).join(`
|
|
5
|
-
`)}}):r.onResult({entry:t.resolve(r.outdir,t.basename(r.entry).replace(`.ts`,`.js`)),duration:performance.now()-n,outdir:r.outdir,warnings:e.warnings.map(e=>({message:e.text,file:e.location?.file}))}),r.watch||(
|
|
26
|
+
`)}}):r.onResult({entry:t.resolve(r.outdir,t.basename(r.entry).replace(`.ts`,`.js`)),duration:performance.now()-n,outdir:r.outdir,warnings:e.warnings.map(e=>({message:e.text,file:e.location?.file}))}),r.watch||(l.dispose(),l.cancel())})}},c()],...e});await l.watch()}}function u(e){return e??{}}function d(n){let i=[`blink.config.ts`],a;for(let o of i){let i=t.resolve(n,o);if(r(i)){let t=e(i);if(t.default){a={...t.default};break}}}if(a||(a={}),!a.entry){let e=[`src/agent.ts`,`src/agent.js`,`agent.ts`,`agent.js`];for(let i of e){let e=t.resolve(n,i);if(r(e)){a.entry=e;break}}if(!a.entry)throw Error(`Agent entrypoint not found.
|
|
6
27
|
|
|
7
|
-
Try creating "agent.ts" or specify "entry" in a blink.config.ts file.`)}return a.outdir||(a.outdir=t.resolve(n,`.blink/build`)),a.build||(a.build=
|
|
28
|
+
Try creating "agent.ts" or specify "entry" in a blink.config.ts file.`)}return a.outdir||(a.outdir=t.resolve(n,`.blink/build`)),a.build||(a.build=l()),a}export{l as buildWithEsbuild,u as defineConfig,d as resolveConfig};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{login as e}from"./auth-xjF_htDn.js";import"./open-DfjrUP4O.js";async function t(){await e()}export{t as default};
|
|
File without changes
|