@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.
Files changed (51) hide show
  1. package/dist/adapters/claude/ClaudeAdapter.d.ts +12 -0
  2. package/dist/adapters/claude/ClaudeAdapter.d.ts.map +1 -1
  3. package/dist/adapters/claude/ClaudeAdapter.js +156 -13
  4. package/dist/adapters/claude/ClaudeAdapter.js.map +1 -1
  5. package/dist/adapters/codex/CodexAdapter.d.ts +15 -1
  6. package/dist/adapters/codex/CodexAdapter.d.ts.map +1 -1
  7. package/dist/adapters/codex/CodexAdapter.js +130 -7
  8. package/dist/adapters/codex/CodexAdapter.js.map +1 -1
  9. package/dist/adapters/codex/CodexSessionStore.d.ts +42 -0
  10. package/dist/adapters/codex/CodexSessionStore.d.ts.map +1 -0
  11. package/dist/adapters/codex/CodexSessionStore.js +279 -0
  12. package/dist/adapters/codex/CodexSessionStore.js.map +1 -0
  13. package/dist/adapters/hermes/HermesAdapter.d.ts +1 -0
  14. package/dist/adapters/hermes/HermesAdapter.d.ts.map +1 -1
  15. package/dist/adapters/hermes/HermesAdapter.js +32 -4
  16. package/dist/adapters/hermes/HermesAdapter.js.map +1 -1
  17. package/dist/adapters/openclaw/OpenClawAdapter.d.ts +26 -7
  18. package/dist/adapters/openclaw/OpenClawAdapter.d.ts.map +1 -1
  19. package/dist/adapters/openclaw/OpenClawAdapter.js +270 -55
  20. package/dist/adapters/openclaw/OpenClawAdapter.js.map +1 -1
  21. package/dist/adapters/openclaw/OpenClawGatewayRuntime.d.ts +142 -0
  22. package/dist/adapters/openclaw/OpenClawGatewayRuntime.d.ts.map +1 -0
  23. package/dist/adapters/openclaw/OpenClawGatewayRuntime.js +547 -0
  24. package/dist/adapters/openclaw/OpenClawGatewayRuntime.js.map +1 -0
  25. package/dist/core/AgentAdapter.d.ts +7 -1
  26. package/dist/core/AgentAdapter.d.ts.map +1 -1
  27. package/dist/core/AgentAdapter.js.map +1 -1
  28. package/dist/index.d.ts +7 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +4 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/utils/contextBudget.d.ts +27 -0
  33. package/dist/utils/contextBudget.d.ts.map +1 -0
  34. package/dist/utils/contextBudget.js +86 -0
  35. package/dist/utils/contextBudget.js.map +1 -0
  36. package/dist/utils/errorClassification.d.ts +1 -1
  37. package/dist/utils/errorClassification.d.ts.map +1 -1
  38. package/dist/utils/errorClassification.js +6 -0
  39. package/dist/utils/errorClassification.js.map +1 -1
  40. package/dist/utils/mcpUrlValidation.d.ts +10 -0
  41. package/dist/utils/mcpUrlValidation.d.ts.map +1 -0
  42. package/dist/utils/mcpUrlValidation.js +18 -0
  43. package/dist/utils/mcpUrlValidation.js.map +1 -0
  44. package/dist/utils/promptGuardrails.d.ts +15 -0
  45. package/dist/utils/promptGuardrails.d.ts.map +1 -0
  46. package/dist/utils/promptGuardrails.js +26 -0
  47. package/dist/utils/promptGuardrails.js.map +1 -0
  48. package/dist/utils/resumeFallback.d.ts.map +1 -1
  49. package/dist/utils/resumeFallback.js +28 -0
  50. package/dist/utils/resumeFallback.js.map +1 -1
  51. 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 = task.systemPrompt
99
- ? `${task.systemPrompt}\n\n---\n\n${task.input}`
100
- : task.input;
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.HERMES_HOME?.trim() || join(homedir(), '.hermes');
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;AAaH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAmDpC,MAAM,WAAW,sBAAsB;IACrC,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;CAClB;AAED,qBAAa,eAAgB,YAAW,YAAY;IAClD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAgBxB;IAEF,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU5C;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAiCf,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC;YAI3E,WAAW;IA6HpB,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;IAwBpC,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"}
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
- const OPENCLAW_CONFIG = join(OPENCLAW_DIR, 'openclaw.json');
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
- agentType: 'openclaw',
57
- runtime: 'openclaw',
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 actualConfigPath = configPath ?? OPENCLAW_CONFIG;
95
- try {
96
- const cfgDir = dirname(actualConfigPath);
97
- if (!existsSync(cfgDir))
98
- mkdirSync(cfgDir, { recursive: true });
99
- let cfg = {};
100
- if (existsSync(actualConfigPath)) {
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
- const mcp = (cfg.mcp ?? {});
107
- const servers = (mcp.servers ?? {});
108
- const effectiveToken = token ?? this.mcpApiKey;
109
- servers.winmatrix = {
110
- url: this.mcpBridgeUrl,
111
- transport: 'streamable-http',
112
- ...(effectiveToken ? { headers: { Authorization: `Bearer ${effectiveToken}` } } : {}),
113
- };
114
- cfg.mcp = { ...mcp, servers };
115
- writeFileSync(actualConfigPath, JSON.stringify(cfg, null, 2), 'utf-8');
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
- // best-effort: Gateway 可能不在本机
195
+ // 清理失败不覆盖任务执行结果;目录仍不在共享 OpenClaw 状态路径中。
119
196
  }
120
197
  }
121
198
  // ── execute ──
@@ -133,16 +210,102 @@ export class OpenClawAdapter {
133
210
  };
134
211
  return;
135
212
  }
136
- // MCP 注入:Gateway openclaw.json 读 mcp.servers.winmatrix
137
- this.writeMCPConfig(task.mcpToken);
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 prompt = task.systemPrompt
144
- ? `${task.systemPrompt}\n\n---\n\n${task.input}`
145
- : task.input;
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: `Failed to spawn openclaw: ${err instanceof Error ? err.message : String(err)}`,
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');