aws-runtime-bridge 1.8.4 → 1.8.6
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/adapter/AcodeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/AcodeSdkAdapter.js +6 -98
- package/dist/adapter/AcodeSdkAdapter.test.js +2 -313
- package/dist/adapter/OpencodeSdkAdapter.js +1 -1
- package/dist/adapter/types.d.ts.map +1 -1
- package/dist/adapter/types.js +3 -7
- package/dist/config.d.ts +3 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -36
- package/dist/config.test.js +20 -24
- package/dist/routes/ai-sources.js +1 -5
- package/dist/routes/ai-sources.test.js +0 -21
- package/dist/routes/instance.test.js +70 -1
- package/dist/routes/runtime-binding.d.ts.map +1 -1
- package/dist/routes/runtime-binding.js +1 -36
- package/dist/routes/terminal.d.ts +0 -2
- package/dist/routes/terminal.d.ts.map +1 -1
- package/dist/routes/terminal.js +7 -109
- package/dist/routes/terminal.test.js +1 -118
- package/dist/services/mcp-launch-binding-queue.d.ts +0 -7
- package/dist/services/mcp-launch-binding-queue.d.ts.map +1 -1
- package/dist/services/mcp-launch-binding-queue.js +0 -25
- package/dist/services/session-output.d.ts +3 -7
- package/dist/services/session-output.d.ts.map +1 -1
- package/package/acode/dist/runtime.d.ts +0 -1
- package/package/acode/dist/runtime.d.ts.map +1 -1
- package/package/acode/dist/runtime.js +31 -265
- package/package/acode/dist/types.d.ts +1 -1
- package/package/acode/dist/types.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.d.ts +0 -4
- package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.js +0 -15
- package/package/aws-client-agent-mcp/dist/config.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.d.ts +0 -10
- package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.js +1 -79
- package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.test.js +265 -129
- package/package/aws-client-agent-mcp/dist/http-client.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcodeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/AcodeSdkAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AcodeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/AcodeSdkAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { v4 as uuidv4 } from "uuid";
|
|
|
11
11
|
import { getAcodeConfigFile, getAcodeSkillsDir, getRuntimeHomeDir, } from "../config.js";
|
|
12
12
|
import { getReleasedAcodeEntryPath } from "../services/acode-package.js";
|
|
13
13
|
import { IdlePollLoop } from "./idle-poll-loop.js";
|
|
14
|
-
import { getCanonicalMcpDetail, getToolActionInfo } from "./types.js";
|
|
14
|
+
import { getCanonicalMcpDetail, getToolActionInfo, } from "./types.js";
|
|
15
15
|
const ACODE_AUTO_POLL_PROMPT = [
|
|
16
16
|
"Continue the AgentsWork message loop now.",
|
|
17
17
|
"You MUST call the exact MCP tool named aws-mcp__poll_message as your next action and wait for the next assigned message or task.",
|
|
@@ -46,9 +46,6 @@ function toUsage(value) {
|
|
|
46
46
|
const usage = value;
|
|
47
47
|
const inputTokens = toFiniteTokenCount(usage.inputTokens, usage.input_tokens, usage.promptTokens, usage.prompt_tokens);
|
|
48
48
|
const outputTokens = toFiniteTokenCount(usage.outputTokens, usage.output_tokens, usage.completionTokens, usage.completion_tokens);
|
|
49
|
-
if (inputTokens === 0 && outputTokens === 0) {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
49
|
return {
|
|
53
50
|
inputTokens,
|
|
54
51
|
outputTokens,
|
|
@@ -63,9 +60,6 @@ function toFiniteTokenCount(...values) {
|
|
|
63
60
|
}
|
|
64
61
|
return 0;
|
|
65
62
|
}
|
|
66
|
-
function toEstimatedContextTokens(data) {
|
|
67
|
-
return toFiniteTokenCount(data.estimatedContextTokens, data.contextTokens, data.context_tokens, data.contextUsedTokens, data.context_used_tokens);
|
|
68
|
-
}
|
|
69
63
|
/**
|
|
70
64
|
* Check whether an ACode turn_complete event represents a failed turn.
|
|
71
65
|
* Main flow: only explicit failed=true prevents error status from being reset to waiting_input.
|
|
@@ -83,36 +77,6 @@ function toAcodeMcpActionDetail(actionDetail, server, tool) {
|
|
|
83
77
|
}
|
|
84
78
|
return getCanonicalMcpDetail(actionDetail.replace("/", "__"));
|
|
85
79
|
}
|
|
86
|
-
function isAcodeSemanticToolAction(actionType) {
|
|
87
|
-
return (actionType === "read_file" ||
|
|
88
|
-
actionType === "edit_file" ||
|
|
89
|
-
actionType === "write_file" ||
|
|
90
|
-
actionType === "bash");
|
|
91
|
-
}
|
|
92
|
-
function hasPollingMessages(result) {
|
|
93
|
-
const parsed = parseToolResultObject(result);
|
|
94
|
-
if (!parsed) {
|
|
95
|
-
return typeof result === "string" && result.trim().length > 0;
|
|
96
|
-
}
|
|
97
|
-
return [parsed.directMessages, parsed.groupMessages, parsed.messages].some((value) => Array.isArray(value) && value.length > 0);
|
|
98
|
-
}
|
|
99
|
-
function parseToolResultObject(result) {
|
|
100
|
-
if (result && typeof result === "object" && !Array.isArray(result)) {
|
|
101
|
-
return result;
|
|
102
|
-
}
|
|
103
|
-
if (typeof result !== "string" || !result.trim()) {
|
|
104
|
-
return undefined;
|
|
105
|
-
}
|
|
106
|
-
try {
|
|
107
|
-
const parsed = JSON.parse(result);
|
|
108
|
-
return parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
109
|
-
? parsed
|
|
110
|
-
: undefined;
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
80
|
export class AcodeSdkAdapter extends EventEmitter {
|
|
117
81
|
constructor() {
|
|
118
82
|
super(...arguments);
|
|
@@ -143,9 +107,7 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
143
107
|
try {
|
|
144
108
|
await entry.runtime.start();
|
|
145
109
|
session.status = "waiting_input";
|
|
146
|
-
this.emit("status-change", sessionId, "waiting_input"
|
|
147
|
-
usage: entry.adapterSession.totalUsage,
|
|
148
|
-
});
|
|
110
|
+
this.emit("status-change", sessionId, "waiting_input");
|
|
149
111
|
if (config.initialPrompt?.trim()) {
|
|
150
112
|
this.startInitialPromptTurn(sessionId, config.initialPrompt);
|
|
151
113
|
}
|
|
@@ -318,9 +280,6 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
318
280
|
}
|
|
319
281
|
if (event.type === "assistant_delta") {
|
|
320
282
|
const text = typeof event.data.text === "string" ? event.data.text : "";
|
|
321
|
-
if (entry.autoPollActive) {
|
|
322
|
-
entry.autoPollObservedAssistantText = true;
|
|
323
|
-
}
|
|
324
283
|
entry.adapterSession.messages.push({
|
|
325
284
|
id: uuidv4(),
|
|
326
285
|
sessionId: event.sessionId,
|
|
@@ -337,14 +296,6 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
337
296
|
return;
|
|
338
297
|
}
|
|
339
298
|
if (event.type === "ai_request") {
|
|
340
|
-
const estimatedTokens = toEstimatedContextTokens(event.data);
|
|
341
|
-
if (estimatedTokens > 0) {
|
|
342
|
-
entry.adapterSession.totalUsage.inputTokens = estimatedTokens;
|
|
343
|
-
entry.adapterSession.totalUsage.outputTokens = 0;
|
|
344
|
-
this.emit("status-change", event.sessionId, entry.adapterSession.status, {
|
|
345
|
-
usage: entry.adapterSession.totalUsage,
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
299
|
this.emitProviderEvent(event, "ai_request", {
|
|
349
300
|
model: typeof event.data.model === "string" ? event.data.model : undefined,
|
|
350
301
|
endpoint: typeof event.data.endpoint === "string"
|
|
@@ -403,13 +354,6 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
403
354
|
this.emit("status-change", event.sessionId, "waiting_input", {
|
|
404
355
|
usage: entry.adapterSession.totalUsage,
|
|
405
356
|
});
|
|
406
|
-
if (entry.autoPollActive &&
|
|
407
|
-
entry.autoPollObservedAssistantText &&
|
|
408
|
-
!entry.autoPollObservedPollingTool) {
|
|
409
|
-
entry.stopAutoPollAfterCurrentTurn = true;
|
|
410
|
-
console.warn(`[${this.displayName}] Auto-poll turn produced assistant text without calling poll_message; stopping auto-poll rearm for session ${event.sessionId}`);
|
|
411
|
-
return;
|
|
412
|
-
}
|
|
413
357
|
this.armIdleLoopOrAutoPoll(event.sessionId);
|
|
414
358
|
return;
|
|
415
359
|
}
|
|
@@ -471,19 +415,8 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
471
415
|
const server = typeof event.data.server === "string" ? event.data.server : "mcp";
|
|
472
416
|
const tool = typeof event.data.tool === "string" ? event.data.tool : "";
|
|
473
417
|
const toolName = server && tool ? `${server}__${tool}` : tool || server;
|
|
474
|
-
const
|
|
475
|
-
|
|
476
|
-
!Array.isArray(event.data.arguments)
|
|
477
|
-
? event.data.arguments
|
|
478
|
-
: undefined;
|
|
479
|
-
const actionInfo = getToolActionInfo(toolName, toolInput);
|
|
480
|
-
if (entry.autoPollActive && actionInfo.actionType === "idle") {
|
|
481
|
-
entry.autoPollObservedPollingTool = true;
|
|
482
|
-
}
|
|
483
|
-
const actionDetail = isAcodeSemanticToolAction(actionInfo.actionType)
|
|
484
|
-
? actionInfo.actionDetail ||
|
|
485
|
-
toAcodeMcpActionDetail(undefined, server, tool)
|
|
486
|
-
: toAcodeMcpActionDetail(actionInfo.actionDetail, server, tool);
|
|
418
|
+
const actionInfo = getToolActionInfo(toolName);
|
|
419
|
+
const actionDetail = toAcodeMcpActionDetail(actionInfo.actionDetail, server, tool);
|
|
487
420
|
const toolUseId = typeof event.data.toolUseId === "string"
|
|
488
421
|
? event.data.toolUseId
|
|
489
422
|
: undefined;
|
|
@@ -492,7 +425,6 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
492
425
|
actionType: actionInfo.actionType,
|
|
493
426
|
actionLabel: actionInfo.actionLabel,
|
|
494
427
|
actionDetail,
|
|
495
|
-
...(toolInput ? { toolInput } : {}),
|
|
496
428
|
...(toolUseId ? { toolUseId, actionId: toolUseId } : {}),
|
|
497
429
|
};
|
|
498
430
|
if (event.data.action === "tool_result") {
|
|
@@ -502,12 +434,8 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
502
434
|
? event.data.result
|
|
503
435
|
: JSON.stringify(event.data.result ?? ""),
|
|
504
436
|
});
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
? "waiting_input"
|
|
508
|
-
: "thinking";
|
|
509
|
-
entry.adapterSession.status = status;
|
|
510
|
-
this.emit("status-change", event.sessionId, status);
|
|
437
|
+
entry.adapterSession.status = "thinking";
|
|
438
|
+
this.emit("status-change", event.sessionId, "thinking");
|
|
511
439
|
return;
|
|
512
440
|
}
|
|
513
441
|
const status = actionInfo.actionType === "idle" ? "waiting_input" : "tool_using";
|
|
@@ -516,17 +444,6 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
516
444
|
this.emit("status-change", event.sessionId, status, eventData);
|
|
517
445
|
return;
|
|
518
446
|
}
|
|
519
|
-
if (event.type === "session_started") {
|
|
520
|
-
const estimatedTokens = toEstimatedContextTokens(event.data);
|
|
521
|
-
if (estimatedTokens > 0) {
|
|
522
|
-
entry.adapterSession.totalUsage.inputTokens = estimatedTokens;
|
|
523
|
-
entry.adapterSession.totalUsage.outputTokens = 0;
|
|
524
|
-
this.emit("status-change", event.sessionId, entry.adapterSession.status, {
|
|
525
|
-
usage: entry.adapterSession.totalUsage,
|
|
526
|
-
});
|
|
527
|
-
}
|
|
528
|
-
return;
|
|
529
|
-
}
|
|
530
447
|
this.emitProviderEvent(event, "thinking", {
|
|
531
448
|
text: JSON.stringify(event.data),
|
|
532
449
|
});
|
|
@@ -572,9 +489,6 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
572
489
|
if (!entry || this.isTerminalStatus(entry.adapterSession.status))
|
|
573
490
|
return;
|
|
574
491
|
entry.autoPollActive = true;
|
|
575
|
-
entry.autoPollObservedPollingTool = false;
|
|
576
|
-
entry.autoPollObservedAssistantText = false;
|
|
577
|
-
entry.stopAutoPollAfterCurrentTurn = false;
|
|
578
492
|
entry.adapterSession.status = "thinking";
|
|
579
493
|
this.emit("status-change", sessionId, "thinking");
|
|
580
494
|
void entry.runtime
|
|
@@ -597,12 +511,6 @@ export class AcodeSdkAdapter extends EventEmitter {
|
|
|
597
511
|
latestEntry.failedTurnRecoveryScheduled = false;
|
|
598
512
|
return;
|
|
599
513
|
}
|
|
600
|
-
if (latestEntry.stopAutoPollAfterCurrentTurn) {
|
|
601
|
-
latestEntry.stopAutoPollAfterCurrentTurn = false;
|
|
602
|
-
latestEntry.autoPollObservedPollingTool = false;
|
|
603
|
-
latestEntry.autoPollObservedAssistantText = false;
|
|
604
|
-
return;
|
|
605
|
-
}
|
|
606
514
|
if (latestEntry.adapterSession.status === "error") {
|
|
607
515
|
this.recoverTurnFailure(sessionId, latestEntry);
|
|
608
516
|
return;
|
|
@@ -46,30 +46,6 @@ class McpStatusRuntime extends EventEmitter {
|
|
|
46
46
|
async abort() { }
|
|
47
47
|
async stop() { }
|
|
48
48
|
}
|
|
49
|
-
class BuiltinReadStatusRuntime extends EventEmitter {
|
|
50
|
-
constructor(config) {
|
|
51
|
-
super();
|
|
52
|
-
this.config = config;
|
|
53
|
-
}
|
|
54
|
-
async start() { }
|
|
55
|
-
async submit(_message) {
|
|
56
|
-
this.emit("event", {
|
|
57
|
-
type: "mcp_status",
|
|
58
|
-
sessionId: this.config.sessionId,
|
|
59
|
-
timestamp: new Date(0).toISOString(),
|
|
60
|
-
data: {
|
|
61
|
-
action: "call_tool",
|
|
62
|
-
server: "builtin",
|
|
63
|
-
tool: "read_file",
|
|
64
|
-
exposedName: "builtin/read_file",
|
|
65
|
-
toolUseId: "tool-read-1",
|
|
66
|
-
arguments: { path: "src/views/App.vue" },
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
async abort() { }
|
|
71
|
-
async stop() { }
|
|
72
|
-
}
|
|
73
49
|
class McpResultRuntime extends EventEmitter {
|
|
74
50
|
constructor(config) {
|
|
75
51
|
super();
|
|
@@ -121,65 +97,6 @@ class PollMessageStatusRuntime extends EventEmitter {
|
|
|
121
97
|
async abort() { }
|
|
122
98
|
async stop() { }
|
|
123
99
|
}
|
|
124
|
-
class EmptyPollResultRuntime extends EventEmitter {
|
|
125
|
-
constructor(config) {
|
|
126
|
-
super();
|
|
127
|
-
this.config = config;
|
|
128
|
-
}
|
|
129
|
-
async start() { }
|
|
130
|
-
async submit(_message) {
|
|
131
|
-
this.emit("event", {
|
|
132
|
-
type: "mcp_status",
|
|
133
|
-
sessionId: this.config.sessionId,
|
|
134
|
-
timestamp: new Date(0).toISOString(),
|
|
135
|
-
data: { action: "call_tool", server: "aws-mcp", tool: "poll_message" },
|
|
136
|
-
});
|
|
137
|
-
this.emit("event", {
|
|
138
|
-
type: "mcp_status",
|
|
139
|
-
sessionId: this.config.sessionId,
|
|
140
|
-
timestamp: new Date(0).toISOString(),
|
|
141
|
-
data: {
|
|
142
|
-
action: "tool_result",
|
|
143
|
-
server: "aws-mcp",
|
|
144
|
-
tool: "poll_message",
|
|
145
|
-
result: JSON.stringify({ directMessages: [], groupMessages: [] }),
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
async abort() { }
|
|
150
|
-
async stop() { }
|
|
151
|
-
}
|
|
152
|
-
class PollResultWithMessageRuntime extends EventEmitter {
|
|
153
|
-
constructor(config) {
|
|
154
|
-
super();
|
|
155
|
-
this.config = config;
|
|
156
|
-
}
|
|
157
|
-
async start() { }
|
|
158
|
-
async submit(_message) {
|
|
159
|
-
this.emit("event", {
|
|
160
|
-
type: "mcp_status",
|
|
161
|
-
sessionId: this.config.sessionId,
|
|
162
|
-
timestamp: new Date(0).toISOString(),
|
|
163
|
-
data: { action: "call_tool", server: "aws-mcp", tool: "poll_message" },
|
|
164
|
-
});
|
|
165
|
-
this.emit("event", {
|
|
166
|
-
type: "mcp_status",
|
|
167
|
-
sessionId: this.config.sessionId,
|
|
168
|
-
timestamp: new Date(0).toISOString(),
|
|
169
|
-
data: {
|
|
170
|
-
action: "tool_result",
|
|
171
|
-
server: "aws-mcp",
|
|
172
|
-
tool: "poll_message",
|
|
173
|
-
result: JSON.stringify({
|
|
174
|
-
directMessages: [{ senderName: "User", content: "ping" }],
|
|
175
|
-
groupMessages: [],
|
|
176
|
-
}),
|
|
177
|
-
},
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
async abort() { }
|
|
181
|
-
async stop() { }
|
|
182
|
-
}
|
|
183
100
|
class CommandStatusRuntime extends EventEmitter {
|
|
184
101
|
constructor(config) {
|
|
185
102
|
super();
|
|
@@ -215,7 +132,6 @@ class AiRequestRuntime extends EventEmitter {
|
|
|
215
132
|
messageCount: 3,
|
|
216
133
|
toolCount: 2,
|
|
217
134
|
lastUserMessagePreview: "inspect status",
|
|
218
|
-
estimatedContextTokens: 6800,
|
|
219
135
|
requestBody: '{"model":"test-model"}',
|
|
220
136
|
},
|
|
221
137
|
});
|
|
@@ -378,56 +294,6 @@ class AutoPollRuntime extends EventEmitter {
|
|
|
378
294
|
async stop() { }
|
|
379
295
|
}
|
|
380
296
|
AutoPollRuntime.submitMessages = [];
|
|
381
|
-
class NonPollingAutoPollRuntime extends EventEmitter {
|
|
382
|
-
constructor(config) {
|
|
383
|
-
super();
|
|
384
|
-
this.config = config;
|
|
385
|
-
}
|
|
386
|
-
async start() { }
|
|
387
|
-
async submit(message) {
|
|
388
|
-
NonPollingAutoPollRuntime.submitMessages.push(message);
|
|
389
|
-
this.emit("event", {
|
|
390
|
-
type: "assistant_delta",
|
|
391
|
-
sessionId: this.config.sessionId,
|
|
392
|
-
timestamp: new Date(0).toISOString(),
|
|
393
|
-
data: { text: "I cannot call poll_message." },
|
|
394
|
-
});
|
|
395
|
-
this.emit("event", {
|
|
396
|
-
type: "turn_complete",
|
|
397
|
-
sessionId: this.config.sessionId,
|
|
398
|
-
timestamp: new Date(0).toISOString(),
|
|
399
|
-
data: { usage: { inputTokens: 1, outputTokens: 1 } },
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
async abort() { }
|
|
403
|
-
async stop() { }
|
|
404
|
-
}
|
|
405
|
-
NonPollingAutoPollRuntime.submitMessages = [];
|
|
406
|
-
class PollingAutoPollRuntime extends EventEmitter {
|
|
407
|
-
constructor(config) {
|
|
408
|
-
super();
|
|
409
|
-
this.config = config;
|
|
410
|
-
}
|
|
411
|
-
async start() { }
|
|
412
|
-
async submit(message) {
|
|
413
|
-
PollingAutoPollRuntime.submitMessages.push(message);
|
|
414
|
-
this.emit("event", {
|
|
415
|
-
type: "mcp_status",
|
|
416
|
-
sessionId: this.config.sessionId,
|
|
417
|
-
timestamp: new Date(0).toISOString(),
|
|
418
|
-
data: { action: "call_tool", server: "aws-mcp", tool: "poll_message" },
|
|
419
|
-
});
|
|
420
|
-
this.emit("event", {
|
|
421
|
-
type: "turn_complete",
|
|
422
|
-
sessionId: this.config.sessionId,
|
|
423
|
-
timestamp: new Date(0).toISOString(),
|
|
424
|
-
data: { usage: { inputTokens: 1, outputTokens: 1 } },
|
|
425
|
-
});
|
|
426
|
-
}
|
|
427
|
-
async abort() { }
|
|
428
|
-
async stop() { }
|
|
429
|
-
}
|
|
430
|
-
PollingAutoPollRuntime.submitMessages = [];
|
|
431
297
|
class TerminalAfterTurnRuntime extends EventEmitter {
|
|
432
298
|
constructor(config) {
|
|
433
299
|
super();
|
|
@@ -680,11 +546,7 @@ describe("AcodeSdkAdapter turn completion state", () => {
|
|
|
680
546
|
const adapter = new AcodeSdkAdapter();
|
|
681
547
|
adapter.setRuntimeConstructorForTest(ResponseBodyTurnCompleteRuntime);
|
|
682
548
|
const events = [];
|
|
683
|
-
const statuses = [];
|
|
684
549
|
adapter.on("event", (event) => events.push(event));
|
|
685
|
-
adapter.on("status-change", (_sessionId, status, actionInfo) => {
|
|
686
|
-
statuses.push({ status, usage: actionInfo?.usage });
|
|
687
|
-
});
|
|
688
550
|
await adapter.startSession("session-response-body", {
|
|
689
551
|
command: "acode",
|
|
690
552
|
workingDirectory: process.cwd(),
|
|
@@ -771,42 +633,6 @@ describe("AcodeSdkAdapter turn completion state", () => {
|
|
|
771
633
|
});
|
|
772
634
|
expect(adapter.getSessionStatus("session-mcp")).toBe("waiting_input");
|
|
773
635
|
});
|
|
774
|
-
it("preserves built-in file tool arguments in ACode provider events and statuses", async () => {
|
|
775
|
-
const adapter = new AcodeSdkAdapter();
|
|
776
|
-
adapter.setRuntimeConstructorForTest(BuiltinReadStatusRuntime);
|
|
777
|
-
const events = [];
|
|
778
|
-
const statuses = [];
|
|
779
|
-
adapter.on("event", (event) => events.push(event));
|
|
780
|
-
adapter.on("status-change", (_sessionId, status, actionInfo) => {
|
|
781
|
-
statuses.push({
|
|
782
|
-
status,
|
|
783
|
-
actionType: actionInfo?.actionType,
|
|
784
|
-
actionDetail: actionInfo?.actionDetail,
|
|
785
|
-
});
|
|
786
|
-
});
|
|
787
|
-
await adapter.startSession("session-builtin-read", {
|
|
788
|
-
command: "acode",
|
|
789
|
-
workingDirectory: process.cwd(),
|
|
790
|
-
autoAccept: true,
|
|
791
|
-
extraMcpServers: {},
|
|
792
|
-
envOverrides: {},
|
|
793
|
-
});
|
|
794
|
-
await adapter.sendMessage("session-builtin-read", "read file");
|
|
795
|
-
expect(events.map((event) => event.type)).toEqual(["tool_use_start"]);
|
|
796
|
-
expect(events[0]?.data).toMatchObject({
|
|
797
|
-
actionType: "read_file",
|
|
798
|
-
actionLabel: "读取文件",
|
|
799
|
-
actionDetail: "src/views/App.vue",
|
|
800
|
-
actionId: "tool-read-1",
|
|
801
|
-
toolUseId: "tool-read-1",
|
|
802
|
-
toolInput: { path: "src/views/App.vue" },
|
|
803
|
-
});
|
|
804
|
-
expect(statuses.at(-2)).toEqual({
|
|
805
|
-
status: "tool_using",
|
|
806
|
-
actionType: "read_file",
|
|
807
|
-
actionDetail: "src/views/App.vue",
|
|
808
|
-
});
|
|
809
|
-
});
|
|
810
636
|
it("clears active MCP tool status when ACode reports a tool result", async () => {
|
|
811
637
|
const adapter = new AcodeSdkAdapter();
|
|
812
638
|
adapter.setRuntimeConstructorForTest(McpResultRuntime);
|
|
@@ -886,63 +712,6 @@ describe("AcodeSdkAdapter turn completion state", () => {
|
|
|
886
712
|
});
|
|
887
713
|
expect(adapter.getSessionStatus("session-poll-message")).toBe("waiting_input");
|
|
888
714
|
});
|
|
889
|
-
it("keeps empty poll_message results in waiting_input instead of showing stuck thinking", async () => {
|
|
890
|
-
const adapter = new AcodeSdkAdapter();
|
|
891
|
-
adapter.setRuntimeConstructorForTest(EmptyPollResultRuntime);
|
|
892
|
-
const events = [];
|
|
893
|
-
const statuses = [];
|
|
894
|
-
adapter.on("event", (event) => events.push(event));
|
|
895
|
-
adapter.on("status-change", (_sessionId, status) => statuses.push(status));
|
|
896
|
-
await adapter.startSession("session-empty-poll-result", {
|
|
897
|
-
command: "acode",
|
|
898
|
-
workingDirectory: process.cwd(),
|
|
899
|
-
autoAccept: true,
|
|
900
|
-
extraMcpServers: {},
|
|
901
|
-
envOverrides: {},
|
|
902
|
-
});
|
|
903
|
-
await adapter.sendMessage("session-empty-poll-result", "listen");
|
|
904
|
-
expect(events.map((event) => event.type)).toEqual([
|
|
905
|
-
"tool_use_start",
|
|
906
|
-
"tool_use_end",
|
|
907
|
-
]);
|
|
908
|
-
expect(statuses).toEqual([
|
|
909
|
-
"starting",
|
|
910
|
-
"waiting_input",
|
|
911
|
-
"thinking",
|
|
912
|
-
"waiting_input",
|
|
913
|
-
"waiting_input",
|
|
914
|
-
]);
|
|
915
|
-
expect(adapter.getSessionStatus("session-empty-poll-result")).toBe("waiting_input");
|
|
916
|
-
});
|
|
917
|
-
it("shows thinking after poll_message returns actual messages to process", async () => {
|
|
918
|
-
const adapter = new AcodeSdkAdapter();
|
|
919
|
-
adapter.setRuntimeConstructorForTest(PollResultWithMessageRuntime);
|
|
920
|
-
const events = [];
|
|
921
|
-
const statuses = [];
|
|
922
|
-
adapter.on("event", (event) => events.push(event));
|
|
923
|
-
adapter.on("status-change", (_sessionId, status) => statuses.push(status));
|
|
924
|
-
await adapter.startSession("session-poll-result-with-message", {
|
|
925
|
-
command: "acode",
|
|
926
|
-
workingDirectory: process.cwd(),
|
|
927
|
-
autoAccept: true,
|
|
928
|
-
extraMcpServers: {},
|
|
929
|
-
envOverrides: {},
|
|
930
|
-
});
|
|
931
|
-
await adapter.sendMessage("session-poll-result-with-message", "listen");
|
|
932
|
-
expect(events.map((event) => event.type)).toEqual([
|
|
933
|
-
"tool_use_start",
|
|
934
|
-
"tool_use_end",
|
|
935
|
-
]);
|
|
936
|
-
expect(statuses).toEqual([
|
|
937
|
-
"starting",
|
|
938
|
-
"waiting_input",
|
|
939
|
-
"thinking",
|
|
940
|
-
"waiting_input",
|
|
941
|
-
"thinking",
|
|
942
|
-
"waiting_input",
|
|
943
|
-
]);
|
|
944
|
-
expect(adapter.getSessionStatus("session-poll-result-with-message")).toBe("waiting_input");
|
|
945
|
-
});
|
|
946
715
|
it("forwards ACode command status as thinking without changing session status", async () => {
|
|
947
716
|
const adapter = new AcodeSdkAdapter();
|
|
948
717
|
adapter.setRuntimeConstructorForTest(CommandStatusRuntime);
|
|
@@ -973,11 +742,7 @@ describe("AcodeSdkAdapter turn completion state", () => {
|
|
|
973
742
|
const adapter = new AcodeSdkAdapter();
|
|
974
743
|
adapter.setRuntimeConstructorForTest(AiRequestRuntime);
|
|
975
744
|
const events = [];
|
|
976
|
-
const statuses = [];
|
|
977
745
|
adapter.on("event", (event) => events.push(event));
|
|
978
|
-
adapter.on("status-change", (_sessionId, status, actionInfo) => {
|
|
979
|
-
statuses.push({ status, usage: actionInfo?.usage });
|
|
980
|
-
});
|
|
981
746
|
await adapter.startSession("session-ai-request", {
|
|
982
747
|
command: "acode",
|
|
983
748
|
workingDirectory: process.cwd(),
|
|
@@ -999,10 +764,6 @@ describe("AcodeSdkAdapter turn completion state", () => {
|
|
|
999
764
|
requestBody: '{"model":"test-model"}',
|
|
1000
765
|
},
|
|
1001
766
|
});
|
|
1002
|
-
expect(statuses).toContainEqual({
|
|
1003
|
-
status: "thinking",
|
|
1004
|
-
usage: { inputTokens: 6800, outputTokens: 0 },
|
|
1005
|
-
});
|
|
1006
767
|
});
|
|
1007
768
|
it("forwards ACode thinking deltas as realtime thinking provider events", async () => {
|
|
1008
769
|
const adapter = new AcodeSdkAdapter();
|
|
@@ -1181,78 +942,6 @@ describe("AcodeSdkAdapter turn completion state", () => {
|
|
|
1181
942
|
adapter.cleanup();
|
|
1182
943
|
}
|
|
1183
944
|
});
|
|
1184
|
-
it("stops re-arming auto-poll when the model answers without calling poll_message", async () => {
|
|
1185
|
-
vi.useFakeTimers();
|
|
1186
|
-
NonPollingAutoPollRuntime.submitMessages = [];
|
|
1187
|
-
const adapter = new AcodeSdkAdapter();
|
|
1188
|
-
adapter.setRuntimeConstructorForTest(NonPollingAutoPollRuntime);
|
|
1189
|
-
try {
|
|
1190
|
-
await adapter.startSession("session-non-polling-auto-poll", {
|
|
1191
|
-
command: "acode",
|
|
1192
|
-
workingDirectory: process.cwd(),
|
|
1193
|
-
autoAccept: true,
|
|
1194
|
-
extraMcpServers: {},
|
|
1195
|
-
envOverrides: {},
|
|
1196
|
-
});
|
|
1197
|
-
await vi.advanceTimersByTimeAsync(250);
|
|
1198
|
-
expect(NonPollingAutoPollRuntime.submitMessages).toHaveLength(1);
|
|
1199
|
-
expect(NonPollingAutoPollRuntime.submitMessages[0]).toContain("poll_message");
|
|
1200
|
-
await vi.advanceTimersByTimeAsync(5_000);
|
|
1201
|
-
expect(NonPollingAutoPollRuntime.submitMessages).toHaveLength(1);
|
|
1202
|
-
expect(adapter.getSessionStatus("session-non-polling-auto-poll")).toBe("waiting_input");
|
|
1203
|
-
}
|
|
1204
|
-
finally {
|
|
1205
|
-
vi.useRealTimers();
|
|
1206
|
-
adapter.cleanup();
|
|
1207
|
-
}
|
|
1208
|
-
});
|
|
1209
|
-
it("keeps re-arming auto-poll when the model actually calls poll_message", async () => {
|
|
1210
|
-
vi.useFakeTimers();
|
|
1211
|
-
PollingAutoPollRuntime.submitMessages = [];
|
|
1212
|
-
const adapter = new AcodeSdkAdapter();
|
|
1213
|
-
adapter.setRuntimeConstructorForTest(PollingAutoPollRuntime);
|
|
1214
|
-
try {
|
|
1215
|
-
await adapter.startSession("session-polling-auto-poll", {
|
|
1216
|
-
command: "acode",
|
|
1217
|
-
workingDirectory: process.cwd(),
|
|
1218
|
-
autoAccept: true,
|
|
1219
|
-
extraMcpServers: {},
|
|
1220
|
-
envOverrides: {},
|
|
1221
|
-
});
|
|
1222
|
-
await vi.advanceTimersByTimeAsync(250);
|
|
1223
|
-
expect(PollingAutoPollRuntime.submitMessages).toHaveLength(1);
|
|
1224
|
-
await vi.advanceTimersByTimeAsync(250);
|
|
1225
|
-
expect(PollingAutoPollRuntime.submitMessages).toHaveLength(2);
|
|
1226
|
-
}
|
|
1227
|
-
finally {
|
|
1228
|
-
vi.useRealTimers();
|
|
1229
|
-
adapter.cleanup();
|
|
1230
|
-
}
|
|
1231
|
-
});
|
|
1232
|
-
it("keeps re-arming auto-poll when a poll turn completes without assistant text", async () => {
|
|
1233
|
-
vi.useFakeTimers();
|
|
1234
|
-
AutoPollRuntime.submitMessages = [];
|
|
1235
|
-
const adapter = new AcodeSdkAdapter();
|
|
1236
|
-
adapter.setRuntimeConstructorForTest(AutoPollRuntime);
|
|
1237
|
-
try {
|
|
1238
|
-
await adapter.startSession("session-empty-auto-poll-turn", {
|
|
1239
|
-
command: "acode",
|
|
1240
|
-
workingDirectory: process.cwd(),
|
|
1241
|
-
autoAccept: true,
|
|
1242
|
-
extraMcpServers: {},
|
|
1243
|
-
envOverrides: {},
|
|
1244
|
-
});
|
|
1245
|
-
await vi.advanceTimersByTimeAsync(250);
|
|
1246
|
-
expect(AutoPollRuntime.submitMessages).toHaveLength(1);
|
|
1247
|
-
await vi.advanceTimersByTimeAsync(250);
|
|
1248
|
-
expect(AutoPollRuntime.submitMessages).toHaveLength(2);
|
|
1249
|
-
expect(AutoPollRuntime.submitMessages[1]).toContain("poll_message");
|
|
1250
|
-
}
|
|
1251
|
-
finally {
|
|
1252
|
-
vi.useRealTimers();
|
|
1253
|
-
adapter.cleanup();
|
|
1254
|
-
}
|
|
1255
|
-
});
|
|
1256
945
|
it("cancels a pending auto-poll when a user message arrives", async () => {
|
|
1257
946
|
vi.useFakeTimers();
|
|
1258
947
|
AutoPollRuntime.submitMessages = [];
|
|
@@ -1325,8 +1014,8 @@ describe("AcodeSdkAdapter turn completion state", () => {
|
|
|
1325
1014
|
await vi.advanceTimersByTimeAsync(250);
|
|
1326
1015
|
// Status sequence: starting -> waiting_input (startSession) ->
|
|
1327
1016
|
// thinking (auto-poll fires) -> waiting_input (turn_complete success
|
|
1328
|
-
// re-arms the loop).
|
|
1329
|
-
//
|
|
1017
|
+
// re-arms the loop). The 2nd auto-poll is scheduled but not yet fired
|
|
1018
|
+
// because the advance only covers the first 250ms.
|
|
1330
1019
|
expect(AutoPollRuntime.submitMessages).toHaveLength(1);
|
|
1331
1020
|
expect(AutoPollRuntime.submitMessages[0]).toContain("poll_message");
|
|
1332
1021
|
expect(statuses).toEqual([
|
|
@@ -517,7 +517,7 @@ export class OpencodeSdkAdapter extends EventEmitter {
|
|
|
517
517
|
data: { usage: session.adapterSession.totalUsage },
|
|
518
518
|
});
|
|
519
519
|
session.adapterSession.status = 'waiting_input';
|
|
520
|
-
this.emit('status-change', sessionId, 'waiting_input'
|
|
520
|
+
this.emit('status-change', sessionId, 'waiting_input');
|
|
521
521
|
this.startIdleDetection(sessionId);
|
|
522
522
|
break;
|
|
523
523
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,eAAe,GACf,WAAW,GACX,YAAY,GACZ,OAAO,CAAC;AAIZ,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,gBAAgB,GAChB,cAAc,GACd,oBAAoB,GACpB,mBAAmB,GACnB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,OAAO,CAAC;AAIZ;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,KAAK,GACL,MAAM,GACN,WAAW,GACX,YAAY,GACZ,WAAW,GACX,MAAM,GACN,QAAQ,GACR,KAAK,GACL,YAAY,GACZ,KAAK,GACL,UAAU,GACV,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa;IACb,UAAU,EAAE,cAAc,CAAC;IAC3B,iBAAiB;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAUD;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQvE;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWvE;AAED;;GAEG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,OAAO,GACb,OAAO,CAgBT;AAyCD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAsBjE;AAQD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,QAAQ,CAAC,EAAE,YAAY,GACtB,cAAc,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter/types.js
CHANGED
|
@@ -132,13 +132,9 @@ export function getToolActionInfo(toolName, toolInput, metadata) {
|
|
|
132
132
|
const normalizedName = name.replace(/[_-]/g, "");
|
|
133
133
|
const semanticToolName = name.startsWith("mcp__")
|
|
134
134
|
? name.split("__").slice(2).join("__")
|
|
135
|
-
: name.
|
|
136
|
-
? name.
|
|
137
|
-
: name
|
|
138
|
-
? name.slice(name.indexOf("-mcp__") + 6)
|
|
139
|
-
: name.includes("/")
|
|
140
|
-
? name.split("/").filter(Boolean).at(-1) || name
|
|
141
|
-
: name;
|
|
135
|
+
: name.includes("-mcp__")
|
|
136
|
+
? name.slice(name.indexOf("-mcp__") + 6)
|
|
137
|
+
: name;
|
|
142
138
|
const normalizedSemanticToolName = semanticToolName.replace(/[_-]/g, "");
|
|
143
139
|
const normalizeSkillList = (value) => {
|
|
144
140
|
if (!Array.isArray(value)) {
|