@winmatrix/daemon 1.0.3 → 1.0.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.
Files changed (42) hide show
  1. package/bin/winmatrix-daemon.js +3 -1
  2. package/dist/core/AgentProcessManager.d.ts +21 -2
  3. package/dist/core/AgentProcessManager.d.ts.map +1 -1
  4. package/dist/core/AgentProcessManager.js +351 -8
  5. package/dist/core/AgentProcessManager.js.map +1 -1
  6. package/dist/core/DaemonClient.d.ts +102 -0
  7. package/dist/core/DaemonClient.d.ts.map +1 -0
  8. package/dist/core/DaemonClient.js +225 -0
  9. package/dist/core/DaemonClient.js.map +1 -0
  10. package/dist/core/RuntimeDoctor.d.ts +1 -1
  11. package/dist/core/RuntimeDoctor.d.ts.map +1 -1
  12. package/dist/core/RuntimeDoctor.js +27 -2
  13. package/dist/core/RuntimeDoctor.js.map +1 -1
  14. package/dist/core/WinMatrixAgentClient.d.ts +183 -0
  15. package/dist/core/WinMatrixAgentClient.d.ts.map +1 -0
  16. package/dist/core/WinMatrixAgentClient.js +555 -0
  17. package/dist/core/WinMatrixAgentClient.js.map +1 -0
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +21 -11
  21. package/dist/index.js.map +1 -1
  22. package/package.json +3 -3
  23. package/dist/core/RuntimeAvailabilityReporter.d.ts +0 -27
  24. package/dist/core/RuntimeAvailabilityReporter.d.ts.map +0 -1
  25. package/dist/core/RuntimeAvailabilityReporter.js +0 -79
  26. package/dist/core/RuntimeAvailabilityReporter.js.map +0 -1
  27. package/dist/wrapper/AgentProcessManager.d.ts +0 -80
  28. package/dist/wrapper/AgentProcessManager.d.ts.map +0 -1
  29. package/dist/wrapper/AgentProcessManager.js +0 -474
  30. package/dist/wrapper/AgentProcessManager.js.map +0 -1
  31. package/dist/wrapper/AgentWrapper.d.ts +0 -7
  32. package/dist/wrapper/AgentWrapper.d.ts.map +0 -1
  33. package/dist/wrapper/AgentWrapper.js +0 -229
  34. package/dist/wrapper/AgentWrapper.js.map +0 -1
  35. package/dist/wrapper/claudeCommand.d.ts +0 -2
  36. package/dist/wrapper/claudeCommand.d.ts.map +0 -1
  37. package/dist/wrapper/claudeCommand.js +0 -2
  38. package/dist/wrapper/claudeCommand.js.map +0 -1
  39. package/dist/wrapper/supportedAgentTypes.d.ts +0 -7
  40. package/dist/wrapper/supportedAgentTypes.d.ts.map +0 -1
  41. package/dist/wrapper/supportedAgentTypes.js +0 -6
  42. package/dist/wrapper/supportedAgentTypes.js.map +0 -1
@@ -3,4 +3,6 @@
3
3
  * 全局/本地 npm bin 入口:始终从包根目录加载编译产物。
4
4
  * package.json "bin" 指向本文件,便于 npm install -g / npm link。
5
5
  */
6
- import '../dist/index.js';
6
+ import { mainEntry } from '../dist/index.js';
7
+
8
+ mainEntry();
@@ -4,10 +4,12 @@
4
4
  * 管理外部 Agent 适配器实例生命周期�? * 收到 server �?agent.create / agent.stop 信令后,
5
5
  * 实例化对应的 AgentAdapter 并创�?WinMatrixAgentClient 连接�? *
6
6
  * 方案 B:adapter �?daemon 进程内直接运行,不再 spawn 子进程�? */
