blink 1.1.34 → 1.1.35
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/chat-BfOX7Zpn.js +1 -0
- package/dist/cli/{chat-manager-bMAuoSb5.js → chat-manager-cUXPlLU4.js} +6 -6
- package/dist/cli/connect-3pBvxI6u.js +1 -0
- package/dist/cli/connect-XRcF_tn8.js +1 -0
- package/dist/cli/{create-github-app-Dld06QIC.js → create-github-app-CaCP607a.js} +1 -1
- package/dist/cli/{dev-9EzQCNmd.js → dev-DOvBAIjm.js} +143 -136
- package/dist/cli/index.js +4 -4
- package/dist/cli/{init-CByRT25U.js → init-LtTUYXzn.js} +1 -1
- package/dist/cli/{run-Lp28Ogb_.js → run-BHKBjgkK.js} +1 -1
- package/dist/cli/setup-github-app-DBiuq7cy.js +9 -0
- package/dist/cli/{token-util-DIx5k-1f.js → token-util-3NkPUSqu.js} +1 -1
- package/dist/cli/{token-util-h1hcKvQX.js → token-util-BgEcL2NM.js} +1 -1
- package/dist/cli/{token-ClGOahUF.js → token-v4NJW7VU.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-Btg8Ii_o.cjs → index.node-CFR7FTuY.cjs} +4 -4
- package/dist/node/{index.node-xL4mvvNL.js → index.node-CITcyk6b.js} +4 -4
- package/dist/node/react/index.node.cjs +7 -7
- package/dist/node/react/index.node.js +7 -7
- package/dist/node/{token-CI2_C_5D.js → token-B2MtKe6w.js} +1 -1
- package/dist/node/{token-D4jFpAk0.cjs → token-BQ-EqDMB.cjs} +1 -1
- package/dist/node/{token-util-BxSJFXkT.cjs → token-util--zh4M6Ze.cjs} +1 -1
- package/dist/node/{token-util-idU3T5iM.js → token-util-CtaB7NzM.js} +1 -1
- package/dist/node/token-util-P8_cV3Yu.cjs +1 -0
- package/dist/node/{token-util-ChGcRyiF.js → token-util-RdQsj3MK.js} +1 -1
- package/package.json +10 -8
- package/dist/cli/chat-mj0wnV3_.js +0 -1
- package/dist/cli/connect-BnhWpzRI.js +0 -1
- package/dist/cli/connect-Cd-0O7Uu.js +0 -1
- package/dist/cli/setup-github-app-D-K7e6al.js +0 -9
- package/dist/node/token-util-BENsR1Bn.cjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__commonJSMin as e}from"./chunk-D9KrCrVq.js";import{require_token_error as t}from"./token-error-488npYdU.js";import{require_token_util as n}from"./token-util-
|
|
1
|
+
import{__commonJSMin as e}from"./chunk-D9KrCrVq.js";import{require_token_error as t}from"./token-error-488npYdU.js";import{require_token_util as n}from"./token-util-RdQsj3MK.js";var r=e(((e,r)=>{var i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,c=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},l=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of o(t))!s.call(e,c)&&c!==n&&i(e,c,{get:()=>t[c],enumerable:!(r=a(t,c))||r.enumerable});return e},u=e=>l(i({},`__esModule`,{value:!0}),e),d={};c(d,{refreshToken:()=>m}),r.exports=u(d);var f=t(),p=n();async function m(){let{projectId:e,teamId:t}=(0,p.findProjectInfo)(),n=(0,p.loadToken)(e);if(!n||(0,p.isExpired)((0,p.getTokenPayload)(n.token))){let r=(0,p.getVercelCliToken)();if(!r)throw new f.VercelOidcTokenError(`Failed to refresh OIDC token: login to vercel cli`);if(!e)throw new f.VercelOidcTokenError(`Failed to refresh OIDC token: project id not found`);if(n=await(0,p.getVercelOidcToken)(r,e,t),!n)throw new f.VercelOidcTokenError(`Failed to refresh OIDC token`);(0,p.saveToken)(n,e)}process.env.VERCEL_OIDC_TOKEN=n.token}}));export default r();export{};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./chunk-iXuH7AlR.cjs`),t=require(`./token-error-BoNG8ooW.cjs`),n=require(`./token-util
|
|
1
|
+
const e=require(`./chunk-iXuH7AlR.cjs`),t=require(`./token-error-BoNG8ooW.cjs`),n=require(`./token-util--zh4M6Ze.cjs`);var r=e.__commonJSMin(((e,r)=>{var i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,c=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},l=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of o(t))!s.call(e,c)&&c!==n&&i(e,c,{get:()=>t[c],enumerable:!(r=a(t,c))||r.enumerable});return e},u=e=>l(i({},`__esModule`,{value:!0}),e),d={};c(d,{refreshToken:()=>m}),r.exports=u(d);var f=t.require_token_error(),p=n.require_token_util();async function m(){let{projectId:e,teamId:t}=(0,p.findProjectInfo)(),n=(0,p.loadToken)(e);if(!n||(0,p.isExpired)((0,p.getTokenPayload)(n.token))){let r=(0,p.getVercelCliToken)();if(!r)throw new f.VercelOidcTokenError(`Failed to refresh OIDC token: login to vercel cli`);if(!e)throw new f.VercelOidcTokenError(`Failed to refresh OIDC token: project id not found`);if(n=await(0,p.getVercelOidcToken)(r,e,t),!n)throw new f.VercelOidcTokenError(`Failed to refresh OIDC token`);(0,p.saveToken)(n,e)}process.env.VERCEL_OIDC_TOKEN=n.token}}));Object.defineProperty(exports,`default`,{enumerable:!0,get:function(){return r()}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./chunk-iXuH7AlR.cjs`),t=require(`./token-error-BoNG8ooW.cjs`);var n=e.__commonJSMin(((e,n)=>{var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let s of o(t))!c.call(e,s)&&s!==n&&i(e,s,{get:()=>t[s],enumerable:!(r=a(t,s))||r.enumerable});return e},d=(e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule?i(n,`default`,{value:e,enumerable:!0}):n,e)),f=e=>u(i({},`__esModule`,{value:!0}),e),p={};l(p,{findRootDir:()=>v,getUserDataDir:()=>y}),n.exports=f(p);var m=d(require(`path`)),h=d(require(`fs`)),g=d(require(`os`)),_=t.require_token_error();function v(){try{let e=process.cwd();for(;e!==m.default.dirname(e);){let t=m.default.join(e,`.vercel`);if(h.default.existsSync(t))return e;e=m.default.dirname(e)}}catch{throw new _.VercelOidcTokenError(`Token refresh only supported in node server environments`)}throw new _.VercelOidcTokenError(`Unable to find root directory`)}function y(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(g.default.platform()){case`darwin`:return m.default.join(g.default.homedir(),`Library/Application Support`);case`linux`:return m.default.join(g.default.homedir(),`.local/share`);case`win32`:return process.env.LOCALAPPDATA?process.env.LOCALAPPDATA:null;default:return null}}})),r=e.__commonJSMin(((e,r)=>{var i=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},d=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of s(t))!l.call(e,i)&&i!==n&&a(e,i,{get:()=>t[i],enumerable:!(r=o(t,i))||r.enumerable});return e},f=(e,t,n)=>(n=e==null?{}:i(c(e)),d(t||!e||!e.__esModule?a(n,`default`,{value:e,enumerable:!0}):n,e)),p=e=>d(a({},`__esModule`,{value:!0}),e),m={};u(m,{assertVercelOidcTokenResponse:()=>S,findProjectInfo:()=>C,getTokenPayload:()=>E,getVercelCliToken:()=>b,getVercelDataDir:()=>y,getVercelOidcToken:()=>x,isExpired:()=>D,loadToken:()=>T,saveToken:()=>w}),r.exports=p(m);var h=f(require(`path`)),g=f(require(`fs`)),_=t.require_token_error(),v=n();function y(){let e=(0,v.getUserDataDir)();return e?h.join(e,`com.vercel.cli`):null}function b(){let e=y();if(!e)return null;let t=h.join(e,`auth.json`);if(!g.existsSync(t))return null;let n=g.readFileSync(t,`utf8`);return n?JSON.parse(n).token:null}async function x(e,t,n){try{let r=`https://api.vercel.com/v1/projects/${t}/token?source=vercel-oidc-refresh${n?`&teamId=${n}`:``}`,i=await fetch(r,{method:`POST`,headers:{Authorization:`Bearer ${e}`}});if(!i.ok)throw new _.VercelOidcTokenError(`Failed to refresh OIDC token: ${i.statusText}`);let a=await i.json();return S(a),a}catch(e){throw new _.VercelOidcTokenError(`Failed to refresh OIDC token`,e)}}function S(e){if(!e||typeof e!=`object`)throw TypeError(`Expected an object`);if(!(`token`in e)||typeof e.token!=`string`)throw TypeError(`Expected a string-valued token property`)}function C(){let e=(0,v.findRootDir)();if(!e)throw new _.VercelOidcTokenError(`Unable to find root directory`);try{let t=h.join(e,`.vercel`,`project.json`);if(!g.existsSync(t))throw new _.VercelOidcTokenError(`project.json not found`);let n=JSON.parse(g.readFileSync(t,`utf8`));if(typeof n.projectId!=`string`&&typeof n.orgId!=`string`)throw TypeError(`Expected a string-valued projectId property`);return{projectId:n.projectId,teamId:n.orgId}}catch(e){throw new _.VercelOidcTokenError(`Unable to find project ID`,e)}}function w(e,t){try{let n=(0,v.getUserDataDir)();if(!n)throw new _.VercelOidcTokenError(`Unable to find user data directory`);let r=h.join(n,`com.vercel.token`,`${t}.json`),i=JSON.stringify(e);g.mkdirSync(h.dirname(r),{mode:
|
|
1
|
+
const e=require(`./chunk-iXuH7AlR.cjs`),t=require(`./token-error-BoNG8ooW.cjs`);var n=e.__commonJSMin(((e,n)=>{var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let s of o(t))!c.call(e,s)&&s!==n&&i(e,s,{get:()=>t[s],enumerable:!(r=a(t,s))||r.enumerable});return e},d=(e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule?i(n,`default`,{value:e,enumerable:!0}):n,e)),f=e=>u(i({},`__esModule`,{value:!0}),e),p={};l(p,{findRootDir:()=>v,getUserDataDir:()=>y}),n.exports=f(p);var m=d(require(`path`)),h=d(require(`fs`)),g=d(require(`os`)),_=t.require_token_error();function v(){try{let e=process.cwd();for(;e!==m.default.dirname(e);){let t=m.default.join(e,`.vercel`);if(h.default.existsSync(t))return e;e=m.default.dirname(e)}}catch{throw new _.VercelOidcTokenError(`Token refresh only supported in node server environments`)}throw new _.VercelOidcTokenError(`Unable to find root directory`)}function y(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(g.default.platform()){case`darwin`:return m.default.join(g.default.homedir(),`Library/Application Support`);case`linux`:return m.default.join(g.default.homedir(),`.local/share`);case`win32`:return process.env.LOCALAPPDATA?process.env.LOCALAPPDATA:null;default:return null}}})),r=e.__commonJSMin(((e,r)=>{var i=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},d=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of s(t))!l.call(e,i)&&i!==n&&a(e,i,{get:()=>t[i],enumerable:!(r=o(t,i))||r.enumerable});return e},f=(e,t,n)=>(n=e==null?{}:i(c(e)),d(t||!e||!e.__esModule?a(n,`default`,{value:e,enumerable:!0}):n,e)),p=e=>d(a({},`__esModule`,{value:!0}),e),m={};u(m,{assertVercelOidcTokenResponse:()=>S,findProjectInfo:()=>C,getTokenPayload:()=>E,getVercelCliToken:()=>b,getVercelDataDir:()=>y,getVercelOidcToken:()=>x,isExpired:()=>D,loadToken:()=>T,saveToken:()=>w}),r.exports=p(m);var h=f(require(`path`)),g=f(require(`fs`)),_=t.require_token_error(),v=n();function y(){let e=(0,v.getUserDataDir)();return e?h.join(e,`com.vercel.cli`):null}function b(){let e=y();if(!e)return null;let t=h.join(e,`auth.json`);if(!g.existsSync(t))return null;let n=g.readFileSync(t,`utf8`);return n?JSON.parse(n).token:null}async function x(e,t,n){try{let r=`https://api.vercel.com/v1/projects/${t}/token?source=vercel-oidc-refresh${n?`&teamId=${n}`:``}`,i=await fetch(r,{method:`POST`,headers:{Authorization:`Bearer ${e}`}});if(!i.ok)throw new _.VercelOidcTokenError(`Failed to refresh OIDC token: ${i.statusText}`);let a=await i.json();return S(a),a}catch(e){throw new _.VercelOidcTokenError(`Failed to refresh OIDC token`,e)}}function S(e){if(!e||typeof e!=`object`)throw TypeError(`Expected an object`);if(!(`token`in e)||typeof e.token!=`string`)throw TypeError(`Expected a string-valued token property`)}function C(){let e=(0,v.findRootDir)();if(!e)throw new _.VercelOidcTokenError(`Unable to find root directory`);try{let t=h.join(e,`.vercel`,`project.json`);if(!g.existsSync(t))throw new _.VercelOidcTokenError(`project.json not found`);let n=JSON.parse(g.readFileSync(t,`utf8`));if(typeof n.projectId!=`string`&&typeof n.orgId!=`string`)throw TypeError(`Expected a string-valued projectId property`);return{projectId:n.projectId,teamId:n.orgId}}catch(e){throw new _.VercelOidcTokenError(`Unable to find project ID`,e)}}function w(e,t){try{let n=(0,v.getUserDataDir)();if(!n)throw new _.VercelOidcTokenError(`Unable to find user data directory`);let r=h.join(n,`com.vercel.token`,`${t}.json`),i=JSON.stringify(e);g.mkdirSync(h.dirname(r),{mode:504,recursive:!0}),g.writeFileSync(r,i),g.chmodSync(r,432);return}catch(e){throw new _.VercelOidcTokenError(`Failed to save token`,e)}}function T(e){try{let t=(0,v.getUserDataDir)();if(!t)return null;let n=h.join(t,`com.vercel.token`,`${e}.json`);if(!g.existsSync(n))return null;let r=JSON.parse(g.readFileSync(n,`utf8`));return S(r),r}catch(e){throw new _.VercelOidcTokenError(`Failed to load token`,e)}}function E(e){let t=e.split(`.`);if(t.length!==3)throw new _.VercelOidcTokenError(`Invalid token`);let n=t[1].replace(/-/g,`+`).replace(/_/g,`/`),r=n.padEnd(n.length+(4-n.length%4)%4,`=`);return JSON.parse(Buffer.from(r,`base64`).toString(`utf8`))}function D(e){return e.exp*1e3<Date.now()}}));Object.defineProperty(exports,`require_token_util`,{enumerable:!0,get:function(){return r}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./token-error-488npYdU.js";import{require_token_util as e}from"./token-util-
|
|
1
|
+
import"./token-error-488npYdU.js";import{require_token_util as e}from"./token-util-RdQsj3MK.js";export default e();export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./token-error-BoNG8ooW.cjs`);const e=require(`./token-util--zh4M6Ze.cjs`);Object.defineProperty(exports,`default`,{enumerable:!0,get:function(){return e.require_token_util()}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__commonJSMin as e,__require as t}from"./chunk-D9KrCrVq.js";import{require_token_error as n}from"./token-error-488npYdU.js";var r=e(((e,r)=>{var i=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},d=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of s(t))!l.call(e,i)&&i!==n&&a(e,i,{get:()=>t[i],enumerable:!(r=o(t,i))||r.enumerable});return e},f=(e,t,n)=>(n=e==null?{}:i(c(e)),d(t||!e||!e.__esModule?a(n,`default`,{value:e,enumerable:!0}):n,e)),p=e=>d(a({},`__esModule`,{value:!0}),e),m={};u(m,{findRootDir:()=>y,getUserDataDir:()=>b}),r.exports=p(m);var h=f(t(`path`)),g=f(t(`fs`)),_=f(t(`os`)),v=n();function y(){try{let e=process.cwd();for(;e!==h.default.dirname(e);){let t=h.default.join(e,`.vercel`);if(g.default.existsSync(t))return e;e=h.default.dirname(e)}}catch{throw new v.VercelOidcTokenError(`Token refresh only supported in node server environments`)}throw new v.VercelOidcTokenError(`Unable to find root directory`)}function b(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(_.default.platform()){case`darwin`:return h.default.join(_.default.homedir(),`Library/Application Support`);case`linux`:return h.default.join(_.default.homedir(),`.local/share`);case`win32`:return process.env.LOCALAPPDATA?process.env.LOCALAPPDATA:null;default:return null}}})),i=e(((e,i)=>{var a=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,l=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,d=(e,t)=>{for(var n in t)o(e,n,{get:t[n],enumerable:!0})},f=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of c(t))!u.call(e,i)&&i!==n&&o(e,i,{get:()=>t[i],enumerable:!(r=s(t,i))||r.enumerable});return e},p=(e,t,n)=>(n=e==null?{}:a(l(e)),f(t||!e||!e.__esModule?o(n,`default`,{value:e,enumerable:!0}):n,e)),m=e=>f(o({},`__esModule`,{value:!0}),e),h={};d(h,{assertVercelOidcTokenResponse:()=>C,findProjectInfo:()=>w,getTokenPayload:()=>D,getVercelCliToken:()=>x,getVercelDataDir:()=>b,getVercelOidcToken:()=>S,isExpired:()=>O,loadToken:()=>E,saveToken:()=>T}),i.exports=m(h);var g=p(t(`path`)),_=p(t(`fs`)),v=n(),y=r();function b(){let e=(0,y.getUserDataDir)();return e?g.join(e,`com.vercel.cli`):null}function x(){let e=b();if(!e)return null;let t=g.join(e,`auth.json`);if(!_.existsSync(t))return null;let n=_.readFileSync(t,`utf8`);return n?JSON.parse(n).token:null}async function S(e,t,n){try{let r=`https://api.vercel.com/v1/projects/${t}/token?source=vercel-oidc-refresh${n?`&teamId=${n}`:``}`,i=await fetch(r,{method:`POST`,headers:{Authorization:`Bearer ${e}`}});if(!i.ok)throw new v.VercelOidcTokenError(`Failed to refresh OIDC token: ${i.statusText}`);let a=await i.json();return C(a),a}catch(e){throw new v.VercelOidcTokenError(`Failed to refresh OIDC token`,e)}}function C(e){if(!e||typeof e!=`object`)throw TypeError(`Expected an object`);if(!(`token`in e)||typeof e.token!=`string`)throw TypeError(`Expected a string-valued token property`)}function w(){let e=(0,y.findRootDir)();if(!e)throw new v.VercelOidcTokenError(`Unable to find root directory`);try{let t=g.join(e,`.vercel`,`project.json`);if(!_.existsSync(t))throw new v.VercelOidcTokenError(`project.json not found`);let n=JSON.parse(_.readFileSync(t,`utf8`));if(typeof n.projectId!=`string`&&typeof n.orgId!=`string`)throw TypeError(`Expected a string-valued projectId property`);return{projectId:n.projectId,teamId:n.orgId}}catch(e){throw new v.VercelOidcTokenError(`Unable to find project ID`,e)}}function T(e,t){try{let n=(0,y.getUserDataDir)();if(!n)throw new v.VercelOidcTokenError(`Unable to find user data directory`);let r=g.join(n,`com.vercel.token`,`${t}.json`),i=JSON.stringify(e);_.mkdirSync(g.dirname(r),{mode:
|
|
1
|
+
import{__commonJSMin as e,__require as t}from"./chunk-D9KrCrVq.js";import{require_token_error as n}from"./token-error-488npYdU.js";var r=e(((e,r)=>{var i=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},d=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of s(t))!l.call(e,i)&&i!==n&&a(e,i,{get:()=>t[i],enumerable:!(r=o(t,i))||r.enumerable});return e},f=(e,t,n)=>(n=e==null?{}:i(c(e)),d(t||!e||!e.__esModule?a(n,`default`,{value:e,enumerable:!0}):n,e)),p=e=>d(a({},`__esModule`,{value:!0}),e),m={};u(m,{findRootDir:()=>y,getUserDataDir:()=>b}),r.exports=p(m);var h=f(t(`path`)),g=f(t(`fs`)),_=f(t(`os`)),v=n();function y(){try{let e=process.cwd();for(;e!==h.default.dirname(e);){let t=h.default.join(e,`.vercel`);if(g.default.existsSync(t))return e;e=h.default.dirname(e)}}catch{throw new v.VercelOidcTokenError(`Token refresh only supported in node server environments`)}throw new v.VercelOidcTokenError(`Unable to find root directory`)}function b(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(_.default.platform()){case`darwin`:return h.default.join(_.default.homedir(),`Library/Application Support`);case`linux`:return h.default.join(_.default.homedir(),`.local/share`);case`win32`:return process.env.LOCALAPPDATA?process.env.LOCALAPPDATA:null;default:return null}}})),i=e(((e,i)=>{var a=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,l=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,d=(e,t)=>{for(var n in t)o(e,n,{get:t[n],enumerable:!0})},f=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of c(t))!u.call(e,i)&&i!==n&&o(e,i,{get:()=>t[i],enumerable:!(r=s(t,i))||r.enumerable});return e},p=(e,t,n)=>(n=e==null?{}:a(l(e)),f(t||!e||!e.__esModule?o(n,`default`,{value:e,enumerable:!0}):n,e)),m=e=>f(o({},`__esModule`,{value:!0}),e),h={};d(h,{assertVercelOidcTokenResponse:()=>C,findProjectInfo:()=>w,getTokenPayload:()=>D,getVercelCliToken:()=>x,getVercelDataDir:()=>b,getVercelOidcToken:()=>S,isExpired:()=>O,loadToken:()=>E,saveToken:()=>T}),i.exports=m(h);var g=p(t(`path`)),_=p(t(`fs`)),v=n(),y=r();function b(){let e=(0,y.getUserDataDir)();return e?g.join(e,`com.vercel.cli`):null}function x(){let e=b();if(!e)return null;let t=g.join(e,`auth.json`);if(!_.existsSync(t))return null;let n=_.readFileSync(t,`utf8`);return n?JSON.parse(n).token:null}async function S(e,t,n){try{let r=`https://api.vercel.com/v1/projects/${t}/token?source=vercel-oidc-refresh${n?`&teamId=${n}`:``}`,i=await fetch(r,{method:`POST`,headers:{Authorization:`Bearer ${e}`}});if(!i.ok)throw new v.VercelOidcTokenError(`Failed to refresh OIDC token: ${i.statusText}`);let a=await i.json();return C(a),a}catch(e){throw new v.VercelOidcTokenError(`Failed to refresh OIDC token`,e)}}function C(e){if(!e||typeof e!=`object`)throw TypeError(`Expected an object`);if(!(`token`in e)||typeof e.token!=`string`)throw TypeError(`Expected a string-valued token property`)}function w(){let e=(0,y.findRootDir)();if(!e)throw new v.VercelOidcTokenError(`Unable to find root directory`);try{let t=g.join(e,`.vercel`,`project.json`);if(!_.existsSync(t))throw new v.VercelOidcTokenError(`project.json not found`);let n=JSON.parse(_.readFileSync(t,`utf8`));if(typeof n.projectId!=`string`&&typeof n.orgId!=`string`)throw TypeError(`Expected a string-valued projectId property`);return{projectId:n.projectId,teamId:n.orgId}}catch(e){throw new v.VercelOidcTokenError(`Unable to find project ID`,e)}}function T(e,t){try{let n=(0,y.getUserDataDir)();if(!n)throw new v.VercelOidcTokenError(`Unable to find user data directory`);let r=g.join(n,`com.vercel.token`,`${t}.json`),i=JSON.stringify(e);_.mkdirSync(g.dirname(r),{mode:504,recursive:!0}),_.writeFileSync(r,i),_.chmodSync(r,432);return}catch(e){throw new v.VercelOidcTokenError(`Failed to save token`,e)}}function E(e){try{let t=(0,y.getUserDataDir)();if(!t)return null;let n=g.join(t,`com.vercel.token`,`${e}.json`);if(!_.existsSync(n))return null;let r=JSON.parse(_.readFileSync(n,`utf8`));return C(r),r}catch(e){throw new v.VercelOidcTokenError(`Failed to load token`,e)}}function D(e){let t=e.split(`.`);if(t.length!==3)throw new v.VercelOidcTokenError(`Invalid token`);let n=t[1].replace(/-/g,`+`).replace(/_/g,`/`),r=n.padEnd(n.length+(4-n.length%4)%4,`=`);return JSON.parse(Buffer.from(r,`base64`).toString(`utf8`))}function O(e){return e.exp*1e3<Date.now()}}));export{i as require_token_util};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blink",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.35",
|
|
4
4
|
"description": "Blink is a tool for building and deploying AI agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
"require": "./dist/node/build/index.cjs"
|
|
36
36
|
},
|
|
37
37
|
"./client": {
|
|
38
|
+
"browser": "./dist/browser/agent/client/index.js",
|
|
38
39
|
"types": "./dist/browser/agent/client/index.d.ts",
|
|
39
40
|
"import": "./dist/browser/agent/client/index.js",
|
|
40
|
-
"require": "./dist/browser/agent/client/index.cjs"
|
|
41
|
-
"browser": "./dist/browser/agent/client/index.js"
|
|
41
|
+
"require": "./dist/browser/agent/client/index.cjs"
|
|
42
42
|
},
|
|
43
43
|
"./control": {
|
|
44
|
+
"browser": "./dist/browser/control/index.js",
|
|
44
45
|
"types": "./dist/browser/control/index.d.ts",
|
|
45
46
|
"import": "./dist/browser/control/index.js",
|
|
46
|
-
"require": "./dist/browser/control/index.cjs"
|
|
47
|
-
"browser": "./dist/browser/control/index.js"
|
|
47
|
+
"require": "./dist/browser/control/index.cjs"
|
|
48
48
|
},
|
|
49
49
|
"./react": {
|
|
50
50
|
"browser": {
|
|
@@ -70,8 +70,10 @@
|
|
|
70
70
|
],
|
|
71
71
|
"scripts": {
|
|
72
72
|
"build": "tsdown",
|
|
73
|
+
"dev": "tsdown --watch",
|
|
73
74
|
"dev-install": "rm -rf ./*.tgz && bun run build && npm pack && bun remove -g blink && bun install -g $(pwd)/*.tgz",
|
|
74
|
-
"gen-templates": "bun run src/cli/scripts/generate-templates.ts && cd ../.. && bun format"
|
|
75
|
+
"gen-templates": "bun run src/cli/scripts/generate-templates.ts && cd ../.. && bun format",
|
|
76
|
+
"typecheck": "tsgo --noEmit"
|
|
75
77
|
},
|
|
76
78
|
"dependencies": {
|
|
77
79
|
"@blink-sdk/compute-protocol": "^0.0.7"
|
|
@@ -123,7 +125,7 @@
|
|
|
123
125
|
"marked": "^16.2.1",
|
|
124
126
|
"marked-terminal": "^7.3.0",
|
|
125
127
|
"open": "^10.2.0",
|
|
126
|
-
"react": "
|
|
128
|
+
"react": "19.1.2",
|
|
127
129
|
"react-devtools-core": "^6.1.5",
|
|
128
130
|
"sonda": "^0.9.0",
|
|
129
131
|
"tsdown": "0.14.2",
|
|
@@ -136,7 +138,7 @@
|
|
|
136
138
|
},
|
|
137
139
|
"peerDependencies": {
|
|
138
140
|
"zod": ">= 4",
|
|
139
|
-
"ai": "
|
|
141
|
+
"ai": "^5.0.0",
|
|
140
142
|
"react": ">= 18"
|
|
141
143
|
},
|
|
142
144
|
"engines": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{import_websocket as e}from"./wrapper-DRdRnzOz.js";import{openUrl as t}from"./util-CUfifM0g.js";import{WorkspaceConnect as n}from"./connect-BnhWpzRI.js";async function r(){let r=crypto.randomUUID(),i=new e.default(`wss://blink.so/legacy-auth?id=${r}`);await new Promise((e,t)=>{i.onopen=()=>{e()},i.onerror=e=>{t(e)}});let a=new Promise((e,t)=>{i.onmessage=t=>{e(t.data.toString())}}),o=`https://blink.so/legacy-auth?id=${r}&type=workspace`;console.log(`Opening the following URL in your browser: ${o}`),await t(o);let s=await a,c=new n({url:`wss://blink.so/api/connect`,token:s});c.onConnect(()=>{console.log(`Connected to Blink`)}),c.onDisconnect(()=>{console.log(`Disconnected from Blink`)})}export{r as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{__require as e}from"./chunk-D9KrCrVq.js";import{wrapper_default as t}from"./wrapper-DRdRnzOz.js";import n from"node:path";import r from"node:fs";import i from"node:os";import{Server as a}from"@blink-sdk/compute-protocol/server";var o=class{listeners=[];get event(){return e=>(this.listeners.push(e),{dispose:()=>{this.listeners=this.listeners.filter(t=>t!==e)}})}emit(e){for(let t=this.listeners.length-1;t>=0;t--)this.listeners[t]?.(e)}dispose(){this.listeners=[]}};const s=n.join(i.tmpdir(),`blink-connect-${process.pid}.log`),c=e=>{if(e instanceof Error)return e.stack??e.message;try{return JSON.stringify(e)}catch{return String(e)}},l=async e=>{let t=`${new Date().toISOString()} ${e}\n`;try{await r.promises.appendFile(s,t,`utf8`)}catch{}};async function u(){let e=process.env.BLINK_URL,t=process.env.BLINK_TOKEN;delete process.env.BLINK_TOKEN,process.env.GIT_TERMINAL_PROMPT=`0`,process.env.GIT_PAGER=`cat`,process.env.GIT_AUTHOR_NAME=`blink-so[bot]`,process.env.GIT_AUTHOR_EMAIL=`211532188+blink-so[bot]@users.noreply.github.com`,process.env.GIT_COMMITTER_NAME=`blink-so[bot]`,process.env.GIT_COMMITTER_EMAIL=`211532188+blink-so[bot]@users.noreply.github.com`,process.env.GIT_CONFIG_COUNT=`1`,process.env.GIT_CONFIG_KEY_0=`credential.https://github.com.helper`,process.env.GIT_CONFIG_VALUE_0=`!gh auth git-credential`,process.addListener(`uncaughtException`,e=>{l(`uncaughtException: ${c(e)}`),d(t,e)}),process.addListener(`unhandledRejection`,e=>{l(`unhandledRejection: ${c(e)}`),d(t,e)});let n=new f({url:e??`wss://blink.so/api/connect`,token:t,createDeploymentFromTar:async n=>{let r=new URL(`/api/static-deployment`,e??`https://blink.so`);return(await(await fetch(r,{method:`POST`,body:n,headers:{"Content-Type":`application/tar`,Authorization:`Bearer ${t}`},duplex:`half`})).json()).deployment_id}});n.onConnect(()=>{console.log(`Connected`),l(`Connected`)}),n.onDisconnect(()=>{console.log(`Disconnected`),l(`Disconnected`)})}const d=async(e,t)=>{let n=new URL(`https://blink.so/api/connect-error`);await fetch(n.toString(),{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${e}`},body:JSON.stringify({error:t})})};var f=class{_onConnect=new o;onConnect=this._onConnect.event;_onDisconnect=new o;onDisconnect=this._onDisconnect.event;reconnectTimeout=null;disposed=!1;ws;server;hasReconnectedOnce=!1;constructor(n){this.opts=n;let r;try{r=e(`@lydell/node-pty`)}catch{}typeof Bun<`u`&&(r=void 0),this.server=new a({send:e=>{this.ws.readyState===t.OPEN?this.ws.send(e):console.warn(`Message skipped because connection is closed.`)},createDeploymentFromTar:this.opts.createDeploymentFromTar,nodePty:r}),this.connect()}dispose(){this.disposed||(this.disposed=!0,this.ws.close(),this.reconnectTimeout&&clearTimeout(this.reconnectTimeout))}scheduleReconnect(){if(this.disposed)return;let e=this.opts.immediateReconnectFirst??!0,t=this.opts.reconnectionDelay??2500;!this.hasReconnectedOnce&&e&&(t=0),this.hasReconnectedOnce=!0,this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.reconnectTimeout=setTimeout(()=>{this.connect()},t)}connect(){let e=new URL(this.opts.url);e.protocol===`http:`?e.protocol=`ws:`:e.protocol===`https:`&&(e.protocol=`wss:`);let n={};this.opts.token&&(n.Authorization=`Bearer ${this.opts.token}`),this.ws=new t(e.toString(),{headers:n}),this.ws.addEventListener(`open`,()=>{this._onConnect.emit()}),this.ws.addEventListener(`close`,()=>{this._onDisconnect.emit(),!this.disposed&&this.scheduleReconnect()}),this.ws.addEventListener(`error`,e=>{console.error(`Error`,e.message??e)}),this.ws.addEventListener(`message`,e=>{if(typeof e.data==`string`){console.warn(`Message skipped because it is not a buffer.`);return}try{this.server.handleMessage(new Uint8Array(e.data))}catch(e){console.error(`message handler error`,e);try{this.ws.close(1011)}catch{}}})}};export{f as WorkspaceConnect,u as connect};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./wrapper-DRdRnzOz.js";import{WorkspaceConnect as e,connect as t}from"./connect-BnhWpzRI.js";export{e as WorkspaceConnect,t as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{Client as e,Ie as t,M as n,Se as r,Y as i,ge as a,he as o,pD as s,ye as c}from"./dist-Ceoe3h7v.js";import{openUrl as l,source_default as u}from"./util-CUfifM0g.js";import{createDevhookID as d,createGithubApp as f,createSlackApp as p,getDevhookID as m,hasDevhook as h}from"./create-github-app-Dld06QIC.js";import{_usingCtx as g}from"./usingCtx-B1FpoePI.js";import{basename as _,join as v}from"node:path";import{access as y,readFile as b,readdir as x,writeFile as S}from"node:fs/promises";import C from"node:util";import w from"node:crypto";async function T(e){try{let t=await(await fetch(`https://slack.com/api/auth.test`,{method:`POST`,headers:{Authorization:`Bearer ${e}`,"Content-Type":`application/json`}})).json();return t.ok?{valid:!0,botName:t.user}:{valid:!1,error:t.error||`Invalid bot token`}}catch(e){return{valid:!1,error:`Failed to verify credentials: ${e}`}}}function E(e,t,n,r){let i=Math.floor(Date.now()/1e3),a=parseInt(t,10);if(Math.abs(i-a)>300)return!1;let o=w.createHmac(`sha256`,e),s=`v0:${t}:${n}`;o.update(s);let c=`v0=${o.digest(`hex`)}`;return w.timingSafeEqual(Buffer.from(c),Buffer.from(r))}const D=e=>{if(!(typeof e==`object`&&e))throw Error(`Unable to make value disposable, it's not an object`);if(Symbol.dispose in e)return e;if(`dispose`in e&&typeof e.dispose==`function`){let t=e;return t[Symbol.dispose]=()=>t.dispose(),t}throw Error(`Unable to make value disposable`)};async function O(e,t,n){let r=``;try{r=await b(e,`utf-8`)}catch{}r=r.replace(/^(SLACK_BOT_TOKEN=.*)/gm,`# $1`).replace(/^(SLACK_SIGNING_SECRET=.*)/gm,`# $1`),r=`${r.trimEnd()}\n`;let i=[];i.push(``),i.push(`# Slack App credentials`),t&&i.push(`SLACK_BOT_TOKEN=${t}`),n&&i.push(`SLACK_SIGNING_SECRET=${n}`),i.push(``),await S(e,r+i.join(`
|
|
2
|
-
`),`utf-8`)}async function k(e){let t=await x(e);for(let[e,n]of[[`bun`,`bun.lock`],[`npm`,`package-lock.json`],[`pnpm`,`pnpm-lock.yaml`],[`yarn`,`yarn.lock`]])for(let r of t)if(r.includes(n))return e;return`npm`}async function A(t,f){try{var b=g();let x=f?.name||_(t).replace(/[^a-zA-Z0-9]/g,`-`),S=f?.packageManager||await k(t),w=v(t,`.env.local`);try{await y(w)}catch{n.error(`No .env.local file found in this directory. Please run this command from a Blink agent directory.`),r(`Slack app setup cancelled`);return}let A=await o({message:`What should your Slack app be called? This will be the name displayed in Slack. You can change it later.`,placeholder:x,defaultValue:x,validate:e=>{if(!e||e.trim().length===0)return`App name cannot be empty`}});if(s(A))return;let j=h(t)?m(t):d(t),M=`https://${j}.blink.host`;if(!j)throw Error(`Failed to obtain devhook ID`);n.info(`Starting webhook listener...`);let N=``,P=``,F=!1,I=``,L=``,R=!1,z,B=new e({baseURL:`https://blink.so`}),V=()=>{},H=e=>{},U=new Promise((e,t)=>{V=e,H=t}),W=B.devhook.listen({id:j,onRequest:async e=>{let t=await e.text(),r;try{r=JSON.parse(t)}catch{return new Response(`Invalid JSON`,{status:400})}if(r.type===`url_verification`)return n.info(`✓ Webhook challenge received`),new Response(JSON.stringify({challenge:r.challenge}),{headers:{"Content-Type":`application/json`}});if(N){let n=e.headers.get(`x-slack-signature`),i=e.headers.get(`x-slack-request-timestamp`);if(!n||!i)return new Response(`Missing signature`,{status:401});if(!E(N,i,t,n))return R=!0,r.event?.type===`message`&&r.event.channel_type===`im`&&!r.event.bot_id&&(z=r.event.channel),new Response(`Invalid signature`,{status:401})}return r.event?.type===`message`&&r.event.channel_type===`im`&&!r.event.bot_id&&(F=!0,I=r.event.channel??``,L=r.event.ts??``),new Response(`OK`)},onConnect:()=>{V()},onDisconnect:()=>{},onError:e=>{H(e)}});b.u(D(W));let G={display_information:{name:A.toString(),description:`A Blink agent for Slack`,background_color:`#4A154B`},features:{bot_user:{display_name:A.toString(),always_online:!0},app_home:{home_tab_enabled:!1,messages_tab_enabled:!0,messages_tab_read_only_enabled:!1},assistant_view:{assistant_description:`A helpful assistant powered by Blink`}},oauth_config:{scopes:{bot:[`app_mentions:read`,`assistant:write`,`reactions:write`,`reactions:read`,`channels:history`,`chat:write`,`groups:history`,`groups:read`,`files:read`,`im:history`,`im:read`,`im:write`,`mpim:history`,`mpim:read`,`users:read`,`links:read`,`commands`]}},settings:{event_subscriptions:{request_url:M,bot_events:[`app_mention`,`message.channels`,`message.groups`,`message.im`,`reaction_added`,`reaction_removed`,`assistant_thread_started`,`member_joined_channel`]},interactivity:{is_enabled:!0,request_url:M},token_rotation_enabled:!1,org_deploy_enabled:!1,socket_mode_enabled:!1}},K=p(G);n.info(`Please visit this URL to create your Slack app and return here after finishing:\n\n${u.gray(K)}\n`);let q=await c({message:`Open this URL in your browser automatically?`,initialValue:!0});if(s(q)){n.warn(`Skipping Slack app setup`);return}q&&await l(K,`Could not open the browser. Please visit the URL manually.`);let J=await o({message:`After creating the app, paste the App ID from the "Basic Information" page:`,placeholder:`A01234567AB`,validate:e=>{if(!e||e.trim().length===0)return`App ID is required`}});if(s(J)){n.warn(`Skipping Slack app setup`);return}if(N=await a({message:`Paste your Signing Secret from the same page:`,validate:e=>{if(!e||e.trim().length===0)return`Signing secret is required`}}),s(N)){n.warn(`Skipping Slack app setup`);return}let Y=!1;for(;!Y;){if(P=await a({message:`Install your app and paste your Bot Token from ${u.cyan(`https://api.slack.com/apps/${J}/install-on-team`)}`,validate:e=>{if(!e||e.trim().length===0)return`Bot token is required`}}),s(P)){n.warn(`Skipping Slack app setup`);return}let e=i();e.start(`Verifying bot token...`);let t=await T(P);if(t.valid)e.stop(`✓ Bot token verified!`),Y=!0;else{e.stop(`✗ Failed to verify bot token: ${t.error}`);let r=await c({message:`Would you like to try again?`,initialValue:!0});if(s(r)||!r){n.warn(`Skipping Slack app setup`);return}}}await O(w,P,N),n.success(`Credentials saved to .env.local`),await U;let X=i();X.start(`Try sending a DM to the bot on Slack - it's ${u.bold(u.cyan(A))} in the search bar.`);let Z={bun:`bun run dev`,npm:`npm run dev`,pnpm:`pnpm run dev`,yarn:`yarn dev`}[S];for(;!F;){if(R){if(X.stop(`✗ Invalid signing secret detected`),z&&P)try{await fetch(`https://slack.com/api/chat.postMessage`,{method:`POST`,headers:{Authorization:`Bearer ${P}`,"Content-Type":`application/json`},body:JSON.stringify({channel:z,text:`⚠️ There seems to be a problem with the signing secret. Please check the CLI for instructions on how to fix it.`})})}catch{}let e=await a({message:`The signing secret appears to be incorrect. Please paste the correct Signing Secret from ${u.cyan(`https://api.slack.com/apps/${J}/general`)}`,validate:e=>{if(!e||e.trim().length===0)return`Signing secret is required`}});if(s(e)){n.warn(`Skipping Slack app setup`);return}N=e,R=!1,z=void 0,await O(w,void 0,N),X.start(`Please try sending a DM to the bot again on Slack...`)}await new Promise(e=>setTimeout(e,500))}X.stop(u.green(`✓ DM received!`));try{await fetch(`https://slack.com/api/chat.postMessage`,{method:`POST`,headers:{Authorization:`Bearer ${P}`,"Content-Type":`application/json`},body:JSON.stringify({channel:I,thread_ts:L,text:`Congrats, your app is now installed and ready to use! Run \`${Z}\` to use your agent.`})})}catch(e){n.warn(`Could not send message to Slack: ${C.inspect(e)}`)}n.success(`Slack app setup complete!`)}catch(e){b.e=e}finally{b.d()}}async function j(e){e||=process.cwd(),t(`Setting up Slack app`),await A(e),process.exit(0)}async function M(e,t){let n=``;try{n=await b(e,`utf-8`)}catch{}n=n.replace(/^(GITHUB_APP_ID=.*)/gm,`# $1`).replace(/^(GITHUB_CLIENT_ID=.*)/gm,`# $1`).replace(/^(GITHUB_CLIENT_SECRET=.*)/gm,`# $1`).replace(/^(GITHUB_WEBHOOK_SECRET=.*)/gm,`# $1`).replace(/^(GITHUB_PRIVATE_KEY=.*)/gm,`# $1`),n=`${n.trimEnd()}\n`;let r=`
|
|
3
|
-
# GitHub App credentials
|
|
4
|
-
GITHUB_APP_ID=${t.id}
|
|
5
|
-
GITHUB_CLIENT_ID=${t.client_id}
|
|
6
|
-
GITHUB_CLIENT_SECRET=${t.client_secret}
|
|
7
|
-
GITHUB_WEBHOOK_SECRET=${t.webhook_secret}
|
|
8
|
-
GITHUB_PRIVATE_KEY="${btoa(t.pem)}"
|
|
9
|
-
`;await S(e,n+r,`utf-8`)}async function N(e,t){let a=t?.name||_(e).replace(/[^a-zA-Z0-9]/g,`-`),p=v(e,`.env.local`);try{await y(p)}catch{n.error(`No .env.local file found in this directory. Please run this command from a Blink agent directory.`),r(`GitHub App setup cancelled`);return}let g=await o({message:`What should your GitHub App be called? This will be the name displayed on GitHub. You can change it later.`,placeholder:a,defaultValue:a,validate:e=>{if(!e||e.trim().length===0)return`App name cannot be empty`}});if(s(g))return;let b=await o({message:`Enter a GitHub organization name to create the app under, or leave blank for a personal app:`,placeholder:`Leave blank for personal app`,defaultValue:``});if(s(b))return;let x=b&&b.trim().length>0?b.trim():void 0,S=h(e)?m(e):d(e);if(!S)throw Error(`Failed to obtain devhook ID`);let C=`https://${S}.blink.host`,w={name:g.toString(),url:`https://blink.so`,description:`A Blink agent for GitHub`,public:!1,hook_attributes:{url:C,active:!0},default_events:[`issues`,`issue_comment`,`pull_request`,`pull_request_review`,`pull_request_review_comment`,`push`],default_permissions:{contents:`write`,issues:`write`,pull_requests:`write`,metadata:`read`}},T,E,D=new Promise((e,t)=>{T=e,E=t}),O=i(),k=await f(w,x,async(e,t)=>{if(e){E(e);return}t&&T(t)});n.info(`Please visit this URL to create your GitHub App and return here after finishing:\n\n${u.gray(k)}\n`);let A=await c({message:`Open this URL in your browser automatically?`,initialValue:!0});if(s(A)){n.warn(`Skipping GitHub App setup`);return}A&&await l(k,`Could not open the browser. Please visit the URL manually.`),O.start(`Waiting for GitHub App creation to complete...`);let j;try{j=await D}catch(e){O.stop(`Failed to create GitHub App: ${e instanceof Error?e.message:String(e)}`);return}O.stop(u.green(`✓ GitHub App "${j.name}" created!`)),await M(p,j),n.success(`Credentials saved to .env.local`),n.info(`\nYour GitHub App is available at: ${u.cyan(j.html_url)}`),n.info(`\nTo install the app on repositories, visit: ${u.cyan(`${j.html_url}/installations/new`)}`),n.success(`GitHub App setup complete!`)}async function P(e){e||=process.cwd(),t(`Setting up GitHub App`),await N(e),process.exit(0)}export{N as setupGithubApp,P as setupGithubAppCommand,A as setupSlackApp,j as setupSlackAppCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./token-error-BoNG8ooW.cjs`);const e=require(`./token-util-BxSJFXkT.cjs`);Object.defineProperty(exports,`default`,{enumerable:!0,get:function(){return e.require_token_util()}});
|