@lobu/worker 7.0.0 → 7.1.0

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 (73) hide show
  1. package/dist/core/error-handler.d.ts +0 -4
  2. package/dist/core/error-handler.d.ts.map +1 -1
  3. package/dist/core/error-handler.js +4 -15
  4. package/dist/core/error-handler.js.map +1 -1
  5. package/dist/core/types.d.ts +1 -19
  6. package/dist/core/types.d.ts.map +1 -1
  7. package/dist/core/types.js +0 -4
  8. package/dist/core/types.js.map +1 -1
  9. package/dist/core/workspace.d.ts +2 -11
  10. package/dist/core/workspace.d.ts.map +1 -1
  11. package/dist/core/workspace.js +14 -36
  12. package/dist/core/workspace.js.map +1 -1
  13. package/dist/embedded/just-bash-bootstrap.d.ts.map +1 -1
  14. package/dist/embedded/just-bash-bootstrap.js +34 -4
  15. package/dist/embedded/just-bash-bootstrap.js.map +1 -1
  16. package/dist/embedded/mcp-cli-commands.d.ts.map +1 -1
  17. package/dist/embedded/mcp-cli-commands.js +3 -38
  18. package/dist/embedded/mcp-cli-commands.js.map +1 -1
  19. package/dist/gateway/sse-client.d.ts.map +1 -1
  20. package/dist/gateway/sse-client.js +44 -8
  21. package/dist/gateway/sse-client.js.map +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +7 -24
  24. package/dist/index.js.map +1 -1
  25. package/dist/instructions/builder.d.ts.map +1 -1
  26. package/dist/instructions/builder.js +2 -1
  27. package/dist/instructions/builder.js.map +1 -1
  28. package/dist/openclaw/plugin-loader.d.ts.map +1 -1
  29. package/dist/openclaw/plugin-loader.js +8 -19
  30. package/dist/openclaw/plugin-loader.js.map +1 -1
  31. package/dist/openclaw/processor.d.ts.map +1 -1
  32. package/dist/openclaw/processor.js +2 -0
  33. package/dist/openclaw/processor.js.map +1 -1
  34. package/dist/openclaw/sandbox-leak.d.ts.map +1 -1
  35. package/dist/openclaw/sandbox-leak.js +1 -6
  36. package/dist/openclaw/sandbox-leak.js.map +1 -1
  37. package/dist/openclaw/session-context.d.ts.map +1 -1
  38. package/dist/openclaw/session-context.js +3 -0
  39. package/dist/openclaw/session-context.js.map +1 -1
  40. package/dist/openclaw/tool-policy.d.ts.map +1 -1
  41. package/dist/openclaw/tool-policy.js +5 -11
  42. package/dist/openclaw/tool-policy.js.map +1 -1
  43. package/dist/openclaw/worker.d.ts.map +1 -1
  44. package/dist/openclaw/worker.js +1 -10
  45. package/dist/openclaw/worker.js.map +1 -1
  46. package/dist/server.d.ts.map +1 -1
  47. package/dist/server.js +3 -40
  48. package/dist/server.js.map +1 -1
  49. package/dist/shared/audio-provider-suggestions.d.ts.map +1 -1
  50. package/dist/shared/audio-provider-suggestions.js +4 -6
  51. package/dist/shared/audio-provider-suggestions.js.map +1 -1
  52. package/dist/shared/tool-implementations.d.ts.map +1 -1
  53. package/dist/shared/tool-implementations.js +62 -24
  54. package/dist/shared/tool-implementations.js.map +1 -1
  55. package/package.json +2 -2
  56. package/src/__tests__/processor-harden.test.ts +6 -16
  57. package/src/core/error-handler.ts +5 -20
  58. package/src/core/types.ts +1 -35
  59. package/src/core/workspace.ts +22 -45
  60. package/src/embedded/just-bash-bootstrap.ts +36 -4
  61. package/src/embedded/mcp-cli-commands.ts +9 -6
  62. package/src/gateway/sse-client.ts +45 -8
  63. package/src/index.ts +8 -26
  64. package/src/instructions/builder.ts +2 -3
  65. package/src/openclaw/plugin-loader.ts +15 -19
  66. package/src/openclaw/processor.ts +1 -0
  67. package/src/openclaw/sandbox-leak.ts +1 -6
  68. package/src/openclaw/session-context.ts +3 -0
  69. package/src/openclaw/tool-policy.ts +5 -12
  70. package/src/openclaw/worker.ts +2 -13
  71. package/src/server.ts +1 -5
  72. package/src/shared/audio-provider-suggestions.ts +4 -6
  73. package/src/shared/tool-implementations.ts +57 -16
