@atel-ai/runtime-core 0.1.4 → 0.1.5
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../../src/adapters/hermes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../../src/adapters/hermes.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAuC,MAAM,YAAY,CAAC;AAS/E,eAAO,MAAM,aAAa,EAAE,OAuD3B,CAAC"}
|
package/dist/adapters/hermes.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import fs from 'node:fs';
|
|
13
13
|
import os from 'node:os';
|
|
14
14
|
import path from 'node:path';
|
|
15
|
+
import { spawn } from 'node:child_process';
|
|
15
16
|
import { CliWaker } from '../wakers/cli.js';
|
|
16
17
|
import { which, runText } from './util.js';
|
|
17
18
|
function tokenFile(dataDir) {
|
|
@@ -37,6 +38,19 @@ export const hermesAdapter = {
|
|
|
37
38
|
fs.writeFileSync(f, ctx.token);
|
|
38
39
|
upsertHermesEnv('MCP_ATEL_API_KEY', ctx.token);
|
|
39
40
|
},
|
|
41
|
+
async onInstall(ctx) {
|
|
42
|
+
// hermes 的 MCP 工具必须经交互式 `hermes mcp add`(它问 "Enable all N tools?")才进 chat 会话。
|
|
43
|
+
// 用 PTY(script)自动喂 y 启用,让 `npx install` 自己完成,不靠人手动(避免特供)。
|
|
44
|
+
const msgs = [];
|
|
45
|
+
const cmd = `hermes mcp add atel --url ${ctx.mcpUrl} --auth header`;
|
|
46
|
+
const ok = await ptyRun(cmd, 'y\ny\ny\ny\n');
|
|
47
|
+
msgs.push(ok
|
|
48
|
+
? '✅ hermes:已添加 atel MCP 并启用全部工具'
|
|
49
|
+
: `⚠️ hermes 自动启用工具失败,请手动跑一次(对 "Enable all tools?" 答 Y):\n ${cmd}`);
|
|
50
|
+
msgs.push('ℹ️ hermes 调 MCP 需有能力的模型:设 ATEL_HERMES_MODEL=claude-sonnet-4.6(或同级);弱模型(haiku)会把工具当 shell 误调。');
|
|
51
|
+
msgs.push('ℹ️ hermes 自身 MCP 连接偶发失败(约半数),companion 已带自动重试兜底,会自愈。');
|
|
52
|
+
return msgs;
|
|
53
|
+
},
|
|
40
54
|
createWaker(ctx) {
|
|
41
55
|
return new CliWaker({
|
|
42
56
|
bin: 'hermes',
|
|
@@ -53,6 +67,31 @@ export const hermesAdapter = {
|
|
|
53
67
|
});
|
|
54
68
|
},
|
|
55
69
|
};
|
|
70
|
+
/** 用 PTY(script)跑一条交互式命令并喂 stdin(hermes mcp add 需要 TTY + 答 y)。 */
|
|
71
|
+
function ptyRun(cmd, feed, timeoutMs = 60_000) {
|
|
72
|
+
return new Promise((resolve) => {
|
|
73
|
+
try {
|
|
74
|
+
// linux util-linux: script -qec "cmd" /dev/null;macOS BSD: script -q /dev/null sh -c "cmd"
|
|
75
|
+
const args = process.platform === 'darwin'
|
|
76
|
+
? ['-q', '/dev/null', 'sh', '-c', cmd]
|
|
77
|
+
: ['-qec', cmd, '/dev/null'];
|
|
78
|
+
const child = spawn('script', args, { timeout: timeoutMs });
|
|
79
|
+
let out = '';
|
|
80
|
+
child.stdout.on('data', (d) => (out += d.toString()));
|
|
81
|
+
child.stderr.on('data', (d) => (out += d.toString()));
|
|
82
|
+
child.on('error', () => resolve(false));
|
|
83
|
+
child.on('close', (code) => {
|
|
84
|
+
// 成功标志:输出含 "Saved"/"enabled" 且无致命错误
|
|
85
|
+
resolve(code === 0 && /saved|enabled|added/i.test(out));
|
|
86
|
+
});
|
|
87
|
+
child.stdin.write(feed);
|
|
88
|
+
child.stdin.end();
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
resolve(false);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
56
95
|
/** upsert KEY=value 到 ~/.hermes/.env(hermes 真正读取 MCP header 变量的地方)。 */
|
|
57
96
|
function upsertHermesEnv(key, value) {
|
|
58
97
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../src/adapters/hermes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../src/adapters/hermes.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/types.d.ts
CHANGED
|
@@ -42,5 +42,11 @@ export interface Adapter {
|
|
|
42
42
|
writeMcpConfig(ctx: WriteMcpCtx): Promise<void>;
|
|
43
43
|
/** 构造该 runtime 的唤醒器 */
|
|
44
44
|
createWaker(ctx: WakerCtx): Waker;
|
|
45
|
+
/**
|
|
46
|
+
* 可选:一次性安装步骤(install 时调一次,不在 JWT 续期时重复)。
|
|
47
|
+
* 用于需要交互/额外动作才能就绪的 runtime(如 hermes 必须 `hermes mcp add` 启用工具)。
|
|
48
|
+
* 返回人类可读的提示数组(成功或需手动的后续步骤)。
|
|
49
|
+
*/
|
|
50
|
+
onInstall?(ctx: WriteMcpCtx): Promise<string[]>;
|
|
45
51
|
}
|
|
46
52
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IACpC,sBAAsB;IACtB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,uBAAuB;IACvB,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IACpC,sBAAsB;IACtB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,uBAAuB;IACvB,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClC;;;;OAIG;IACH,SAAS,CAAC,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACjD"}
|
package/package.json
CHANGED