@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.
- package/bin/winmatrix-daemon.js +3 -1
- package/dist/core/AgentProcessManager.d.ts +21 -2
- package/dist/core/AgentProcessManager.d.ts.map +1 -1
- package/dist/core/AgentProcessManager.js +351 -8
- package/dist/core/AgentProcessManager.js.map +1 -1
- package/dist/core/DaemonClient.d.ts +102 -0
- package/dist/core/DaemonClient.d.ts.map +1 -0
- package/dist/core/DaemonClient.js +225 -0
- package/dist/core/DaemonClient.js.map +1 -0
- package/dist/core/RuntimeDoctor.d.ts +1 -1
- package/dist/core/RuntimeDoctor.d.ts.map +1 -1
- package/dist/core/RuntimeDoctor.js +27 -2
- package/dist/core/RuntimeDoctor.js.map +1 -1
- package/dist/core/WinMatrixAgentClient.d.ts +183 -0
- package/dist/core/WinMatrixAgentClient.d.ts.map +1 -0
- package/dist/core/WinMatrixAgentClient.js +555 -0
- package/dist/core/WinMatrixAgentClient.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -11
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/core/RuntimeAvailabilityReporter.d.ts +0 -27
- package/dist/core/RuntimeAvailabilityReporter.d.ts.map +0 -1
- package/dist/core/RuntimeAvailabilityReporter.js +0 -79
- package/dist/core/RuntimeAvailabilityReporter.js.map +0 -1
- package/dist/wrapper/AgentProcessManager.d.ts +0 -80
- package/dist/wrapper/AgentProcessManager.d.ts.map +0 -1
- package/dist/wrapper/AgentProcessManager.js +0 -474
- package/dist/wrapper/AgentProcessManager.js.map +0 -1
- package/dist/wrapper/AgentWrapper.d.ts +0 -7
- package/dist/wrapper/AgentWrapper.d.ts.map +0 -1
- package/dist/wrapper/AgentWrapper.js +0 -229
- package/dist/wrapper/AgentWrapper.js.map +0 -1
- package/dist/wrapper/claudeCommand.d.ts +0 -2
- package/dist/wrapper/claudeCommand.d.ts.map +0 -1
- package/dist/wrapper/claudeCommand.js +0 -2
- package/dist/wrapper/claudeCommand.js.map +0 -1
- package/dist/wrapper/supportedAgentTypes.d.ts +0 -7
- package/dist/wrapper/supportedAgentTypes.d.ts.map +0 -1
- package/dist/wrapper/supportedAgentTypes.js +0 -6
- package/dist/wrapper/supportedAgentTypes.js.map +0 -1
package/bin/winmatrix-daemon.js
CHANGED
|
@@ -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
|
|
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,
|
|
1
|
+
{"version":3,"file":"AgentProcessManager.d.ts","sourceRoot":"","sources":["../../src/core/AgentProcessManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|