aws-runtime-bridge 1.6.8 → 1.6.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ClaudeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/ClaudeSdkAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClaudeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/ClaudeSdkAdapter.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import * as fs from 'fs';
15
15
  import * as path from 'path';
16
16
  import { v4 as uuidv4 } from 'uuid';
17
17
  import { getToolActionInfo } from './types.js';
18
+ import { importBridgeSdkPackage } from '../utils/sdk-package-loader.js';
18
19
  // ============ AsyncIterableQueue ============
19
20
  /**
20
21
  * 可排队的 AsyncIterable,用于向 SDK query() 输入流推送用户消息
@@ -567,7 +568,7 @@ export class ClaudeSdkAdapter extends EventEmitter {
567
568
  async loadSdk() {
568
569
  if (!this.sdkModule) {
569
570
  try {
570
- this.sdkModule = await import('@anthropic-ai/claude-agent-sdk');
571
+ this.sdkModule = await importBridgeSdkPackage('@anthropic-ai/claude-agent-sdk');
571
572
  }
572
573
  catch (err) {
573
574
  throw new Error(`Failed to load @anthropic-ai/claude-agent-sdk. Please install: npm install @anthropic-ai/claude-agent-sdk. Original error: ${err}`);
@@ -336,7 +336,9 @@ instanceRouter.post("/cc-switch/install-tools", validateToken, async (req, res)
336
336
  enabledTools,
337
337
  toolStatus: nextToolStatus,
338
338
  });
339
+ const installableToolSet = new Set(installableTools);
339
340
  const failedTools = Object.entries(nextToolStatus)
341
+ .filter(([tool]) => installableToolSet.has(tool))
340
342
  .filter(([, status]) => !status.installed)
341
343
  .map(([tool, status]) => ({ tool, error: status.error || null }));
342
344
  if (failedTools.length > 0) {
@@ -351,9 +353,10 @@ instanceRouter.post("/cc-switch/install-tools", validateToken, async (req, res)
351
353
  toolStatus: summarizeToolStatus(nextToolStatus),
352
354
  });
353
355
  res.json({
354
- ok: true,
356
+ ok: failedTools.length === 0,
355
357
  agentId: String(agentId),
356
358
  toolStatus: nextToolStatus,
359
+ failedTools,
357
360
  state: savedState,
358
361
  });
359
362
  }
@@ -24,6 +24,14 @@ export declare function getToolCommandSpecs(tool: string, phase: "install" | "un
24
24
  kind: ToolCommand["kind"];
25
25
  }>;
26
26
  export declare function isVoltaShimPath(commandPath: string): boolean;
27
+ export declare function buildSdkCliInstallStatus(tool: string, sdkResult: {
28
+ executable: string | null;
29
+ version: string | null;
30
+ error: string | null;
31
+ }, cliResult: {
32
+ executable: string | null;
33
+ error: string | null;
34
+ }, requiresCli: boolean): ToolInstallStatus;
27
35
  /**
28
36
  * 检查单个工具的 CLI 可执行状态,供实例状态展示与初始化前判断使用。
29
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tool-installer.d.ts","sourceRoot":"","sources":["../../src/services/tool-installer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAwBrD,KAAK,WAAW,GACZ;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAiHN,eAAO,MAAM,2BAA2B,mBAEvC,CAAC;AAEF,eAAO,MAAM,6BAA6B,mBAIzC,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,GAAG,WAAW,GAC7B,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAaxF;AAoDD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAM5D;AAgPD;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAsC5B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAkB5C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAsF5C;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAiD5C"}
1
+ {"version":3,"file":"tool-installer.d.ts","sourceRoot":"","sources":["../../src/services/tool-installer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA0C,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAiC7F,KAAK,WAAW,GACZ;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAqLN,eAAO,MAAM,2BAA2B,mBAEvC,CAAC;AAEF,eAAO,MAAM,6BAA6B,mBAIzC,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,GAAG,WAAW,GAC7B,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAaxF;AAoDD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAM5D;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACtF,SAAS,EAAE;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC9D,WAAW,EAAE,OAAO,GACnB,iBAAiB,CAkBnB;AAiSD;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAqC5B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAkB5C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CA0J5C;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAiD5C"}
@@ -18,9 +18,25 @@ function quoteCommandArg(value) {
18
18
  function npmInstallIntoBridgeCommand(packages) {
19
19
  return `npm install --prefix ${quoteCommandArg(bridgePackageRoot)} ${packages.join(" ")}`;
20
20
  }
21
+ function npmInstallIntoBridgeWithOptionsCommand(packages, options) {
22
+ return `npm install --prefix ${quoteCommandArg(bridgePackageRoot)} ${packages.join(" ")} ${options.join(" ")}`;
23
+ }
24
+ function npmGlobalInstallCommand(packages) {
25
+ return `npm install -g ${packages.join(" ")}`;
26
+ }
21
27
  function npmUninstallFromBridgeCommand(packages) {
22
28
  return `npm uninstall --prefix ${quoteCommandArg(bridgePackageRoot)} ${packages.join(" ")}`;
23
29
  }
30
+ function npmBridgeInstallCommand(packages, options = []) {
31
+ return {
32
+ kind: "execFile",
33
+ command: npmExecutableName(),
34
+ args: ["install", "--prefix", bridgePackageRoot, ...packages, ...options],
35
+ display: options.length > 0
36
+ ? npmInstallIntoBridgeWithOptionsCommand(packages, options)
37
+ : npmInstallIntoBridgeCommand(packages),
38
+ };
39
+ }
24
40
  function npmExecutableName() {
25
41
  return isWindows ? "npm.cmd" : "npm";
26
42
  }
@@ -29,19 +45,39 @@ function npmExecutableName() {
29
45
  * 主流程:展示层保留可读命令;执行层使用参数数组,避免 Windows shell 引号被 npm 当作路径内容。
30
46
  */
