@lobu/worker 6.1.1 → 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.
- package/dist/core/error-handler.d.ts +0 -4
- package/dist/core/error-handler.d.ts.map +1 -1
- package/dist/core/error-handler.js +4 -15
- package/dist/core/error-handler.js.map +1 -1
- package/dist/core/types.d.ts +1 -19
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +0 -4
- package/dist/core/types.js.map +1 -1
- package/dist/core/workspace.d.ts +2 -11
- package/dist/core/workspace.d.ts.map +1 -1
- package/dist/core/workspace.js +14 -36
- package/dist/core/workspace.js.map +1 -1
- package/dist/embedded/just-bash-bootstrap.d.ts.map +1 -1
- package/dist/embedded/just-bash-bootstrap.js +60 -6
- package/dist/embedded/just-bash-bootstrap.js.map +1 -1
- package/dist/embedded/mcp-cli-commands.d.ts.map +1 -1
- package/dist/embedded/mcp-cli-commands.js +3 -38
- package/dist/embedded/mcp-cli-commands.js.map +1 -1
- package/dist/gateway/gateway-integration.js +4 -4
- package/dist/gateway/gateway-integration.js.map +1 -1
- package/dist/gateway/message-batcher.d.ts.map +1 -1
- package/dist/gateway/message-batcher.js +3 -5
- package/dist/gateway/message-batcher.js.map +1 -1
- package/dist/gateway/sse-client.d.ts +1 -0
- package/dist/gateway/sse-client.d.ts.map +1 -1
- package/dist/gateway/sse-client.js +52 -8
- package/dist/gateway/sse-client.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -24
- package/dist/index.js.map +1 -1
- package/dist/instructions/builder.d.ts.map +1 -1
- package/dist/instructions/builder.js +2 -1
- package/dist/instructions/builder.js.map +1 -1
- package/dist/openclaw/plugin-loader.d.ts.map +1 -1
- package/dist/openclaw/plugin-loader.js +8 -19
- package/dist/openclaw/plugin-loader.js.map +1 -1
- package/dist/openclaw/processor.d.ts.map +1 -1
- package/dist/openclaw/processor.js +2 -0
- package/dist/openclaw/processor.js.map +1 -1
- package/dist/openclaw/sandbox-leak.d.ts.map +1 -1
- package/dist/openclaw/sandbox-leak.js +1 -6
- package/dist/openclaw/sandbox-leak.js.map +1 -1
- package/dist/openclaw/session-context.d.ts.map +1 -1
- package/dist/openclaw/session-context.js +3 -0
- package/dist/openclaw/session-context.js.map +1 -1
- package/dist/openclaw/tool-policy.d.ts.map +1 -1
- package/dist/openclaw/tool-policy.js +5 -11
- package/dist/openclaw/tool-policy.js.map +1 -1
- package/dist/openclaw/worker.d.ts +0 -1
- package/dist/openclaw/worker.d.ts.map +1 -1
- package/dist/openclaw/worker.js +19 -85
- package/dist/openclaw/worker.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -40
- package/dist/server.js.map +1 -1
- package/dist/shared/audio-provider-suggestions.d.ts.map +1 -1
- package/dist/shared/audio-provider-suggestions.js +4 -6
- package/dist/shared/audio-provider-suggestions.js.map +1 -1
- package/dist/shared/tool-implementations.d.ts.map +1 -1
- package/dist/shared/tool-implementations.js +99 -37
- package/dist/shared/tool-implementations.js.map +1 -1
- package/package.json +14 -4
- package/src/__tests__/audio-provider-suggestions.test.ts +199 -0
- package/src/__tests__/custom-tools.test.ts +92 -0
- package/src/__tests__/embedded-just-bash-bootstrap.test.ts +128 -0
- package/src/__tests__/embedded-mcp-cli-bash.test.ts +179 -0
- package/src/__tests__/embedded-tools.test.ts +744 -0
- package/src/__tests__/exec-sandbox-extra.test.ts +0 -0
- package/src/__tests__/exec-sandbox.test.ts +550 -0
- package/src/__tests__/generated-media.test.ts +142 -0
- package/src/__tests__/instructions.test.ts +60 -0
- package/src/__tests__/mcp-cli-commands-extra.test.ts +478 -0
- package/src/__tests__/mcp-cli-commands.test.ts +383 -0
- package/src/__tests__/mcp-tool-call.test.ts +423 -0
- package/src/__tests__/memory-flush-harden.test.ts +367 -0
- package/src/__tests__/memory-flush-runtime.test.ts +138 -0
- package/src/__tests__/memory-flush.test.ts +64 -0
- package/src/__tests__/message-batcher.test.ts +247 -0
- package/src/__tests__/model-resolver-harden.test.ts +197 -0
- package/src/__tests__/model-resolver.test.ts +156 -0
- package/src/__tests__/processor-harden.test.ts +259 -0
- package/src/__tests__/processor.test.ts +225 -0
- package/src/__tests__/replace-base-prompt-identity.test.ts +41 -0
- package/src/__tests__/sandbox-leak-harden.test.ts +200 -0
- package/src/__tests__/sandbox-leak.test.ts +167 -0
- package/src/__tests__/setup.ts +102 -0
- package/src/__tests__/sse-client-harden.test.ts +588 -0
- package/src/__tests__/sse-client.test.ts +90 -0
- package/src/__tests__/tool-implementations.test.ts +196 -0
- package/src/__tests__/tool-policy-edge-cases.test.ts +263 -0
- package/src/__tests__/tool-policy.test.ts +269 -0
- package/src/__tests__/worker.test.ts +89 -0
- package/src/core/error-handler.ts +47 -0
- package/src/core/project-scanner.ts +65 -0
- package/src/core/types.ts +94 -0
- package/src/core/workspace.ts +66 -0
- package/src/embedded/exec-sandbox.ts +372 -0
- package/src/embedded/just-bash-bootstrap.ts +575 -0
- package/src/embedded/mcp-cli-commands.ts +405 -0
- package/src/gateway/gateway-integration.ts +298 -0
- package/src/gateway/message-batcher.ts +123 -0
- package/src/gateway/sse-client.ts +988 -0
- package/src/gateway/types.ts +68 -0
- package/src/index.ts +123 -0
- package/src/instructions/builder.ts +44 -0
- package/src/instructions/providers.ts +27 -0
- package/src/modules/lifecycle.ts +92 -0
- package/src/openclaw/custom-tools.ts +315 -0
- package/src/openclaw/instructions.ts +36 -0
- package/src/openclaw/model-resolver.ts +150 -0
- package/src/openclaw/plugin-loader.ts +423 -0
- package/src/openclaw/processor.ts +199 -0
- package/src/openclaw/sandbox-leak.ts +100 -0
- package/src/openclaw/session-context.ts +323 -0
- package/src/openclaw/tool-policy.ts +241 -0
- package/src/openclaw/tools.ts +277 -0
- package/src/openclaw/worker.ts +1836 -0
- package/src/server.ts +330 -0
- package/src/shared/audio-provider-suggestions.ts +130 -0
- package/src/shared/processor-utils.ts +33 -0
- package/src/shared/provider-auth-hints.ts +68 -0
- package/src/shared/tool-display-config.ts +75 -0
- package/src/shared/tool-implementations.ts +981 -0
- package/src/shared/worker-env-keys.ts +8 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-leak.js","sourceRoot":"","sources":["../../src/openclaw/sandbox-leak.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AA+CH,
|
|
1
|
+
{"version":3,"file":"sandbox-leak.js","sourceRoot":"","sources":["../../src/openclaw/sandbox-leak.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AA+CH,4CA0CC;AAvFD,6EAA6E;AAC7E,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAE3D;;;GAGG;AACH,MAAM,gBAAgB,GACpB,4EAA4E,CAAC;AAE/E;;;GAGG;AACH,MAAM,aAAa,GACjB,0FAA0F,CAAC;AAE7F;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GACtB,oNAAoN,CAAC;AAUvN;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,SAAiB,EACjB,oBAA6B;IAE7B,IAAI,oBAAoB,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7D,2DAA2D;IAC3D,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC;IAC7B,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;IAC/B,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;IAC5B,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC;IAEjC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,uEAAuE;IACvE,2DAA2D;IAC3D,IAAI,QAAQ,GAAG,SAAS,CAAC;IACzB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;IAC1E,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAChE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACzB,aAAa,EACb,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,gBAAgB,CAClD,CAAC;IACF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACzB,kBAAkB,EAClB,0EAA0E,CAC3E,CAAC;IAEF,MAAM,IAAI,GACR,uEAAuE;QACvE,iEAAiE,CAAC;IAEpE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,GAAG,IAAI,EAAE,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../src/openclaw/session-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAGvB,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAIpB,UAAU,cAAc;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACrD,wFAAwF;IACxF,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAwCD;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAGpD;AAqGD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAAO,GAC3C,OAAO,CAAC;IACT;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC,
|
|
1
|
+
{"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../src/openclaw/session-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAGvB,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAIpB,UAAU,cAAc;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACrD,wFAAwF;IACxF,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAwCD;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAGpD;AAqGD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAAO,GAC3C,OAAO,CAAC;IACT;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC,CAqHD"}
|
|
@@ -120,6 +120,9 @@ async function getOpenClawSessionContext(opts = {}) {
|
|
|
120
120
|
headers: {
|
|
121
121
|
Authorization: `Bearer ${workerToken}`,
|
|
122
122
|
},
|
|
123
|
+
// Session context is fetched once per turn; a stalled gateway here would
|
|
124
|
+
// otherwise hang the worker before the agent ever sees the prompt.
|
|
125
|
+
signal: AbortSignal.timeout(30_000),
|
|
123
126
|
});
|
|
124
127
|
if (!response.ok) {
|
|
125
128
|
logger.warn("Gateway returned non-success status for session context", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-context.js","sourceRoot":"","sources":["../../src/openclaw/session-context.ts"],"names":[],"mappings":";;AA6EA,sEAGC;AA2GD,
|
|
1
|
+
{"version":3,"file":"session-context.js","sourceRoot":"","sources":["../../src/openclaw/session-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/openclaw/tool-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AA4DF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAYtE;
|
|
1
|
+
{"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/openclaw/tool-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AA4DF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAYtE;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAUrE;AAyBD,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACrC,GAAG,UAAU,CAyCb;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CA8BT;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,GACxB,IAAI,CA4BN"}
|
|
@@ -69,9 +69,6 @@ function isDirectPackageInstallCommand(command) {
|
|
|
69
69
|
return (DEFAULT_PACKAGE_MANAGER_DENY_PREFIXES.some((prefix) => trimmed.startsWith(prefix.toLowerCase())) ||
|
|
70
70
|
DIRECT_PACKAGE_INSTALL_PATTERNS.some((pattern) => pattern.test(trimmed)));
|
|
71
71
|
}
|
|
72
|
-
function normalizePattern(pattern) {
|
|
73
|
-
return pattern.trim();
|
|
74
|
-
}
|
|
75
72
|
function normalizeToolName(name) {
|
|
76
73
|
return name.trim().toLowerCase();
|
|
77
74
|
}
|
|
@@ -86,15 +83,12 @@ function normalizeToolList(value) {
|
|
|
86
83
|
}
|
|
87
84
|
function parseBashFilter(pattern) {
|
|
88
85
|
const match = pattern.match(/^Bash\(([^:]+):\*\)$/i);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
const prefix = match[1]?.trim();
|
|
93
|
-
return prefix ? prefix : null;
|
|
86
|
+
const prefix = match?.[1]?.trim();
|
|
87
|
+
return prefix || null;
|
|
94
88
|
}
|
|
95
89
|
function matchesToolPattern(toolName, pattern) {
|
|
96
90
|
const normalizedTool = normalizeToolName(toolName);
|
|
97
|
-
const normalizedPattern =
|
|
91
|
+
const normalizedPattern = pattern.trim();
|
|
98
92
|
const normalizedPatternLower = normalizedPattern.toLowerCase();
|
|
99
93
|
if (normalizedPattern === "*") {
|
|
100
94
|
return true;
|
|
@@ -113,11 +107,11 @@ function buildToolPolicy(params) {
|
|
|
113
107
|
const mergedAllowed = [
|
|
114
108
|
...(toolsConfig?.allowedTools ?? []),
|
|
115
109
|
...allowedPatterns,
|
|
116
|
-
].map(
|
|
110
|
+
].map((p) => p.trim());
|
|
117
111
|
const mergedDenied = [
|
|
118
112
|
...(toolsConfig?.deniedTools ?? []),
|
|
119
113
|
...deniedPatterns,
|
|
120
|
-
].map(
|
|
114
|
+
].map((p) => p.trim());
|
|
121
115
|
const bashAllowPrefixes = mergedAllowed
|
|
122
116
|
.map((pattern) => parseBashFilter(pattern))
|
|
123
117
|
.filter((prefix) => Boolean(prefix));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-policy.js","sourceRoot":"","sources":["../../src/openclaw/tool-policy.ts"],"names":[],"mappings":";;AA0EA,sEAYC;
|
|
1
|
+
{"version":3,"file":"tool-policy.js","sourceRoot":"","sources":["../../src/openclaw/tool-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;IAiChC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8OxB,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"}
|
package/dist/openclaw/worker.js
CHANGED
|
@@ -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
|
}
|
|
@@ -232,7 +216,6 @@ class OpenClawWorker {
|
|
|
232
216
|
this.config = config;
|
|
233
217
|
this.workspaceManager = new workspace_1.WorkspaceManager(config.workspace);
|
|
234
218
|
this.progressProcessor = new processor_1.OpenClawProgressProcessor();
|
|
235
|
-
// Verify required environment variables
|
|
236
219
|
const gatewayUrl = process.env.DISPATCHER_URL;
|
|
237
220
|
const workerToken = process.env.WORKER_TOKEN;
|
|
238
221
|
if (!gatewayUrl || !workerToken) {
|
|
@@ -266,10 +249,8 @@ class OpenClawWorker {
|
|
|
266
249
|
this.progressProcessor.reset();
|
|
267
250
|
logger.info(`🚀 Starting OpenClaw worker for session: ${this.config.sessionKey}`);
|
|
268
251
|
logger.info(`[TIMING] Worker execute() started at: ${new Date(executeStartTime).toISOString()}`);
|
|
269
|
-
// Decode user prompt
|
|
270
252
|
const userPrompt = Buffer.from(this.config.userPrompt, "base64").toString("utf-8");
|
|
271
253
|
logger.info(`User prompt: ${userPrompt.substring(0, 100)}...`);
|
|
272
|
-
// Setup workspace
|
|
273
254
|
logger.info("Setting up workspace...");
|
|
274
255
|
await Sentry.startSpan({
|
|
275
256
|
name: "worker.workspace_setup",
|
|
@@ -287,11 +268,8 @@ class OpenClawWorker {
|
|
|
287
268
|
sessionKey: this.config.sessionKey,
|
|
288
269
|
});
|
|
289
270
|
});
|
|
290
|
-
// Setup I/O directories for file handling
|
|
291
271
|
await this.setupIODirectories();
|
|
292
|
-
// Download input files if any
|
|
293
272
|
await this.downloadInputFiles();
|
|
294
|
-
// Generate custom instructions
|
|
295
273
|
let customInstructions = await (0, builder_1.generateCustomInstructions)([
|
|
296
274
|
new instructions_1.OpenClawCoreInstructionProvider(),
|
|
297
275
|
new instructions_1.OpenClawPromptIntentInstructionProvider(),
|
|
@@ -304,7 +282,7 @@ class OpenClawWorker {
|
|
|
304
282
|
userPrompt,
|
|
305
283
|
availableProjects: (0, project_scanner_1.listAppDirectories)(this.workspaceManager.getCurrentWorkingDirectory()),
|
|
306
284
|
});
|
|
307
|
-
//
|
|
285
|
+
// Module hooks may modify the system prompt before agent execution.
|
|
308
286
|
try {
|
|
309
287
|
const { onSessionStart } = await Promise.resolve().then(() => __importStar(require("../modules/lifecycle")));
|
|
310
288
|
const moduleContext = await onSessionStart({
|
|
@@ -325,33 +303,9 @@ class OpenClawWorker {
|
|
|
325
303
|
}
|
|
326
304
|
// Add file I/O instructions AFTER module hooks so they aren't overwritten
|
|
327
305
|
customInstructions += this.getFileIOInstructions();
|
|
328
|
-
// Execute AI session
|
|
329
306
|
logger.info(`[TIMING] Starting OpenClaw session at: ${new Date().toISOString()}`);
|
|
330
307
|
const aiStartTime = Date.now();
|
|
331
308
|
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
309
|
let firstOutputLogged = false;
|
|
356
310
|
let sawUploadedFileEvent = false;
|
|
357
311
|
const result = await Sentry.startSpan({
|
|
@@ -386,7 +340,6 @@ class OpenClawWorker {
|
|
|
386
340
|
}
|
|
387
341
|
});
|
|
388
342
|
});
|
|
389
|
-
// Collect module data before sending final response
|
|
390
343
|
const { collectModuleData } = await Promise.resolve().then(() => __importStar(require("../modules/lifecycle")));
|
|
391
344
|
const moduleData = await collectModuleData({
|
|
392
345
|
workspaceDir: this.workspaceManager.getCurrentWorkingDirectory(),
|
|
@@ -394,7 +347,6 @@ class OpenClawWorker {
|
|
|
394
347
|
conversationId: this.config.conversationId,
|
|
395
348
|
});
|
|
396
349
|
this.workerTransport.setModuleData(moduleData);
|
|
397
|
-
// Handle result
|
|
398
350
|
if (result.success) {
|
|
399
351
|
const outputSnapshot = this.progressProcessor.getOutputSnapshot();
|
|
400
352
|
const hintGatewayUrl = process.env.DISPATCHER_URL;
|
|
@@ -454,15 +406,11 @@ class OpenClawWorker {
|
|
|
454
406
|
}
|
|
455
407
|
}
|
|
456
408
|
async cleanup() {
|
|
457
|
-
logger.info("Cleaning up worker resources...");
|
|
458
409
|
logger.info("Worker cleanup completed");
|
|
459
410
|
}
|
|
460
411
|
getWorkerTransport() {
|
|
461
412
|
return this.workerTransport;
|
|
462
413
|
}
|
|
463
|
-
getWorkingDirectory() {
|
|
464
|
-
return this.workspaceManager.getCurrentWorkingDirectory();
|
|
465
|
-
}
|
|
466
414
|
async maybeRunPreCompactionMemoryFlush(params) {
|
|
467
415
|
const { session, sessionManager, settingsManager, memoryFlushConfig, incomingPromptText, incomingImageCount, runSilentPrompt, } = params;
|
|
468
416
|
if (!memoryFlushConfig.enabled) {
|
|
@@ -525,17 +473,16 @@ class OpenClawWorker {
|
|
|
525
473
|
// per-server just-bash CLIs (keeps the tool list lean).
|
|
526
474
|
const configuredMcpExposure = rawOptions.toolsConfig?.mcpExposure;
|
|
527
475
|
const envMcpExposure = process.env.LOBU_MCP_EXPOSURE;
|
|
528
|
-
const
|
|
476
|
+
const mcpExposure = configuredMcpExposure === "cli" || envMcpExposure === "cli"
|
|
529
477
|
? "cli"
|
|
530
478
|
: "tools";
|
|
531
|
-
const mcpExposure = requestedMcpExposure;
|
|
532
479
|
// Fetch session context BEFORE model resolution so AGENT_DEFAULT_PROVIDER
|
|
533
480
|
// is available when resolveModelRef() needs a fallback provider. Pass
|
|
534
481
|
// `mcpExposure` so MCP setup instructions use the right call syntax.
|
|
535
482
|
const context = await (0, session_context_1.getOpenClawSessionContext)({ mcpExposure });
|
|
536
483
|
// Sync enabled skills to workspace filesystem so the agent can `cat` them.
|
|
537
484
|
// Remove stale skill directories to avoid serving removed/disabled skills.
|
|
538
|
-
const skillsWorkspaceDir = this.
|
|
485
|
+
const skillsWorkspaceDir = this.workspaceManager.getCurrentWorkingDirectory();
|
|
539
486
|
const skillsRoot = path.join(skillsWorkspaceDir, ".skills");
|
|
540
487
|
await fs.mkdir(skillsRoot, { recursive: true });
|
|
541
488
|
const nextSkillNames = new Set(context.skillsConfig
|
|
@@ -671,7 +618,7 @@ class OpenClawWorker {
|
|
|
671
618
|
compat: { ...(resolvedModel.compat ?? {}), supportsStore: false },
|
|
672
619
|
}
|
|
673
620
|
: resolvedModel;
|
|
674
|
-
const workspaceDir = this.
|
|
621
|
+
const workspaceDir = this.workspaceManager.getCurrentWorkingDirectory();
|
|
675
622
|
await fs.mkdir(path.join(workspaceDir, ".openclaw"), { recursive: true });
|
|
676
623
|
const sessionFile = path.join(workspaceDir, ".openclaw", "session.jsonl");
|
|
677
624
|
const providerStateFile = path.join(workspaceDir, ".openclaw", "provider.json");
|
|
@@ -785,8 +732,6 @@ class OpenClawWorker {
|
|
|
785
732
|
};
|
|
786
733
|
});
|
|
787
734
|
}
|
|
788
|
-
const gatewayUrl = (0, core_1.getOptionalEnv)("DISPATCHER_URL", "");
|
|
789
|
-
const workerToken = (0, core_1.getOptionalEnv)("WORKER_TOKEN", "");
|
|
790
735
|
// Credential injection — resolve API key from the in-memory credential store,
|
|
791
736
|
// falling back to process.env only for values that were present at startup.
|
|
792
737
|
const authStorage = new pi_coding_agent_1.AuthStorage();
|
|
@@ -1076,6 +1021,11 @@ Use it when the user references past discussions or you need context.`);
|
|
|
1076
1021
|
clearInterval(heartbeatTimer);
|
|
1077
1022
|
heartbeatTimer = null;
|
|
1078
1023
|
}
|
|
1024
|
+
// Unblock any in-flight prompt turn FIRST — disposing the session
|
|
1025
|
+
// without resolving `turnDone` leaves `runPromptTurn` (and the
|
|
1026
|
+
// outer `runAISession`) wedged on `await turnDone` until the
|
|
1027
|
+
// deployment manager force-kills the worker.
|
|
1028
|
+
resolveTurnDone?.();
|
|
1079
1029
|
if (session) {
|
|
1080
1030
|
session.dispose();
|
|
1081
1031
|
}
|
|
@@ -1182,7 +1132,7 @@ Use it when the user references past discussions or you need context.`);
|
|
|
1182
1132
|
},
|
|
1183
1133
|
ctx: pluginHookContext,
|
|
1184
1134
|
});
|
|
1185
|
-
const errorWithHint =
|
|
1135
|
+
const errorWithHint = this.maybeBuildAuthHintMessage(sessionError, rawProvider, modelId);
|
|
1186
1136
|
return {
|
|
1187
1137
|
success: false,
|
|
1188
1138
|
exitCode: 1,
|
|
@@ -1221,7 +1171,7 @@ Use it when the user references past discussions or you need context.`);
|
|
|
1221
1171
|
ctx: pluginHookContext,
|
|
1222
1172
|
});
|
|
1223
1173
|
}
|
|
1224
|
-
const errorWithHint =
|
|
1174
|
+
const errorWithHint = this.maybeBuildAuthHintMessage(errorMsg, provider, modelId);
|
|
1225
1175
|
return {
|
|
1226
1176
|
success: false,
|
|
1227
1177
|
exitCode: 1,
|
|
@@ -1261,11 +1211,9 @@ Use it when the user references past discussions or you need context.`);
|
|
|
1261
1211
|
await fs.mkdir(tempDir, { recursive: true });
|
|
1262
1212
|
try {
|
|
1263
1213
|
const files = await fs.readdir(outputDir);
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
});
|
|
1268
|
-
}
|
|
1214
|
+
await Promise.all(files.map((file) => fs.unlink(path.join(outputDir, file)).catch(() => {
|
|
1215
|
+
/* intentionally empty */
|
|
1216
|
+
})));
|
|
1269
1217
|
}
|
|
1270
1218
|
catch (error) {
|
|
1271
1219
|
logger.debug("Could not clear output directory:", error);
|
|
@@ -1338,8 +1286,7 @@ Use it when the user references past discussions or you need context.`);
|
|
|
1338
1286
|
3. Confirm delivery ONLY after \`UploadUserFile\` succeeds.
|
|
1339
1287
|
|
|
1340
1288
|
**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
|
-
|
|
1342
|
-
return `
|
|
1289
|
+
const common = `
|
|
1343
1290
|
|
|
1344
1291
|
## File Generation & Output
|
|
1345
1292
|
|
|
@@ -1353,6 +1300,8 @@ Create and show files for any output that helps answer the user's request:
|
|
|
1353
1300
|
- **Code files**: scripts, configurations, examples
|
|
1354
1301
|
- **Images**: generated images, processed photos, screenshots.
|
|
1355
1302
|
`;
|
|
1303
|
+
if (files.length === 0) {
|
|
1304
|
+
return common;
|
|
1356
1305
|
}
|
|
1357
1306
|
const fileListing = files
|
|
1358
1307
|
.map((f) => `- \`${workspaceDir}/input/${f.name}\` (${f.mimetype || "unknown type"})`)
|
|
@@ -1368,20 +1317,7 @@ Create and show files for any output that helps answer the user's request:
|
|
|
1368
1317
|
hints +=
|
|
1369
1318
|
"\nYou can read non-image files with standard commands like `cat`, `less`, or `head`.";
|
|
1370
1319
|
}
|
|
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
|
-
|
|
1320
|
+
return `${common}
|
|
1385
1321
|
### User-Uploaded Files
|
|
1386
1322
|
The user has uploaded ${files.length} file(s) for you to analyze:
|
|
1387
1323
|
${fileListing}
|
|
@@ -1426,9 +1362,7 @@ ${fileListing}
|
|
|
1426
1362
|
}
|
|
1427
1363
|
return results;
|
|
1428
1364
|
}
|
|
1429
|
-
|
|
1430
|
-
void gatewayUrl;
|
|
1431
|
-
void workerToken;
|
|
1365
|
+
maybeBuildAuthHintMessage(errorMessage, provider, modelId) {
|
|
1432
1366
|
const authHint = (0, provider_auth_hints_1.getProviderAuthHintFromError)(errorMessage, provider);
|
|
1433
1367
|
if (!authHint) {
|
|
1434
1368
|
return errorMessage;
|