@winmatrix/agent-sdk 1.0.5 → 1.0.7
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/adapters/claude/ClaudeAdapter.d.ts +12 -0
- package/dist/adapters/claude/ClaudeAdapter.d.ts.map +1 -1
- package/dist/adapters/claude/ClaudeAdapter.js +156 -13
- package/dist/adapters/claude/ClaudeAdapter.js.map +1 -1
- package/dist/adapters/codex/CodexAdapter.d.ts +15 -1
- package/dist/adapters/codex/CodexAdapter.d.ts.map +1 -1
- package/dist/adapters/codex/CodexAdapter.js +130 -7
- package/dist/adapters/codex/CodexAdapter.js.map +1 -1
- package/dist/adapters/codex/CodexSessionStore.d.ts +42 -0
- package/dist/adapters/codex/CodexSessionStore.d.ts.map +1 -0
- package/dist/adapters/codex/CodexSessionStore.js +279 -0
- package/dist/adapters/codex/CodexSessionStore.js.map +1 -0
- package/dist/adapters/hermes/HermesAdapter.d.ts +1 -0
- package/dist/adapters/hermes/HermesAdapter.d.ts.map +1 -1
- package/dist/adapters/hermes/HermesAdapter.js +32 -4
- package/dist/adapters/hermes/HermesAdapter.js.map +1 -1
- package/dist/adapters/openclaw/OpenClawAdapter.d.ts +26 -7
- package/dist/adapters/openclaw/OpenClawAdapter.d.ts.map +1 -1
- package/dist/adapters/openclaw/OpenClawAdapter.js +270 -55
- package/dist/adapters/openclaw/OpenClawAdapter.js.map +1 -1
- package/dist/adapters/openclaw/OpenClawGatewayRuntime.d.ts +142 -0
- package/dist/adapters/openclaw/OpenClawGatewayRuntime.d.ts.map +1 -0
- package/dist/adapters/openclaw/OpenClawGatewayRuntime.js +547 -0
- package/dist/adapters/openclaw/OpenClawGatewayRuntime.js.map +1 -0
- package/dist/core/AgentAdapter.d.ts +7 -1
- package/dist/core/AgentAdapter.d.ts.map +1 -1
- package/dist/core/AgentAdapter.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/contextBudget.d.ts +27 -0
- package/dist/utils/contextBudget.d.ts.map +1 -0
- package/dist/utils/contextBudget.js +86 -0
- package/dist/utils/contextBudget.js.map +1 -0
- package/dist/utils/errorClassification.d.ts +1 -1
- package/dist/utils/errorClassification.d.ts.map +1 -1
- package/dist/utils/errorClassification.js +6 -0
- package/dist/utils/errorClassification.js.map +1 -1
- package/dist/utils/mcpUrlValidation.d.ts +10 -0
- package/dist/utils/mcpUrlValidation.d.ts.map +1 -0
- package/dist/utils/mcpUrlValidation.js +18 -0
- package/dist/utils/mcpUrlValidation.js.map +1 -0
- package/dist/utils/promptGuardrails.d.ts +15 -0
- package/dist/utils/promptGuardrails.d.ts.map +1 -0
- package/dist/utils/promptGuardrails.js +26 -0
- package/dist/utils/promptGuardrails.js.map +1 -0
- package/dist/utils/resumeFallback.d.ts.map +1 -1
- package/dist/utils/resumeFallback.js +28 -0
- package/dist/utils/resumeFallback.js.map +1 -1
- package/package.json +6 -2
|
@@ -12,7 +12,10 @@ import { parseSkillMd } from '../../utils/parseSkillMd.js';
|
|
|
12
12
|
import { waitForExit, killProcess } from '../../utils/processUtils.js';
|
|
13
13
|
import { sanitizeTaskEnv } from '../../utils/envSanitizer.js';
|
|
14
14
|
import { executeWithResumeFallback } from '../../utils/resumeFallback.js';
|
|
15
|
+
import { validateMcpBridgeUrl } from '../../utils/mcpUrlValidation.js';
|
|
16
|
+
import { withSecurityPrefix } from '../../utils/promptGuardrails.js';
|
|
15
17
|
import { classifyAdapterError } from '../../utils/errorClassification.js';
|
|
18
|
+
import { applyContextBudget } from '../../utils/contextBudget.js';
|
|
16
19
|
import { captureHermesMessageHighWatermark, readHermesInvocationUsageAfter, } from './HermesInvocationUsageReader.js';
|
|
17
20
|
/** 展开路径中的 `~`(Node spawn 不自动展开,字面 `~` 会导致 ENOENT) */
|
|
18
21
|
function expandHome(p) {
|
|
@@ -94,10 +97,22 @@ export class HermesAdapter {
|
|
|
94
97
|
? await this.openStateDb()
|
|
95
98
|
: null;
|
|
96
99
|
const usageHighWatermark = usageDb ? captureHermesMessageHighWatermark(usageDb) : 0;
|
|
100
|
+
const budgeted = applyContextBudget(task);
|
|
101
|
+
if (budgeted.diagnostics) {
|
|
102
|
+
const d = budgeted.diagnostics;
|
|
103
|
+
yield {
|
|
104
|
+
type: 'thinking',
|
|
105
|
+
content: `[ContextBudget] input ${d.originalInputChars}→${d.finalInputChars} chars (${d.compression})`,
|
|
106
|
+
engineEvent: {
|
|
107
|
+
type: 'status',
|
|
108
|
+
text: `[ContextBudget] input ${d.originalInputChars}→${d.finalInputChars} chars (${d.compression})`,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
97
112
|
// Non-interactive prompt:systemPrompt 拼接到 input 前方(Hermes 不支持独立 system prompt 参数)
|
|
98
|
-
const queryInput =
|
|
99
|
-
? `${
|
|
100
|
-
:
|
|
113
|
+
const queryInput = withSecurityPrefix(budgeted.systemPrompt
|
|
114
|
+
? `${budgeted.systemPrompt}\n\n---\n\n${budgeted.input}`
|
|
115
|
+
: budgeted.input);
|
|
101
116
|
if (queryInput) {
|
|
102
117
|
args.push('--query', queryInput);
|
|
103
118
|
}
|
|
@@ -134,13 +149,23 @@ export class HermesAdapter {
|
|
|
134
149
|
if (strippedKeys.length > 0) {
|
|
135
150
|
console.warn(`[HermesAdapter] 已剥离 ${strippedKeys.length} 个凭据形态环境变量(仅列 key 名): ${strippedKeys.join(', ')}`);
|
|
136
151
|
}
|
|
152
|
+
// 统一 HOME 解析源:防止 task.env 携带 HOME/HERMES_HOME 覆盖 daemon 宿主 home,
|
|
153
|
+
// 导致 hermes CLI 写入位置与 adapter 的 openStateDb 读取位置错位(G8)。
|
|
154
|
+
// 先剥离覆盖层,再显式钉住 HERMES_HOME,使读/写同源。
|
|
155
|
+
delete env.HOME;
|
|
156
|
+
delete env.HERMES_HOME;
|
|
157
|
+
env.HERMES_HOME = this.resolveHermesHome(process.env);
|
|
137
158
|
if (this.mcpBridgeUrl) {
|
|
159
|
+
validateMcpBridgeUrl(this.mcpBridgeUrl);
|
|
138
160
|
env.HERMES_MCP_SERVER_URL = this.mcpBridgeUrl;
|
|
139
161
|
const effectiveToken = task.mcpToken ?? this.mcpApiKey;
|
|
140
162
|
if (effectiveToken) {
|
|
141
163
|
env.HERMES_MCP_API_KEY = effectiveToken;
|
|
142
164
|
}
|
|
143
165
|
}
|
|
166
|
+
else if (task.mcpToken ?? this.mcpApiKey) {
|
|
167
|
+
throw new Error('TASK_BOUND_TOOL_PROXY_REQUIRED: MCP_BRIDGE_URL_MISSING');
|
|
168
|
+
}
|
|
144
169
|
// Spawn
|
|
145
170
|
let proc;
|
|
146
171
|
try {
|
|
@@ -492,8 +517,11 @@ export class HermesAdapter {
|
|
|
492
517
|
catch { /* silently skip */ }
|
|
493
518
|
}
|
|
494
519
|
// ── state.db helpers ──
|
|
520
|
+
resolveHermesHome(env = process.env) {
|
|
521
|
+
return env.HERMES_HOME?.trim() || join(homedir(), '.hermes');
|
|
522
|
+
}
|
|
495
523
|
async openStateDb() {
|
|
496
|
-
const hermesHome = process.env
|
|
524
|
+
const hermesHome = this.resolveHermesHome(process.env);
|
|
497
525
|
const dbPath = join(hermesHome, 'state.db');
|
|
498
526
|
if (!existsSync(dbPath))
|
|
499
527
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HermesAdapter.js","sourceRoot":"","sources":["../../../src/adapters/hermes/HermesAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HermesAdapter.js","sourceRoot":"","sources":["../../../src/adapters/hermes/HermesAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,13 @@
|
|
|
8
8
|
*
|
|
9
9
|
* CLI 命令:`openclaw agent --json --agent <id> [--session-id <sid>] -m <prompt>`
|
|
10
10
|
*/
|
|
11
|
+
import { type GatewayDeviceAuthStore, type GatewayPairingBootstrapProvider, type OpenClawGatewayClientFactory, type OpenClawHostKind } from './OpenClawGatewayRuntime.js';
|
|
11
12
|
import type { AgentAdapter, AdapterEvent, AdapterMeta, AgentTaskContext, HealthStatus, SessionListOptions, SessionListResult, SessionDetailOptions, SessionDetailResult } from '../../core/AgentAdapter.js';
|
|
12
13
|
export interface OpenClawAdapterOptions {
|
|
14
|
+
/** Adapter 创建后固定的执行模式;缺省保持 CLI 兼容。 */
|
|
15
|
+
mode?: 'cli' | 'gateway';
|
|
16
|
+
/** Gateway binding 所属 Host。 */
|
|
17
|
+
hostKind?: OpenClawHostKind;
|
|
13
18
|
/** openclaw CLI 可执行路径(默认 'openclaw',对齐 CodexAdapter.codexPath / HermesAdapter.hermesPath) */
|
|
14
19
|
openclawPath?: string;
|
|
15
20
|
/** WinMatrix MCP Bridge URL */
|
|
@@ -18,22 +23,36 @@ export interface OpenClawAdapterOptions {
|
|
|
18
23
|
mcpApiKey?: string;
|
|
19
24
|
/** Agent ID,用于 --agent 参数和 sessionKey 编码 */
|
|
20
25
|
agentId?: string;
|
|
26
|
+
gatewayUrl?: string;
|
|
27
|
+
gatewayOrigin?: string;
|
|
28
|
+
gatewayTlsFingerprint?: string;
|
|
29
|
+
/** 等待 Gateway 权威取消终态的最长时间。 */
|
|
30
|
+
gatewayCancelTimeoutMs?: number;
|
|
31
|
+
deviceAuthStore?: GatewayDeviceAuthStore;
|
|
32
|
+
/** 仅供独立 provisioning 入口使用;普通任务执行不会读取。 */
|
|
33
|
+
pairingBootstrapProvider?: GatewayPairingBootstrapProvider;
|
|
34
|
+
/** Gateway client 的测试/Host seam;生产缺省动态加载官方 client。 */
|
|
35
|
+
gatewayClientFactory?: OpenClawGatewayClientFactory;
|
|
21
36
|
}
|
|
22
37
|
export declare class OpenClawAdapter implements AgentAdapter {
|
|
23
38
|
readonly meta: AdapterMeta;
|
|
39
|
+
private mode;
|
|
40
|
+
private hostKind?;
|
|
24
41
|
private openclawPath;
|
|
25
42
|
private mcpBridgeUrl?;
|
|
26
43
|
private mcpApiKey?;
|
|
27
44
|
private agentId?;
|
|
45
|
+
private gatewayUrl?;
|
|
46
|
+
private gatewayOrigin?;
|
|
47
|
+
private gatewayTlsFingerprint?;
|
|
48
|
+
private gatewayCancelTimeoutMs?;
|
|
49
|
+
private deviceAuthStore?;
|
|
50
|
+
private gatewayClientFactory;
|
|
28
51
|
constructor(config?: Record<string, unknown>);
|
|
29
|
-
/**
|
|
30
|
-
* Write MCP server config to openclaw.json, merge with existing keys.
|
|
31
|
-
*
|
|
32
|
-
* 注意:本方法直接写 ~/.openclaw/openclaw.json 共享文件,不适用于同一 OpenClaw
|
|
33
|
-
* 实例上并发多任务场景。当前 daemon 方案 B 下每 agent 单任务串行执行,不会出现
|
|
34
|
-
* 并发写入竞态。若未来支持并发任务,需改为 per-task session 级 MCP 注入。
|
|
35
|
-
*/
|
|
52
|
+
/** Write MCP server config to a task-local openclaw.json. */
|
|
36
53
|
private writeMCPConfig;
|
|
54
|
+
private createTaskOpenClawHome;
|
|
55
|
+
private removeTaskOpenClawHome;
|
|
37
56
|
execute(task: AgentTaskContext, signal?: AbortSignal): AsyncGenerator<AdapterEvent>;
|
|
38
57
|
private executeOnce;
|
|
39
58
|
discoverSkills(context: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenClawAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/openclaw/OpenClawAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"OpenClawAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/openclaw/OpenClawAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyBH,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAwFpC,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,IAAI,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,8BAA8B;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,yCAAyC;IACzC,wBAAwB,CAAC,EAAE,+BAA+B,CAAC;IAC3D,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,4BAA4B,CAAC;CACrD;AAED,qBAAa,eAAgB,YAAW,YAAY;IAClD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,sBAAsB,CAAC,CAAS;IACxC,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,oBAAoB,CAA+B;gBAE/C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmC5C,6DAA6D;IAC7D,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,sBAAsB;IAWvB,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC;YAI3E,WAAW;IAkOpB,cAAc,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA4B/I,OAAO,CAAC,YAAY;IAsBd,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAgEpC,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyCrE,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;CAgBhC"}
|
|
@@ -9,17 +9,51 @@
|
|
|
9
9
|
* CLI 命令:`openclaw agent --json --agent <id> [--session-id <sid>] -m <prompt>`
|
|
10
10
|
*/
|
|
11
11
|
import { spawn } from 'node:child_process';
|
|
12
|
-
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
|
|
13
|
-
import { homedir } from 'node:os';
|
|
12
|
+
import { copyFileSync, chmodSync, existsSync, mkdtempSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync, } from 'node:fs';
|
|
13
|
+
import { homedir, tmpdir } from 'node:os';
|
|
14
14
|
import { join, dirname } from 'node:path';
|
|
15
15
|
import { parseSkillMd } from '../../utils/parseSkillMd.js';
|
|
16
16
|
import { waitForExit, killProcess } from '../../utils/processUtils.js';
|
|
17
17
|
import { sanitizeTaskEnv } from '../../utils/envSanitizer.js';
|
|
18
18
|
import { executeWithResumeFallback } from '../../utils/resumeFallback.js';
|
|
19
|
+
import { validateMcpBridgeUrl } from '../../utils/mcpUrlValidation.js';
|
|
20
|
+
import { withSecurityPrefix } from '../../utils/promptGuardrails.js';
|
|
19
21
|
import { classifyAdapterError } from '../../utils/errorClassification.js';
|
|
22
|
+
import { applyContextBudget } from '../../utils/contextBudget.js';
|
|
23
|
+
import { createOfficialGatewayClient, executeGatewayTurn, probeGatewayConnection, } from './OpenClawGatewayRuntime.js';
|
|
20
24
|
// ── constants ──
|
|
21
25
|
const OPENCLAW_DIR = join(homedir(), '.openclaw');
|
|
22
|
-
|
|
26
|
+
function isLoopbackHostname(hostname) {
|
|
27
|
+
return hostname === '127.0.0.1' || hostname === 'localhost' || hostname === '::1';
|
|
28
|
+
}
|
|
29
|
+
function isPrivateIpv4(hostname) {
|
|
30
|
+
const parts = hostname.split('.').map(Number);
|
|
31
|
+
if (parts.length !== 4 || parts.some((part) => !Number.isInteger(part) || part < 0 || part > 255)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return parts[0] === 10
|
|
35
|
+
|| (parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31)
|
|
36
|
+
|| (parts[0] === 192 && parts[1] === 168);
|
|
37
|
+
}
|
|
38
|
+
function deriveGatewayOrigin(url) {
|
|
39
|
+
return `${url.protocol === 'wss:' ? 'https:' : 'http:'}//${url.host}`;
|
|
40
|
+
}
|
|
41
|
+
const warnedInsecurePrivateOrigins = new Set();
|
|
42
|
+
function externalGatewayTransportError(hostKind, url) {
|
|
43
|
+
if (hostKind !== 'external_computer' || isLoopbackHostname(url.hostname) || url.protocol === 'wss:') {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const breakGlass = process.env.OPENCLAW_ALLOW_INSECURE_PRIVATE_WS === '1'
|
|
47
|
+
&& isPrivateIpv4(url.hostname);
|
|
48
|
+
if (!breakGlass)
|
|
49
|
+
return 'External OpenClaw Gateway requires wss://';
|
|
50
|
+
const origin = deriveGatewayOrigin(url);
|
|
51
|
+
if (!warnedInsecurePrivateOrigins.has(origin)) {
|
|
52
|
+
warnedInsecurePrivateOrigins.add(origin);
|
|
53
|
+
process.emitWarning(`OpenClaw insecure private ws:// break-glass enabled for ${origin}; use wss:// in production`, { code: 'OPENCLAW_INSECURE_PRIVATE_WS' });
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
23
57
|
// ── helpers ──
|
|
24
58
|
// ── helpers ──
|
|
25
59
|
/** 解析 openclaw agent --json 的完整输出,提取 answer/sessionId/usage */
|
|
@@ -52,70 +86,113 @@ function parseOpenClawCliResult(rawJson) {
|
|
|
52
86
|
}
|
|
53
87
|
}
|
|
54
88
|
export class OpenClawAdapter {
|
|
55
|
-
meta
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
capabilities: {
|
|
59
|
-
// 非流式(一次性 JSON);CLI 无 --stream-json
|
|
60
|
-
streaming: false,
|
|
61
|
-
toolCall: true,
|
|
62
|
-
session: false,
|
|
63
|
-
// SIGTERM killProcess 可取消
|
|
64
|
-
cancellation: true,
|
|
65
|
-
supportsCancel: true,
|
|
66
|
-
supportsResume: true,
|
|
67
|
-
},
|
|
68
|
-
tools: [],
|
|
69
|
-
skills: [],
|
|
70
|
-
toolCategories: {},
|
|
71
|
-
};
|
|
89
|
+
meta;
|
|
90
|
+
mode;
|
|
91
|
+
hostKind;
|
|
72
92
|
openclawPath;
|
|
73
93
|
mcpBridgeUrl;
|
|
74
94
|
mcpApiKey;
|
|
75
95
|
agentId;
|
|
96
|
+
gatewayUrl;
|
|
97
|
+
gatewayOrigin;
|
|
98
|
+
gatewayTlsFingerprint;
|
|
99
|
+
gatewayCancelTimeoutMs;
|
|
100
|
+
deviceAuthStore;
|
|
101
|
+
gatewayClientFactory;
|
|
76
102
|
constructor(config) {
|
|
77
103
|
const opts = config;
|
|
104
|
+
this.mode = opts?.mode ?? 'cli';
|
|
105
|
+
this.hostKind = opts?.hostKind;
|
|
78
106
|
this.openclawPath = opts?.openclawPath ?? 'openclaw';
|
|
79
107
|
this.mcpBridgeUrl = opts?.mcpBridgeUrl;
|
|
80
108
|
this.mcpApiKey = opts?.mcpApiKey;
|
|
81
109
|
this.agentId = opts?.agentId;
|
|
110
|
+
this.gatewayUrl = opts?.gatewayUrl;
|
|
111
|
+
this.gatewayOrigin = opts?.gatewayOrigin;
|
|
112
|
+
this.gatewayTlsFingerprint = opts?.gatewayTlsFingerprint;
|
|
113
|
+
this.gatewayCancelTimeoutMs = opts?.gatewayCancelTimeoutMs;
|
|
114
|
+
this.deviceAuthStore = opts?.deviceAuthStore;
|
|
115
|
+
this.gatewayClientFactory = opts?.gatewayClientFactory ?? createOfficialGatewayClient;
|
|
116
|
+
const gateway = this.mode === 'gateway';
|
|
117
|
+
this.meta = {
|
|
118
|
+
agentType: 'openclaw',
|
|
119
|
+
runtime: 'openclaw',
|
|
120
|
+
capabilities: {
|
|
121
|
+
streaming: gateway,
|
|
122
|
+
// OpenClaw 工具由 Gateway/CLI 内部执行;WinMatrix 侧仅观测最终文本,不代理 tool_call 事件(D7)。
|
|
123
|
+
toolCall: false,
|
|
124
|
+
session: gateway,
|
|
125
|
+
cancellation: true,
|
|
126
|
+
supportsCancel: true,
|
|
127
|
+
supportsResume: true,
|
|
128
|
+
},
|
|
129
|
+
tools: [],
|
|
130
|
+
skills: [],
|
|
131
|
+
toolCategories: {},
|
|
132
|
+
};
|
|
82
133
|
}
|
|
83
134
|
// ── MCP config helpers ──
|
|
84
|
-
/**
|
|
85
|
-
* Write MCP server config to openclaw.json, merge with existing keys.
|
|
86
|
-
*
|
|
87
|
-
* 注意:本方法直接写 ~/.openclaw/openclaw.json 共享文件,不适用于同一 OpenClaw
|
|
88
|
-
* 实例上并发多任务场景。当前 daemon 方案 B 下每 agent 单任务串行执行,不会出现
|
|
89
|
-
* 并发写入竞态。若未来支持并发任务,需改为 per-task session 级 MCP 注入。
|
|
90
|
-
*/
|
|
135
|
+
/** Write MCP server config to a task-local openclaw.json. */
|
|
91
136
|
writeMCPConfig(token, configPath) {
|
|
92
137
|
if (!this.mcpBridgeUrl)
|
|
93
138
|
return;
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
try {
|
|
102
|
-
cfg = JSON.parse(readFileSync(actualConfigPath, 'utf-8'));
|
|
103
|
-
}
|
|
104
|
-
catch { /* overwrite */ }
|
|
139
|
+
const cfgDir = dirname(configPath);
|
|
140
|
+
if (!existsSync(cfgDir))
|
|
141
|
+
mkdirSync(cfgDir, { recursive: true, mode: 0o700 });
|
|
142
|
+
let cfg = {};
|
|
143
|
+
if (existsSync(configPath)) {
|
|
144
|
+
try {
|
|
145
|
+
cfg = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
105
146
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
147
|
+
catch {
|
|
148
|
+
// 无法解析的基础配置不会带入任务配置。
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const mcp = (cfg.mcp ?? {});
|
|
152
|
+
const servers = (mcp.servers ?? {});
|
|
153
|
+
const effectiveToken = token ?? this.mcpApiKey;
|
|
154
|
+
servers.winmatrix = {
|
|
155
|
+
url: this.mcpBridgeUrl,
|
|
156
|
+
transport: 'streamable-http',
|
|
157
|
+
...(effectiveToken ? { headers: { Authorization: `Bearer ${effectiveToken}` } } : {}),
|
|
158
|
+
};
|
|
159
|
+
cfg.mcp = { ...mcp, servers };
|
|
160
|
+
writeFileSync(configPath, JSON.stringify(cfg, null, 2), { encoding: 'utf-8', mode: 0o600 });
|
|
161
|
+
}
|
|
162
|
+
createTaskOpenClawHome(token, baseEnv) {
|
|
163
|
+
const taskToken = token?.trim();
|
|
164
|
+
if (!this.mcpBridgeUrl) {
|
|
165
|
+
if (taskToken)
|
|
166
|
+
throw new Error('TASK_BOUND_TOOL_PROXY_REQUIRED: MCP_BRIDGE_URL_MISSING');
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
validateMcpBridgeUrl(this.mcpBridgeUrl);
|
|
170
|
+
const taskHome = mkdtempSync(join(tmpdir(), 'winmatrix-openclaw-task-'));
|
|
171
|
+
const taskStateDir = join(taskHome, '.openclaw');
|
|
172
|
+
const taskConfigPath = join(taskStateDir, 'openclaw.json');
|
|
173
|
+
mkdirSync(taskStateDir, { recursive: true, mode: 0o700 });
|
|
174
|
+
try {
|
|
175
|
+
const baseStateDir = baseEnv.OPENCLAW_STATE_DIR ?? OPENCLAW_DIR;
|
|
176
|
+
const baseConfigPath = join(baseStateDir, 'openclaw.json');
|
|
177
|
+
if (existsSync(baseConfigPath))
|
|
178
|
+
copyFileSync(baseConfigPath, taskConfigPath);
|
|
179
|
+
this.writeMCPConfig(taskToken, taskConfigPath);
|
|
180
|
+
chmodSync(taskConfigPath, 0o600);
|
|
181
|
+
return taskHome;
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
this.removeTaskOpenClawHome(taskHome);
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
removeTaskOpenClawHome(taskHome) {
|
|
189
|
+
if (!taskHome)
|
|
190
|
+
return;
|
|
191
|
+
try {
|
|
192
|
+
rmSync(taskHome, { recursive: true, force: true });
|
|
116
193
|
}
|
|
117
194
|
catch {
|
|
118
|
-
//
|
|
195
|
+
// 清理失败不覆盖任务执行结果;目录仍不在共享 OpenClaw 状态路径中。
|
|
119
196
|
}
|
|
120
197
|
}
|
|
121
198
|
// ── execute ──
|
|
@@ -133,16 +210,102 @@ export class OpenClawAdapter {
|
|
|
133
210
|
};
|
|
134
211
|
return;
|
|
135
212
|
}
|
|
136
|
-
|
|
137
|
-
|
|
213
|
+
if (this.mode === 'gateway') {
|
|
214
|
+
const gatewayUrl = this.gatewayUrl;
|
|
215
|
+
if (!gatewayUrl) {
|
|
216
|
+
yield {
|
|
217
|
+
type: 'error',
|
|
218
|
+
message: 'OpenClaw Gateway URL is not configured',
|
|
219
|
+
code: 'security_config_invalid',
|
|
220
|
+
retryable: false,
|
|
221
|
+
};
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const url = new URL(gatewayUrl);
|
|
225
|
+
const transportError = externalGatewayTransportError(this.hostKind, url);
|
|
226
|
+
if (transportError) {
|
|
227
|
+
yield {
|
|
228
|
+
type: 'error',
|
|
229
|
+
message: transportError,
|
|
230
|
+
code: 'security_config_invalid',
|
|
231
|
+
retryable: false,
|
|
232
|
+
};
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const gatewayOrigin = this.gatewayOrigin
|
|
236
|
+
?? deriveGatewayOrigin(url);
|
|
237
|
+
if (task.mcpToken && !this.mcpBridgeUrl) {
|
|
238
|
+
yield {
|
|
239
|
+
type: 'error',
|
|
240
|
+
message: 'Task-scoped MCP token requires a task-scoped MCP URL',
|
|
241
|
+
code: 'security_config_invalid',
|
|
242
|
+
retryable: false,
|
|
243
|
+
};
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const budgeted = applyContextBudget(task);
|
|
247
|
+
if (budgeted.diagnostics) {
|
|
248
|
+
const d = budgeted.diagnostics;
|
|
249
|
+
yield {
|
|
250
|
+
type: 'thinking',
|
|
251
|
+
content: `[ContextBudget] input ${d.originalInputChars}→${d.finalInputChars} chars (${d.compression})`,
|
|
252
|
+
engineEvent: {
|
|
253
|
+
type: 'status',
|
|
254
|
+
text: `[ContextBudget] input ${d.originalInputChars}→${d.finalInputChars} chars (${d.compression})`,
|
|
255
|
+
},
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
const message = withSecurityPrefix(budgeted.systemPrompt
|
|
259
|
+
? `${budgeted.systemPrompt}\n\n---\n\n${budgeted.input}`
|
|
260
|
+
: budgeted.input);
|
|
261
|
+
const openclawAgentId = this.agentId ?? 'main';
|
|
262
|
+
const sessionKey = task.resumeSession && task.sessionId
|
|
263
|
+
? task.sessionId
|
|
264
|
+
: `agent:${openclawAgentId}:winmatrix:${task.taskId}`;
|
|
265
|
+
yield* executeGatewayTurn({
|
|
266
|
+
taskId: task.taskId,
|
|
267
|
+
message,
|
|
268
|
+
sessionKey,
|
|
269
|
+
gatewayUrl,
|
|
270
|
+
gatewayOrigin,
|
|
271
|
+
gatewayTlsFingerprint: this.gatewayTlsFingerprint,
|
|
272
|
+
deviceAuthStore: this.deviceAuthStore,
|
|
273
|
+
clientFactory: this.gatewayClientFactory,
|
|
274
|
+
...(task.mcpToken && this.mcpBridgeUrl
|
|
275
|
+
? {
|
|
276
|
+
toolBindings: {
|
|
277
|
+
winmatrix: {
|
|
278
|
+
bridgeUrl: this.mcpBridgeUrl,
|
|
279
|
+
token: task.mcpToken,
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
}
|
|
283
|
+
: {}),
|
|
284
|
+
signal,
|
|
285
|
+
cancelTimeoutMs: this.gatewayCancelTimeoutMs,
|
|
286
|
+
});
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
138
289
|
// 构造 CLI args: openclaw agent --json --agent main [--session-id <sid>] -m <prompt>
|
|
139
290
|
// 注意:openclaw CLI 的 --agent 要的是 openclaw 内部 agent id(如 'main'),
|
|
140
291
|
// 不是 WinMatrix 的外联 Agent id(ea_xxx)。WinMatrix agentId 仅用于 sessionKey 编码/MCP,
|
|
141
292
|
// openclaw agent id 固定用 'main'(用户可在 ~/.openclaw/agents/ 配置多个,默认 main)。
|
|
142
293
|
const openclawAgentId = 'main';
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
294
|
+
const budgeted = applyContextBudget(task);
|
|
295
|
+
if (budgeted.diagnostics) {
|
|
296
|
+
const d = budgeted.diagnostics;
|
|
297
|
+
yield {
|
|
298
|
+
type: 'thinking',
|
|
299
|
+
content: `[ContextBudget] input ${d.originalInputChars}→${d.finalInputChars} chars (${d.compression})`,
|
|
300
|
+
engineEvent: {
|
|
301
|
+
type: 'status',
|
|
302
|
+
text: `[ContextBudget] input ${d.originalInputChars}→${d.finalInputChars} chars (${d.compression})`,
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
const prompt = withSecurityPrefix(budgeted.systemPrompt
|
|
307
|
+
? `${budgeted.systemPrompt}\n\n---\n\n${budgeted.input}`
|
|
308
|
+
: budgeted.input);
|
|
146
309
|
const args = ['agent', '--json', '--agent', openclawAgentId, '-m', prompt];
|
|
147
310
|
// resume: --session-id <sessionId>
|
|
148
311
|
if (task.resumeSession && task.sessionId) {
|
|
@@ -154,6 +317,7 @@ export class OpenClawAdapter {
|
|
|
154
317
|
}
|
|
155
318
|
// Spawn
|
|
156
319
|
let proc;
|
|
320
|
+
let taskHome;
|
|
157
321
|
try {
|
|
158
322
|
// 先剥凭据后显式加(harden-external-computer-daemon P1/D3);
|
|
159
323
|
// 旧实现未传 env → 子进程默认继承 daemon 全部环境变量,属同一泄漏面
|
|
@@ -161,6 +325,12 @@ export class OpenClawAdapter {
|
|
|
161
325
|
if (strippedKeys.length > 0) {
|
|
162
326
|
console.warn(`[OpenClawAdapter] 已剥离 ${strippedKeys.length} 个凭据形态环境变量(仅列 key 名): ${strippedKeys.join(', ')}`);
|
|
163
327
|
}
|
|
328
|
+
taskHome = this.createTaskOpenClawHome(task.mcpToken, env);
|
|
329
|
+
if (taskHome) {
|
|
330
|
+
env.HOME = taskHome;
|
|
331
|
+
env.USERPROFILE = taskHome;
|
|
332
|
+
env.OPENCLAW_STATE_DIR = join(taskHome, '.openclaw');
|
|
333
|
+
}
|
|
164
334
|
proc = spawn(this.openclawPath, args, {
|
|
165
335
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
166
336
|
env,
|
|
@@ -172,10 +342,13 @@ export class OpenClawAdapter {
|
|
|
172
342
|
catch (err) {
|
|
173
343
|
yield {
|
|
174
344
|
type: 'error',
|
|
175
|
-
message:
|
|
345
|
+
message: err instanceof Error && err.message.startsWith('TASK_BOUND_TOOL_PROXY_REQUIRED:')
|
|
346
|
+
? err.message
|
|
347
|
+
: `Failed to spawn openclaw: ${err instanceof Error ? err.message : String(err)}`,
|
|
176
348
|
code: 'cli_crash',
|
|
177
349
|
retryable: false,
|
|
178
350
|
};
|
|
351
|
+
this.removeTaskOpenClawHome(taskHome);
|
|
179
352
|
return;
|
|
180
353
|
}
|
|
181
354
|
let completed = false;
|
|
@@ -235,6 +408,7 @@ export class OpenClawAdapter {
|
|
|
235
408
|
}
|
|
236
409
|
finally {
|
|
237
410
|
signal?.removeEventListener('abort', onAbort);
|
|
411
|
+
this.removeTaskOpenClawHome(taskHome);
|
|
238
412
|
}
|
|
239
413
|
}
|
|
240
414
|
// ── discoverSkills ──
|
|
@@ -285,6 +459,47 @@ export class OpenClawAdapter {
|
|
|
285
459
|
}
|
|
286
460
|
// ── healthCheck ──
|
|
287
461
|
async healthCheck() {
|
|
462
|
+
if (this.mode === 'gateway') {
|
|
463
|
+
try {
|
|
464
|
+
if (!this.gatewayUrl) {
|
|
465
|
+
return { available: false, error: 'OpenClaw Gateway URL is not configured' };
|
|
466
|
+
}
|
|
467
|
+
const url = new URL(this.gatewayUrl);
|
|
468
|
+
const transportError = externalGatewayTransportError(this.hostKind, url);
|
|
469
|
+
if (transportError) {
|
|
470
|
+
return { available: false, error: transportError };
|
|
471
|
+
}
|
|
472
|
+
if (!this.deviceAuthStore) {
|
|
473
|
+
return { available: false, error: 'OpenClaw Gateway device authentication is not configured' };
|
|
474
|
+
}
|
|
475
|
+
const identity = this.deviceAuthStore.loadOrCreateIdentity();
|
|
476
|
+
const token = this.deviceAuthStore.loadToken({
|
|
477
|
+
gatewayOrigin: this.gatewayOrigin ?? deriveGatewayOrigin(url),
|
|
478
|
+
deviceId: identity.deviceId,
|
|
479
|
+
role: 'operator',
|
|
480
|
+
});
|
|
481
|
+
if (!token?.token) {
|
|
482
|
+
return { available: false, error: 'OpenClaw Gateway DeviceToken is not paired' };
|
|
483
|
+
}
|
|
484
|
+
const approved = new Set(token.scopes);
|
|
485
|
+
if (!approved.has('operator.read') || !approved.has('operator.write')) {
|
|
486
|
+
return { available: false, error: 'OpenClaw Gateway DeviceToken scopes are insufficient' };
|
|
487
|
+
}
|
|
488
|
+
const connection = await probeGatewayConnection({
|
|
489
|
+
gatewayUrl: this.gatewayUrl,
|
|
490
|
+
gatewayOrigin: this.gatewayOrigin ?? deriveGatewayOrigin(url),
|
|
491
|
+
...(this.gatewayTlsFingerprint ? { gatewayTlsFingerprint: this.gatewayTlsFingerprint } : {}),
|
|
492
|
+
deviceAuthStore: this.deviceAuthStore,
|
|
493
|
+
clientFactory: this.gatewayClientFactory,
|
|
494
|
+
});
|
|
495
|
+
return connection.available
|
|
496
|
+
? { available: true, version: 'gateway-v4' }
|
|
497
|
+
: { available: false, error: connection.error };
|
|
498
|
+
}
|
|
499
|
+
catch (error) {
|
|
500
|
+
return { available: false, error: error instanceof Error ? error.message : String(error) };
|
|
501
|
+
}
|
|
502
|
+
}
|
|
288
503
|
try {
|
|
289
504
|
// 用 openclaw --version 验 CLI 可执行(轻量,不连 gateway)
|
|
290
505
|
const { spawnSync } = await import('node:child_process');
|