31
47
  function npmBridgeCommand(action, packages) {
32
- const display = action === "install"
33
- ? npmInstallIntoBridgeCommand(packages)
34
- : npmUninstallFromBridgeCommand(packages);
48
+ if (action === "install") {
49
+ return npmBridgeInstallCommand(packages);
50
+ }
35
51
  return {
36
52
  kind: "execFile",
37
53
  command: npmExecutableName(),
38
54
  args: [action, "--prefix", bridgePackageRoot, ...packages],
39
- display,
55
+ display: npmUninstallFromBridgeCommand(packages),
56
+ };
57
+ }
58
+ function npmGlobalCommand(action, packages) {
59
+ return {
60
+ kind: "execFile",
61
+ command: npmExecutableName(),
62
+ args: [action, "-g", ...packages],
63
+ display: npmGlobalInstallCommand(packages),
40
64
  };
41
65
  }
42
66
  function shellToolCommand(command) {
43
67
  return { kind: "shell", display: command };
44
68
  }
69
+ function nowIso() {
70
+ return new Date().toISOString();
71
+ }
72
+ function finishAttempt(attempt, updates) {
73
+ const finishedAt = nowIso();
74
+ return {
75
+ ...attempt,
76
+ ...updates,
77
+ finishedAt,
78
+ durationMs: Date.parse(finishedAt) - Date.parse(attempt.startedAt),
79
+ };
80
+ }
45
81
  const TOOL_DEFINITIONS = {
46
82
  claude: {
47
83
  key: "claude",
@@ -50,11 +86,23 @@ const TOOL_DEFINITIONS = {
50
86
  aliases: [],
51
87
  versionArgs: [],
52
88
  installCommands: [
53
- npmBridgeCommand("install", ["@anthropic-ai/claude-agent-sdk@latest"]),
89
+ npmBridgeCommand("uninstall", ["@anthropic-ai/claude-agent-sdk", "@anthropic-ai/sdk"]),
90
+ npmBridgeInstallCommand(["@anthropic-ai/sdk@latest"]),
91
+ npmBridgeInstallCommand(["@anthropic-ai/claude-agent-sdk@latest"]),
92
+ npmBridgeInstallCommand(["@anthropic-ai/claude-agent-sdk@latest"], ["--legacy-peer-deps"]),
93
+ npmGlobalCommand("install", ["@anthropic-ai/claude-code@latest"]),
54
94
  ],
55
95
  uninstallCommands: [
56
96
  npmBridgeCommand("uninstall", ["@anthropic-ai/claude-agent-sdk"]),
57
97
  ],
98
+ cliDependency: {
99
+ packageName: "@anthropic-ai/claude-code",
100
+ aliases: isWindows
101
+ ? ["claude.cmd", "claude.exe", "claude"]
102
+ : ["claude"],
103
+ versionArgs: ["--version"],
104
+ installCommands: [npmGlobalCommand("install", ["@anthropic-ai/claude-code@latest"])],
105
+ },
58
106
  },
59
107
  claudecode: {
60
108
  key: "claudecode",
@@ -63,11 +111,23 @@ const TOOL_DEFINITIONS = {
63
111
  aliases: [],
64
112
  versionArgs: [],
65
113
  installCommands: [
66
- npmBridgeCommand("install", ["@anthropic-ai/claude-agent-sdk@latest"]),
114
+ npmBridgeCommand("uninstall", ["@anthropic-ai/claude-agent-sdk", "@anthropic-ai/sdk"]),
115
+ npmBridgeInstallCommand(["@anthropic-ai/sdk@latest"]),
116
+ npmBridgeInstallCommand(["@anthropic-ai/claude-agent-sdk@latest"]),
117
+ npmBridgeInstallCommand(["@anthropic-ai/claude-agent-sdk@latest"], ["--legacy-peer-deps"]),
118
+ npmGlobalCommand("install", ["@anthropic-ai/claude-code@latest"]),
67
119
  ],
68
120
  uninstallCommands: [
69
121
  npmBridgeCommand("uninstall", ["@anthropic-ai/claude-agent-sdk"]),
70
122
  ],
123
+ cliDependency: {
124
+ packageName: "@anthropic-ai/claude-code",
125
+ aliases: isWindows
126
+ ? ["claude.cmd", "claude.exe", "claude"]
127
+ : ["claude"],
128
+ versionArgs: ["--version"],
129
+ installCommands: [npmGlobalCommand("install", ["@anthropic-ai/claude-code@latest"])],
130
+ },
71
131
  },
72
132
  opencode: {
73
133
  key: "opencode",
@@ -189,6 +249,24 @@ export function isVoltaShimPath(commandPath) {
189
249
  .toLowerCase();
190
250
  return /(?:^|\/)\.?volta\/bin\//.test(normalizedPath);
191
251
  }
252
+ export function buildSdkCliInstallStatus(tool, sdkResult, cliResult, requiresCli) {
253
+ const isSdkInstalled = Boolean(sdkResult.executable);
254
+ const isCliInstalled = requiresCli ? Boolean(cliResult.executable) : true;
255
+ const errorMessages = [
256
+ isSdkInstalled ? null : sdkResult.error,
257
+ isCliInstalled ? null : cliResult.error,
258
+ ].filter(Boolean);
259
+ return {
260
+ tool,
261
+ installed: isSdkInstalled && isCliInstalled,
262
+ executable: [sdkResult.executable, cliResult.executable]
263
+ .filter(Boolean)
264
+ .join("; ") || null,
265
+ version: sdkResult.version,
266
+ installing: false,
267
+ error: errorMessages.length > 0 ? errorMessages.join("; ") : null,
268
+ };
269
+ }
192
270
  async function isVoltaPackageInstalled(packageName) {
193
271
  try {
194
272
  const { stdout, stderr } = await execFileAsync("volta", ["list", "--format", "plain"], {
@@ -344,19 +422,58 @@ async function resolveSdkPackageCandidate(definition) {
344
422
  };
345
423
  }
346
424
  }
425
+ /**
426
+ * 检测工具必需的终端 CLI 是否可执行。
427
+ * 主流程:SDK 负责程序化调用,CLI 负责实际 Claude Code 运行;两者都可用才算集成可用。
428
+ */
429
+ async function resolveCliDependencyCandidate(definition) {
430
+ const cliDependency = definition.cliDependency;
431
+ if (!cliDependency) {
432
+ return { executable: null, version: null, error: null };
433
+ }
434
+ const cliResult = await resolveExecutableCandidate(cliDependency);
435
+ if (cliResult.executable) {
436
+ return cliResult;
437
+ }
438
+ return {
439
+ ...cliResult,
440
+ error: `CLI package ${cliDependency.packageName} is not installed or command is unavailable: ${cliResult.error || "command not installed"}`,
441
+ };
442
+ }
347
443
  function describeCommandFailure(error) {
348
444
  if (!error || typeof error !== "object") {
349
- return { message: String(error || "command failed") };
445
+ return {
446
+ step: "install_command",
447
+ command: null,
448
+ message: String(error || "command failed"),
449
+ code: null,
450
+ signal: null,
451
+ stdout: "",
452
+ stderr: "",
453
+ };
350
454
  }
351
455
  const failure = error;
352
456
  return {
457
+ step: "install_command",
458
+ command: null,
353
459
  message: typeof failure.message === "string" ? failure.message : String(error),
354
- code: failure.code ?? null,
355
- signal: failure.signal ?? null,
460
+ code: typeof failure.code === "string" || typeof failure.code === "number" ? failure.code : null,
461
+ signal: typeof failure.signal === "string" ? failure.signal : null,
356
462
  stdout: typeof failure.stdout === "string" ? failure.stdout : "",
357
463
  stderr: typeof failure.stderr === "string" ? failure.stderr : "",
358
464
  };
359
465
  }
466
+ function buildFailureFromAttempt(attempt, fallbackMessage) {
467
+ return {
468
+ step: attempt.step,
469
+ command: attempt.command,
470
+ message: attempt.error || fallbackMessage,
471
+ stdout: attempt.stdout || "",
472
+ stderr: attempt.stderr || "",
473
+ code: attempt.code ?? null,
474
+ signal: attempt.signal ?? null,
475
+ };
476
+ }
360
477
  async function runToolCommand(command) {
361
478
  if (command.kind === "execFile") {
362
479
  const needsWindowsCmdShim = isWindows && /\.(?:cmd|bat)$/i.test(command.command);
@@ -403,14 +520,8 @@ export async function detectToolInstallStatus(tool) {
403
520
  }
404
521
  const sdkResult = await resolveSdkPackageCandidate(definition);
405
522
  if (definition.sdkPackageName) {
406
- return {
407
- tool: normalizedTool,
408
- installed: Boolean(sdkResult.executable),
409
- executable: sdkResult.executable,
410
- version: sdkResult.version,
411
- installing: false,
412
- error: sdkResult.error,
413
- };
523
+ const cliResult = await resolveCliDependencyCandidate(definition);
524
+ return buildSdkCliInstallStatus(normalizedTool, sdkResult, cliResult, Boolean(definition.cliDependency));
414
525
  }
415
526
  const result = await resolveExecutableCandidate(definition);
416
527
  return {
@@ -448,9 +559,7 @@ export async function ensureToolsInstalled(tools) {
448
559
  });
449
560
  const initialStatuses = await detectToolStatuses(tools);
450
561
  log.info("Initial install status detected", { statuses: initialStatuses });
451
- const nextStatuses = {
452
- ...initialStatuses,
453
- };
562
+ const nextStatuses = { ...initialStatuses };
454
563
  for (const tool of Object.keys(initialStatuses)) {
455
564
  const current = initialStatuses[tool];
456
565
  if (current.installed) {
@@ -466,8 +575,30 @@ export async function ensureToolsInstalled(tools) {
466
575
  log.warn("Skipping install because tool is unsupported", { tool, current });
467
576
  continue;
468
577
  }
578
+ const attempts = [];
579
+ const initialAttempt = finishAttempt({
580
+ step: "detect_initial",
581
+ label: "检测当前安装状态",
582
+ command: null,
583
+ status: "running",
584
+ startedAt: nowIso(),
585
+ }, {
586
+ status: current.installed ? "success" : "error",
587
+ error: current.installed ? null : current.error,
588
+ });
589
+ attempts.push(initialAttempt);
469
590
  let lastError = current.error;
470
- for (const command of definition.installCommands) {
591
+ let lastFailure = current.installed
592
+ ? null
593
+ : buildFailureFromAttempt(initialAttempt, current.error || "tool is not installed");
594
+ for (const [index, command] of definition.installCommands.entries()) {
595
+ const commandAttempt = {
596
+ step: `install_command_${index + 1}`,
597
+ label: `执行安装命令 ${index + 1}/${definition.installCommands.length}`,
598
+ command: command.display,
599
+ status: "running",
600
+ startedAt: nowIso(),
601
+ };
471
602
  try {
472
603
  log.info("Running install command", {
473
604
  tool,
@@ -476,6 +607,12 @@ export async function ensureToolsInstalled(tools) {
476
607
  packageName: definition.packageName,
477
608
  });
478
609
  const commandResult = await runToolCommand(command);
610
+ attempts.push(finishAttempt(commandAttempt, {
611
+ status: "success",
612
+ stdout: commandResult.stdout,
613
+ stderr: commandResult.stderr,
614
+ error: null,
615
+ }));
479
616
  log.info("Install command completed", {
480
617
  tool,
481
618
  command: command.display,
@@ -483,24 +620,55 @@ export async function ensureToolsInstalled(tools) {
483
620
  stderr: commandResult.stderr,
484
621
  });
485
622
  const detected = await detectToolInstallStatus(tool);
486
- nextStatuses[tool] = detected;
623
+ const detectAttempt = finishAttempt({
624
+ step: `detect_after_command_${index + 1}`,
625
+ label: `验证安装结果 ${index + 1}/${definition.installCommands.length}`,
626
+ command: null,
627
+ status: "running",
628
+ startedAt: nowIso(),
629
+ }, {
630
+ status: detected.installed ? "success" : "error",
631
+ error: detected.installed ? null : detected.error,
632
+ });
633
+ attempts.push(detectAttempt);
634
+ nextStatuses[tool] = {
635
+ ...detected,
636
+ currentStep: detected.installed ? "安装完成" : detectAttempt.label,
637
+ attempts: [...attempts],
638
+ failure: detected.installed
639
+ ? null
640
+ : buildFailureFromAttempt(detectAttempt, detected.error || "install verification failed"),
641
+ };
487
642
  log.info("Post-install status detected", { tool, status: detected });
488
643
  if (detected.installed) {
489
644
  lastError = null;
645
+ lastFailure = null;
490
646
  break;
491
647
  }
492
648
  lastError = detected.error;
649
+ lastFailure = buildFailureFromAttempt(detectAttempt, detected.error || "install verification failed");
493
650
  }
494
651
  catch (error) {
652
+ const failure = {
653
+ ...describeCommandFailure(error),
654
+ step: commandAttempt.step,
655
+ command: command.display,
656
+ };
657
+ attempts.push(finishAttempt(commandAttempt, {
658
+ status: "error",
659
+ error: failure.message,
660
+ stdout: failure.stdout,
661
+ stderr: failure.stderr,
662
+ code: failure.code,
663
+ signal: failure.signal,
664
+ }));
495
665
  log.error("Install command failed", {
496
666
  tool,
497
667
  command: command.display,
498
- failure: describeCommandFailure(error),
668
+ failure,
499
669
  });
500
- lastError =
501
- error instanceof Error
502
- ? error.message
503
- : String(error || "install failed");
670
+ lastError = failure.message;
671
+ lastFailure = failure;
504
672
  }
505
673
  }
506
674
  if (!nextStatuses[tool]?.installed) {
@@ -510,6 +678,9 @@ export async function ensureToolsInstalled(tools) {
510
678
  installed: false,
511
679
  installing: false,
512
680
  error: lastError || "install failed",
681
+ currentStep: attempts.at(-1)?.label || "安装失败",
682
+ attempts: [...attempts],
683
+ failure: lastFailure,
513
684
  };
514
685
  log.warn("Tool SDK remains unavailable after install attempts", {
515
686
  tool,
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from 'vitest';
2
- import { SUPPORTED_INSTALLABLE_TOOLS, SUPPORTED_UNINSTALLABLE_TOOLS, detectToolInstallStatus, detectToolStatuses, getToolCommandSpecs, getToolUninstallCommands, isVoltaShimPath } from './tool-installer.js';
2
+ import { SUPPORTED_INSTALLABLE_TOOLS, SUPPORTED_UNINSTALLABLE_TOOLS, buildSdkCliInstallStatus, detectToolInstallStatus, detectToolStatuses, getToolCommandSpecs, getToolUninstallCommands, isVoltaShimPath } from './tool-installer.js';
3
3
  describe('tool installer service', () => {
4
4
  it('returns structured status for supported tools', async () => {
5
5
  const statuses = await detectToolStatuses(['claude', 'opencode', 'codex']);
@@ -110,6 +110,63 @@ describe('tool installer service', () => {
110
110
  expect(commands.some(command => command.includes('npm uninstall --prefix'))).toBe(true);
111
111
  expect(commands.some(command => command.includes('@anthropic-ai/claude-agent-sdk'))).toBe(true);
112
112
  });
113
+ it('installs Claude Code SDK and terminal CLI together', () => {
114
+ const commands = getToolCommandSpecs('claude', 'install');
115
+ expect(commands).toHaveLength(5);
116
+ expect(commands[0].args).toEqual([
117
+ 'uninstall',
118
+ '--prefix',
119
+ expect.any(String),
120
+ '@anthropic-ai/claude-agent-sdk',
121
+ '@anthropic-ai/sdk'
122
+ ]);
123
+ expect(commands[1].args).toEqual([
124
+ 'install',
125
+ '--prefix',
126
+ expect.any(String),
127
+ '@anthropic-ai/sdk@latest'
128
+ ]);
129
+ expect(commands[2].args).toEqual([
130
+ 'install',
131
+ '--prefix',
132
+ expect.any(String),
133
+ '@anthropic-ai/claude-agent-sdk@latest'
134
+ ]);
135
+ expect(commands[3].args).toEqual([
136
+ 'install',
137
+ '--prefix',
138
+ expect.any(String),
139
+ '@anthropic-ai/claude-agent-sdk@latest',
140
+ '--legacy-peer-deps'
141
+ ]);
142
+ expect(commands[4].args).toEqual([
143
+ 'install',
144
+ '-g',
145
+ '@anthropic-ai/claude-code@latest'
146
+ ]);
147
+ expect(commands[3].display).toContain('--legacy-peer-deps');
148
+ expect(commands[4].display).toBe('npm install -g @anthropic-ai/claude-code@latest');
149
+ });
150
+ it('installs Claude Code CLI for the claudecode alias too', () => {
151
+ const commands = getToolCommandSpecs('claudecode', 'install');
152
+ expect(commands.some(command => command.args.includes('@anthropic-ai/claude-agent-sdk@latest'))).toBe(true);
153
+ expect(commands.some(command => command.args.includes('@anthropic-ai/sdk@latest'))).toBe(true);
154
+ expect(commands.some(command => command.args.includes('--legacy-peer-deps'))).toBe(true);
155
+ expect(commands.some(command => command.args.includes('@anthropic-ai/claude-code@latest'))).toBe(true);
156
+ });
157
+ it('marks Claude unavailable when SDK exists but terminal CLI is missing', () => {
158
+ const status = buildSdkCliInstallStatus('claude', {
159
+ executable: '@anthropic-ai/claude-agent-sdk',
160
+ version: '0.2.87',
161
+ error: null
162
+ }, {
163
+ executable: null,
164
+ error: 'CLI package @anthropic-ai/claude-code is not installed or command is unavailable: command not installed'
165
+ }, true);
166
+ expect(status.installed).toBe(false);
167
+ expect(status.executable).toBe('@anthropic-ai/claude-agent-sdk');
168
+ expect(status.error).toContain('@anthropic-ai/claude-code');
169
+ });
113
170
  it('covers bridge-local SDK uninstall path for Codex', () => {
114
171
  const commands = getToolUninstallCommands('codex');
115
172
  expect(commands.some(command => command.includes('npm uninstall --prefix'))).toBe(true);
@@ -124,13 +181,15 @@ describe('tool installer service', () => {
124
181
  };
125
182
  for (const [tool, packageName] of Object.entries(expectedPackagesByTool)) {
126
183
  for (const phase of ['install', 'uninstall']) {
127
- const [command] = getToolCommandSpecs(tool, phase);
184
+ const commands = getToolCommandSpecs(tool, phase);
185
+ const command = commands.find(spec => spec.args.some(arg => arg.startsWith(packageName))) || commands[0];
186
+ const expectedCommandAction = command.args[0];
128
187
  expect(command.kind).toBe('execFile');
129
188
  expect(command.command).toMatch(/^npm(?:\.cmd)?$/);
130
- expect(command.args.slice(0, 3)).toEqual([phase, '--prefix', expect.any(String)]);
189
+ expect(command.args.slice(0, 3)).toEqual([expectedCommandAction, '--prefix', expect.any(String)]);
131
190
  expect(command.args[2]).not.toMatch(/^"|"$/);
132
191
  expect(command.args.some(arg => arg.startsWith(packageName))).toBe(true);
133
- expect(command.display).toContain(`npm ${phase} --prefix`);
192
+ expect(command.display).toContain(`npm ${expectedCommandAction} --prefix`);
134
193
  }
135
194
  }
136
195
  });
package/dist/types.d.ts CHANGED
@@ -116,6 +116,32 @@ export interface ToolInstallStatus {
116
116
  version: string | null;
117
117
  installing: boolean;
118
118
  error: string | null;
119
+ currentStep?: string | null;
120
+ attempts?: ToolInstallAttempt[];
121
+ failure?: ToolInstallFailure | null;
122
+ }
123
+ export interface ToolInstallAttempt {
124
+ step: string;
125
+ label: string;
126
+ command: string | null;
127
+ status: 'running' | 'success' | 'error' | 'skipped';
128
+ startedAt: string;
129
+ finishedAt?: string;
130
+ durationMs?: number;
131
+ stdout?: string;
132
+ stderr?: string;
133
+ error?: string | null;
134
+ code?: string | number | null;
135
+ signal?: string | null;
136
+ }
137
+ export interface ToolInstallFailure {
138
+ step: string;
139
+ command: string | null;
140
+ message: string;
141
+ stdout?: string;
142
+ stderr?: string;
143
+ code?: string | number | null;
144
+ signal?: string | null;
119
145
  }
120
146
  export interface InitLogEntry {
121
147
  step: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,24 @@ describe('sdk package loader', () => {
38
38
  await writeFile(path.join(packageDirectory, 'dist', 'default.js'), 'export const ok = true;');
39
39
  await expect(resolveBridgePackageEntryPath('default-only-sdk', packageRoot)).resolves.toBe(path.join(packageDirectory, 'dist', 'default.js'));
40
40
  });
41
+ it('resolves Claude Agent SDK default export to sdk.mjs', async () => {
42
+ const packageRoot = await createTempPackageRoot();
43
+ const packageDirectory = path.join(packageRoot, 'node_modules', '@anthropic-ai', 'claude-agent-sdk');
44
+ await mkdir(packageDirectory, { recursive: true });
45
+ await writeFile(path.join(packageDirectory, 'package.json'), JSON.stringify({
46
+ name: '@anthropic-ai/claude-agent-sdk',
47
+ type: 'module',
48
+ main: 'sdk.mjs',
49
+ exports: {
50
+ '.': {
51
+ types: './sdk.d.ts',
52
+ default: './sdk.mjs',
53
+ },
54
+ },
55
+ }));
56
+ await writeFile(path.join(packageDirectory, 'sdk.mjs'), 'export const query = () => {};');
57
+ await expect(resolveBridgePackageEntryPath('@anthropic-ai/claude-agent-sdk', packageRoot)).resolves.toBe(path.join(packageDirectory, 'sdk.mjs'));
58
+ });
41
59
  it('falls back to module when exports is absent', async () => {
42
60
  const packageRoot = await createTempPackageRoot();
43
61
  const packageDirectory = path.join(packageRoot, 'node_modules', 'module-sdk');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws-runtime-bridge",
3
- "version": "1.6.8",
3
+ "version": "1.6.9",
4
4
  "description": "AgentsWorkStudio runtime bridge service for machine-level agent runtime integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -46,7 +46,8 @@
46
46
  "test:coverage": "vitest run --coverage"
47
47
  },
48
48
  "dependencies": {
49
- "@anthropic-ai/claude-agent-sdk": "^0.2.87",
49
+ "@anthropic-ai/claude-agent-sdk": "^0.3.143",
50
+ "@anthropic-ai/sdk": "^0.96.0",
50
51
  "@cc-switch/sdk": "file:package/cc-switch-sdk",
51
52
  "@modelcontextprotocol/sdk": "^1.27.1",
52
53
  "@openai/codex-sdk": "^0.130.0",