oh-my-codex 0.8.0 → 0.8.2
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/README.de.md +7 -2
- package/README.es.md +7 -2
- package/README.fr.md +7 -2
- package/README.it.md +7 -2
- package/README.ja.md +7 -2
- package/README.ko.md +7 -2
- package/README.md +61 -11
- package/README.pt.md +7 -2
- package/README.ru.md +7 -2
- package/README.tr.md +7 -2
- package/README.vi.md +7 -2
- package/README.zh-TW.md +366 -0
- package/README.zh.md +7 -2
- package/dist/cli/__tests__/index.test.js +70 -4
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/setup-skills-overwrite.test.js +100 -1
- package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +219 -1
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/catalog-contract.d.ts.map +1 -1
- package/dist/cli/catalog-contract.js +8 -2
- package/dist/cli/catalog-contract.js.map +1 -1
- package/dist/cli/index.d.ts +7 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +58 -12
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +50 -17
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +257 -0
- package/dist/cli/team.js.map +1 -1
- package/dist/config/__tests__/models.test.js +11 -11
- package/dist/config/__tests__/models.test.js.map +1 -1
- package/dist/config/models.d.ts +4 -3
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +6 -5
- package/dist/config/models.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +46 -3
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +23 -7
- package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +176 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +61 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +17 -7
- package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
- package/dist/hooks/__tests__/openclaw-setup-contract.test.js +26 -16
- package/dist/hooks/__tests__/openclaw-setup-contract.test.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts +2 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +41 -4
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/keyword-registry.d.ts.map +1 -1
- package/dist/hooks/keyword-registry.js +5 -0
- package/dist/hooks/keyword-registry.js.map +1 -1
- package/dist/mcp/__tests__/path-traversal.test.js +9 -227
- package/dist/mcp/__tests__/path-traversal.test.js.map +1 -1
- package/dist/mcp/__tests__/state-server-schema.test.js +16 -20
- package/dist/mcp/__tests__/state-server-schema.test.js.map +1 -1
- package/dist/mcp/__tests__/state-server-team-tools.test.js +30 -487
- package/dist/mcp/__tests__/state-server-team-tools.test.js.map +1 -1
- package/dist/mcp/state-server.d.ts +179 -0
- package/dist/mcp/state-server.d.ts.map +1 -1
- package/dist/mcp/state-server.js +217 -1111
- package/dist/mcp/state-server.js.map +1 -1
- package/dist/mcp/team-server.d.ts.map +1 -1
- package/dist/mcp/team-server.js +28 -7
- package/dist/mcp/team-server.js.map +1 -1
- package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts +5 -0
- package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts.map +1 -0
- package/dist/notifications/__tests__/dispatch-cooldown.test.js +100 -0
- package/dist/notifications/__tests__/dispatch-cooldown.test.js.map +1 -0
- package/dist/notifications/__tests__/temp-mode.test.d.ts +2 -0
- package/dist/notifications/__tests__/temp-mode.test.d.ts.map +1 -0
- package/dist/notifications/__tests__/temp-mode.test.js +172 -0
- package/dist/notifications/__tests__/temp-mode.test.js.map +1 -0
- package/dist/notifications/config.d.ts.map +1 -1
- package/dist/notifications/config.js +59 -6
- package/dist/notifications/config.js.map +1 -1
- package/dist/notifications/dispatch-cooldown.d.ts +36 -0
- package/dist/notifications/dispatch-cooldown.d.ts.map +1 -0
- package/dist/notifications/dispatch-cooldown.js +109 -0
- package/dist/notifications/dispatch-cooldown.js.map +1 -0
- package/dist/notifications/index.d.ts +5 -0
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +39 -8
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/temp-contract.d.ts +22 -0
- package/dist/notifications/temp-contract.d.ts.map +1 -0
- package/dist/notifications/temp-contract.js +147 -0
- package/dist/notifications/temp-contract.js.map +1 -0
- package/dist/notifications/types.d.ts +18 -0
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/openclaw/__tests__/config.test.js +81 -0
- package/dist/openclaw/__tests__/config.test.js.map +1 -1
- package/dist/openclaw/__tests__/dispatcher.test.js +50 -7
- package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
- package/dist/openclaw/config.d.ts +4 -0
- package/dist/openclaw/config.d.ts.map +1 -1
- package/dist/openclaw/config.js +110 -16
- package/dist/openclaw/config.js.map +1 -1
- package/dist/openclaw/dispatcher.d.ts +10 -4
- package/dist/openclaw/dispatcher.d.ts.map +1 -1
- package/dist/openclaw/dispatcher.js +40 -10
- package/dist/openclaw/dispatcher.js.map +1 -1
- package/dist/openclaw/types.d.ts +5 -1
- package/dist/openclaw/types.d.ts.map +1 -1
- package/dist/team/__tests__/api-interop.test.d.ts +2 -0
- package/dist/team/__tests__/api-interop.test.d.ts.map +1 -0
- package/dist/team/__tests__/api-interop.test.js +1052 -0
- package/dist/team/__tests__/api-interop.test.js.map +1 -0
- package/dist/team/__tests__/mcp-comm.test.js +30 -0
- package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
- package/dist/team/__tests__/runtime-cli.test.js +6 -0
- package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +52 -22
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts +2 -0
- package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts.map +1 -0
- package/dist/team/__tests__/tmux-claude-workers-demo.test.js +190 -0
- package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +1 -0
- package/dist/team/__tests__/tmux-session.test.js +45 -2
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +20 -12
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/api-interop.d.ts +19 -0
- package/dist/team/api-interop.d.ts.map +1 -0
- package/dist/team/api-interop.js +578 -0
- package/dist/team/api-interop.js.map +1 -0
- package/dist/team/mcp-comm.d.ts.map +1 -1
- package/dist/team/mcp-comm.js +26 -0
- package/dist/team/mcp-comm.js.map +1 -1
- package/dist/team/runtime-cli.d.ts +3 -0
- package/dist/team/runtime-cli.d.ts.map +1 -1
- package/dist/team/runtime-cli.js +24 -2
- package/dist/team/runtime-cli.js.map +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +67 -11
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/state/types.d.ts +1 -1
- package/dist/team/state/types.d.ts.map +1 -1
- package/dist/team/state.d.ts +1 -1
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/tmux-session.d.ts +1 -1
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +17 -5
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +48 -19
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/package.json +1 -1
- package/scripts/demo-claude-workers.sh +241 -0
- package/scripts/demo-team-e2e.sh +179 -0
- package/scripts/notify-hook/team-dispatch.js +186 -12
- package/scripts/notify-hook/team-leader-nudge.js +42 -2
- package/scripts/notify-hook/team-worker.js +63 -4
- package/skills/configure-notifications/SKILL.md +193 -185
- package/skills/omx-setup/SKILL.md +1 -1
- package/skills/team/SKILL.md +47 -5
- package/skills/worker/SKILL.md +40 -10
- package/templates/AGENTS.md +7 -3
- package/templates/catalog-manifest.json +26 -3
- package/skills/configure-discord/SKILL.md +0 -256
- package/skills/configure-openclaw/SKILL.md +0 -264
- package/skills/configure-slack/SKILL.md +0 -226
- package/skills/configure-telegram/SKILL.md +0 -232
package/dist/openclaw/config.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* OpenClaw Configuration Reader
|
|
3
3
|
*
|
|
4
4
|
* Reads OpenClaw config from the notifications.openclaw key in ~/.codex/.omx-config.json.
|
|
5
|
+
* Also supports generic alias shapes under notifications.custom_cli_command
|
|
6
|
+
* and notifications.custom_webhook_command, normalized to OpenClaw runtime config.
|
|
7
|
+
*
|
|
5
8
|
* Config is cached after first read (env vars don't change during process lifetime).
|
|
6
9
|
* Config file path can be overridden via OMX_OPENCLAW_CONFIG env var (points to a separate file).
|
|
7
10
|
*/
|
|
@@ -10,6 +13,86 @@ import { join } from "path";
|
|
|
10
13
|
import { codexHome } from "../utils/paths.js";
|
|
11
14
|
/** Cached config (null = not yet read, undefined = read but file missing/invalid) */
|
|
12
15
|
let _cachedConfig = null;
|
|
16
|
+
const VALID_HOOK_EVENTS = [
|
|
17
|
+
"session-start",
|
|
18
|
+
"session-end",
|
|
19
|
+
"session-idle",
|
|
20
|
+
"ask-user-question",
|
|
21
|
+
"stop",
|
|
22
|
+
];
|
|
23
|
+
const DEFAULT_ALIAS_EVENTS = ["session-end", "ask-user-question"];
|
|
24
|
+
function asRecord(value) {
|
|
25
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
26
|
+
? value
|
|
27
|
+
: null;
|
|
28
|
+
}
|
|
29
|
+
function parseEvents(value) {
|
|
30
|
+
if (!Array.isArray(value))
|
|
31
|
+
return [...DEFAULT_ALIAS_EVENTS];
|
|
32
|
+
const events = value
|
|
33
|
+
.filter((entry) => typeof entry === "string" && VALID_HOOK_EVENTS.includes(entry));
|
|
34
|
+
return events.length > 0 ? events : [...DEFAULT_ALIAS_EVENTS];
|
|
35
|
+
}
|
|
36
|
+
function parseInstruction(value, fallback) {
|
|
37
|
+
return typeof value === "string" && value.trim() ? value.trim() : fallback;
|
|
38
|
+
}
|
|
39
|
+
function normalizeFromCustomAliases(notifications) {
|
|
40
|
+
const webhookAlias = asRecord(notifications.custom_webhook_command);
|
|
41
|
+
const cliAlias = asRecord(notifications.custom_cli_command);
|
|
42
|
+
const webhookEnabled = webhookAlias?.enabled === true && typeof webhookAlias.url === "string";
|
|
43
|
+
const cliEnabled = cliAlias?.enabled === true && typeof cliAlias.command === "string";
|
|
44
|
+
if (!webhookEnabled && !cliEnabled)
|
|
45
|
+
return null;
|
|
46
|
+
const gateways = {};
|
|
47
|
+
const hooks = {};
|
|
48
|
+
const applyHooks = (events, gateway, instruction, source) => {
|
|
49
|
+
for (const event of events) {
|
|
50
|
+
if (hooks[event]) {
|
|
51
|
+
console.warn(`[openclaw] warning: ${source} overrides existing mapping for event '${event}'`);
|
|
52
|
+
}
|
|
53
|
+
hooks[event] = {
|
|
54
|
+
enabled: true,
|
|
55
|
+
gateway,
|
|
56
|
+
instruction,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
if (cliEnabled && cliAlias) {
|
|
61
|
+
const gatewayName = typeof cliAlias.gateway === "string" && cliAlias.gateway.trim()
|
|
62
|
+
? cliAlias.gateway.trim()
|
|
63
|
+
: "custom-cli";
|
|
64
|
+
gateways[gatewayName] = {
|
|
65
|
+
type: "command",
|
|
66
|
+
command: cliAlias.command.trim(),
|
|
67
|
+
...(typeof cliAlias.timeout === "number" ? { timeout: cliAlias.timeout } : {}),
|
|
68
|
+
};
|
|
69
|
+
applyHooks(parseEvents(cliAlias.events), gatewayName, parseInstruction(cliAlias.instruction, "OMX event {{event}} for {{projectPath}}"), "custom_cli_command");
|
|
70
|
+
}
|
|
71
|
+
if (webhookEnabled && webhookAlias) {
|
|
72
|
+
const gatewayName = typeof webhookAlias.gateway === "string" && webhookAlias.gateway.trim()
|
|
73
|
+
? webhookAlias.gateway.trim()
|
|
74
|
+
: "custom-webhook";
|
|
75
|
+
const method = webhookAlias.method === "PUT" ? "PUT" : "POST";
|
|
76
|
+
gateways[gatewayName] = {
|
|
77
|
+
type: "http",
|
|
78
|
+
url: webhookAlias.url.trim(),
|
|
79
|
+
method,
|
|
80
|
+
...(typeof webhookAlias.timeout === "number" ? { timeout: webhookAlias.timeout } : {}),
|
|
81
|
+
...(asRecord(webhookAlias.headers) ? { headers: webhookAlias.headers } : {}),
|
|
82
|
+
};
|
|
83
|
+
applyHooks(parseEvents(webhookAlias.events), gatewayName, parseInstruction(webhookAlias.instruction, "OMX event {{event}} for {{projectPath}}"), "custom_webhook_command");
|
|
84
|
+
}
|
|
85
|
+
if (Object.keys(gateways).length === 0 || Object.keys(hooks).length === 0)
|
|
86
|
+
return null;
|
|
87
|
+
return {
|
|
88
|
+
enabled: true,
|
|
89
|
+
gateways,
|
|
90
|
+
hooks,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function isValidOpenClawConfig(raw) {
|
|
94
|
+
return Boolean(raw?.enabled && raw.gateways && raw.hooks);
|
|
95
|
+
}
|
|
13
96
|
/**
|
|
14
97
|
* Read and cache the OpenClaw configuration.
|
|
15
98
|
*
|
|
@@ -22,6 +105,7 @@ let _cachedConfig = null;
|
|
|
22
105
|
* Config is read from:
|
|
23
106
|
* 1. OMX_OPENCLAW_CONFIG env var path (separate file), if set
|
|
24
107
|
* 2. notifications.openclaw key in ~/.codex/.omx-config.json
|
|
108
|
+
* 3. notifications.custom_cli_command / notifications.custom_webhook_command aliases
|
|
25
109
|
*/
|
|
26
110
|
export function getOpenClawConfig() {
|
|
27
111
|
// Activation gate: only active when OMX_OPENCLAW=1
|
|
@@ -41,30 +125,40 @@ export function getOpenClawConfig() {
|
|
|
41
125
|
return null;
|
|
42
126
|
}
|
|
43
127
|
const raw = JSON.parse(readFileSync(envOverride, "utf-8"));
|
|
44
|
-
if (!raw
|
|
128
|
+
if (!isValidOpenClawConfig(raw)) {
|
|
45
129
|
_cachedConfig = undefined;
|
|
46
130
|
return null;
|
|
47
131
|
}
|
|
48
132
|
_cachedConfig = raw;
|
|
49
133
|
return raw;
|
|
50
134
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
135
|
+
// Primary: read from notifications block in .omx-config.json
|
|
136
|
+
const omxConfigPath = join(codexHome(), ".omx-config.json");
|
|
137
|
+
if (!existsSync(omxConfigPath)) {
|
|
138
|
+
_cachedConfig = undefined;
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const fullConfig = JSON.parse(readFileSync(omxConfigPath, "utf-8"));
|
|
142
|
+
const notifications = asRecord(fullConfig.notifications);
|
|
143
|
+
if (!notifications) {
|
|
144
|
+
_cachedConfig = undefined;
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
const explicitOpenClaw = notifications.openclaw;
|
|
148
|
+
const aliasOpenClaw = normalizeFromCustomAliases(notifications);
|
|
149
|
+
if (isValidOpenClawConfig(explicitOpenClaw)) {
|
|
150
|
+
if (aliasOpenClaw) {
|
|
151
|
+
console.warn("[openclaw] warning: notifications.openclaw is set; ignoring custom_cli_command/custom_webhook_command aliases");
|
|
64
152
|
}
|
|
65
|
-
_cachedConfig =
|
|
66
|
-
return
|
|
153
|
+
_cachedConfig = explicitOpenClaw;
|
|
154
|
+
return explicitOpenClaw;
|
|
67
155
|
}
|
|
156
|
+
if (aliasOpenClaw) {
|
|
157
|
+
_cachedConfig = aliasOpenClaw;
|
|
158
|
+
return aliasOpenClaw;
|
|
159
|
+
}
|
|
160
|
+
_cachedConfig = undefined;
|
|
161
|
+
return null;
|
|
68
162
|
}
|
|
69
163
|
catch {
|
|
70
164
|
_cachedConfig = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/openclaw/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/openclaw/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* to avoid blocking hooks.
|
|
7
7
|
*
|
|
8
8
|
* SECURITY: Command gateway requires OMX_OPENCLAW_COMMAND=1 opt-in.
|
|
9
|
-
*
|
|
10
|
-
* simple commands; falls back to sh -c only for shell metacharacters.
|
|
9
|
+
* Command timeout is configurable with safe bounds.
|
|
10
|
+
* Prefers execFile for simple commands; falls back to sh -c only for shell metacharacters.
|
|
11
11
|
*/
|
|
12
12
|
import type { OpenClawCommandGatewayConfig, OpenClawGatewayConfig, OpenClawHttpGatewayConfig, OpenClawPayload, OpenClawResult } from "./types.js";
|
|
13
13
|
/**
|
|
@@ -32,7 +32,7 @@ export declare function validateGatewayUrl(url: string): boolean;
|
|
|
32
32
|
* - {{replyTarget}} - reply target user/bot (from OPENCLAW_REPLY_TARGET env var)
|
|
33
33
|
* - {{replyThread}} - reply thread ID (from OPENCLAW_REPLY_THREAD env var)
|
|
34
34
|
*
|
|
35
|
-
* Unresolved variables are
|
|
35
|
+
* Unresolved variables are replaced with empty string.
|
|
36
36
|
*/
|
|
37
37
|
export declare function interpolateInstruction(template: string, variables: Record<string, string | undefined>): string;
|
|
38
38
|
/**
|
|
@@ -44,6 +44,11 @@ export declare function isCommandGateway(config: OpenClawGatewayConfig): config
|
|
|
44
44
|
* Uses single-quote wrapping with internal quote escaping.
|
|
45
45
|
*/
|
|
46
46
|
export declare function shellEscapeArg(value: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Resolve command gateway timeout with precedence:
|
|
49
|
+
* gateway timeout > OMX_OPENCLAW_COMMAND_TIMEOUT_MS > default.
|
|
50
|
+
*/
|
|
51
|
+
export declare function resolveCommandTimeoutMs(gatewayTimeout?: number, envTimeoutRaw?: string | undefined): number;
|
|
47
52
|
/**
|
|
48
53
|
* Wake an HTTP-type OpenClaw gateway with the given payload.
|
|
49
54
|
*/
|
|
@@ -53,7 +58,8 @@ export declare function wakeGateway(gatewayName: string, gatewayConfig: OpenClaw
|
|
|
53
58
|
*
|
|
54
59
|
* SECURITY REQUIREMENTS:
|
|
55
60
|
* - Requires OMX_OPENCLAW_COMMAND=1 opt-in (separate gate from OMX_OPENCLAW)
|
|
56
|
-
* -
|
|
61
|
+
* - Timeout is configurable via gateway.timeout or OMX_OPENCLAW_COMMAND_TIMEOUT_MS
|
|
62
|
+
* with safe clamping bounds and backward-compatible default 5000ms
|
|
57
63
|
* - Prefers execFile for simple commands (no metacharacters)
|
|
58
64
|
* - Falls back to sh -c only when metacharacters detected
|
|
59
65
|
* - detached: false to prevent orphan processes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/openclaw/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,yBAAyB,EACzB,eAAe,EACf,cAAc,EACf,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/openclaw/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,yBAAyB,EACzB,eAAe,EACf,cAAc,EACf,MAAM,YAAY,CAAC;AAmBpB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAkBvD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC5C,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,qBAAqB,GAC5B,MAAM,IAAI,4BAA4B,CAExC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,GAAE,MAAM,GAAG,SAAuD,GAC9E,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,yBAAyB,EACxC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAyCzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,4BAA4B,EAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC5C,OAAO,CAAC,cAAc,CAAC,CAwGzB"}
|
|
@@ -6,13 +6,20 @@
|
|
|
6
6
|
* to avoid blocking hooks.
|
|
7
7
|
*
|
|
8
8
|
* SECURITY: Command gateway requires OMX_OPENCLAW_COMMAND=1 opt-in.
|
|
9
|
-
*
|
|
10
|
-
* simple commands; falls back to sh -c only for shell metacharacters.
|
|
9
|
+
* Command timeout is configurable with safe bounds.
|
|
10
|
+
* Prefers execFile for simple commands; falls back to sh -c only for shell metacharacters.
|
|
11
11
|
*/
|
|
12
12
|
/** Default per-request timeout for HTTP gateways */
|
|
13
13
|
const DEFAULT_HTTP_TIMEOUT_MS = 10_000;
|
|
14
|
-
/**
|
|
15
|
-
const
|
|
14
|
+
/** Default command gateway timeout (backward-compatible default) */
|
|
15
|
+
const DEFAULT_COMMAND_TIMEOUT_MS = 5_000;
|
|
16
|
+
/**
|
|
17
|
+
* Command timeout safety bounds.
|
|
18
|
+
* - Minimum 100ms: avoids immediate/near-zero timeout misconfiguration.
|
|
19
|
+
* - Maximum 300000ms (5 minutes): prevents runaway long-lived command processes.
|
|
20
|
+
*/
|
|
21
|
+
const MIN_COMMAND_TIMEOUT_MS = 100;
|
|
22
|
+
const MAX_COMMAND_TIMEOUT_MS = 300_000;
|
|
16
23
|
/** Shell metacharacters that require sh -c instead of execFile */
|
|
17
24
|
const SHELL_METACHAR_RE = /[|&;><`$()]/;
|
|
18
25
|
/**
|
|
@@ -55,11 +62,11 @@ export function validateGatewayUrl(url) {
|
|
|
55
62
|
* - {{replyTarget}} - reply target user/bot (from OPENCLAW_REPLY_TARGET env var)
|
|
56
63
|
* - {{replyThread}} - reply thread ID (from OPENCLAW_REPLY_THREAD env var)
|
|
57
64
|
*
|
|
58
|
-
* Unresolved variables are
|
|
65
|
+
* Unresolved variables are replaced with empty string.
|
|
59
66
|
*/
|
|
60
67
|
export function interpolateInstruction(template, variables) {
|
|
61
|
-
return template.replace(/\{\{(\w+)\}\}/g, (
|
|
62
|
-
return variables[key] ??
|
|
68
|
+
return template.replace(/\{\{(\w+)\}\}/g, (_match, key) => {
|
|
69
|
+
return variables[key] ?? "";
|
|
63
70
|
});
|
|
64
71
|
}
|
|
65
72
|
/**
|
|
@@ -75,6 +82,27 @@ export function isCommandGateway(config) {
|
|
|
75
82
|
export function shellEscapeArg(value) {
|
|
76
83
|
return "'" + value.replace(/'/g, "'\\''") + "'";
|
|
77
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Resolve command gateway timeout with precedence:
|
|
87
|
+
* gateway timeout > OMX_OPENCLAW_COMMAND_TIMEOUT_MS > default.
|
|
88
|
+
*/
|
|
89
|
+
export function resolveCommandTimeoutMs(gatewayTimeout, envTimeoutRaw = process.env.OMX_OPENCLAW_COMMAND_TIMEOUT_MS) {
|
|
90
|
+
const parseFinite = (value) => {
|
|
91
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
92
|
+
return undefined;
|
|
93
|
+
return value;
|
|
94
|
+
};
|
|
95
|
+
const parseEnv = (value) => {
|
|
96
|
+
if (!value)
|
|
97
|
+
return undefined;
|
|
98
|
+
const parsed = Number(value);
|
|
99
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
100
|
+
};
|
|
101
|
+
const rawTimeout = parseFinite(gatewayTimeout) ??
|
|
102
|
+
parseEnv(envTimeoutRaw) ??
|
|
103
|
+
DEFAULT_COMMAND_TIMEOUT_MS;
|
|
104
|
+
return Math.min(MAX_COMMAND_TIMEOUT_MS, Math.max(MIN_COMMAND_TIMEOUT_MS, Math.trunc(rawTimeout)));
|
|
105
|
+
}
|
|
78
106
|
/**
|
|
79
107
|
* Wake an HTTP-type OpenClaw gateway with the given payload.
|
|
80
108
|
*/
|
|
@@ -121,7 +149,8 @@ export async function wakeGateway(gatewayName, gatewayConfig, payload) {
|
|
|
121
149
|
*
|
|
122
150
|
* SECURITY REQUIREMENTS:
|
|
123
151
|
* - Requires OMX_OPENCLAW_COMMAND=1 opt-in (separate gate from OMX_OPENCLAW)
|
|
124
|
-
* -
|
|
152
|
+
* - Timeout is configurable via gateway.timeout or OMX_OPENCLAW_COMMAND_TIMEOUT_MS
|
|
153
|
+
* with safe clamping bounds and backward-compatible default 5000ms
|
|
125
154
|
* - Prefers execFile for simple commands (no metacharacters)
|
|
126
155
|
* - Falls back to sh -c only when metacharacters detected
|
|
127
156
|
* - detached: false to prevent orphan processes
|
|
@@ -143,6 +172,7 @@ export async function wakeCommandGateway(gatewayName, gatewayConfig, variables)
|
|
|
143
172
|
let sigtermHandler = null;
|
|
144
173
|
try {
|
|
145
174
|
const { execFile, exec } = await import("child_process");
|
|
175
|
+
const timeout = resolveCommandTimeoutMs(gatewayConfig.timeout);
|
|
146
176
|
// Interpolate variables with shell escaping
|
|
147
177
|
const interpolated = gatewayConfig.command.replace(/\{\{(\w+)\}\}/g, (match, key) => {
|
|
148
178
|
const value = variables[key];
|
|
@@ -194,7 +224,7 @@ export async function wakeCommandGateway(gatewayName, gatewayConfig, variables)
|
|
|
194
224
|
if (hasMetachars) {
|
|
195
225
|
// Fall back to sh -c for complex commands with metacharacters
|
|
196
226
|
child = exec(interpolated, {
|
|
197
|
-
timeout
|
|
227
|
+
timeout,
|
|
198
228
|
env: { ...process.env },
|
|
199
229
|
});
|
|
200
230
|
}
|
|
@@ -204,7 +234,7 @@ export async function wakeCommandGateway(gatewayName, gatewayConfig, variables)
|
|
|
204
234
|
const cmd = parts[0];
|
|
205
235
|
const args = parts.slice(1);
|
|
206
236
|
child = execFile(cmd, args, {
|
|
207
|
-
timeout
|
|
237
|
+
timeout,
|
|
208
238
|
env: { ...process.env },
|
|
209
239
|
});
|
|
210
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/openclaw/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,oDAAoD;AACpD,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/openclaw/dispatcher.ts"],"names":[],"mappings":"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"}
|
package/dist/openclaw/types.d.ts
CHANGED
|
@@ -30,7 +30,11 @@ export interface OpenClawCommandGatewayConfig {
|
|
|
30
30
|
/** Command template with {{variable}} placeholders.
|
|
31
31
|
* Variables are shell-escaped automatically before interpolation. */
|
|
32
32
|
command: string;
|
|
33
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Per-command timeout in ms.
|
|
35
|
+
* Precedence: gateway timeout > OMX_OPENCLAW_COMMAND_TIMEOUT_MS > default (5000ms).
|
|
36
|
+
* Runtime clamps to safe bounds.
|
|
37
|
+
*/
|
|
34
38
|
timeout?: number;
|
|
35
39
|
}
|
|
36
40
|
/** Gateway configuration — HTTP or CLI command */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/openclaw/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,aAAa,GACb,cAAc,GACd,mBAAmB,GACnB,MAAM,CAAC;AAEX,yEAAyE;AACzE,MAAM,WAAW,yBAAyB;IACxC,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,WAAW,4BAA4B;IAC3C,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB;0EACsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/openclaw/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-interop.test.d.ts","sourceRoot":"","sources":["../../../src/team/__tests__/api-interop.test.ts"],"names":[],"mappings":""}
|