@@ -232,17 +232,29 @@ async function uploadUserFile(gw, args, hooks) {
232
232
  }
233
233
  const formDataBuffer = await formDataToBuffer(formData);
234
234
  const fdHeaders = formData.getHeaders();
235
- const response = await fetch(`${gw.gatewayUrl}/internal/files/upload`, {
236
- method: "POST",
237
- headers: {
238
- Authorization: `Bearer ${gw.workerToken}`,
239
- "X-Channel-Id": gw.channelId,
240
- "X-Conversation-Id": gw.conversationId,
241
- ...fdHeaders,
242
- "Content-Length": formDataBuffer.length.toString(),
243
- },
244
- body: formDataBuffer,
245
- });
235
+ let response;
236
+ try {
237
+ response = await fetch(`${gw.gatewayUrl}/internal/files/upload`, {
238
+ method: "POST",
239
+ headers: {
240
+ Authorization: `Bearer ${gw.workerToken}`,
241
+ "X-Channel-Id": gw.channelId,
242
+ "X-Conversation-Id": gw.conversationId,
243
+ ...fdHeaders,
244
+ "Content-Length": formDataBuffer.length.toString(),
245
+ },
246
+ body: formDataBuffer,
247
+ // A stalled gateway upload must not wedge the agent turn forever —
248
+ // a 5-minute ceiling is well above any legitimate file delivery.
249
+ signal: AbortSignal.timeout(300_000),
250
+ });
251
+ }
252
+ catch (err) {
253
+ if (err instanceof Error && err.name === "TimeoutError") {
254
+ return textResult(`Error: Failed to show file to user: upload timed out`);
255
+ }
256
+ throw err;
257
+ }
246
258
  if (!response.ok) {
247
259
  const error = await response.text();
248
260
  logger.error(`Failed to show file: ${response.status} - ${error}`);
@@ -415,18 +427,28 @@ async function uploadGeneratedFile(gw, buffer, filename, mimeType, extraHeaders)
415
427
  formData.append("comment", "Generated content");
416
428
  const formDataBuffer = await formDataToBuffer(formData);
417
429
  const fdHeaders = formData.getHeaders();
418
- const uploadResponse = await fetch(`${gw.gatewayUrl}/internal/files/upload`, {
419
- method: "POST",
420
- headers: {
421
- Authorization: `Bearer ${gw.workerToken}`,
422
- "X-Channel-Id": gw.channelId,
423
- "X-Conversation-Id": gw.conversationId,
424
- ...fdHeaders,
425
- "Content-Length": formDataBuffer.length.toString(),
426
- ...extraHeaders,
427
- },
428
- body: formDataBuffer,
429
- });
430
+ let uploadResponse;
431
+ try {
432
+ uploadResponse = await fetch(`${gw.gatewayUrl}/internal/files/upload`, {
433
+ method: "POST",
434
+ headers: {
435
+ Authorization: `Bearer ${gw.workerToken}`,
436
+ "X-Channel-Id": gw.channelId,
437
+ "X-Conversation-Id": gw.conversationId,
438
+ ...fdHeaders,
439
+ "Content-Length": formDataBuffer.length.toString(),
440
+ ...extraHeaders,
441
+ },
442
+ body: formDataBuffer,
443
+ signal: AbortSignal.timeout(300_000),
444
+ });
445
+ }
446
+ catch (err) {
447
+ if (err instanceof Error && err.name === "TimeoutError") {
448
+ return textResult(`Generated content but upload timed out`);
449
+ }
450
+ throw err;
451
+ }
430
452
  if (!uploadResponse.ok) {
431
453
  const uploadError = await uploadResponse.text();
432
454
  return textResult(`Generated content but failed to send: ${uploadError}`);
@@ -454,6 +476,7 @@ async function generateImage(gw, args) {
454
476
  logger.info(`GenerateImage: ${args.prompt.substring(0, 80)}...`);
455
477
  const capResponse = await fetch(`${gw.gatewayUrl}/internal/images/capabilities`, {
456
478
  headers: { Authorization: `Bearer ${gw.workerToken}` },
479
+ signal: AbortSignal.timeout(30_000),
457
480
  });
458
481
  if (capResponse.ok) {
459
482
  const capabilities = (await capResponse.json());
@@ -475,6 +498,9 @@ async function generateImage(gw, args) {
475
498
  background: args.background,
476
499
  format: args.format,
477
500
  }),
501
+ // Image gen can take a while at high quality, but never minutes — cap
502
+ // the wait so a stalled upstream provider doesn't hang the agent turn.
503
+ signal: AbortSignal.timeout(120_000),
478
504
  });
479
505
  if (!response.ok) {
480
506
  const errorData = (await parseErrorBody(response));
@@ -536,6 +562,7 @@ async function generateAudio(gw, args) {
536
562
  voice: args.voice,
537
563
  speed: args.speed,
538
564
  }),
565
+ signal: AbortSignal.timeout(120_000),
539
566
  });
