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.
Files changed (169) hide show
  1. package/README.de.md +7 -2
  2. package/README.es.md +7 -2
  3. package/README.fr.md +7 -2
  4. package/README.it.md +7 -2
  5. package/README.ja.md +7 -2
  6. package/README.ko.md +7 -2
  7. package/README.md +61 -11
  8. package/README.pt.md +7 -2
  9. package/README.ru.md +7 -2
  10. package/README.tr.md +7 -2
  11. package/README.vi.md +7 -2
  12. package/README.zh-TW.md +366 -0
  13. package/README.zh.md +7 -2
  14. package/dist/cli/__tests__/index.test.js +70 -4
  15. package/dist/cli/__tests__/index.test.js.map +1 -1
  16. package/dist/cli/__tests__/setup-skills-overwrite.test.js +100 -1
  17. package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
  18. package/dist/cli/__tests__/team.test.js +219 -1
  19. package/dist/cli/__tests__/team.test.js.map +1 -1
  20. package/dist/cli/catalog-contract.d.ts.map +1 -1
  21. package/dist/cli/catalog-contract.js +8 -2
  22. package/dist/cli/catalog-contract.js.map +1 -1
  23. package/dist/cli/index.d.ts +7 -1
  24. package/dist/cli/index.d.ts.map +1 -1
  25. package/dist/cli/index.js +58 -12
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/setup.d.ts.map +1 -1
  28. package/dist/cli/setup.js +50 -17
  29. package/dist/cli/setup.js.map +1 -1
  30. package/dist/cli/team.d.ts.map +1 -1
  31. package/dist/cli/team.js +257 -0
  32. package/dist/cli/team.js.map +1 -1
  33. package/dist/config/__tests__/models.test.js +11 -11
  34. package/dist/config/__tests__/models.test.js.map +1 -1
  35. package/dist/config/models.d.ts +4 -3
  36. package/dist/config/models.d.ts.map +1 -1
  37. package/dist/config/models.js +6 -5
  38. package/dist/config/models.js.map +1 -1
  39. package/dist/hooks/__tests__/keyword-detector.test.js +46 -3
  40. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  41. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +23 -7
  42. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
  43. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +176 -1
  44. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  45. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +61 -1
  46. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  47. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +17 -7
  48. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
  49. package/dist/hooks/__tests__/openclaw-setup-contract.test.js +26 -16
  50. package/dist/hooks/__tests__/openclaw-setup-contract.test.js.map +1 -1
  51. package/dist/hooks/keyword-detector.d.ts +2 -1
  52. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  53. package/dist/hooks/keyword-detector.js +41 -4
  54. package/dist/hooks/keyword-detector.js.map +1 -1
  55. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  56. package/dist/hooks/keyword-registry.js +5 -0
  57. package/dist/hooks/keyword-registry.js.map +1 -1
  58. package/dist/mcp/__tests__/path-traversal.test.js +9 -227
  59. package/dist/mcp/__tests__/path-traversal.test.js.map +1 -1
  60. package/dist/mcp/__tests__/state-server-schema.test.js +16 -20
  61. package/dist/mcp/__tests__/state-server-schema.test.js.map +1 -1
  62. package/dist/mcp/__tests__/state-server-team-tools.test.js +30 -487
  63. package/dist/mcp/__tests__/state-server-team-tools.test.js.map +1 -1
  64. package/dist/mcp/state-server.d.ts +179 -0
  65. package/dist/mcp/state-server.d.ts.map +1 -1
  66. package/dist/mcp/state-server.js +217 -1111
  67. package/dist/mcp/state-server.js.map +1 -1
  68. package/dist/mcp/team-server.d.ts.map +1 -1
  69. package/dist/mcp/team-server.js +28 -7
  70. package/dist/mcp/team-server.js.map +1 -1
  71. package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts +5 -0
  72. package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts.map +1 -0
  73. package/dist/notifications/__tests__/dispatch-cooldown.test.js +100 -0
  74. package/dist/notifications/__tests__/dispatch-cooldown.test.js.map +1 -0
  75. package/dist/notifications/__tests__/temp-mode.test.d.ts +2 -0
  76. package/dist/notifications/__tests__/temp-mode.test.d.ts.map +1 -0
  77. package/dist/notifications/__tests__/temp-mode.test.js +172 -0
  78. package/dist/notifications/__tests__/temp-mode.test.js.map +1 -0
  79. package/dist/notifications/config.d.ts.map +1 -1
  80. package/dist/notifications/config.js +59 -6
  81. package/dist/notifications/config.js.map +1 -1
  82. package/dist/notifications/dispatch-cooldown.d.ts +36 -0
  83. package/dist/notifications/dispatch-cooldown.d.ts.map +1 -0
  84. package/dist/notifications/dispatch-cooldown.js +109 -0
  85. package/dist/notifications/dispatch-cooldown.js.map +1 -0
  86. package/dist/notifications/index.d.ts +5 -0
  87. package/dist/notifications/index.d.ts.map +1 -1
  88. package/dist/notifications/index.js +39 -8
  89. package/dist/notifications/index.js.map +1 -1
  90. package/dist/notifications/temp-contract.d.ts +22 -0
  91. package/dist/notifications/temp-contract.d.ts.map +1 -0
  92. package/dist/notifications/temp-contract.js +147 -0
  93. package/dist/notifications/temp-contract.js.map +1 -0
  94. package/dist/notifications/types.d.ts +18 -0
  95. package/dist/notifications/types.d.ts.map +1 -1
  96. package/dist/openclaw/__tests__/config.test.js +81 -0
  97. package/dist/openclaw/__tests__/config.test.js.map +1 -1
  98. package/dist/openclaw/__tests__/dispatcher.test.js +50 -7
  99. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
  100. package/dist/openclaw/config.d.ts +4 -0
  101. package/dist/openclaw/config.d.ts.map +1 -1
  102. package/dist/openclaw/config.js +110 -16
  103. package/dist/openclaw/config.js.map +1 -1
  104. package/dist/openclaw/dispatcher.d.ts +10 -4
  105. package/dist/openclaw/dispatcher.d.ts.map +1 -1
  106. package/dist/openclaw/dispatcher.js +40 -10
  107. package/dist/openclaw/dispatcher.js.map +1 -1
  108. package/dist/openclaw/types.d.ts +5 -1
  109. package/dist/openclaw/types.d.ts.map +1 -1
  110. package/dist/team/__tests__/api-interop.test.d.ts +2 -0
  111. package/dist/team/__tests__/api-interop.test.d.ts.map +1 -0
  112. package/dist/team/__tests__/api-interop.test.js +1052 -0
  113. package/dist/team/__tests__/api-interop.test.js.map +1 -0
  114. package/dist/team/__tests__/mcp-comm.test.js +30 -0
  115. package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
  116. package/dist/team/__tests__/runtime-cli.test.js +6 -0
  117. package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
  118. package/dist/team/__tests__/runtime.test.js +52 -22
  119. package/dist/team/__tests__/runtime.test.js.map +1 -1
  120. package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts +2 -0
  121. package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts.map +1 -0
  122. package/dist/team/__tests__/tmux-claude-workers-demo.test.js +190 -0
  123. package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +1 -0
  124. package/dist/team/__tests__/tmux-session.test.js +45 -2
  125. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  126. package/dist/team/__tests__/worker-bootstrap.test.js +20 -12
  127. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  128. package/dist/team/api-interop.d.ts +19 -0
  129. package/dist/team/api-interop.d.ts.map +1 -0
  130. package/dist/team/api-interop.js +578 -0
  131. package/dist/team/api-interop.js.map +1 -0
  132. package/dist/team/mcp-comm.d.ts.map +1 -1
  133. package/dist/team/mcp-comm.js +26 -0
  134. package/dist/team/mcp-comm.js.map +1 -1
  135. package/dist/team/runtime-cli.d.ts +3 -0
  136. package/dist/team/runtime-cli.d.ts.map +1 -1
  137. package/dist/team/runtime-cli.js +24 -2
  138. package/dist/team/runtime-cli.js.map +1 -1
  139. package/dist/team/runtime.d.ts.map +1 -1
  140. package/dist/team/runtime.js +67 -11
  141. package/dist/team/runtime.js.map +1 -1
  142. package/dist/team/scaling.js.map +1 -1
  143. package/dist/team/state/types.d.ts +1 -1
  144. package/dist/team/state/types.d.ts.map +1 -1
  145. package/dist/team/state.d.ts +1 -1
  146. package/dist/team/state.d.ts.map +1 -1
  147. package/dist/team/tmux-session.d.ts +1 -1
  148. package/dist/team/tmux-session.d.ts.map +1 -1
  149. package/dist/team/tmux-session.js +17 -5
  150. package/dist/team/tmux-session.js.map +1 -1
  151. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  152. package/dist/team/worker-bootstrap.js +48 -19
  153. package/dist/team/worker-bootstrap.js.map +1 -1
  154. package/package.json +1 -1
  155. package/scripts/demo-claude-workers.sh +241 -0
  156. package/scripts/demo-team-e2e.sh +179 -0
  157. package/scripts/notify-hook/team-dispatch.js +186 -12
  158. package/scripts/notify-hook/team-leader-nudge.js +42 -2
  159. package/scripts/notify-hook/team-worker.js +63 -4
  160. package/skills/configure-notifications/SKILL.md +193 -185
  161. package/skills/omx-setup/SKILL.md +1 -1
  162. package/skills/team/SKILL.md +47 -5
  163. package/skills/worker/SKILL.md +40 -10
  164. package/templates/AGENTS.md +7 -3
  165. package/templates/catalog-manifest.json +26 -3
  166. package/skills/configure-discord/SKILL.md +0 -256
  167. package/skills/configure-openclaw/SKILL.md +0 -264
  168. package/skills/configure-slack/SKILL.md +0 -226
  169. package/skills/configure-telegram/SKILL.md +0 -232
