agent2agent-cli 0.3.2 → 0.3.3
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/a2a-mcp.js +1 -1
- package/a2a.js +33 -10
- package/package.json +1 -1
package/a2a-mcp.js
CHANGED
|
@@ -24,7 +24,7 @@ const fs = require('fs');
|
|
|
24
24
|
const path = require('path');
|
|
25
25
|
const readline = require('readline');
|
|
26
26
|
|
|
27
|
-
const VERSION = '0.3.
|
|
27
|
+
const VERSION = '0.3.3';
|
|
28
28
|
const PROTOCOL_VERSION = '2024-11-05'; // MCP 当前稳定协议版本
|
|
29
29
|
|
|
30
30
|
/* ------------------------------------------------------------------ *
|
package/a2a.js
CHANGED
|
@@ -805,6 +805,7 @@ async function cmdUpdateSkills(opts) {
|
|
|
805
805
|
/** `a2a update`:一键更新 CLI + Skills(平台由运维执行 docker 命令) */
|
|
806
806
|
async function cmdUpdate(opts) {
|
|
807
807
|
console.log(hl('===== a2a update ====='));
|
|
808
|
+
let updated = false;
|
|
808
809
|
if (VERSION) {
|
|
809
810
|
// 先检查 CLI 版本
|
|
810
811
|
const pkg = await fetchJson('https://registry.npmjs.org/' + NPM_PACKAGE + '/latest');
|
|
@@ -813,6 +814,7 @@ async function cmdUpdate(opts) {
|
|
|
813
814
|
try {
|
|
814
815
|
execSync(`npm install -g ${NPM_PACKAGE}@latest`, { stdio: 'inherit' });
|
|
815
816
|
console.log(paint(C.green, '[CLI] 更新完成 ✅'));
|
|
817
|
+
updated = true;
|
|
816
818
|
} catch (e) {
|
|
817
819
|
console.log(paint(C.red, `[CLI] 更新失败,请手动:npm install -g ${NPM_PACKAGE}@latest`));
|
|
818
820
|
}
|
|
@@ -822,9 +824,15 @@ async function cmdUpdate(opts) {
|
|
|
822
824
|
} else {
|
|
823
825
|
console.log(paint(C.yellow, '[CLI] 单文件安装无版本信息,建议:npm install -g ' + NPM_PACKAGE));
|
|
824
826
|
}
|
|
827
|
+
if (updated) {
|
|
828
|
+
// 本进程仍是旧代码:让用户退出后重跑,以用新版本完成其余更新
|
|
829
|
+
const pkg2 = await fetchJson('https://registry.npmjs.org/' + NPM_PACKAGE + '/latest').catch(() => null);
|
|
830
|
+
console.log(paint(C.yellow, 'CLI 已更新到 v' + (pkg2 ? pkg2.version : '最新') + '。请退出后重新运行 a2a update(或直接运行 a2a update-skills)完成 skills 更新。'));
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
825
833
|
await cmdUpdateSkills({ yes: opts.yes || opts.y });
|
|
826
834
|
console.log('');
|
|
827
|
-
console.log('平台更新(在部署服务器执行):cd <仓库> && git pull && docker compose up -d --build');
|
|
835
|
+
console.log('平台更新(在部署服务器执行):cd <仓库> && git pull && docker compose up -d --build(或 docker compose -f docker-compose.pull.yml up -d)');
|
|
828
836
|
}
|
|
829
837
|
|
|
830
838
|
/* ------------------------------------------------------------------------- *
|
|
@@ -1483,16 +1491,18 @@ async function main() {
|
|
|
1483
1491
|
await cmdUpdate(opts);
|
|
1484
1492
|
return;
|
|
1485
1493
|
}
|
|
1494
|
+
if (cmd === 'update-check') {
|
|
1495
|
+
// 有 .a2a.json 则附带平台版本对比;无配置只检查 CLI / skills
|
|
1496
|
+
let cfg = null;
|
|
1497
|
+
try { cfg = requireConfig(opts.config); } catch (e) { cfg = null; }
|
|
1498
|
+
await cmdUpdateCheck(cfg || { config: null });
|
|
1499
|
+
return;
|
|
1500
|
+
}
|
|
1486
1501
|
|
|
1487
1502
|
let ctx = null;
|
|
1488
1503
|
try {
|
|
1489
1504
|
ctx = requireConfig(opts.config);
|
|
1490
1505
|
} catch (e) {
|
|
1491
|
-
// update-check 允许无配置运行(仅检查 CLI / skills);其余命令必须配置
|
|
1492
|
-
if (cmd === 'update-check') {
|
|
1493
|
-
await cmdUpdateCheck({ config: null });
|
|
1494
|
-
return;
|
|
1495
|
-
}
|
|
1496
1506
|
process.stderr.write(String(e.message || e) + '\n');
|
|
1497
1507
|
process.exit(1);
|
|
1498
1508
|
}
|
|
@@ -1552,7 +1562,20 @@ async function main() {
|
|
|
1552
1562
|
}
|
|
1553
1563
|
}
|
|
1554
1564
|
|
|
1555
|
-
main()
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1565
|
+
main()
|
|
1566
|
+
.catch((err) => {
|
|
1567
|
+
const msg = err && err.message ? err.message : String(err);
|
|
1568
|
+
fail(msg);
|
|
1569
|
+
})
|
|
1570
|
+
.finally(() => {
|
|
1571
|
+
// 统一「跑完即退」守卫:命令逻辑完成后,若仍有残留句柄(stdin 监听、定时器等)
|
|
1572
|
+
// 阻止事件循环退出,短暂等待 stdout flush 后强制退出,回到 shell。
|
|
1573
|
+
const guard = setTimeout(() => {
|
|
1574
|
+
try {
|
|
1575
|
+
process.stdin.pause();
|
|
1576
|
+
if (process.stdin.removeAllListeners) process.stdin.removeAllListeners('data');
|
|
1577
|
+
} catch (e) { /* ignore */ }
|
|
1578
|
+
process.exit(process.exitCode || 0);
|
|
1579
|
+
}, 600);
|
|
1580
|
+
if (guard.unref) guard.unref();
|
|
1581
|
+
});
|