540
567
  if (!response.ok) {
541
568
  const errorData = (await parseErrorBody(response));
@@ -629,7 +656,18 @@ async function callMcpTool(gw, mcpId, toolName, args) {
629
656
  }
630
657
  throw err;
631
658
  }
632
- const data = (await response.json());
659
+ // MCP proxy returns JSON on success, but a misbehaving upstream (502
660
+ // HTML, plain-text 500, empty body) would otherwise crash the tool call
661
+ // with "Unexpected token < in JSON". Treat parse failure as a transport
662
+ // error message instead of letting it bubble out as an unhandled throw.
663
+ let data;
664
+ try {
665
+ data = (await response.json());
666
+ }
667
+ catch (parseErr) {
668
+ const parseMsg = parseErr instanceof Error ? parseErr.message : String(parseErr);
669
+ return textResult(`Error: ${toolName} returned a non-JSON response (status ${response.status}): ${parseMsg}`);
670
+ }
633
671
  if (!response.ok || data.isError) {
634
672
  const contentText = data.content
635
673
  ?.filter((c) => c.type === "text")
@@ -1 +1 @@
1
- {"version":3,"file":"tool-implementations.js","sourceRoot":"","sources":["../../src/shared/tool-implementations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-implementations.js","sourceRoot":"","sources":["../../src/shared/tool-implementations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobu/worker",
3
- "version": "7.0.0",
3
+ "version": "7.1.0",
4
4
  "description": "Lobu worker runtime for embedded subprocess execution",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@hono/node-server": "^1.19.9",
50
- "@lobu/core": "7.0.0",
50
+ "@lobu/core": "7.1.0",
51
51
  "@mariozechner/pi-agent-core": "^0.51.6",
52
52
  "@mariozechner/pi-ai": "^0.51.6",
53
53
  "@mariozechner/pi-coding-agent": "^0.51.6",
@@ -45,29 +45,19 @@ function makeMessageEnd(opts: {
45
45
  // ---------------------------------------------------------------------------
46
46
 
47
47
  describe("OpenClawProgressProcessor — malformed events don't throw", () => {
48
- test("message_update with null assistantMessageEvent returns false", () => {
48
+ test("message_update with null assistantMessageEvent returns false without throwing", () => {
49
49
  const p = new OpenClawProgressProcessor();
50
50
  const event = {
51
51
  type: "message_update",
52
52
  message: { role: "assistant" },
53
53
  assistantMessageEvent: null,
54
54
  };
55
- // Should not throw; null.type throws TypeError — this exposes a real gap.
56
- // The processor currently does not guard against null assistantMessageEvent.
57
- // We wrap in try/catch to record the actual behavior without crashing the suite.
58
- let threw = false;
59
- try {
60
- p.processEvent(event as any);
61
- } catch {
62
- threw = true;
63
- }
64
- // Whether it throws or returns false, the processor must leave itself in a clean state
55
+ let result: boolean | undefined;
56
+ expect(() => {
57
+ result = p.processEvent(event as any);
58
+ }).not.toThrow();
59
+ expect(result).toBe(false);
65
60
  expect(p.getDelta()).toBeNull();
66
- // Flag the gap: ideally threw === false (defensive guard)
67
- if (threw) {
68
- // Known gap: null assistantMessageEvent causes unhandled TypeError
69
- expect(threw).toBe(true); // document rather than mask
70
- }
71
61
  });
72
62
 
73
63
  test("tool_execution_start with null args does not throw", () => {
@@ -2,10 +2,6 @@ import { createLogger, type WorkerTransport } from "@lobu/core";
2
2
 
3
3
  const logger = createLogger("worker");
4
4
 
5
- /**
6
- * Format error message for display
7
- * Generic error formatter that works for any AI agent
8
- */
9
5
  function formatErrorMessage(error: unknown): string {
10
6
  if (!(error instanceof Error)) {
11
7
  return `💥 Worker crashed: Unknown error`;
@@ -27,10 +23,6 @@ function classifyError(error: unknown): string | undefined {
27
23
  return undefined;
28
24
  }
29
25
 
30
- /**
31
- * Handle execution error - decides between authentication and generic errors
32
- * Generic error handler that works for any AI agent
33
- */
34
26
  export async function handleExecutionError(
35
27
  error: unknown,
36
28
  transport: WorkerTransport
@@ -38,25 +30,18 @@ export async function handleExecutionError(
38
30
  logger.error("Worker execution failed:", error);
39
31
 
40
32
  const code = classifyError(error);
33
+ const errorInstance =
34
+ error instanceof Error ? error : new Error(String(error));
41
35
 
42
36
  try {
43
37
  if (code) {
44
- // Known error — clean message, no "Worker crashed" text
45
- await transport.signalError(
46
- error instanceof Error ? error : new Error(String(error)),
47
- code
48
- );
38
+ await transport.signalError(errorInstance, code);
49
39
  } else {
50
- // Unknown error existing behavior
51
- const errorMsg = formatErrorMessage(error);
52
- await transport.sendStreamDelta(errorMsg, true, true);
53
- await transport.signalError(
54
- error instanceof Error ? error : new Error(String(error))
55
- );
40
+ await transport.sendStreamDelta(formatErrorMessage(error), true, true);
41
+ await transport.signalError(errorInstance);
56
42
  }
57
43
  } catch (gatewayError) {
58
44
  logger.error("Failed to send error via gateway:", gatewayError);
59
- // Re-throw the original error
60
45
  throw error;
61
46
  }
62
47
  }
package/src/core/types.ts CHANGED
@@ -1,41 +1,16 @@
1
1
  #!/usr/bin/env bun
2
2
 
3
- /**
4
- * Consolidated types for worker package
5
- * Merged from: base/types.ts, types.ts, interfaces.ts
6
- */
7
-
8
3
  import type { WorkerTransport } from "@lobu/core";
9
4
 
10
- // ============================================================================
11
- // WORKER INTERFACES
12
- // ============================================================================
13
-
14
5
  /**
15
- * Interface for worker executors
16
- * Allows different agent implementations
6
+ * Interface for worker executors. Allows different agent implementations.
17
7
  */
18
8
  export interface WorkerExecutor {
19
- /**
20
- * Execute the worker job
21
- */
22
9
  execute(): Promise<void>;
23
-
24
- /**
25
- * Cleanup worker resources
26
- */
27
10
  cleanup(): Promise<void>;
28
-
29
- /**
30
- * Get the worker transport for sending updates to gateway
31
- */
32
11
  getWorkerTransport(): WorkerTransport | null;
33
12
  }
34
13
 
35
- // ============================================================================
36
- // WORKER CONFIG & WORKSPACE
37
- // ============================================================================
38
-
39
14
  export interface WorkerConfig {
40
15
  sessionKey: string;
41
16
  userId: string;
@@ -64,10 +39,6 @@ export interface WorkspaceInfo {
64
39
  userDirectory: string;
65
40
  }
66
41
 
67
- // ============================================================================
68
- // PROGRESS & EXECUTION TYPES
69
- // ============================================================================
70
-
71
42
  /**
72
43
  * Progress update from AI agent execution
73
44
  */
@@ -109,11 +80,6 @@ export type ProgressUpdate =
109
80
  timestamp: number;
110
81
  };
111
82
 
112
- /**
113
- * Session context for AI execution
114
- * Contains information about the current session (platform, user, workspace)
115
- */
116
-
117
83
  /**
118
84
  * Result from session execution (includes session metadata)
119
85
  */
@@ -8,17 +8,12 @@ import type { WorkspaceInfo, WorkspaceSetupConfig } from "./types";
8
8
 
9
9
  const logger = createLogger("workspace");
10
10
 
11
- // ============================================================================
12
- // WORKSPACE MANAGER
13
- // ============================================================================
14
-
15
11
  /**
16
- * Simplified WorkspaceManager - only handles directory creation.
17
- * All VCS operations (git, etc.) are handled by modules via hooks.
18
- *
19
12
  * Workspace layout:
20
13
  * baseDirectory/ ← agent-level root (e.g. /workspace)
21
14
  * baseDirectory/{conversationId}/ ← thread-specific working directory
15
+ *
16
+ * VCS operations (git, etc.) are handled by modules via hooks.
22
17
  */
23
18
  export class WorkspaceManager {
24
19
  private config: WorkspaceSetupConfig;
@@ -28,39 +23,23 @@ export class WorkspaceManager {
28
23
  this.config = config;
29
24
  }
30
25
 
31
- /**
32
- * Setup workspace directory - creates thread-specific directory only.
33
- * VCS operations are handled by module hooks (e.g., GitHub module).
34
- */
35
26
  async setupWorkspace(
36
27
  username: string,
37
28
  sessionKey?: string
38
29
  ): Promise<WorkspaceInfo> {
39
- try {
40
- const conversationId =
41
- process.env.CONVERSATION_ID || sessionKey || username || "default";
30
+ const conversationId =
31
+ process.env.CONVERSATION_ID || sessionKey || username || "default";
42
32
 
43
- logger.info(
44
- `Setting up workspace directory for ${username}, conversation: ${conversationId}...`
45
- );
46
-
47
- const sanitized = sanitizeConversationId(conversationId);
48
- const userDirectory = `${this.config.baseDirectory}/${sanitized}`;
33
+ logger.info(
34
+ `Setting up workspace directory for ${username}, conversation: ${conversationId}...`
35
+ );
49
36
 
50
- // Ensure directories exist
51
- await this.ensureDirectory(this.config.baseDirectory);
52
- await this.ensureDirectory(userDirectory);
37
+ const sanitized = sanitizeConversationId(conversationId);
38
+ const userDirectory = `${this.config.baseDirectory}/${sanitized}`;
53
39
 
54
- this.workspaceInfo = {
55
- baseDirectory: this.config.baseDirectory,
56
- userDirectory,
57
- };
58
-
59
- logger.info(
60
- `Workspace directory setup completed for ${username} (conversation: ${conversationId}) at ${userDirectory}`
61
- );
62
-
63
- return this.workspaceInfo;
40
+ try {
41
+ await mkdir(this.config.baseDirectory, { recursive: true });
42
+ await mkdir(userDirectory, { recursive: true });
64
43
  } catch (error) {
65
44
  throw new WorkspaceError(
66
45
  "setupWorkspace",
@@ -68,21 +47,19 @@ export class WorkspaceManager {
68
47
  error as Error
69
48
  );
70
49
  }
71
- }
72
50
 
73
- private async ensureDirectory(path: string): Promise<void> {
74
- try {
75
- await mkdir(path, { recursive: true });
76
- } catch (error: any) {
77
- if (error.code !== "EEXIST") {
78
- throw error;
79
- }
80
- }
51
+ this.workspaceInfo = {
52
+ baseDirectory: this.config.baseDirectory,
53
+ userDirectory,
54
+ };
55
+
56
+ logger.info(
57
+ `Workspace directory setup completed for ${username} (conversation: ${conversationId}) at ${userDirectory}`
58
+ );
59
+
60
+ return this.workspaceInfo;
81
61
  }
82
62
 
83
- /**
84
- * Get current working directory (thread-specific).
85
- */
86
63
  getCurrentWorkingDirectory(): string {
87
64
  return this.workspaceInfo?.userDirectory || this.config.baseDirectory;
88
65
  }
@@ -248,6 +248,13 @@ async function buildCustomCommands(
248
248
  } else if (ctx.env && typeof ctx.env === "object") {
249
249
  Object.assign(envRecord, ctx.env);
250
250
  }
251
+ // The agent can `export WORKER_TOKEN=...` inside just-bash to slip a
252
+ // value through `ctx.env`. Re-strip so spawned binaries (and anything
253
+ // that may echo or log env) never see a sensitive-shaped key, even an
254
+ // attacker-controlled one.
255
+ for (const key of SENSITIVE_WORKER_ENV_KEYS) {
256
+ delete envRecord[key];
257
+ }
251
258
 
252
259
  // Pin HOME / TMPDIR to dedicated subdirs so tool dotfiles (~/.gitconfig,
253
260
  // ~/.cache, ~/.config) and temp files don't collide with workspace
@@ -413,14 +420,39 @@ export async function createEmbeddedBashOps(
413
420
  }
414
421
  const bashFs = new ReadWriteFs({ root: workspaceDir });
415
422
 
416
- // Parse allowed domains from env var (set by gateway)
423
+ // Parse allowed domains from env var (set by gateway).
424
+ // Defense-in-depth: the gateway is trusted, but a malformed env (non-array,
425
+ // non-string entries, embedded "/" or whitespace) would either crash
426
+ // `.flatMap(...)` or, worse, expand an "allow https://${domain}/" prefix
427
+ // into something attacker-shaped (`evil.com/ ` or `attacker.com/path`).
428
+ // Validate the parsed shape and the per-domain syntax explicitly.
429
+ const DOMAIN_PATTERN = /^[A-Za-z0-9.*_-]+(?::\d+)?$/;
417
430
  let allowedDomains: string[] = [];
418
431
  if (process.env.JUST_BASH_ALLOWED_DOMAINS) {
419
432
  try {
420
- allowedDomains = JSON.parse(process.env.JUST_BASH_ALLOWED_DOMAINS);
421
- } catch {
433
+ const parsed: unknown = JSON.parse(process.env.JUST_BASH_ALLOWED_DOMAINS);
434
+ if (!Array.isArray(parsed)) {
435
+ throw new Error("expected a JSON array of domain strings");
436
+ }
437
+ const accepted: string[] = [];
438
+ for (const entry of parsed) {
439
+ if (typeof entry !== "string") continue;
440
+ const trimmed = entry.trim();
441
+ if (!trimmed) continue;
442
+ if (!DOMAIN_PATTERN.test(trimmed)) {
443
+ console.warn(
444
+ `[embedded] Ignoring invalid JUST_BASH_ALLOWED_DOMAINS entry: ${JSON.stringify(entry)}`
445
+ );
446
+ continue;
447
+ }
448
+ accepted.push(trimmed);
449
+ }
450
+ allowedDomains = accepted;
451
+ } catch (err) {
422
452
  console.error(
423
- `[embedded] Failed to parse JUST_BASH_ALLOWED_DOMAINS: ${process.env.JUST_BASH_ALLOWED_DOMAINS}`
453
+ `[embedded] Failed to parse JUST_BASH_ALLOWED_DOMAINS: ${
454
+ err instanceof Error ? err.message : String(err)
455
+ }`
424
456
  );
425
457
  }
426
458
  }
@@ -16,7 +16,12 @@
16
16
  import type { McpStatus, McpToolDef } from "@lobu/core";
17
17
  import { createLogger } from "@lobu/core";
18
18
  import type { GatewayParams } from "../shared/tool-implementations";
19
- import { callMcpTool } from "../shared/tool-implementations";
19
+ import {
20
+ callMcpTool,
21
+ checkMcpLogin,
22
+ logoutMcp,
23
+ startMcpLogin,
24
+ } from "../shared/tool-implementations";
20
25
  import { isDirectPackageInstallCommand } from "../openclaw/tool-policy";
21
26
 
22
27
  const logger = createLogger("mcp-cli");
@@ -269,11 +274,9 @@ async function runAuthSubcommand(
269
274
  ref: McpRuntimeRef
270
275
  ): Promise<{ stdout: string; stderr: string; exitCode: number }> {
271
276
  const verb = args[0];
272
- // Lazy import to avoid a heavy dependency cycle in tests.
273
- const impl = await import("../shared/tool-implementations");
274
277
 
275
278
  if (verb === "login") {
276
- const res = await impl.startMcpLogin(gw, { mcpId });
279
+ const res = await startMcpLogin(gw, { mcpId });
277
280
  const text = extractText(res.content);
278
281
  return {
279
282
  stdout: `${summariseAuthStart(text, mcpId)}\n`,
@@ -283,7 +286,7 @@ async function runAuthSubcommand(
283
286
  }
284
287
 
285
288
  if (verb === "check") {
286
- const res = await impl.checkMcpLogin(gw, { mcpId });
289
+ const res = await checkMcpLogin(gw, { mcpId });
287
290
  const text = extractText(res.content);
288
291
  const parsed = tryJson(text);
289
292
  if (parsed?.authenticated === true) {
@@ -297,7 +300,7 @@ async function runAuthSubcommand(
297
300
  }
298
301
 
299
302
  if (verb === "logout") {
300
- const res = await impl.logoutMcp(gw, { mcpId });
303
+ const res = await logoutMcp(gw, { mcpId });
301
304
  const text = extractText(res.content);
302
305
  // Tools that required auth are now unreachable — refresh so the next
303
306
  // invocation sees the empty state.