@@ -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.enabled || !raw.gateways || !raw.hooks) {
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
- else {
52
- // Primary: read from notifications.openclaw key in .omx-config.json
53
- const omxConfigPath = join(codexHome(), ".omx-config.json");
54
- if (!existsSync(omxConfigPath)) {
55
- _cachedConfig = undefined;
56
- return null;
57
- }
58
- const fullConfig = JSON.parse(readFileSync(omxConfigPath, "utf-8"));
59
- const notifBlock = fullConfig.notifications;
60
- const raw = notifBlock?.openclaw;
61
- if (!raw || !raw.enabled || !raw.gateways || !raw.hooks) {
62
- _cachedConfig = undefined;
63
- return null;
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 = raw;
66
- return raw;
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":"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"}
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
- * Hard 5-second timeout (non-configurable). Prefers execFile for
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 left as-is (not replaced with empty string).
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
- * - Hard 5-second timeout (non-configurable)
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;AAWpB;;;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;;GAEG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,yBAAyB,EACxC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAyCzB;AAED;;;;;;;;;;;;;GAaG;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,CAuGzB"}
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
- * Hard 5-second timeout (non-configurable). Prefers execFile for
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
- /** Hard non-configurable timeout for command gateways */
15
- const COMMAND_TIMEOUT_MS = 5_000;
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 left as-is (not replaced with empty string).
65
+ * Unresolved variables are replaced with empty string.
59
66
  */
60
67
  export function interpolateInstruction(template, variables) {
61
- return template.replace(/\{\{(\w+)\}\}/g, (match, key) => {
62
- return variables[key] ?? match;
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
- * - Hard 5-second timeout (non-configurable)
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: COMMAND_TIMEOUT_MS,
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: COMMAND_TIMEOUT_MS,
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":"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"}
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/openclaw/dispatcher.ts"],"names":[],"mappings":"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"}
@@ -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
- /** Per-command timeout in ms (non-configurable hard limit: 5000ms for security) */
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":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/openclaw/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api-interop.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-interop.test.d.ts","sourceRoot":"","sources":["../../../src/team/__tests__/api-interop.test.ts"],"names":[],"mappings":""}