skill-atlas-cli 0.9.1 → 0.10.1
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/bin/cli.js +1 -1
- package/lib/index.js +1 -1
- package/package.json +2 -2
package/bin/cli.js
CHANGED
|
@@ -54,7 +54,7 @@ Example: skill-atlas install-batch weather search-tool`});let a=X.createProgress
|
|
|
54
54
|
`),j.default.green(`上传记录 (第 ${t} 页,共 ${n} 条)`))}function Wr(e){if(e instanceof F)switch(e.code){case`UNAUTHORIZED`:return`认证失败,请重新执行 agent-register`;default:return e.message||`请求失败`}return e instanceof Error?e.message:String(e)}var Gr={run:async(e,t)=>{h.intro(j.default.bold(`skill-atlas skill-upload-list`));let n=!process.stdout.isTTY||!process.stdin.isTTY,r=X.createProgressReporter(n);r.start(`正在查询上传记录...`);try{let n=await qt({slug:e.slug,status:e.status,page:e.page,pageSize:e.pageSize},t.token);n.success||(r.stop(`查询失败`),h.log.error(n.message||`查询上传记录失败`),process.exit(1)),r.stop(`查询完成`),Ur(n.data?.items??[],n.data?.page??1,n.data?.total??0),h.outro(j.default.green(`完成!`))}catch(e){r.stop(`查询失败`),h.log.error(Wr(e)),process.exit(1)}}};function Kr(e){return e.serviceCode?.trim()?e.payload?.trim()?{valid:!0}:{valid:!1,error:`缺少必需参数: --payload`}:{valid:!1,error:`缺少必需参数: --service-code`}}function qr(e){try{let t=JSON.parse(e);return typeof t!=`object`||!t||Array.isArray(t)?{valid:!1,error:`payload 必须是有效的 JSON 对象`}:{valid:!0,payload:t}}catch{return{valid:!1,error:`payload 必须是有效的 JSON 格式`}}}function Jr(e,t){let n={payload:e};return t.clientRequestId?.trim()&&(n.clientRequestId=t.clientRequestId.trim()),t.skillExecutionId?.trim()&&(n.skillExecutionId=t.skillExecutionId.trim()),t.skillSlug?.trim()&&(n.skillSlug=t.skillSlug.trim()),n}function Yr(e){if(e instanceof F)switch(e.code){case`SERVICE_DISABLED`:return`服务凭据冷却中,请稍后重试`;case`UPSTREAM_ERROR`:return`第三方服务拒绝请求`;case`UPSTREAM_TIMEOUT_CHARGED`:return`上游服务超时,已按消费处理`;case`UNAUTHORIZED`:return`认证失败,请重新执行 agent-register`;case`INSUFFICIENT_CREDITS`:return`Credits 余额不足`;default:return e.message||`请求失败`}return e instanceof Error?e.message:String(e)}function Xr(e,t){return`本次扣费: ${e} credits | 剩余: ${t} credits`}var Zr={run:async(e,t)=>{h.intro(j.default.bold(`skill-atlas service-gateway-invoke`));let n=Kr(e);if(!n.valid){h.log.error(n.error),process.exit(1);return}let r=qr(e.payload);if(!r.valid){h.log.error(r.error),process.exit(1);return}let i=Jr(r.payload,e),a=e.serviceCode.trim(),o=!process.stdout.isTTY||!process.stdin.isTTY,s=X.createProgressReporter(o);s.start(`正在调用服务: ${a}...`);let c;try{c=await Yt(a,i,t.token,void 0,18e4)}catch(e){s.stop(`调用失败`);let t=Yr(e);if(h.log.error(t),e instanceof F&&e.responseData){let t=e.responseData;t.data?.creditsCharged!==void 0&&t.data?.creditsBalance!==void 0&&h.log.info(Xr(t.data.creditsCharged,t.data.creditsBalance))}P.setLastError(e),process.exit(1);return}if(!c.success){s.stop(`调用失败`),h.log.error(c.message||`服务调用失败`),c.data?.creditsCharged!==void 0&&c.data?.creditsBalance!==void 0&&h.log.info(Xr(c.data.creditsCharged,c.data.creditsBalance)),P.setLastError(new F(c.message||`服务调用失败`,c.code,c)),process.exit(1);return}s.stop(`服务调用成功`);let l=c.data,u=[` ${j.default.green(`服务编码:`)} ${l.serviceCode}`,` ${j.default.green(`调用状态:`)} ${l.invokeStatus}`];l.creditsCharged!==void 0&&u.push(` ${j.default.green(`本次扣费:`)} ${l.creditsCharged} credits`),l.creditsBalance!==void 0&&u.push(` ${j.default.green(`剩余余额:`)} ${l.creditsBalance} credits`),h.note(u.join(`
|
|
55
55
|
`),j.default.green(`调用结果`)),l.result!==void 0&&(console.log(`
|
|
56
56
|
`+j.default.bold(`返回数据:`)),console.log(JSON.stringify(l.result,null,2))),h.outro(j.default.green(`完成!`))}};const Qr=process.env.SKILLATLAS_CONFIG_DIR||u.join(p.homedir(),`.skillatlas`),$r=u.join(Qr,`mail-config.json`);function ei(){e.existsSync(Qr)||e.mkdirSync(Qr,{recursive:!0})}function ti(){if(!e.existsSync($r))return{};try{let t=e.readFileSync($r,`utf-8`);return JSON.parse(t)}catch{return{}}}function ni(t){ei(),t.updatedAt=new Date().toISOString(),e.writeFileSync($r,JSON.stringify(t,null,2)+`
|
|
57
|
-
`)}function ri(e,t){let n=ti();n[e]=t,ni(n)}function ii(e){let t=ti()[e];if(t!=null)return String(t)}function ai(){let e=ti(),t=[];for(let[n,r]of Object.entries(e))n!==`updatedAt`&&r!=null&&t.push({key:n,value:String(r)});return t}function oi(e){return e in ti()&&e!==`updatedAt`}const si=[`主邮箱`,`工作`,`学习`,`金融`,`购物`,`社交`,`订阅`,`临时`,`项目`,`备用`];function ci(){return ii(`mailbox`)}const li={production:`
|
|
57
|
+
`)}function ri(e,t){let n=ti();n[e]=t,ni(n)}function ii(e){let t=ti()[e];if(t!=null)return String(t)}function ai(){let e=ti(),t=[];for(let[n,r]of Object.entries(e))n!==`updatedAt`&&r!=null&&t.push({key:n,value:String(r)});return t}function oi(e){return e in ti()&&e!==`updatedAt`}const si=[`主邮箱`,`工作`,`学习`,`金融`,`购物`,`社交`,`订阅`,`临时`,`项目`,`备用`];function ci(){return ii(`mailbox`)}const li={production:`skillhub.wanuai.cn`};function ui(e,t){return`https://${li.production}/agents/${e}?token=${t}`}var di={run:async(e,t)=>{h.intro(j.default.bold(`skill-atlas agent-info`));let{agentId:n,token:r}=t,i=ui(n,r),a=null,o=!1,s=X.createProgressReporter();s.start(`正在获取 Agent 信息...`);try{let e=await Zt(n,r);e.success&&e.data&&(a=e.data),s.stop(`获取成功`)}catch{o=!0,s.stop(`无法连接服务器,仅显示本地信息`)}let c=[];if(c.push(` ${j.default.green(`Agent ID:`)} ${n}`),c.push(` ${j.default.green(`环境:`)} 生产环境`),a?.metadata&&(c.push(` ${j.default.green(`名称:`)} ${a.metadata.name}`),a.metadata.avatar&&c.push(` ${j.default.green(`头像:`)} ${a.metadata.avatar}`)),a?.creditAccount){let e=a.creditAccount;c.push(``),c.push(` ${j.default.cyan(`--- 虾小宝 Credits 账户 ---`)}`),c.push(` ${j.default.green(`可用 Credits:`)} ${e.availableCredits}`),c.push(` ${j.default.green(`冻结 Credits:`)} ${e.frozenCredits}`),c.push(` ${j.default.green(`累计发放:`)} ${e.totalGrantedCredits}`),c.push(` ${j.default.green(`累计消费:`)} ${e.totalConsumedCredits}`),e.welcomeBonus&&c.push(` ${j.default.green(`Welcome Bonus:`)} ${e.welcomeBonus.grantStatus}`)}let l=ii(`mailbox`);l&&(c.push(``),c.push(` ${j.default.cyan(`--- 邮箱信息 ---`)}`),c.push(` ${j.default.green(`默认邮箱 ID:`)} ${l}`)),c.push(``),c.push(` ${j.default.green(`虾小宝主页链接:`)}`),c.push(` [您的虾小宝Agent 主页](${i})`),h.note(c.join(`
|
|
58
58
|
`),j.default.green(`Agent 信息`)),o&&h.log.warn(`无法获取在线信息,部分数据可能不完整`),h.outro(j.default.green(`完成!`))}};function fi(e){switch(e){case`consume`:return j.default.red(e);case`grant`:return j.default.green(e);case`refund`:return j.default.yellow(e);default:return e}}function pi(e){return e>0?j.default.green(`+${e}`):e<0?j.default.red(`${e}`):`${e}`}function mi(e,t,n){if(e.length===0){h.log.info(`暂无流水记录`);return}let r=e.map((e,t)=>[`${j.default.bold(j.default.cyan(`${t+1}. #${e.id}`))} ${fi(e.changeType)}`,` ${j.default.dim(`变更额度:`)} ${pi(e.deltaCredits)} | ${j.default.dim(`变更后余额:`)} ${e.balanceAfter}`,` ${j.default.dim(`服务编码:`)} ${e.serviceCode||j.default.dim(`N/A`)}`,` ${j.default.dim(`时间:`)} ${Z(e.createdAt)}`].join(`
|
|
59
59
|
`));h.note(r.join(`
|
|
60
60
|
|
package/lib/index.js
CHANGED
|
@@ -54,7 +54,7 @@ Example: skill-atlas install-batch weather search-tool`});let i=Z.createProgress
|
|
|
54
54
|
`),O.default.green(`上传记录 (第 ${t} 页,共 ${n} 条)`))}function Jr(e){if(e instanceof M)switch(e.code){case`UNAUTHORIZED`:return`认证失败,请重新执行 agent-register`;default:return e.message||`请求失败`}return e instanceof Error?e.message:String(e)}var Yr={run:async(e,t)=>{u.intro(O.default.bold(`skill-atlas skill-upload-list`));let n=!process.stdout.isTTY||!process.stdin.isTTY,r=Z.createProgressReporter(n);r.start(`正在查询上传记录...`);try{let n=await en({slug:e.slug,status:e.status,page:e.page,pageSize:e.pageSize},t.token);n.success||(r.stop(`查询失败`),u.log.error(n.message||`查询上传记录失败`),process.exit(1)),r.stop(`查询完成`),qr(n.data?.items??[],n.data?.page??1,n.data?.total??0),u.outro(O.default.green(`完成!`))}catch(e){r.stop(`查询失败`),u.log.error(Jr(e)),process.exit(1)}}};function Xr(e){return e.serviceCode?.trim()?e.payload?.trim()?{valid:!0}:{valid:!1,error:`缺少必需参数: --payload`}:{valid:!1,error:`缺少必需参数: --service-code`}}function Zr(e){try{let t=JSON.parse(e);return typeof t!=`object`||!t||Array.isArray(t)?{valid:!1,error:`payload 必须是有效的 JSON 对象`}:{valid:!0,payload:t}}catch{return{valid:!1,error:`payload 必须是有效的 JSON 格式`}}}function Qr(e,t){let n={payload:e};return t.clientRequestId?.trim()&&(n.clientRequestId=t.clientRequestId.trim()),t.skillExecutionId?.trim()&&(n.skillExecutionId=t.skillExecutionId.trim()),t.skillSlug?.trim()&&(n.skillSlug=t.skillSlug.trim()),n}function $r(e){if(e instanceof M)switch(e.code){case`SERVICE_DISABLED`:return`服务凭据冷却中,请稍后重试`;case`UPSTREAM_ERROR`:return`第三方服务拒绝请求`;case`UPSTREAM_TIMEOUT_CHARGED`:return`上游服务超时,已按消费处理`;case`UNAUTHORIZED`:return`认证失败,请重新执行 agent-register`;case`INSUFFICIENT_CREDITS`:return`Credits 余额不足`;default:return e.message||`请求失败`}return e instanceof Error?e.message:String(e)}function ei(e,t){return`本次扣费: ${e} credits | 剩余: ${t} credits`}var ti={run:async(e,t)=>{u.intro(O.default.bold(`skill-atlas service-gateway-invoke`));let n=Xr(e);if(!n.valid){u.log.error(n.error),process.exit(1);return}let r=Zr(e.payload);if(!r.valid){u.log.error(r.error),process.exit(1);return}let i=Qr(r.payload,e),a=e.serviceCode.trim(),o=!process.stdout.isTTY||!process.stdin.isTTY,s=Z.createProgressReporter(o);s.start(`正在调用服务: ${a}...`);let c;try{c=await nn(a,i,t.token,void 0,18e4)}catch(e){s.stop(`调用失败`);let t=$r(e);if(u.log.error(t),e instanceof M&&e.responseData){let t=e.responseData;t.data?.creditsCharged!==void 0&&t.data?.creditsBalance!==void 0&&u.log.info(ei(t.data.creditsCharged,t.data.creditsBalance))}j.setLastError(e),process.exit(1);return}if(!c.success){s.stop(`调用失败`),u.log.error(c.message||`服务调用失败`),c.data?.creditsCharged!==void 0&&c.data?.creditsBalance!==void 0&&u.log.info(ei(c.data.creditsCharged,c.data.creditsBalance)),j.setLastError(new M(c.message||`服务调用失败`,c.code,c)),process.exit(1);return}s.stop(`服务调用成功`);let l=c.data,d=[` ${O.default.green(`服务编码:`)} ${l.serviceCode}`,` ${O.default.green(`调用状态:`)} ${l.invokeStatus}`];l.creditsCharged!==void 0&&d.push(` ${O.default.green(`本次扣费:`)} ${l.creditsCharged} credits`),l.creditsBalance!==void 0&&d.push(` ${O.default.green(`剩余余额:`)} ${l.creditsBalance} credits`),u.note(d.join(`
|
|
55
55
|
`),O.default.green(`调用结果`)),l.result!==void 0&&(console.log(`
|
|
56
56
|
`+O.default.bold(`返回数据:`)),console.log(JSON.stringify(l.result,null,2))),u.outro(O.default.green(`完成!`))}};const ni=process.env.SKILLATLAS_CONFIG_DIR||a.join(c.homedir(),`.skillatlas`),ri=a.join(ni,`mail-config.json`);function ii(){e.existsSync(ni)||e.mkdirSync(ni,{recursive:!0})}function ai(){if(!e.existsSync(ri))return{};try{let t=e.readFileSync(ri,`utf-8`);return JSON.parse(t)}catch{return{}}}function oi(t){ii(),t.updatedAt=new Date().toISOString(),e.writeFileSync(ri,JSON.stringify(t,null,2)+`
|
|
57
|
-
`)}function si(e,t){let n=ai();n[e]=t,oi(n)}function ci(e){let t=ai()[e];if(t!=null)return String(t)}function li(){let e=ai(),t=[];for(let[n,r]of Object.entries(e))n!==`updatedAt`&&r!=null&&t.push({key:n,value:String(r)});return t}function ui(e){return e in ai()&&e!==`updatedAt`}const di=[`主邮箱`,`工作`,`学习`,`金融`,`购物`,`社交`,`订阅`,`临时`,`项目`,`备用`];function fi(){return ci(`mailbox`)}const pi={production:`
|
|
57
|
+
`)}function si(e,t){let n=ai();n[e]=t,oi(n)}function ci(e){let t=ai()[e];if(t!=null)return String(t)}function li(){let e=ai(),t=[];for(let[n,r]of Object.entries(e))n!==`updatedAt`&&r!=null&&t.push({key:n,value:String(r)});return t}function ui(e){return e in ai()&&e!==`updatedAt`}const di=[`主邮箱`,`工作`,`学习`,`金融`,`购物`,`社交`,`订阅`,`临时`,`项目`,`备用`];function fi(){return ci(`mailbox`)}const pi={production:`skillhub.wanuai.cn`};function mi(e,t){return`https://${pi.production}/agents/${e}?token=${t}`}var hi={run:async(e,t)=>{u.intro(O.default.bold(`skill-atlas agent-info`));let{agentId:n,token:r}=t,i=mi(n,r),a=null,o=!1,s=Z.createProgressReporter();s.start(`正在获取 Agent 信息...`);try{let e=await an(n,r);e.success&&e.data&&(a=e.data),s.stop(`获取成功`)}catch{o=!0,s.stop(`无法连接服务器,仅显示本地信息`)}let c=[];if(c.push(` ${O.default.green(`Agent ID:`)} ${n}`),c.push(` ${O.default.green(`环境:`)} 生产环境`),a?.metadata&&(c.push(` ${O.default.green(`名称:`)} ${a.metadata.name}`),a.metadata.avatar&&c.push(` ${O.default.green(`头像:`)} ${a.metadata.avatar}`)),a?.creditAccount){let e=a.creditAccount;c.push(``),c.push(` ${O.default.cyan(`--- 虾小宝 Credits 账户 ---`)}`),c.push(` ${O.default.green(`可用 Credits:`)} ${e.availableCredits}`),c.push(` ${O.default.green(`冻结 Credits:`)} ${e.frozenCredits}`),c.push(` ${O.default.green(`累计发放:`)} ${e.totalGrantedCredits}`),c.push(` ${O.default.green(`累计消费:`)} ${e.totalConsumedCredits}`),e.welcomeBonus&&c.push(` ${O.default.green(`Welcome Bonus:`)} ${e.welcomeBonus.grantStatus}`)}let l=ci(`mailbox`);l&&(c.push(``),c.push(` ${O.default.cyan(`--- 邮箱信息 ---`)}`),c.push(` ${O.default.green(`默认邮箱 ID:`)} ${l}`)),c.push(``),c.push(` ${O.default.green(`虾小宝主页链接:`)}`),c.push(` [您的虾小宝Agent 主页](${i})`),u.note(c.join(`
|
|
58
58
|
`),O.default.green(`Agent 信息`)),o&&u.log.warn(`无法获取在线信息,部分数据可能不完整`),u.outro(O.default.green(`完成!`))}};function gi(e){switch(e){case`consume`:return O.default.red(e);case`grant`:return O.default.green(e);case`refund`:return O.default.yellow(e);default:return e}}function _i(e){return e>0?O.default.green(`+${e}`):e<0?O.default.red(`${e}`):`${e}`}function vi(e,t,n){if(e.length===0){u.log.info(`暂无流水记录`);return}let r=e.map((e,t)=>[`${O.default.bold(O.default.cyan(`${t+1}. #${e.id}`))} ${gi(e.changeType)}`,` ${O.default.dim(`变更额度:`)} ${_i(e.deltaCredits)} | ${O.default.dim(`变更后余额:`)} ${e.balanceAfter}`,` ${O.default.dim(`服务编码:`)} ${e.serviceCode||O.default.dim(`N/A`)}`,` ${O.default.dim(`时间:`)} ${Q(e.createdAt)}`].join(`
|
|
59
59
|
`));u.note(r.join(`
|
|
60
60
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skill-atlas-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "skill-atlas CLI - 虾小宝 命令行工具",
|
|
5
|
-
"homepage": "https://
|
|
5
|
+
"homepage": "https://skillhub.wanuai.cn/",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "bin/cli.js",
|
|
8
8
|
"bin": {
|