@lobu/worker 6.0.1 → 7.0.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 (104) hide show
  1. package/dist/embedded/exec-sandbox.d.ts +2 -2
  2. package/dist/embedded/exec-sandbox.js +7 -7
  3. package/dist/embedded/exec-sandbox.js.map +1 -1
  4. package/dist/embedded/just-bash-bootstrap.d.ts +2 -2
  5. package/dist/embedded/just-bash-bootstrap.d.ts.map +1 -1
  6. package/dist/embedded/just-bash-bootstrap.js +30 -6
  7. package/dist/embedded/just-bash-bootstrap.js.map +1 -1
  8. package/dist/embedded/mcp-cli-commands.d.ts +5 -5
  9. package/dist/gateway/gateway-integration.js +4 -4
  10. package/dist/gateway/gateway-integration.js.map +1 -1
  11. package/dist/gateway/message-batcher.d.ts.map +1 -1
  12. package/dist/gateway/message-batcher.js +3 -5
  13. package/dist/gateway/message-batcher.js.map +1 -1
  14. package/dist/gateway/sse-client.d.ts +1 -0
  15. package/dist/gateway/sse-client.d.ts.map +1 -1
  16. package/dist/gateway/sse-client.js +13 -8
  17. package/dist/gateway/sse-client.js.map +1 -1
  18. package/dist/gateway/types.d.ts +1 -1
  19. package/dist/gateway/types.d.ts.map +1 -1
  20. package/dist/instructions/builder.d.ts +4 -0
  21. package/dist/instructions/builder.d.ts.map +1 -1
  22. package/dist/instructions/builder.js +8 -11
  23. package/dist/instructions/builder.js.map +1 -1
  24. package/dist/instructions/providers.d.ts +5 -5
  25. package/dist/instructions/providers.d.ts.map +1 -1
  26. package/dist/instructions/providers.js +3 -2
  27. package/dist/instructions/providers.js.map +1 -1
  28. package/dist/openclaw/custom-tools.d.ts +1 -1
  29. package/dist/openclaw/custom-tools.js +1 -1
  30. package/dist/openclaw/instructions.d.ts +9 -9
  31. package/dist/openclaw/instructions.d.ts.map +1 -1
  32. package/dist/openclaw/instructions.js +4 -4
  33. package/dist/openclaw/instructions.js.map +1 -1
  34. package/dist/openclaw/tools.js.map +1 -1
  35. package/dist/openclaw/worker.d.ts +0 -1
  36. package/dist/openclaw/worker.d.ts.map +1 -1
  37. package/dist/openclaw/worker.js +18 -75
  38. package/dist/openclaw/worker.js.map +1 -1
  39. package/dist/shared/tool-implementations.d.ts.map +1 -1
  40. package/dist/shared/tool-implementations.js +37 -13
  41. package/dist/shared/tool-implementations.js.map +1 -1
  42. package/package.json +14 -4
  43. package/src/__tests__/audio-provider-suggestions.test.ts +199 -0
  44. package/src/__tests__/custom-tools.test.ts +92 -0
  45. package/src/__tests__/embedded-just-bash-bootstrap.test.ts +128 -0
  46. package/src/__tests__/embedded-mcp-cli-bash.test.ts +179 -0
  47. package/src/__tests__/embedded-tools.test.ts +744 -0
  48. package/src/__tests__/exec-sandbox-extra.test.ts +0 -0
  49. package/src/__tests__/exec-sandbox.test.ts +550 -0
  50. package/src/__tests__/generated-media.test.ts +142 -0
  51. package/src/__tests__/instructions.test.ts +60 -0
  52. package/src/__tests__/mcp-cli-commands-extra.test.ts +478 -0
  53. package/src/__tests__/mcp-cli-commands.test.ts +383 -0
  54. package/src/__tests__/mcp-tool-call.test.ts +423 -0
  55. package/src/__tests__/memory-flush-harden.test.ts +367 -0
  56. package/src/__tests__/memory-flush-runtime.test.ts +138 -0
  57. package/src/__tests__/memory-flush.test.ts +64 -0
  58. package/src/__tests__/message-batcher.test.ts +247 -0
  59. package/src/__tests__/model-resolver-harden.test.ts +197 -0
  60. package/src/__tests__/model-resolver.test.ts +156 -0
  61. package/src/__tests__/processor-harden.test.ts +269 -0
  62. package/src/__tests__/processor.test.ts +225 -0
  63. package/src/__tests__/replace-base-prompt-identity.test.ts +41 -0
  64. package/src/__tests__/sandbox-leak-harden.test.ts +200 -0
  65. package/src/__tests__/sandbox-leak.test.ts +167 -0
  66. package/src/__tests__/setup.ts +102 -0
  67. package/src/__tests__/sse-client-harden.test.ts +588 -0
  68. package/src/__tests__/sse-client.test.ts +90 -0
  69. package/src/__tests__/tool-implementations.test.ts +196 -0
  70. package/src/__tests__/tool-policy-edge-cases.test.ts +263 -0
  71. package/src/__tests__/tool-policy.test.ts +269 -0
  72. package/src/__tests__/worker.test.ts +89 -0
  73. package/src/core/error-handler.ts +62 -0
  74. package/src/core/project-scanner.ts +65 -0
  75. package/src/core/types.ts +128 -0
  76. package/src/core/workspace.ts +89 -0
  77. package/src/embedded/exec-sandbox.ts +372 -0
  78. package/src/embedded/just-bash-bootstrap.ts +543 -0
  79. package/src/embedded/mcp-cli-commands.ts +402 -0
  80. package/src/gateway/gateway-integration.ts +298 -0
  81. package/src/gateway/message-batcher.ts +123 -0
  82. package/src/gateway/sse-client.ts +951 -0
  83. package/src/gateway/types.ts +68 -0
  84. package/src/index.ts +141 -0
  85. package/src/instructions/builder.ts +45 -0
  86. package/src/instructions/providers.ts +27 -0
  87. package/src/modules/lifecycle.ts +92 -0
  88. package/src/openclaw/custom-tools.ts +315 -0
  89. package/src/openclaw/instructions.ts +36 -0
  90. package/src/openclaw/model-resolver.ts +150 -0
  91. package/src/openclaw/plugin-loader.ts +427 -0
  92. package/src/openclaw/processor.ts +198 -0
  93. package/src/openclaw/sandbox-leak.ts +105 -0
  94. package/src/openclaw/session-context.ts +320 -0
  95. package/src/openclaw/tool-policy.ts +248 -0
  96. package/src/openclaw/tools.ts +277 -0
  97. package/src/openclaw/worker.ts +1847 -0
  98. package/src/server.ts +334 -0
  99. package/src/shared/audio-provider-suggestions.ts +132 -0
  100. package/src/shared/processor-utils.ts +33 -0
  101. package/src/shared/provider-auth-hints.ts +68 -0
  102. package/src/shared/tool-display-config.ts +75 -0
  103. package/src/shared/tool-implementations.ts +940 -0
  104. package/src/shared/worker-env-keys.ts +8 -0
