@stackone/cli 1.28.0 → 1.29.0
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/{agentApiKey-CYYGF62G.cjs → agentApiKey-BDp7EFMI.cjs} +1 -1
- package/dist/agentApiKey-BhO6uR40.cjs +1 -0
- package/dist/agentApiKey-BoYyBKnD.mjs +1 -0
- package/dist/{agentApiKey-B_MAvZD5.mjs → agentApiKey-CWXxJgCO.mjs} +1 -1
- package/dist/agentConfig-BWQWMYKQ.mjs +1 -0
- package/dist/agentConfig-KBkYYmMr.cjs +1 -0
- package/dist/cli.cjs +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/cliCore-Bil5LSaV.mjs +169 -0
- package/dist/{cliCore-BZmiirUQ.cjs → cliCore-CVaQgq11.cjs} +44 -45
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/setupMigration-BAPr-YQq.cjs +1 -0
- package/dist/{setupMigration-BpD5tEih.mjs → setupMigration-C1ShGzOu.mjs} +1 -1
- package/dist/setupMigration-D_zUtD_W.mjs +1 -0
- package/dist/{setupMigration-3K7JjngB.cjs → setupMigration-rqPZ8MV6.cjs} +1 -1
- package/dist/{trustedFolders-IXmvFiFL.mjs → trustedFolders-6UfkywNe.mjs} +1 -1
- package/dist/{trustedFolders-gZoHNEqP.cjs → trustedFolders-C3hB4Qg3.cjs} +1 -1
- package/package.json +6 -6
- package/dist/agentApiKey-C7xT70Mb.cjs +0 -1
- package/dist/agentApiKey-CB8aRrYh.mjs +0 -1
- package/dist/agentConfig-B611vXt-.cjs +0 -1
- package/dist/agentConfig-BYVhMKrd.mjs +0 -1
- package/dist/cliCore-CiTDoQaU.mjs +0 -170
- package/dist/setupMigration-BGBr1Cnb.mjs +0 -1
- package/dist/setupMigration-BcC5gAr5.cjs +0 -1
- /package/dist/{fileNames-CsjGtN4o.mjs → fileNames-DzZBY06N.mjs} +0 -0
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./agentConfig-
|
|
1
|
+
require(`./agentConfig-KBkYYmMr.cjs`);const e=require(`./cliCore-CVaQgq11.cjs`);require(`./setupMigration-rqPZ8MV6.cjs`),require(`./agentApiKey-BDp7EFMI.cjs`),exports.CLI=e.t;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{t as e}from"./cliCore-Bil5LSaV.mjs";import"./agentConfig-BWQWMYKQ.mjs";import"./setupMigration-C1ShGzOu.mjs";import"./agentApiKey-CWXxJgCO.mjs";export{e as CLI};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./agentConfig-KBkYYmMr.cjs`);const e=require(`./setupMigration-rqPZ8MV6.cjs`);exports.displayMigrationMessage=e.t,exports.hasOldSetupFiles=e.n,exports.migrateFromLocalSetup=e.r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,c as t,f as n,g as r,m as i,s as a,t as o,u as s,w as c}from"./agentConfig-
|
|
1
|
+
import{a as e,c as t,f as n,g as r,m as i,s as a,t as o,u as s,w as c}from"./agentConfig-BWQWMYKQ.mjs";import l from"chalk";import{existsSync as u,readFileSync as d}from"node:fs";import{join as f}from"node:path";const p=e=>!e||!e.startsWith(`Bearer `)||e.includes("${")?null:e.slice(7).trim()||null,m=e=>[`${e}/.env`,`${e}/CLAUDE.md`,`${e}/.mcp.json`].some(e=>u(e)),h=e=>{let t=f(e,`.env`);if(!u(t))return{token:null,action:null};try{let e=d(t,`utf-8`).match(/STACKONE_AGENT(?:_MCP)?_TOKEN=(.+)/);if(e?.[1])return{token:e[1].trim().replace(/^["']|["']$/g,``),action:`Found token in ${t} (${e[0].split(`=`)[0]})`}}catch{}return{token:null,action:null}},g=(e,n)=>{let i=f(e,`.mcp.json`);if(!u(i))return{token:null,actions:[]};let s=[],l=null;try{let e=d(i,`utf-8`),c=JSON.parse(e);if(!c.mcpServers||typeof c.mcpServers!=`object`)return{token:null,actions:[]};let u=[t(),a()],f=e=>u.some(t=>e.includes(t)||e.includes(`stackone`));for(let[e,t]of Object.entries(c.mcpServers)){if(!t||typeof t!=`object`||!f(e))continue;let n=t,r=n.transport?.headers??n.headers;if(r?.Authorization){let e=p(r.Authorization);e&&(l=e)}}let m=n??l,h=!1;if(m)for(let e of Object.keys(c.mcpServers))f(e)&&(c.mcpServers[e]=o(m),h=!0,s.push(`Upgraded ${e} in .mcp.json`));h&&r(i,c)}catch(e){if(e instanceof SyntaxError)return c.debug(`Unable to parse .mcp.json at ${i}: ${e.message}`),{token:l,actions:s};throw e}return{token:l,actions:s}},_=t=>{let i=e(),a=n(i);if(!a?.mcpServers)return{token:null,actions:[]};let s=[],c=null,l=!1;for(let[e,n]of Object.entries(a.mcpServers)){if(!e.includes(`stackone`)||!n||typeof n!=`object`)continue;let r=n.headers;if(!r?.Authorization)continue;let i=p(r.Authorization);if(!i)continue;c=i;let u=t??i;a.mcpServers[e]=o(u),l=!0,s.push(`Upgraded ${e} in ~/.claude.json`)}return l&&r(i,a),{token:c,actions:s}},v=e=>e?(e.lastMigrationVersion??0)<1:!0,y=async e=>{e&&await i({...e,lastMigrationVersion:1})},b=async(e,t=null)=>{let n={migrated:!1,actions:[],extractedToken:null};if(!v(await s()))return n;let r=h(e);r.token&&(n.extractedToken=r.token),r.action&&n.actions.push(r.action);let i=t??n.extractedToken,a=g(e,i);a.token&&!n.extractedToken&&(n.extractedToken=a.token),n.actions.push(...a.actions);let o=_(i??a.token);o.token&&!n.extractedToken&&(n.extractedToken=o.token),n.actions.push(...o.actions),n.migrated=n.actions.length>0;let c=await s();return c&&await y(c),n},x=e=>{if(e.migrated){c.log(``),c.log(l.blue.bold(`🔄 Migration`)),c.log(``);for(let t of e.actions)c.log(l.green(` ✓ ${t}`));c.log(``),c.log(l.dim(`MCP server configs have been updated to the current format.`)),c.log(``)}};export{m as n,b as r,x as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./agentConfig-BWQWMYKQ.mjs";import{n as e,r as t,t as n}from"./setupMigration-C1ShGzOu.mjs";export{n as displayMigrationMessage,e as hasOldSetupFiles,t as migrateFromLocalSetup};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./agentConfig-
|
|
1
|
+
const e=require(`./agentConfig-KBkYYmMr.cjs`);let t=require(`chalk`);t=e.E(t);let n=require(`node:fs`),r=require(`node:path`);const i=1,a=e=>!e||!e.startsWith(`Bearer `)||e.includes("${")?null:e.slice(7).trim()||null,o=e=>[`${e}/.env`,`${e}/CLAUDE.md`,`${e}/.mcp.json`].some(e=>(0,n.existsSync)(e)),s=e=>{let t=(0,r.join)(e,`.env`);if(!(0,n.existsSync)(t))return{token:null,action:null};try{let e=(0,n.readFileSync)(t,`utf-8`).match(/STACKONE_AGENT(?:_MCP)?_TOKEN=(.+)/);if(e?.[1])return{token:e[1].trim().replace(/^["']|["']$/g,``),action:`Found token in ${t} (${e[0].split(`=`)[0]})`}}catch{}return{token:null,action:null}},c=(t,i)=>{let o=(0,r.join)(t,`.mcp.json`);if(!(0,n.existsSync)(o))return{token:null,actions:[]};let s=[],c=null;try{let t=(0,n.readFileSync)(o,`utf-8`),r=JSON.parse(t);if(!r.mcpServers||typeof r.mcpServers!=`object`)return{token:null,actions:[]};let l=[e.c(),e.s()],u=e=>l.some(t=>e.includes(t)||e.includes(`stackone`));for(let[e,t]of Object.entries(r.mcpServers)){if(!t||typeof t!=`object`||!u(e))continue;let n=t,r=n.transport?.headers??n.headers;if(r?.Authorization){let e=a(r.Authorization);e&&(c=e)}}let d=i??c,f=!1;if(d)for(let t of Object.keys(r.mcpServers))u(t)&&(r.mcpServers[t]=e.t(d),f=!0,s.push(`Upgraded ${t} in .mcp.json`));f&&e.g(o,r)}catch(t){if(t instanceof SyntaxError)return e.w.debug(`Unable to parse .mcp.json at ${o}: ${t.message}`),{token:c,actions:s};throw t}return{token:c,actions:s}},l=t=>{let n=e.a(),r=e.f(n);if(!r?.mcpServers)return{token:null,actions:[]};let i=[],o=null,s=!1;for(let[n,c]of Object.entries(r.mcpServers)){if(!n.includes(`stackone`)||!c||typeof c!=`object`)continue;let l=c.headers;if(!l?.Authorization)continue;let u=a(l.Authorization);if(!u)continue;o=u;let d=t??u;r.mcpServers[n]=e.t(d),s=!0,i.push(`Upgraded ${n} in ~/.claude.json`)}return s&&e.g(n,r),{token:o,actions:i}},u=e=>e?(e.lastMigrationVersion??0)<1:!0,d=async t=>{t&&await e.m({...t,lastMigrationVersion:1})},f=async(t,n=null)=>{let r={migrated:!1,actions:[],extractedToken:null};if(!u(await e.u()))return r;let i=s(t);i.token&&(r.extractedToken=i.token),i.action&&r.actions.push(i.action);let a=n??r.extractedToken,o=c(t,a);o.token&&!r.extractedToken&&(r.extractedToken=o.token),r.actions.push(...o.actions);let f=l(a??o.token);f.token&&!r.extractedToken&&(r.extractedToken=f.token),r.actions.push(...f.actions),r.migrated=r.actions.length>0;let p=await e.u();return p&&await d(p),r},p=n=>{if(n.migrated){e.w.log(``),e.w.log(t.default.blue.bold(`🔄 Migration`)),e.w.log(``);for(let r of n.actions)e.w.log(t.default.green(` ✓ ${r}`));e.w.log(``),e.w.log(t.default.dim(`MCP server configs have been updated to the current format.`)),e.w.log(``)}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return p}});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{r as e}from"./fileNames-
|
|
1
|
+
import{r as e}from"./fileNames-DzZBY06N.mjs";import{existsSync as t,mkdirSync as n,readFileSync as r,writeFileSync as i}from"fs";import{homedir as a}from"os";import{basename as o,dirname as s,join as c}from"path";const l=c(a(),`.stackone`);function u(){return c(l,e)}function d(){return c(l,`trusted_directories_metadata.json`)}function f(){let e=d();if(!t(e))return{};let n=r(e,`utf-8`);return JSON.parse(n)}function p(e){let r=d(),a=s(r);t(a)||n(a,{recursive:!0}),i(r,JSON.stringify(e,null,2),`utf-8`)}function m(){let e=u();return t(e)?r(e,`utf-8`).split(`
|
|
2
2
|
`).map(e=>e.trim()).filter(e=>e.length>0):[]}function h(e){let r=u(),a=s(r);t(a)||n(a,{recursive:!0}),i(r,e.join(`
|
|
3
3
|
`),`utf-8`)}function g(e){let t=m();if(!t.includes(e)){t.push(e),h(t);let n=f();n[e]={trustedAt:new Date().toISOString()},p(n)}}function _(e){let t=m(),n=t.indexOf(e);if(n!==-1){t.splice(n,1),h(t);let r=f();return delete r[e],p(r),!0}return!1}function v(){let e=m(),t=f();return e.map(e=>({path:e,name:o(e)||e,trusted:!0,trustedAt:t[e]?.trustedAt}))}export{g as addTrustedFolder,v as getTrustedFoldersForDisplay,_ as removeTrustedFolder};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const e=require(`./agentConfig-
|
|
1
|
+
const e=require(`./agentConfig-KBkYYmMr.cjs`),t=require(`./fileNames-Booqk8P6.cjs`);let n=require(`fs`),r=require(`os`),i=require(`path`);const a=(0,i.join)((0,r.homedir)(),`.stackone`),o=`trusted_directories_metadata.json`;function s(){return(0,i.join)(a,t.r)}function c(){return(0,i.join)(a,`trusted_directories_metadata.json`)}function l(){let e=c();if(!(0,n.existsSync)(e))return{};let t=(0,n.readFileSync)(e,`utf-8`);return JSON.parse(t)}function u(e){let t=c(),r=(0,i.dirname)(t);(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0}),(0,n.writeFileSync)(t,JSON.stringify(e,null,2),`utf-8`)}function d(){let e=s();return(0,n.existsSync)(e)?(0,n.readFileSync)(e,`utf-8`).split(`
|
|
2
2
|
`).map(e=>e.trim()).filter(e=>e.length>0):[]}function f(e){let t=s(),r=(0,i.dirname)(t);(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0}),(0,n.writeFileSync)(t,e.join(`
|
|
3
3
|
`),`utf-8`)}function p(e){let t=d();if(!t.includes(e)){t.push(e),f(t);let n=l();n[e]={trustedAt:new Date().toISOString()},u(n)}}function m(e){let t=d(),n=t.indexOf(e);if(n!==-1){t.splice(n,1),f(t);let r=l();return delete r[e],u(r),!0}return!1}function h(){let e=d(),t=l();return e.map(e=>({path:e,name:(0,i.basename)(e)||e,trusted:!0,trustedAt:t[e]?.trustedAt}))}exports.addTrustedFolder=p,exports.getTrustedFoldersForDisplay=h,exports.removeTrustedFolder=m;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackone/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.29.0",
|
|
4
4
|
"description": "StackOne Connect CLI tool",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"@clack/prompts": "0.11.0",
|
|
51
51
|
"@stackone/agent-config": "1.4.0",
|
|
52
52
|
"@stackone/agent-harness": "0.9.2",
|
|
53
|
-
"@stackone/connect-sdk": "2.
|
|
54
|
-
"@stackone/core": "2.
|
|
55
|
-
"@stackone/defender": "0.5.
|
|
56
|
-
"@stackone/transport": "2.
|
|
53
|
+
"@stackone/connect-sdk": "2.45.0",
|
|
54
|
+
"@stackone/core": "2.36.0",
|
|
55
|
+
"@stackone/defender": "0.5.7",
|
|
56
|
+
"@stackone/transport": "2.19.0",
|
|
57
57
|
"@stackone/utils": "0.19.0",
|
|
58
58
|
"chalk": "5.6.2",
|
|
59
59
|
"chokidar": "5.0.0",
|
|
@@ -116,4 +116,4 @@
|
|
|
116
116
|
"fast-xml-parser": "5.4.2"
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
}
|
|
119
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./agentConfig-B611vXt-.cjs`);const e=require(`./agentApiKey-CYYGF62G.cjs`);exports.CredentialExpiredError=e.t,exports.CredentialMissingError=e.n,exports.getAgentApiKey=e.r,exports.getAgentCredentialStatus=e.i;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./agentConfig-BYVhMKrd.mjs";import{i as e,n as t,r as n,t as r}from"./agentApiKey-B_MAvZD5.mjs";export{r as CredentialExpiredError,t as CredentialMissingError,n as getAgentApiKey,e as getAgentCredentialStatus};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require(`./fileNames-Booqk8P6.cjs`);let l=require(`chalk`);l=s(l);let u=require(`node:fs`),d=require(`node:os`),f=require(`node:path`),p=require(`fs`),m=require(`os`),h=require(`path`),g=require(`consola`),_=require(`json-colorizer`);const v=(0,g.createConsola)({level:4,formatOptions:{columns:80,colors:!0,compact:!1,date:!1}}),y=e=>{v.log((0,_.colorize)(e,{indent:2,colors:{Whitespace:_.color.gray,Brace:_.color.gray,Bracket:_.color.gray,Colon:_.color.gray,Comma:_.color.gray,StringKey:_.color.white,StringLiteral:_.color.yellow,NumberLiteral:_.color.green,BooleanLiteral:_.color.cyan,NullLiteral:_.color.white}}))},b=(e=[],t)=>{e.length!==0&&(v.log(`${e.length} error${e.length>1?`s`:``} found:`),e.forEach(e=>{let n=`line`in e?e.line:void 0,r=t&&n?`L${n}: `:``;v.log(`- ${r}${e.message}`)}))},x=async(e,t=`Request failed`)=>{v.error(`${t}: ${e.status} - ${e.statusText}`);let n=await e.text();if(!n)return;let r;try{r=JSON.parse(n)}catch{}r?y(r):v.log(n)},S=e=>l.default.cyan(e),C=e=>l.default.yellow(e),w=e=>l.default.red(e),T=()=>{process.stdout.write(`\x1Bc`)};var E=class{static{this.configDir=(0,h.join)((0,m.homedir)(),`.stackone`)}static ensureConfigDir(){if((0,p.existsSync)(this.configDir)){if(!(0,p.lstatSync)(this.configDir).isDirectory()){let e=null;try{v.info(`.stackone exists as a file, checking for migration to config directory...`),e=(0,p.readFileSync)(this.configDir,`utf8`)}catch{}if((0,p.rmSync)(this.configDir,{force:!0}),require(`fs`).mkdirSync(this.configDir,{recursive:!0}),e)try{JSON.parse(e),(0,p.writeFileSync)((0,h.join)(this.configDir,c.n),e,`utf8`),v.success(`Migrated existing .stackone file content to config.json`)}catch{v.warn(`Note: Existing .stackone file was not valid JSON, skipping migration`)}else v.warn(`Note: Existing .stackone file was not valid JSON, skipping migration`)}}else require(`fs`).mkdirSync(this.configDir,{recursive:!0})}static getConfigDir(){return this.configDir}static writeConfigFile(e,t,n){this.ensureConfigDir();let r=(0,h.join)(this.configDir,e);(0,p.writeFileSync)(r,t,`utf8`),n?.mode!==void 0&&require(`fs`).chmodSync(r,n.mode)}static readConfigFile(e){this.ensureConfigDir();let t=(0,h.join)(this.configDir,e);if(!(0,p.existsSync)(t))return null;try{return(0,p.readFileSync)(t,`utf8`)}catch{return null}}static deleteConfigFile(e){let t=(0,h.join)(this.configDir,e);(0,p.existsSync)(t)&&(0,p.rmSync)(t,{force:!0})}};const D=`stackone-agent-global`,O=`stackone-agent-local`,k=process.env.STACKONE_AGENT_SERVER_URL||`https://mcp-internal-falcon.stackonehq.workers.dev/mcp`;async function A(e){E.writeConfigFile(c.t,JSON.stringify(e,null,2),{mode:384})}async function j(){let e=E.readConfigFile(c.t);if(!e)return null;try{return JSON.parse(e)}catch{return null}}function M(){let e=E.readConfigFile(c.t);if(!e)return null;try{return JSON.parse(e)}catch{return null}}async function N(){E.deleteConfigFile(c.t)}function P(){return k}function F(){return`stackone-agent-global`}function I(){return`stackone-agent-local`}function L(e){let t=new Date(e).getTime();return Number.isNaN(t)?!0:t<=Date.now()}function R(e){return!!e?.apiKey&&!L(e.expiresAt)}function z(e){if(!e?.apiKey||!e?.expiresAt)return{status:`missing`};let t=e.expiresAt,n=new Date(t).getTime();if(Number.isNaN(n))return{status:`expired`,expiresAt:t};let r=n-Date.now();return r<=0?{status:`expired`,expiresAt:t}:r<1440*60*1e3?{status:`expiring_soon`,expiresAt:t,timeRemaining:{hours:Math.floor(r/(3600*1e3)),minutes:Math.floor(r%(3600*1e3)/(60*1e3))}}:{status:`valid`,expiresAt:t,timeRemaining:{days:Math.floor(r/(1440*60*1e3)),hours:Math.floor(r%(1440*60*1e3)/(3600*1e3))}}}const B=e=>({type:`http`,url:P(),headers:{Authorization:`Bearer ${e}`}}),V=e=>{if(!(0,u.existsSync)(e))return null;try{return JSON.parse((0,u.readFileSync)(e,`utf-8`))}catch{return null}},H=(e,t)=>{(0,u.writeFileSync)(e,`${JSON.stringify(t,null,2)}\n`),(0,u.chmodSync)(e,384)},U=(e,t,n)=>{let r=V(e)??{};r.mcpServers||={},r.mcpServers[t]=B(n),H(e,r)},W=(e,t)=>{let n=V(e);return n?.mcpServers?.[t]?(delete n.mcpServers[t],H(e,n),!0):!1},G=()=>(0,f.join)((0,d.homedir)(),`.claude.json`),K=e=>(0,f.join)(e,`.mcp.json`);Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return b}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./fileNames-CsjGtN4o.mjs";import{createRequire as n}from"node:module";import r from"chalk";import{chmodSync as i,existsSync as a,readFileSync as o,writeFileSync as s}from"node:fs";import{homedir as c}from"node:os";import{join as l}from"node:path";import{existsSync as u,lstatSync as d,readFileSync as f,rmSync as p,writeFileSync as m}from"fs";import{homedir as h}from"os";import{join as g}from"path";import{createConsola as _}from"consola";import{color as v,colorize as y}from"json-colorizer";var b=n(import.meta.url);const x=_({level:4,formatOptions:{columns:80,colors:!0,compact:!1,date:!1}}),S=e=>{x.log(y(e,{indent:2,colors:{Whitespace:v.gray,Brace:v.gray,Bracket:v.gray,Colon:v.gray,Comma:v.gray,StringKey:v.white,StringLiteral:v.yellow,NumberLiteral:v.green,BooleanLiteral:v.cyan,NullLiteral:v.white}}))},C=(e=[],t)=>{e.length!==0&&(x.log(`${e.length} error${e.length>1?`s`:``} found:`),e.forEach(e=>{let n=`line`in e?e.line:void 0,r=t&&n?`L${n}: `:``;x.log(`- ${r}${e.message}`)}))},w=async(e,t=`Request failed`)=>{x.error(`${t}: ${e.status} - ${e.statusText}`);let n=await e.text();if(!n)return;let r;try{r=JSON.parse(n)}catch{}r?S(r):x.log(n)},T=e=>r.cyan(e),E=e=>r.yellow(e),D=e=>r.red(e),O=()=>{process.stdout.write(`\x1Bc`)};var k=class{static{this.configDir=g(h(),`.stackone`)}static ensureConfigDir(){if(u(this.configDir)){if(!d(this.configDir).isDirectory()){let t=null;try{x.info(`.stackone exists as a file, checking for migration to config directory...`),t=f(this.configDir,`utf8`)}catch{}if(p(this.configDir,{force:!0}),b(`fs`).mkdirSync(this.configDir,{recursive:!0}),t)try{JSON.parse(t),m(g(this.configDir,e),t,`utf8`),x.success(`Migrated existing .stackone file content to config.json`)}catch{x.warn(`Note: Existing .stackone file was not valid JSON, skipping migration`)}else x.warn(`Note: Existing .stackone file was not valid JSON, skipping migration`)}}else b(`fs`).mkdirSync(this.configDir,{recursive:!0})}static getConfigDir(){return this.configDir}static writeConfigFile(e,t,n){this.ensureConfigDir();let r=g(this.configDir,e);m(r,t,`utf8`),n?.mode!==void 0&&b(`fs`).chmodSync(r,n.mode)}static readConfigFile(e){this.ensureConfigDir();let t=g(this.configDir,e);if(!u(t))return null;try{return f(t,`utf8`)}catch{return null}}static deleteConfigFile(e){let t=g(this.configDir,e);u(t)&&p(t,{force:!0})}};const A=process.env.STACKONE_AGENT_SERVER_URL||`https://mcp-internal-falcon.stackonehq.workers.dev/mcp`;async function j(e){k.writeConfigFile(t,JSON.stringify(e,null,2),{mode:384})}async function M(){let e=k.readConfigFile(t);if(!e)return null;try{return JSON.parse(e)}catch{return null}}function N(){let e=k.readConfigFile(t);if(!e)return null;try{return JSON.parse(e)}catch{return null}}async function P(){k.deleteConfigFile(t)}function F(){return A}function I(){return`stackone-agent-global`}function L(){return`stackone-agent-local`}function R(e){let t=new Date(e).getTime();return Number.isNaN(t)?!0:t<=Date.now()}function z(e){return!!e?.apiKey&&!R(e.expiresAt)}function B(e){if(!e?.apiKey||!e?.expiresAt)return{status:`missing`};let t=e.expiresAt,n=new Date(t).getTime();if(Number.isNaN(n))return{status:`expired`,expiresAt:t};let r=n-Date.now();return r<=0?{status:`expired`,expiresAt:t}:r<1440*60*1e3?{status:`expiring_soon`,expiresAt:t,timeRemaining:{hours:Math.floor(r/(3600*1e3)),minutes:Math.floor(r%(3600*1e3)/(60*1e3))}}:{status:`valid`,expiresAt:t,timeRemaining:{days:Math.floor(r/(1440*60*1e3)),hours:Math.floor(r%(1440*60*1e3)/(3600*1e3))}}}const V=e=>({type:`http`,url:F(),headers:{Authorization:`Bearer ${e}`}}),H=e=>{if(!a(e))return null;try{return JSON.parse(o(e,`utf-8`))}catch{return null}},U=(e,t)=>{s(e,`${JSON.stringify(t,null,2)}\n`),i(e,384)},W=(e,t,n)=>{let r=H(e)??{};r.mcpServers||={},r.mcpServers[t]=V(n),U(e,r)},G=(e,t)=>{let n=H(e);return n?.mcpServers?.[t]?(delete n.mcpServers[t],U(e,n),!0):!1},K=()=>l(c(),`.claude.json`),q=e=>l(e,`.mcp.json`);export{T as C,b as E,D as S,E as T,k as _,K as a,S as b,L as c,N as d,H as f,U as g,W as h,B as i,z as l,j as m,P as n,q as o,G as p,F as r,I as s,V as t,M as u,O as v,x as w,w as x,C as y};
|