aws-runtime-bridge 1.8.5 → 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.
Files changed (42) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
  2. package/dist/adapter/AcodeSdkAdapter.js +6 -98
  3. package/dist/adapter/AcodeSdkAdapter.test.js +2 -313
  4. package/dist/adapter/OpencodeSdkAdapter.js +1 -1
  5. package/dist/adapter/types.d.ts.map +1 -1
  6. package/dist/adapter/types.js +3 -7
  7. package/dist/config.d.ts +3 -2
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +13 -36
  10. package/dist/config.test.js +20 -24
  11. package/dist/routes/ai-sources.js +1 -5
  12. package/dist/routes/ai-sources.test.js +0 -21
  13. package/dist/routes/instance.d.ts.map +1 -1
  14. package/dist/routes/instance.js +14 -31
  15. package/dist/routes/instance.test.js +224 -215
  16. package/dist/routes/runtime-binding.d.ts.map +1 -1
  17. package/dist/routes/runtime-binding.js +1 -36
  18. package/dist/routes/terminal.d.ts +0 -2
  19. package/dist/routes/terminal.d.ts.map +1 -1
  20. package/dist/routes/terminal.js +7 -109
  21. package/dist/routes/terminal.test.js +1 -118
  22. package/dist/services/mcp-launch-binding-queue.d.ts +0 -7
  23. package/dist/services/mcp-launch-binding-queue.d.ts.map +1 -1
  24. package/dist/services/mcp-launch-binding-queue.js +0 -25
  25. package/dist/services/session-output.d.ts +3 -7
  26. package/dist/services/session-output.d.ts.map +1 -1
  27. package/package/acode/dist/runtime.d.ts +0 -1
  28. package/package/acode/dist/runtime.d.ts.map +1 -1
  29. package/package/acode/dist/runtime.js +31 -265
  30. package/package/acode/dist/types.d.ts +1 -1
  31. package/package/acode/dist/types.d.ts.map +1 -1
  32. package/package/aws-client-agent-mcp/dist/config.d.ts +0 -4
  33. package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -1
  34. package/package/aws-client-agent-mcp/dist/config.js +0 -15
  35. package/package/aws-client-agent-mcp/dist/config.js.map +1 -1
  36. package/package/aws-client-agent-mcp/dist/http-client.d.ts +0 -10
  37. package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -1
  38. package/package/aws-client-agent-mcp/dist/http-client.js +1 -79
  39. package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -1
  40. package/package/aws-client-agent-mcp/dist/http-client.test.js +265 -129
  41. package/package/aws-client-agent-mcp/dist/http-client.test.js.map +1 -1
  42. 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;AAe3C,OAAO,KAAK,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAEnB,aAAa,EAEd,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAEF,KAAK,uBAAuB,GAAG,KAAK,MAAM,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,KAAK,oBAAoB,CAAC;AAkD3B,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpE;AAkDD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAET;AAyDD,qBAAa,eACX,SAAQ,YACR,YAAW,mBAAmB;IAE9B,QAAQ,CAAC,UAAU,WAAW;IAC9B,QAAQ,CAAC,WAAW,WAAW;IAE/B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,kBAAkB,CAAC,CAA0B;IAE/C,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC;IA8CV,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9D,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAErE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAIzD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9D,OAAO,IAAI,IAAI;IAMf,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAC9D,IAAI;IAuBP,iGAAiG;IACjG,4BAA4B,CAC1B,kBAAkB,EAAE,uBAAuB,GAC1C,IAAI;YAIO,aAAa;YAsBb,sBAAsB;IAepC,OAAO,CAAC,cAAc;IAQtB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,iBAAiB;IA8PzB,OAAO,CAAC,iBAAiB;IAazB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,oBAAoB;IAqD5B;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,kBAAkB;IAwC1B;;;;;;;;OAQG;IACH,OAAO,CAAC,uCAAuC;CAehD"}
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 toolInput = event.data.arguments &&
475
- typeof event.data.arguments === "object" &&
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
- const status = actionInfo.actionType === "idle" &&
506
- !hasPollingMessages(event.data.result)
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). Empty turns are allowed to retry because only a
1329
- // plain-text assistant answer indicates the model ignored poll_message.
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', { usage: session.adapterSession.totalUsage });
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":"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"}
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,CA0ahB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,0CAA0C;QAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4BAA4B;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,yCAAyC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,8BAA8B;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,+BAA+B;QAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,8BAA8B;QAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kCAAkC;QAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,kDAAkD;QAClD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kEAAkE;QAClE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,2BAA2B;QAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,6BAA6B;QAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,8BAA8B;QAC9B,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAC1B,uDAAuD;QACvD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,+BAA+B;QAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iCAAiC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,4BAA4B;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,4BAA4B;QAC5B,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,KAAK,CAAC;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,WAAW,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,CAAC,CAAC;QACH,6BAA6B;QAC7B,UAAU,CAAC,EAAE,cAAc,CAAC;QAC5B,+BAA+B;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,6BAA6B;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,+CAA+C;QAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,2BAA2B;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAID,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,uBAAuB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/C,mBAAmB;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa;IACb,YAAY,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa;IACb,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,iBAAiB;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAID,MAAM,WAAW,cAAc;IAC7B,cAAc;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa;IACb,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1D,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAID,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;CACJ;AAID;;;;;;;;;;;;;GAaG;AACH,8BAAsB,mBAAoB,SAAQ,YAAY;IAC5D,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAErC,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvE;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5E;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,CAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,CACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAC9D,IAAI;IAEP;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,CACrB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAElE;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAE/C;;OAEG;IACH,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAEpE;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAEvE;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAE9D;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,IAAI;CACzB"}
@@ -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.startsWith("builtin__")
136
- ? name.split("__").slice(1).join("__")
137
- : name.includes("-mcp__")
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)) {