@@ -7,21 +7,18 @@ const logger = (0, core_1.createLogger)("instruction-generator");
7
7
  * Generate custom instructions using modular providers.
8
8
  * Only generates worker-local instructions (core, projects) — platform and
9
9
  * MCP instructions are provided by the gateway.
10
+ *
11
+ * Per-provider error handling lives on `BaseInstructionProvider` (a thrown
12
+ * provider returns `""`). The fallback below covers the unlikely case of a
13
+ * provider that bypasses the base class throwing during the loop itself.
10
14
  */
11
15
  async function generateCustomInstructions(providers, context) {
12
16
  try {
13
- // Sort by priority (lower priority = earlier in output)
14
- const sortedProviders = [...providers].sort((a, b) => a.priority - b.priority);
15
17
  const sections = [];
16
- for (const provider of sortedProviders) {
17
- try {
18
- const instructions = await provider.getInstructions(context);
19
- if (instructions?.trim()) {
20
- sections.push(instructions.trim());
21
- }
22
- }
23
- catch (error) {
24
- logger.error(`Failed to get instructions from provider ${provider.name}:`, error);
18
+ for (const provider of [...providers].sort((a, b) => a.priority - b.priority)) {
19
+ const instructions = await provider.getInstructions(context);
20
+ if (instructions?.trim()) {
21
+ sections.push(instructions.trim());
25
22
  }
26
23
  }
27
24
  const instructions = sections.join("\n\n");
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/instructions/builder.ts"],"names":[],"mappings":";;AAaA,gEAqCC;AAlDD,qCAIoB;AAEpB,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,uBAAuB,CAAC,CAAC;AAErD;;;;GAIG;AACI,KAAK,UAAU,0BAA0B,CAC9C,SAAgC,EAChC,OAA2B;IAE3B,IAAI,CAAC;QACH,wDAAwD;QACxD,MAAM,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAClC,CAAC;QAEF,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC7D,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CACV,4CAA4C,QAAQ,CAAC,IAAI,GAAG,EAC5D,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CACT,mCAAmC,YAAY,CAAC,MAAM,oBAAoB,SAAS,CAAC,MAAM,kBAAkB,CAC7G,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;QACxD,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,uCAAuC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/instructions/builder.ts"],"names":[],"mappings":";;AAiBA,gEA2BC;AA5CD,qCAIoB;AAEpB,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,uBAAuB,CAAC,CAAC;AAErD;;;;;;;;GAQG;AACI,KAAK,UAAU,0BAA0B,CAC9C,SAAgC,EAChC,OAA2B;IAE3B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAClC,EAAE,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CACT,mCAAmC,YAAY,CAAC,MAAM,oBAAoB,SAAS,CAAC,MAAM,kBAAkB,CAC7G,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;QACxD,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,uCAAuC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * Instruction providers for worker
3
3
  */
4
- import type { InstructionContext, InstructionProvider } from "@lobu/core";
4
+ import { BaseInstructionProvider, type InstructionContext } from "@lobu/core";
5
5
  /**
6
6
  * Provides information about available projects in the workspace
7
7
  */
8
- export declare class ProjectsInstructionProvider implements InstructionProvider {
9
- name: string;
10
- priority: number;
11
- getInstructions(context: InstructionContext): string;
8
+ export declare class ProjectsInstructionProvider extends BaseInstructionProvider {
9
+ readonly name = "projects";
10
+ readonly priority = 30;
11
+ protected buildInstructions(context: InstructionContext): string;
12
12
  }
13
13
  //# sourceMappingURL=providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/instructions/providers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1E;;GAEG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE,IAAI,SAAc;IAClB,QAAQ,SAAM;IAEd,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;CAarD"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/instructions/providers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9E;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IACtE,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;CAajE"}
@@ -4,13 +4,14 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ProjectsInstructionProvider = void 0;
7
+ const core_1 = require("@lobu/core");
7
8
  /**
8
9
  * Provides information about available projects in the workspace
9
10
  */
10
- class ProjectsInstructionProvider {
11
+ class ProjectsInstructionProvider extends core_1.BaseInstructionProvider {
11
12
  name = "projects";
12
13
  priority = 30;
13
- getInstructions(context) {
14
+ buildInstructions(context) {
14
15
  if (!context.availableProjects || context.availableProjects.length === 0) {
15
16
  return `**Available projects:**
16
17
  - none`;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/instructions/providers.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH;;GAEG;AACH,MAAa,2BAA2B;IACtC,IAAI,GAAG,UAAU,CAAC;IAClB,QAAQ,GAAG,EAAE,CAAC;IAEd,eAAe,CAAC,OAA2B;QACzC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzE,OAAO;SACJ,CAAC;QACN,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB;aAC1C,GAAG,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;EACT,WAAW,EAAE,CAAC;IACd,CAAC;CACF;AAjBD,kEAiBC"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/instructions/providers.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qCAA8E;AAE9E;;GAEG;AACH,MAAa,2BAA4B,SAAQ,8BAAuB;IAC7D,IAAI,GAAG,UAAU,CAAC;IAClB,QAAQ,GAAG,EAAE,CAAC;IAEb,iBAAiB,CAAC,OAA2B;QACrD,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzE,OAAO;SACJ,CAAC;QACN,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB;aAC1C,GAAG,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;EACT,WAAW,EAAE,CAAC;IACd,CAAC;CACF;AAjBD,kEAiBC"}
@@ -14,7 +14,7 @@ export declare function createOpenClawCustomTools(params: {
14
14
  /**
15
15
  * Convert MCP tool definitions from session context into first-class
16
16
  * OpenClaw ToolDefinition objects that call the MCP proxy directly.
17
- * Tools are dynamically discovered from each MCP server (e.g. owletto).
17
+ * Tools are dynamically discovered from each MCP server (e.g. lobu).
18
18
  */
19
19
  export declare function createMcpToolDefinitions(mcpTools: Record<string, McpToolDef[]>, gw: GatewayParams, mcpContext?: Record<string, string>): ToolDefinition[];
20
20
  export declare function createMcpAuthToolDefinitions(mcpStatus: Array<{
@@ -133,7 +133,7 @@ function createOpenClawCustomTools(params) {
133
133
  /**
134
134
  * Convert MCP tool definitions from session context into first-class
135
135
  * OpenClaw ToolDefinition objects that call the MCP proxy directly.
136
- * Tools are dynamically discovered from each MCP server (e.g. owletto).
136
+ * Tools are dynamically discovered from each MCP server (e.g. lobu).
137
137
  */
138
138
  function createMcpToolDefinitions(mcpTools, gw, mcpContext) {
139
139
  const tools = [];
@@ -1,15 +1,15 @@
1
- import { type InstructionContext, type InstructionProvider } from "@lobu/core";
1
+ import { BaseInstructionProvider, type InstructionContext } from "@lobu/core";
2
2
  /**
3
3
  * OpenClaw core instructions
4
4
  */
5
- export declare class OpenClawCoreInstructionProvider implements InstructionProvider {
6
- name: string;
7
- priority: number;
8
- getInstructions(context: InstructionContext): string;
5
+ export declare class OpenClawCoreInstructionProvider extends BaseInstructionProvider {
6
+ readonly name = "core";
7
+ readonly priority = 10;
8
+ protected buildInstructions(context: InstructionContext): string;
9
9
  }
10
- export declare class OpenClawPromptIntentInstructionProvider implements InstructionProvider {
11
- name: string;
12
- priority: number;
13
- getInstructions(context: InstructionContext): string;
10
+ export declare class OpenClawPromptIntentInstructionProvider extends BaseInstructionProvider {
11
+ readonly name = "prompt-intent";
12
+ readonly priority = 15;
13
+ protected buildInstructions(context: InstructionContext): string;
14
14
  }
15
15
  //# sourceMappingURL=instructions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/openclaw/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAIzB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,+BAAgC,YAAW,mBAAmB;IACzE,IAAI,SAAU;IACd,QAAQ,SAAM;IAEd,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;CAWrD;AAED,qBAAa,uCACX,YAAW,mBAAmB;IAE9B,IAAI,SAAmB;IACvB,QAAQ,SAAM;IAEd,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;CAGrD"}
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/openclaw/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EAIxB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,uBAAuB;IAC1E,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;CAWjE;AAED,qBAAa,uCAAwC,SAAQ,uBAAuB;IAClF,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,QAAQ,MAAM;IAEvB,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;CAGjE"}
@@ -5,10 +5,10 @@ const core_1 = require("@lobu/core");
5
5
  /**
6
6
  * OpenClaw core instructions
7
7
  */
8
- class OpenClawCoreInstructionProvider {
8
+ class OpenClawCoreInstructionProvider extends core_1.BaseInstructionProvider {
9
9
  name = "core";
10
10
  priority = 10;
11
- getInstructions(context) {
11
+ buildInstructions(context) {
12
12
  return [
13
13
  `You are a Lobu agent for user ${context.userId}.`,
14
14
  `Working directory: ${context.workingDirectory}`,
@@ -21,10 +21,10 @@ If the user asks to analyze an uploaded image, use the image content already att
21
21
  }
22
22
  }
23
23
  exports.OpenClawCoreInstructionProvider = OpenClawCoreInstructionProvider;
24
- class OpenClawPromptIntentInstructionProvider {
24
+ class OpenClawPromptIntentInstructionProvider extends core_1.BaseInstructionProvider {
25
25
  name = "prompt-intent";
26
26
  priority = 15;
27
- getInstructions(context) {
27
+ buildInstructions(context) {
28
28
  return (0, core_1.renderDetectedToolIntentRules)(context.userPrompt || "");
29
29
  }
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/openclaw/instructions.ts"],"names":[],"mappings":";;;AAAA,qCAMoB;AAEpB;;GAEG;AACH,MAAa,+BAA+B;IAC1C,IAAI,GAAG,MAAM,CAAC;IACd,QAAQ,GAAG,EAAE,CAAC;IAEd,eAAe,CAAC,OAA2B;QACzC,OAAO;YACL,iCAAiC,OAAO,CAAC,MAAM,GAAG;YAClD,sBAAsB,OAAO,CAAC,gBAAgB,EAAE;YAChD,IAAA,gCAAyB,GAAE;YAC3B,IAAA,oCAA6B,GAAE;YAC/B;;iIAE2H;SAC5H,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;CACF;AAfD,0EAeC;AAED,MAAa,uCAAuC;IAGlD,IAAI,GAAG,eAAe,CAAC;IACvB,QAAQ,GAAG,EAAE,CAAC;IAEd,eAAe,CAAC,OAA2B;QACzC,OAAO,IAAA,oCAA6B,EAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AATD,0FASC"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/openclaw/instructions.ts"],"names":[],"mappings":";;;AAAA,qCAMoB;AAEpB;;GAEG;AACH,MAAa,+BAAgC,SAAQ,8BAAuB;IACjE,IAAI,GAAG,MAAM,CAAC;IACd,QAAQ,GAAG,EAAE,CAAC;IAEb,iBAAiB,CAAC,OAA2B;QACrD,OAAO;YACL,iCAAiC,OAAO,CAAC,MAAM,GAAG;YAClD,sBAAsB,OAAO,CAAC,gBAAgB,EAAE;YAChD,IAAA,gCAAyB,GAAE;YAC3B,IAAA,oCAA6B,GAAE;YAC/B;;iIAE2H;SAC5H,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;CACF;AAfD,0EAeC;AAED,MAAa,uCAAwC,SAAQ,8BAAuB;IACzE,IAAI,GAAG,eAAe,CAAC;IACvB,QAAQ,GAAG,EAAE,CAAC;IAEb,iBAAiB,CAAC,OAA2B;QACrD,OAAO,IAAA,oCAA6B,EAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AAPD,0FAOC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/openclaw/tools.ts"],"names":[],"mappings":";;AA0IA,kDA6CC;AAtLD,mEASuC;AACvC,+CAAyC;AACzC,qCAAsC;AACtC,+CAA8D;AAC9D,+DAAsE;AAQtE,MAAM,mBAAmB,GAGrB;IACF,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;IAC1E,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;IAC3E,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE;QAClE;YACE,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;YAC/B,KAAK,EAAE,iCAAiC;SACzC;QACD;YACE,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;YAC/B,KAAK,EAAE,iCAAiC;SACzC;KACF;CACF,CAAC;AAEF,SAAS,mBAAmB,CAC1B,MAAe;IAEf,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAEjC,IAAI,WAAW,IAAI,UAAU,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC;QACzD,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC;QACvC,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,IAAI,YAAY,IAAI,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;QAC7D,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;QAC3C,OAAO,UAAU,CAAC,UAAU,CAAC;IAC/B,CAAC;IACD,IAAI,YAAY,IAAI,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;QAC7D,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;QAC3C,OAAO,UAAU,CAAC,UAAU,CAAC;IAC/B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA+B,EAC/B,MAA4B;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IACE,CAAC,KAAK,CAAC,UAAU;gBACjB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EACnB,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,MAIlC;IACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1C,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE,MAAa;QACzB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACzD,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACxD,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,cAAI,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrE,SAAS,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1E,MAAM,EAAE,cAAI,CAAC,QAAQ,CACnB,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAClE;QACD,KAAK,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAC;KAC5E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,cAAI,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrE,SAAS,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,cAAI,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrE,SAAS,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACvE,UAAU,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACxE,UAAU,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;KAC5E,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB,CACjC,GAAW,EACX,OAA6C;IAE7C,MAAM,IAAI,GAAG,yBAAyB,CAAC;QACrC,IAAI,EAAE,IAAA,gCAAc,EAAC,GAAG,CAAC;QACzB,QAAQ,EAAE,mBAAmB,CAAC,IAAI;QAClC,MAAM,EAAE,eAAe,EAAE;KAC1B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,yBAAyB,CAAC;QACtC,IAAI,EAAE,IAAA,iCAAe,EAAC,GAAG,CAAC;QAC1B,QAAQ,EAAE,mBAAmB,CAAC,KAAK;QACnC,MAAM,EAAE,gBAAgB,EAAE;KAC3B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,yBAAyB,CAAC;QACrC,IAAI,EAAE,IAAA,gCAAc,EAAC,GAAG,CAAC;QACzB,QAAQ,EAAE,mBAAmB,CAAC,IAAI;QAClC,MAAM,EAAE,eAAe,EAAE;KAC1B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,SAAS,EAAE,CAAC,MAIX,EAAE,EAAE,CAAC,CAAC;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,IAAA,eAAQ,EAAC,MAAM,CAAC,GAAG,EAAE,2CAAyB,CAAC;SACrD,CAAC;KACH,CAAC;IACF,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAA,gCAAc,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAEtE,OAAO;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAA,gCAAc,EAAC,GAAG,CAAC;QACnB,IAAA,gCAAc,EAAC,GAAG,CAAC;QACnB,IAAA,8BAAY,EAAC,GAAG,CAAC;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAe;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,4CAA4C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS;QACrC,gBAAgB;QAChB,iBAAiB;QACjB,UAAU;QACV,mBAAmB;QACnB,oBAAoB;QACpB,aAAa;QACb,kBAAkB;QAClB,mBAAmB;QACnB,YAAY;QACZ,kBAAkB;QAClB,mBAAmB;QACnB,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACzD,IAAI,aAAa,EAAE,CAAC;QAClB,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;YACtC,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAoB;IACjD,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;IAE7E,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACtD,MAAM,OAAO,GACX,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM;gBACzD,CAAC,CAAC,MAAM,CAAE,MAAgC,CAAC,OAAO,IAAI,EAAE,CAAC;gBACzD,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CACb,wIAAwI,CACzI,CAAC;YACJ,CAAC;YACD,IAAI,IAAA,2CAA6B,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CACb,8JAA8J,CAC/J,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CACb,oLAAoL,GAAG,EAAE,CAC1L,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/openclaw/tools.ts"],"names":[],"mappings":";;AA0IA,kDA6CC;AAtLD,mEASuC;AACvC,+CAAyC;AACzC,qCAAsC;AACtC,+CAA8D;AAC9D,+DAAsE;AAQtE,MAAM,mBAAmB,GAGrB;IACF,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;IAC1E,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;IAC3E,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE;QAClE;YACE,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;YAC/B,KAAK,EAAE,iCAAiC;SACzC;QACD;YACE,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;YAC/B,KAAK,EAAE,iCAAiC;SACzC;KACF;CACF,CAAC;AAEF,SAAS,mBAAmB,CAC1B,MAAe;IAEf,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAEjC,IAAI,WAAW,IAAI,UAAU,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC;QACzD,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC;QACvC,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,IAAI,YAAY,IAAI,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;QAC7D,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;QAC3C,OAAO,UAAU,CAAC,UAAU,CAAC;IAC/B,CAAC;IACD,IAAI,YAAY,IAAI,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;QAC7D,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;QAC3C,OAAO,UAAU,CAAC,UAAU,CAAC;IAC/B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA+B,EAC/B,MAA4B;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IACE,CAAC,KAAK,CAAC,UAAU;gBACjB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EACnB,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,MAIlC;IACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1C,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE,MAAa;QACzB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACzD,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACxD,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,cAAI,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrE,SAAS,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1E,MAAM,EAAE,cAAI,CAAC,QAAQ,CACnB,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAClE;QACD,KAAK,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAC;KAC5E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,cAAI,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrE,SAAS,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,cAAI,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACrE,SAAS,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACvE,UAAU,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACxE,UAAU,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;KAC5E,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB,CACjC,GAAW,EACX,OAA6C;IAE7C,MAAM,IAAI,GAAG,yBAAyB,CAAC;QACrC,IAAI,EAAE,IAAA,gCAAc,EAAC,GAAG,CAAC;QACzB,QAAQ,EAAE,mBAAmB,CAAC,IAAI;QAClC,MAAM,EAAE,eAAe,EAAE;KAC1B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,yBAAyB,CAAC;QACtC,IAAI,EAAE,IAAA,iCAAe,EAAC,GAAG,CAAC;QAC1B,QAAQ,EAAE,mBAAmB,CAAC,KAAK;QACnC,MAAM,EAAE,gBAAgB,EAAE;KAC3B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,yBAAyB,CAAC;QACrC,IAAI,EAAE,IAAA,gCAAc,EAAC,GAAG,CAAC;QACzB,QAAQ,EAAE,mBAAmB,CAAC,IAAI;QAClC,MAAM,EAAE,eAAe,EAAE;KAC1B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,SAAS,EAAE,CAAC,MAIX,EAAE,EAAE,CAAC,CAAC;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,IAAA,eAAQ,EAAC,MAAM,CAAC,GAAG,EAAE,2CAAyB,CAAsB;SAC1E,CAAC;KACH,CAAC;IACF,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAA,gCAAc,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAEtE,OAAO;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAA,gCAAc,EAAC,GAAG,CAAC;QACnB,IAAA,gCAAc,EAAC,GAAG,CAAC;QACnB,IAAA,8BAAY,EAAC,GAAG,CAAC;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAe;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,4CAA4C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS;QACrC,gBAAgB;QAChB,iBAAiB;QACjB,UAAU;QACV,mBAAmB;QACnB,oBAAoB;QACpB,aAAa;QACb,kBAAkB;QAClB,mBAAmB;QACnB,YAAY;QACZ,kBAAkB;QAClB,mBAAmB;QACnB,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACzD,IAAI,aAAa,EAAE,CAAC;QAClB,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;YACtC,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAoB;IACjD,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;IAE7E,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACtD,MAAM,OAAO,GACX,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM;gBACzD,CAAC,CAAC,MAAM,CAAE,MAAgC,CAAC,OAAO,IAAI,EAAE,CAAC;gBACzD,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CACb,wIAAwI,CACzI,CAAC;YACJ,CAAC;YACD,IAAI,IAAA,2CAA6B,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CACb,8JAA8J,CAC/J,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CACb,oLAAoL,GAAG,EAAE,CAC1L,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -22,7 +22,6 @@ export declare class OpenClawWorker implements WorkerExecutor {
22
22
  execute(): Promise<void>;
23
23
  cleanup(): Promise<void>;
24
24
  getWorkerTransport(): WorkerTransport | null;
25
- private getWorkingDirectory;
26
25
  private maybeRunPreCompactionMemoryFlush;
27
26
  private runAISession;
28
27
  private setupIODirectories;
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/openclaw/worker.ts"],"names":[],"mappings":";AAMA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAWpB,OAAO,KAAK,EAGV,YAAY,EACZ,cAAc,EACf,MAAM,eAAe,CAAC;AAmDvB,UAAU,yBAAyB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAiCD,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR;AAmID,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,CAIR;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,yBAAyB,CA2B3B;AAED,qBAAa,cAAe,YAAW,cAAc;IACnD,OAAO,CAAC,gBAAgB,CAAmB;IACpC,eAAe,EAAE,eAAe,CAAC;IACxC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAA4B;gBAEzC,MAAM,EAAE,YAAY;IAmChC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmRxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C,OAAO,CAAC,mBAAmB;YAIb,gCAAgC;YAqFhC,YAAY;YAi6BZ,kBAAkB;YAwBlB,kBAAkB;IAmEhC,OAAO,KAAK,aAAa,GAOxB;IAED,OAAO,CAAC,MAAM,CAAC,OAAO;IAItB,OAAO,CAAC,qBAAqB;IAuE7B,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAoB;YAE7C,oBAAoB;YAgDpB,yBAAyB;YAkBzB,oCAAoC;CAiCnD"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/openclaw/worker.ts"],"names":[],"mappings":";AAMA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAWpB,OAAO,KAAK,EAGV,YAAY,EACZ,cAAc,EACf,MAAM,eAAe,CAAC;AAgDvB,UAAU,yBAAyB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAiCD,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR;AA4GD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,CAIR;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,yBAAyB,CA2B3B;AAED,qBAAa,cAAe,YAAW,cAAc;IACnD,OAAO,CAAC,gBAAgB,CAAmB;IACpC,eAAe,EAAE,eAAe,CAAC;IACxC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAA4B;gBAEzC,MAAM,EAAE,YAAY;IAmChC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuPxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,kBAAkB,IAAI,eAAe,GAAG,IAAI;YAI9B,gCAAgC;YAqFhC,YAAY;YA+5BZ,kBAAkB;YA0BlB,kBAAkB;IAmEhC,OAAO,KAAK,aAAa,GAOxB;IAED,OAAO,CAAC,MAAM,CAAC,OAAO;IAItB,OAAO,CAAC,qBAAqB;IA4D7B,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAoB;YAE7C,oBAAoB;IAgDlC,OAAO,CAAC,yBAAyB;YAanB,oCAAoC;CAiCnD"}
@@ -54,7 +54,6 @@ const builder_1 = require("../instructions/builder");
54
54
  const providers_1 = require("../instructions/providers");
55
55
  const audio_provider_suggestions_1 = require("../shared/audio-provider-suggestions");
56
56
  const provider_auth_hints_1 = require("../shared/provider-auth-hints");
57
- const tool_implementations_1 = require("../shared/tool-implementations");
58
57
  const custom_tools_1 = require("./custom-tools");
59
58
  const instructions_1 = require("./instructions");
60
59
  const model_resolver_1 = require("./model-resolver");
@@ -109,21 +108,6 @@ function isRealOpenAIBaseUrl(baseUrl) {
109
108
  return false;
110
109
  }
111
110
  }
112
- function isLikelyImageGenerationRequest(prompt) {
113
- const lower = prompt.toLowerCase();
114
- const explicitToolInstruction = lower.includes("generateimage tool") || lower.includes("use generateimage");
115
- const directShortcutEnabled = process.env.WORKER_ENABLE_DIRECT_IMAGE_SHORTCUT === "true";
116
- return directShortcutEnabled && explicitToolInstruction;
117
- }
118
- function extractToolTextContent(result) {
119
- if (!Array.isArray(result.content))
120
- return "";
121
- return result.content
122
- .filter((item) => item?.type === "text" && typeof item.text === "string")
123
- .map((item) => item.text)
124
- .join("\n")
125
- .trim();
126
- }
127
111
  function isRecord(value) {
128
112
  return typeof value === "object" && value !== null;
129
113
  }
@@ -329,29 +313,6 @@ class OpenClawWorker {
329
313
  logger.info(`[TIMING] Starting OpenClaw session at: ${new Date().toISOString()}`);
330
314
  const aiStartTime = Date.now();
331
315
  logger.info(`[TIMING] Total worker startup time: ${aiStartTime - executeStartTime}ms`);
332
- if (isLikelyImageGenerationRequest(userPrompt)) {
333
- logger.info("Direct image-generation shortcut triggered");
334
- const gatewayUrl = process.env.DISPATCHER_URL;
335
- const workerToken = process.env.WORKER_TOKEN;
336
- if (!gatewayUrl || !workerToken) {
337
- throw new Error("DISPATCHER_URL and WORKER_TOKEN are required for image generation");
338
- }
339
- const gatewayParams = {
340
- gatewayUrl,
341
- workerToken,
342
- channelId: this.config.channelId,
343
- conversationId: this.config.conversationId,
344
- platform: this.config.platform,
345
- };
346
- const toolResult = await (0, tool_implementations_1.generateImage)(gatewayParams, {
347
- prompt: userPrompt,
348
- });
349
- const toolText = extractToolTextContent(toolResult) || "Image request processed.";
350
- await this.workerTransport.sendStreamDelta(toolText, false, true);
351
- await this.workerTransport.signalDone();
352
- logger.info("Direct image-generation shortcut completed");
353
- return;
354
- }
355
316
  let firstOutputLogged = false;
356
317
  let sawUploadedFileEvent = false;
357
318
  const result = await Sentry.startSpan({
@@ -454,15 +415,11 @@ class OpenClawWorker {
454
415
  }
455
416
  }
456
417
  async cleanup() {
457
- logger.info("Cleaning up worker resources...");
458
418
  logger.info("Worker cleanup completed");
459
419
  }
460
420
  getWorkerTransport() {
461
421
  return this.workerTransport;
462
422
  }
463
- getWorkingDirectory() {
464
- return this.workspaceManager.getCurrentWorkingDirectory();
465
- }
466
423
  async maybeRunPreCompactionMemoryFlush(params) {
467
424
  const { session, sessionManager, settingsManager, memoryFlushConfig, incomingPromptText, incomingImageCount, runSilentPrompt, } = params;
468
425
  if (!memoryFlushConfig.enabled) {
@@ -525,17 +482,16 @@ class OpenClawWorker {
525
482
  // per-server just-bash CLIs (keeps the tool list lean).
526
483
  const configuredMcpExposure = rawOptions.toolsConfig?.mcpExposure;
527
484
  const envMcpExposure = process.env.LOBU_MCP_EXPOSURE;
528
- const requestedMcpExposure = configuredMcpExposure === "cli" || envMcpExposure === "cli"
485
+ const mcpExposure = configuredMcpExposure === "cli" || envMcpExposure === "cli"
529
486
  ? "cli"
530
487
  : "tools";
531
- const mcpExposure = requestedMcpExposure;
532
488
  // Fetch session context BEFORE model resolution so AGENT_DEFAULT_PROVIDER
533
489
  // is available when resolveModelRef() needs a fallback provider. Pass
534
490
  // `mcpExposure` so MCP setup instructions use the right call syntax.
535
491
  const context = await (0, session_context_1.getOpenClawSessionContext)({ mcpExposure });
536
492
  // Sync enabled skills to workspace filesystem so the agent can `cat` them.
537
493
  // Remove stale skill directories to avoid serving removed/disabled skills.
538
- const skillsWorkspaceDir = this.getWorkingDirectory();
494
+ const skillsWorkspaceDir = this.workspaceManager.getCurrentWorkingDirectory();
539
495
  const skillsRoot = path.join(skillsWorkspaceDir, ".skills");
540
496
  await fs.mkdir(skillsRoot, { recursive: true });
541
497
  const nextSkillNames = new Set(context.skillsConfig
@@ -671,7 +627,7 @@ class OpenClawWorker {
671
627
  compat: { ...(resolvedModel.compat ?? {}), supportsStore: false },
672
628
  }
673
629
  : resolvedModel;
674
- const workspaceDir = this.getWorkingDirectory();
630
+ const workspaceDir = this.workspaceManager.getCurrentWorkingDirectory();
675
631
  await fs.mkdir(path.join(workspaceDir, ".openclaw"), { recursive: true });
676
632
  const sessionFile = path.join(workspaceDir, ".openclaw", "session.jsonl");
677
633
  const providerStateFile = path.join(workspaceDir, ".openclaw", "provider.json");
@@ -785,8 +741,6 @@ class OpenClawWorker {
785
741
  };
786
742
  });
787
743
  }
788
- const gatewayUrl = (0, core_1.getOptionalEnv)("DISPATCHER_URL", "");
789
- const workerToken = (0, core_1.getOptionalEnv)("WORKER_TOKEN", "");
790
744
  // Credential injection — resolve API key from the in-memory credential store,
791
745
  // falling back to process.env only for values that were present at startup.
792
746
  const authStorage = new pi_coding_agent_1.AuthStorage();
@@ -1076,6 +1030,11 @@ Use it when the user references past discussions or you need context.`);
1076
1030
  clearInterval(heartbeatTimer);
1077
1031
  heartbeatTimer = null;
1078
1032
  }
1033
+ // Unblock any in-flight prompt turn FIRST — disposing the session
1034
+ // without resolving `turnDone` leaves `runPromptTurn` (and the
1035
+ // outer `runAISession`) wedged on `await turnDone` until the
1036
+ // deployment manager force-kills the worker.
1037
+ resolveTurnDone?.();
1079
1038
  if (session) {
1080
1039
  session.dispose();
1081
1040
  }
@@ -1182,7 +1141,7 @@ Use it when the user references past discussions or you need context.`);
1182
1141
  },
1183
1142
  ctx: pluginHookContext,
1184
1143
  });
1185
- const errorWithHint = await this.maybeBuildAuthHintMessage(sessionError, rawProvider, modelId, gatewayUrl, workerToken);
1144
+ const errorWithHint = this.maybeBuildAuthHintMessage(sessionError, rawProvider, modelId);
1186
1145
  return {
1187
1146
  success: false,
1188
1147
  exitCode: 1,
@@ -1221,7 +1180,7 @@ Use it when the user references past discussions or you need context.`);
1221
1180
  ctx: pluginHookContext,
1222
1181
  });
1223
1182
  }
1224
- const errorWithHint = await this.maybeBuildAuthHintMessage(errorMsg, provider, modelId, gatewayUrl, workerToken);
1183
+ const errorWithHint = this.maybeBuildAuthHintMessage(errorMsg, provider, modelId);
1225
1184
  return {
1226
1185
  success: false,
1227
1186
  exitCode: 1,
@@ -1261,11 +1220,9 @@ Use it when the user references past discussions or you need context.`);
1261
1220
  await fs.mkdir(tempDir, { recursive: true });
1262
1221
  try {
1263
1222
  const files = await fs.readdir(outputDir);
1264
- for (const file of files) {
1265
- await fs.unlink(path.join(outputDir, file)).catch(() => {
1266
- /* intentionally empty */
1267
- });
1268
- }
1223
+ await Promise.all(files.map((file) => fs.unlink(path.join(outputDir, file)).catch(() => {
1224
+ /* intentionally empty */
1225
+ })));
1269
1226
  }
1270
1227
  catch (error) {
1271
1228
  logger.debug("Could not clear output directory:", error);
@@ -1338,8 +1295,7 @@ Use it when the user references past discussions or you need context.`);
1338
1295
  3. Confirm delivery ONLY after \`UploadUserFile\` succeeds.
1339
1296
 
1340
1297
  **Workspace paths are not accessible to users.** Paths like \`/workspace/...\` or \`/app/workspaces/...\` are internal sandbox paths. Never show them as file locations, download links, or "saved at" references. The user cannot reach them. Always use \`UploadUserFile\` instead.`;
1341
- if (files.length === 0) {
1342
- return `
1298
+ const common = `
1343
1299
 
1344
1300
  ## File Generation & Output
1345
1301
 
@@ -1353,6 +1309,8 @@ Create and show files for any output that helps answer the user's request:
1353
1309
  - **Code files**: scripts, configurations, examples
1354
1310
  - **Images**: generated images, processed photos, screenshots.
1355
1311
  `;
1312
+ if (files.length === 0) {
1313
+ return common;
1356
1314
  }
1357
1315
  const fileListing = files
1358
1316
  .map((f) => `- \`${workspaceDir}/input/${f.name}\` (${f.mimetype || "unknown type"})`)
@@ -1368,20 +1326,7 @@ Create and show files for any output that helps answer the user's request:
1368
1326
  hints +=
1369
1327
  "\nYou can read non-image files with standard commands like `cat`, `less`, or `head`.";
1370
1328
  }
1371
- return `
1372
-
1373
- ## File Generation & Output
1374
-
1375
- ${fileOutputRules}
1376
-
1377
- **When to Create Files:**
1378
- Create and show files for any output that helps answer the user's request:
1379
- - **Charts & visualizations**: pie charts, bar graphs, plots, diagrams via \`matplotlib\`
1380
- - **Reports & documents**: analysis reports, summaries, PDFs
1381
- - **Data files**: CSV exports, JSON data, spreadsheets
1382
- - **Code files**: scripts, configurations, examples
1383
- - **Images**: generated images, processed photos, screenshots.
1384
-
1329
+ return `${common}
1385
1330
  ### User-Uploaded Files
1386
1331
  The user has uploaded ${files.length} file(s) for you to analyze:
1387
1332
  ${fileListing}
@@ -1426,9 +1371,7 @@ ${fileListing}
1426
1371
  }
1427
1372
  return results;
1428
1373
  }
1429
- async maybeBuildAuthHintMessage(errorMessage, provider, modelId, gatewayUrl, workerToken) {
1430
- void gatewayUrl;
1431
- void workerToken;
1374
+ maybeBuildAuthHintMessage(errorMessage, provider, modelId) {
1432
1375
  const authHint = (0, provider_auth_hints_1.getProviderAuthHintFromError)(errorMessage, provider);
1433
1376
  if (!authHint) {
1434
1377
  return errorMessage;