7
- import { WinMatrixAgentClient, AdapterRegistry, type AgentAdapter, type AgentProfile } from '@winmatrix/agent-sdk';
7
+ import { WinMatrixAgentClient } from './WinMatrixAgentClient.js';
8
+ import { AdapterRegistry, type AgentAdapter } from '@winmatrix/agent-sdk';
9
+ import { type AgentProfile, type AgentEngineRunRef, type AgentEngineSessionRef, type EngineEventEnvelope, type EngineFinalResult, type EngineRunStatus } from '@winmatrix/protocol';
8
10
  export interface AgentCreatePayload {
9
11
  agentId: string;
10
- /** agentType: 'claude-code' | 'hermes' | 'openclaw' */
12
+ /** agentType: 'claude-code' | 'codex' | 'hermes' | 'openclaw' */
11
13
  agentType: string;
12
14
  /** agent name */
13
15
  name?: string;
@@ -30,6 +32,21 @@ interface ManagedAgent {
30
32
  abortController: AbortController | null;
31
33
  busy: boolean;
32
34
  workDir?: string;
35
+ /** 当前活跃 Run 的 runKey(design D11.1 幂等 launch)。 */
36
+ activeRunKey?: string;
37
+ /** 当前活跃 Run 的 invocation fingerprint(用于校验重复 assign 身份一致性)。 */
38
+ activeFingerprint?: string;
39
+ /** Connection-bound Run registry retained for inspect/replay until replaced. */
40
+ runs: Map<string, ManagedRun>;
41
+ }
42
+ interface ManagedRun {
43
+ ref: AgentEngineRunRef;
44
+ status: EngineRunStatus;
45
+ startedAt: string;
46
+ lastSequence: number;
47
+ events: EngineEventEnvelope[];
48
+ result?: EngineFinalResult;
49
+ sessionRef?: AgentEngineSessionRef;
33
50
  }
34
51
  type CreateAgentResult = {
35
52
  ok: true;
@@ -57,6 +74,8 @@ export declare class AgentProcessManager {
57
74
  /** Set callback invoked when agent profiles change (create/destroy/rescan) */
58
75
  setOnProfilesChanged(fn: () => void): void;
59
76
  private recordTaskAudit;
77
+ private appendRunEvent;
78
+ private handleAgentEngineRequest;
60
79
  /**
61
80
  * 遍历所�?managed agents,收集其 tools/skills/toolCategories 统一上报�? * 返回深拷贝的 profiles,确保修改原 meta 不影响已收集的数据�? */
62
81
  collectAgentProfiles(): Promise<AgentProfile[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentProcessManager.d.ts","sourceRoot":"","sources":["../../src/core/AgentProcessManager.ts"],"names":[],"mappings":"AAAA;;;;;kDAKkD;AAElD,OAAO,EACL,oBAAoB,EACpB,eAAe,EAEf,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAM9B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,CAAC;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiD;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAO;IAC7C,OAAO,CAAC,iBAAiB,CAA6B;gBAE1C,QAAQ,CAAC,EAAE,eAAe;IAItC,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAI1C,OAAO,CAAC,eAAe;IAOvB;iHAC6G;IACvG,oBAAoB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBrD;wEACoE;IAC9D,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9C;;gEAE4D;IACtD,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAsB5D,mBAAmB;IAqPjC;uCACmC;IAC7B,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA2BhG,+BAA+B;IACzB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAepC,oBAAoB;IACpB,UAAU,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAOvD,iCAAiC;IACjC,mBAAmB,IAAI,cAAc,EAAE;IAIvC,qBAAqB;IACrB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGpC"}
1
+ {"version":3,"file":"AgentProcessManager.d.ts","sourceRoot":"","sources":["../../src/core/AgentProcessManager.ts"],"names":[],"mappings":"AAAA;;;;;kDAKkD;AAElD,OAAO,EACL,oBAAoB,EAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EAEf,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAM7B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC/B;AAED,UAAU,UAAU;IAClB,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,KAAK,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,CAAC;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiD;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAO;IAC7C,OAAO,CAAC,iBAAiB,CAA6B;gBAE1C,QAAQ,CAAC,EAAE,eAAe;IAItC,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAI1C,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;YAkBR,wBAAwB;IA+HtC;iHAC6G;IACvG,oBAAoB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBrD;wEACoE;IAC9D,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9C;;gEAE4D;IACtD,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAsB5D,mBAAmB;IAodjC;uCACmC;IAC7B,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA2BhG,+BAA+B;IACzB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAepC,oBAAoB;IACpB,UAAU,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAOvD,iCAAiC;IACjC,mBAAmB,IAAI,cAAc,EAAE;IAIvC,qBAAqB;IACrB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGpC"}
@@ -4,7 +4,9 @@
4
4
  * 管理外部 Agent 适配器实例生命周期�? * 收到 server �?agent.create / agent.stop 信令后,
5
5
  * 实例化对应的 AgentAdapter 并创�?WinMatrixAgentClient 连接�? *
6
6
  * 方案 B:adapter �?daemon 进程内直接运行,不再 spawn 子进程�? */
7
- import { WinMatrixAgentClient, getGlobalRegistry, } from '@winmatrix/agent-sdk';
7
+ import { WinMatrixAgentClient, } from './WinMatrixAgentClient.js';
8
+ import { getGlobalRegistry, } from '@winmatrix/agent-sdk';
9
+ import { METHODS, } from '@winmatrix/protocol';
8
10
  import { formatDaemonLocalTimestamp } from './DaemonFileLogger.js';
9
11
  /* ── Manager Class ── */
10
12
  export class AgentProcessManager {
@@ -27,6 +29,145 @@ export class AgentProcessManager {
27
29
  this.taskAudit.splice(0, this.taskAudit.length - AgentProcessManager.TASK_AUDIT_MAX);
28
30
  }
29
31
  }
32
+ appendRunEvent(run, event) {
33
+ const envelope = {
34
+ runKey: run.ref.runKey,
35
+ engineId: run.ref.engineId,
36
+ invocationFingerprint: run.ref.invocationFingerprint,
37
+ sequence: run.lastSequence + 1,
38
+ timestamp: formatDaemonLocalTimestamp(),
39
+ event,
40
+ };
41
+ run.lastSequence = envelope.sequence;
42
+ run.events.push(envelope);
43
+ if (run.events.length > 1_000)
44
+ run.events.splice(0, run.events.length - 1_000);
45
+ return envelope;
46
+ }
47
+ async handleAgentEngineRequest(managed, method, paramsValue) {
48
+ const params = paramsValue && typeof paramsValue === 'object'
49
+ ? paramsValue
50
+ : {};
51
+ const runKey = typeof params.runKey === 'string' ? params.runKey : undefined;
52
+ const run = runKey ? managed.runs.get(runKey) : undefined;
53
+ if (method === METHODS.TASK_EVENTS_SUBSCRIBE) {
54
+ if (!run)
55
+ throw new Error(`Run not found: ${runKey ?? ''}`);
56
+ const afterSequence = typeof params.afterSequence === 'number' ? params.afterSequence : 0;
57
+ return { events: run.events.filter((event) => event.sequence > afterSequence) };
58
+ }
59
+ if (method === METHODS.TASK_INSPECT) {
60
+ if (!run)
61
+ throw new Error(`Run not found: ${runKey ?? ''}`);
62
+ return {
63
+ ref: run.ref,
64
+ ...(run.sessionRef ? { sessionRef: run.sessionRef } : {}),
65
+ status: run.status,
66
+ executionDurability: 'connection_bound',
67
+ eventStreamMode: 'replay',
68
+ eventRetention: { maxEvents: 1_000 },
69
+ lastSequence: run.lastSequence,
70
+ pendingInteractions: [],
71
+ ...(run.result ? { result: run.result } : {}),
72
+ recoverable: false,
73
+ protocolVersion: '1',
74
+ };
75
+ }
76
+ if (method === METHODS.TASK_INTERACTION_RESPOND) {
77
+ const response = params.response && typeof params.response === 'object'
78
+ ? params.response
79
+ : {};
80
+ return {
81
+ status: 'rejected',
82
+ responseId: String(response.responseId ?? 'missing'),
83
+ interactionId: String(response.interactionId ?? 'missing'),
84
+ error: {
85
+ code: 'unsupported_capability',
86
+ message: 'External adapter does not support interactive responses',
87
+ },
88
+ };
89
+ }
90
+ if (method === METHODS.TASK_CANCEL_RUN) {
91
+ if (!run)
92
+ throw new Error(`Run not found: ${runKey ?? ''}`);
93
+ if (['completed', 'failed', 'cancelled', 'interrupted'].includes(run.status)) {
94
+ return { status: 'already_terminal' };
95
+ }
96
+ run.status = 'cancel_requested';
97
+ this.appendRunEvent(run, { type: 'status', text: 'cancel_requested' });
98
+ managed.abortController?.abort();
99
+ if (managed.adapter.cancel)
100
+ await managed.adapter.cancel(run.ref.runKey);
101
+ return { status: 'accepted' };
102
+ }
103
+ if (method === METHODS.TASK_ACTIVE_LIST) {
104
+ const limit = typeof params.limit === 'number' && params.limit > 0 ? params.limit : 50;
105
+ const engineId = typeof params.engineId === 'string' ? params.engineId : undefined;
106
+ const runs = [...managed.runs.values()]
107
+ .filter((candidate) => ['accepted', 'starting', 'running', 'waiting_interaction', 'cancel_requested'].includes(candidate.status)
108
+ && (!engineId || candidate.ref.engineId === engineId))
109
+ .slice(0, limit)
110
+ .map((candidate) => ({
111
+ ref: candidate.ref,
112
+ ...(candidate.sessionRef ? { sessionRef: candidate.sessionRef } : {}),
113
+ status: candidate.status,
114
+ startedAt: candidate.startedAt,
115
+ lastSequence: candidate.lastSequence,
116
+ pendingInteractionCount: 0,
117
+ }));
118
+ return { runs };
119
+ }
120
+ const engineId = managed.adapter.meta.agentType === 'claude-code'
121
+ || managed.adapter.meta.agentType === 'codex'
122
+ || managed.adapter.meta.agentType === 'hermes'
123
+ || managed.adapter.meta.agentType === 'openclaw'
124
+ ? managed.adapter.meta.agentType
125
+ : 'custom';
126
+ if (method === METHODS.AGENT_ENGINE_LIST) {
127
+ const health = await managed.adapter.healthCheck();
128
+ return {
129
+ engines: [{
130
+ engineId,
131
+ label: managed.adapter.meta.runtime,
132
+ availability: health.available ? 'ready' : 'unavailable',
133
+ ...(health.version ? { version: health.version } : {}),
134
+ }],
135
+ };
136
+ }
137
+ if (method === METHODS.AGENT_ENGINE_MODELS)
138
+ return { models: [] };
139
+ if (method === METHODS.AGENT_ENGINE_OPTIONS) {
140
+ return { engineId, modes: [], configOptions: [], commands: [], checkedAt: formatDaemonLocalTimestamp() };
141
+ }
142
+ if (method === METHODS.AGENT_ENGINE_PROBE) {
143
+ const requestedEngineId = typeof params.engineId === 'string' ? params.engineId : engineId;
144
+ if (requestedEngineId !== engineId) {
145
+ return {
146
+ engineId: requestedEngineId,
147
+ instanceId: managed.agentId,
148
+ hostKind: 'external_computer',
149
+ checkedAt: formatDaemonLocalTimestamp(),
150
+ status: 'unavailable',
151
+ binaryStatus: 'missing',
152
+ credentialStatus: 'unknown',
153
+ issues: [{ code: 'engine_not_registered', message: `Registered engine is ${engineId}` }],
154
+ };
155
+ }
156
+ const health = await managed.adapter.healthCheck();
157
+ return {
158
+ engineId,
159
+ instanceId: managed.agentId,
160
+ hostKind: 'external_computer',
161
+ checkedAt: formatDaemonLocalTimestamp(),
162
+ status: health.available ? 'ready' : 'unavailable',
163
+ binaryStatus: health.available ? 'found' : 'missing',
164
+ credentialStatus: health.available ? 'ready' : 'unknown',
165
+ ...(health.version ? { version: health.version } : {}),
166
+ issues: health.error ? [{ code: 'adapter_health_failed', message: health.error }] : [],
167
+ };
168
+ }
169
+ throw new Error(`Unsupported Agent Engine method: ${method}`);
170
+ }
30
171
  /**
31
172
  * 遍历所�?managed agents,收集其 tools/skills/toolCategories 统一上报�? * 返回深拷贝的 profiles,确保修改原 meta 不影响已收集的数据�? */
32
173
  async collectAgentProfiles() {
@@ -89,6 +230,7 @@ export class AgentProcessManager {
89
230
  return { ok: false, error: `Unknown agent type: ${payload.agentType}. Registered: ${this.registry.listTypes().join(', ')}` };
90
231
  }
91
232
  const adapter = this.registry.create(payload.agentType, payload.adapterConfig);
233
+ let managed;
92
234
  const client = new WinMatrixAgentClient({
93
235
  url: payload.serverUrl,
94
236
  apiKey: payload.apiKey,
@@ -97,6 +239,27 @@ export class AgentProcessManager {
97
239
  agentType: payload.agentType,
98
240
  capabilities: adapter.meta.capabilities,
99
241
  autoReconnect: true,
242
+ taskAssignAdmission: (paramsValue) => {
243
+ const params = paramsValue && typeof paramsValue === 'object'
244
+ ? paramsValue
245
+ : {};
246
+ const runKey = typeof params.runKey === 'string' ? params.runKey : undefined;
247
+ const fingerprint = typeof params.invocationFingerprint === 'string'
248
+ ? params.invocationFingerprint
249
+ : undefined;
250
+ if (!runKey || !fingerprint)
251
+ return { ok: true };
252
+ const existingRun = managed.runs.get(runKey);
253
+ if (existingRun) {
254
+ return existingRun.ref.invocationFingerprint === fingerprint
255
+ ? { ok: true, disposition: 'existing' }
256
+ : { ok: false, error: `RUN_IDENTITY_MISMATCH: ${runKey}` };
257
+ }
258
+ if (managed.busy)
259
+ return { ok: false, error: 'AGENT_BUSY' };
260
+ return { ok: true, disposition: 'accepted' };
261
+ },
262
+ agentEngineRequestHandler: (method, params) => this.handleAgentEngineRequest(managed, method, params),
100
263
  sessionQueryHandler: async (method, params) => {
101
264
  if (method === 'session.list') {
102
265
  return adapter.listSessions?.(params) ?? { sessions: [], total: 0 };
@@ -112,16 +275,30 @@ export class AgentProcessManager {
112
275
  lastAssistantText: '',
113
276
  });
114
277
  }
278
+ if (method === 'session.search') {
279
+ // task 6.10:会话搜索。daemon 端 ClaudeAdapter 支持时委派,否则返回空结果。
280
+ const p = params;
281
+ return (adapter.searchSessions?.(p) ?? { sessions: [] });
282
+ }
283
+ if (method === 'session.delete') {
284
+ // task 6.10:幂等删除会话。requestId 支撑上层幂等去重(daemon 端按 sessionId 删除文件)。
285
+ const p = params;
286
+ return (adapter.deleteSession?.(p.sessionId, { requestId: p.requestId ?? p.sessionId }) ?? {
287
+ status: 'rejected',
288
+ error: 'deleteSession not supported by adapter',
289
+ });
290
+ }
115
291
  throw new Error(`Unsupported session method: ${method}`);
116
292
  },
117
293
  });
118
- const managed = {
294
+ managed = {
119
295
  agentId: payload.agentId,
120
296
  adapter,
121
297
  client,
122
298
  abortController: null,
123
299
  busy: false,
124
300
  workDir: payload.workDir,
301
+ runs: new Map(),
125
302
  };
126
303
  // 断连时不再立即 abort CC 进程 —— 让其继续执行,
127
304
  // 完成后等待 client 重连再发送结果。
@@ -132,10 +309,75 @@ export class AgentProcessManager {
132
309
  console.warn(`[agent:${payload.agentId}] connection disconnected during task execution, ` +
133
310
  `CC process will continue; result will be sent after reconnect`);
134
311
  }));
135
- // Handle task.assign
312
+ // task.resume 中途递话(harden-external-computer-daemon P2/D5):
313
+ // 运行中 run → adapter.steer(turn 边界注入 stdin,立即排队生效);
314
+ // 无运行中 run / adapter 不支持 → 回 task.error(调用方可走 followup 新 run)
315
+ client.on('resume', ((input) => {
316
+ const resumeInput = input;
317
+ const text = typeof resumeInput.text === 'string' ? resumeInput.text.trim() : '';
318
+ if (!text) {
319
+ client.sendFrame({
320
+ type: 'event',
321
+ event: 'task.error',
322
+ payload: { taskId: resumeInput.taskId, error: 'task.resume 缺少 text', code: 'RESUME_REJECTED' },
323
+ });
324
+ return;
325
+ }
326
+ const result = managed.adapter.steer?.(text) ?? { accepted: false, reason: 'unsupported' };
327
+ if (result.accepted) {
328
+ console.log(`[agent:${payload.agentId}] steer accepted taskId=${resumeInput.taskId} textLength=${text.length}`);
329
+ this.recordTaskAudit({
330
+ ts: formatDaemonLocalTimestamp(),
331
+ agentId: payload.agentId,
332
+ taskId: resumeInput.taskId,
333
+ event: 'task_start',
334
+ detail: `steer textLength=${text.length}`,
335
+ });
336
+ }
337
+ else {
338
+ client.sendFrame({
339
+ type: 'event',
340
+ event: 'task.error',
341
+ payload: {
342
+ taskId: resumeInput.taskId,
343
+ error: `steer 未受理: ${result.reason ?? 'no_active_run'}`,
344
+ code: 'RESUME_REJECTED',
345
+ },
346
+ });
347
+ }
348
+ }));
349
+ // Handle task.assign(design D11.1:支持统一信封 runKey/fingerprint 幂等 launch)
136
350
  client.on('task', (async (taskInput) => {
137
351
  const task = taskInput;
352
+ const runKey = task.runKey;
353
+ const fingerprint = task.invocationFingerprint;
138
354
  if (managed.busy) {
355
+ // 幂等重投:同一 runKey 重复 assign 且 fingerprint 一致 → 不重复执行,按正常处理静默丢弃
356
+ // (task.assign ACK 已在 SDK 收到帧时回 ok,此处无需再发事件)。
357
+ if (runKey && runKey === managed.activeRunKey) {
358
+ if (fingerprint && managed.activeFingerprint && fingerprint !== managed.activeFingerprint) {
359
+ // 同 runKey 不同 fingerprint → 身份冲突
360
+ this.recordTaskAudit({
361
+ ts: formatDaemonLocalTimestamp(),
362
+ agentId: payload.agentId,
363
+ taskId: task.taskId,
364
+ event: 'task_fail',
365
+ detail: 'RUN_IDENTITY_MISMATCH',
366
+ });
367
+ client.sendFrame({
368
+ type: 'event',
369
+ event: 'task.error',
370
+ payload: {
371
+ taskId: task.taskId,
372
+ error: `Run identity mismatch for runKey=${runKey}`,
373
+ code: 'RUN_IDENTITY_MISMATCH',
374
+ },
375
+ });
376
+ }
377
+ // 同 runKey 同 fingerprint:重复 assign,静默幂等 ack(不重复执行)
378
+ return;
379
+ }
380
+ // 不同 runKey 且 busy → 真正的并发拒绝
139
381
  this.recordTaskAudit({
140
382
  ts: formatDaemonLocalTimestamp(),
141
383
  agentId: payload.agentId,
@@ -151,13 +393,47 @@ export class AgentProcessManager {
151
393
  return;
152
394
  }
153
395
  managed.busy = true;
154
- console.log(`[agent:${payload.agentId}] task start taskId=${task.taskId} inputLength=${task.input.length}`);
396
+ managed.activeRunKey = runKey;
397
+ managed.activeFingerprint = fingerprint;
398
+ const engineId = task.launchSpec?.engineId
399
+ ?? (adapter.meta.agentType === 'claude-code'
400
+ || adapter.meta.agentType === 'codex'
401
+ || adapter.meta.agentType === 'hermes'
402
+ || adapter.meta.agentType === 'openclaw'
403
+ ? adapter.meta.agentType
404
+ : 'custom');
405
+ const run = runKey && fingerprint
406
+ ? {
407
+ ref: {
408
+ instance: { instanceId: payload.agentId, hostKind: 'external_computer' },
409
+ executionSnapshot: {},
410
+ runKey,
411
+ engineId,
412
+ invocationFingerprint: fingerprint,
413
+ },
414
+ status: 'running',
415
+ startedAt: formatDaemonLocalTimestamp(),
416
+ lastSequence: 0,
417
+ events: [],
418
+ }
419
+ : undefined;
420
+ if (run) {
421
+ managed.runs.set(run.ref.runKey, run);
422
+ if (managed.runs.size > 100) {
423
+ const oldestTerminal = [...managed.runs.entries()].find(([, candidate]) => ['completed', 'failed', 'cancelled', 'interrupted'].includes(candidate.status));
424
+ if (oldestTerminal)
425
+ managed.runs.delete(oldestTerminal[0]);
426
+ }
427
+ this.appendRunEvent(run, { type: 'status', text: 'running' });
428
+ }
429
+ console.log(`[agent:${payload.agentId}] task start taskId=${task.taskId} runKey=${runKey ?? '-'} inputLength=${task.input.length}`);
155
430
  this.recordTaskAudit({
156
431
  ts: formatDaemonLocalTimestamp(),
157
432
  agentId: payload.agentId,
158
433
  taskId: task.taskId,
159
434
  event: 'task_start',
160
- detail: `inputLength=${task.input.length}`,
435
+ // 仅记录长度等非敏感元数据;runKey 非敏感,可记录
436
+ detail: `inputLength=${task.input.length}${runKey ? ` runKey=${runKey}` : ''}`,
161
437
  });
162
438
  const abortController = new AbortController();
163
439
  managed.abortController = abortController;
@@ -194,11 +470,20 @@ export class AgentProcessManager {
194
470
  taskId: task.taskId,
195
471
  input: task.input,
196
472
  mode: 'session',
197
- workDir: payload.workDir ?? task.workDir,
473
+ workDir: managed.workDir ?? payload.workDir ?? task.workDir,
198
474
  systemPrompt: task.systemPrompt,
199
475
  mcpToken: task.mcpToken,
476
+ sessionId: task.sessionId,
477
+ resumeSession: task.resumeSession,
478
+ env: task.env ?? task.launchSpec?.nonSensitiveEnv,
479
+ claude: task.claude,
480
+ hermes: task.hermes,
481
+ openclaw: task.openclaw,
200
482
  }, abortController.signal)) {
201
483
  if (event.type === 'thinking') {
484
+ if (run) {
485
+ this.appendRunEvent(run, event.engineEvent ?? { type: 'thinking_delta', text: event.content });
486
+ }
202
487
  // thinking delta 断连时可丢弃,不等待重连
203
488
  try {
204
489
  client.sendFrame({
@@ -208,6 +493,7 @@ export class AgentProcessManager {
208
493
  taskId: task.taskId,
209
494
  content: event.content,
210
495
  meta: { stream: 'thinking' },
496
+ engineEvent: event.engineEvent ?? { type: 'thinking_delta', text: event.content },
211
497
  },
212
498
  });
213
499
  }
@@ -216,13 +502,19 @@ export class AgentProcessManager {
216
502
  }
217
503
  switch (event.type) {
218
504
  case 'delta':
505
+ if (run) {
506
+ this.appendRunEvent(run, event.engineEvent ?? { type: 'content_delta', text: event.content });
507
+ }
219
508
  // delta 断连时可丢弃(server 端通过 result 兜底)
220
509
  try {
221
- client.streamDelta(task.taskId, event.content);
510
+ client.streamDelta(task.taskId, event.content, undefined, event.engineEvent ?? { type: 'content_delta', text: event.content });
222
511
  }
223
512
  catch { /* best-effort */ }
224
513
  break;
225
514
  case 'tool_call': {
515
+ if (run) {
516
+ this.appendRunEvent(run, event.engineEvent ?? { type: 'tool_call', name: event.name });
517
+ }
226
518
  try {
227
519
  await client.callTool(event.name, event.args, task.taskId);
228
520
  }
@@ -232,6 +524,26 @@ export class AgentProcessManager {
232
524
  break;
233
525
  }
234
526
  case 'result':
527
+ if (run) {
528
+ const result = {
529
+ success: true,
530
+ text: event.content,
531
+ ...(event.sessionId ? { sessionId: event.sessionId } : {}),
532
+ ...(event.usage ? {
533
+ usage: { inputTokens: event.usage.input, outputTokens: event.usage.output },
534
+ } : {}),
535
+ };
536
+ run.status = 'completed';
537
+ run.result = result;
538
+ if (event.sessionId) {
539
+ run.sessionRef = {
540
+ instance: run.ref.instance,
541
+ engineId: run.ref.engineId,
542
+ sessionId: event.sessionId,
543
+ };
544
+ }
545
+ this.appendRunEvent(run, { type: 'result', result });
546
+ }
235
547
  // 关键帧:等待重连后发送,确保服务端收到最终结果
236
548
  await waitForReconnectAndSend(() => client.completeTask(task.taskId, event.content, event.sessionId, event.usage), `task complete taskId=${task.taskId}`);
237
549
  console.log(`[agent:${payload.agentId}] task complete taskId=${task.taskId} sessionId=${event.sessionId ?? '-'}`);
@@ -244,7 +556,14 @@ export class AgentProcessManager {
244
556
  });
245
557
  return;
246
558
  case 'error':
247
- await waitForReconnectAndSend(() => client.failTask(task.taskId, event.message), `task error taskId=${task.taskId}`);
559
+ if (run) {
560
+ const result = { success: false, error: event.message };
561
+ run.status = 'failed';
562
+ run.result = result;
563
+ this.appendRunEvent(run, { type: 'error', error: event.message, ...(event.code ? { code: event.code } : {}) });
564
+ this.appendRunEvent(run, { type: 'result', result });
565
+ }
566
+ await waitForReconnectAndSend(() => client.failTask(task.taskId, event.message, event.code), `task error taskId=${task.taskId}`);
248
567
  console.error(`[agent:${payload.agentId}] task error taskId=${task.taskId} error=${event.message}`);
249
568
  this.recordTaskAudit({
250
569
  ts: formatDaemonLocalTimestamp(),
@@ -256,9 +575,31 @@ export class AgentProcessManager {
256
575
  return;
257
576
  }
258
577
  }
578
+ if (run && !run.result) {
579
+ const result = {
580
+ success: false,
581
+ error: 'Adapter stream ended without a terminal result',
582
+ };
583
+ run.status = 'interrupted';
584
+ run.result = result;
585
+ this.appendRunEvent(run, { type: 'result', result });
586
+ }
259
587
  }
260
588
  catch (err) {
261
589
  const msg = err instanceof Error ? err.message : String(err);
590
+ if (run && !run.result) {
591
+ const cancelled = abortController.signal.aborted;
592
+ const result = {
593
+ success: false,
594
+ error: cancelled ? 'cancelled' : msg,
595
+ };
596
+ run.status = cancelled ? 'cancelled' : 'failed';
597
+ run.result = result;
598
+ this.appendRunEvent(run, cancelled
599
+ ? { type: 'status', text: 'cancelled' }
600
+ : { type: 'error', error: msg });
601
+ this.appendRunEvent(run, { type: 'result', result });
602
+ }
262
603
  await waitForReconnectAndSend(() => client.failTask(task.taskId, msg), `task fail taskId=${task.taskId}`).catch(() => { });
263
604
  console.error(`[agent:${payload.agentId}] task failed taskId=${task.taskId} error=${msg}`);
264
605
  this.recordTaskAudit({
@@ -272,6 +613,8 @@ export class AgentProcessManager {
272
613
  finally {
273
614
  managed.abortController = null;
274
615
  managed.busy = false;
616
+ managed.activeRunKey = undefined;
617
+ managed.activeFingerprint = undefined;
275
618
  }
276
619
  }));
277
620
  // Connect
@@ -1 +1 @@
1
- {"version":3,"file":"AgentProcessManager.js","sourceRoot":"","sources":["../../src/core/AgentProcessManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentProcessManager.js","sourceRoot":"","sources":["../../src/core/AgentProcessManager.ts"],"names":[],"mappings":"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"}