openclaw-code-agent 4.1.0 → 4.1.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.
@@ -2,7 +2,26 @@
2
2
  "id": "openclaw-code-agent",
3
3
  "name": "OpenClaw Code Agent",
4
4
  "description": "Multi-session coding-agent orchestration from OpenClaw chat",
5
- "version": "4.1.0",
5
+ "version": "4.1.2",
6
+ "contracts": {
7
+ "tools": [
8
+ "agent_launch",
9
+ "agent_sessions",
10
+ "agent_kill",
11
+ "agent_output",
12
+ "agent_respond",
13
+ "agent_request_plan_approval",
14
+ "agent_send_monitor_report",
15
+ "agent_stats",
16
+ "agent_merge",
17
+ "agent_pr",
18
+ "agent_worktree_cleanup",
19
+ "agent_worktree_status",
20
+ "goal_launch",
21
+ "goal_status",
22
+ "goal_stop"
23
+ ]
24
+ },
6
25
  "activation": {
7
26
  "onStartup": true,
8
27
  "onCommands": [
@@ -68,9 +87,11 @@
68
87
  "enum": [
69
88
  "low",
70
89
  "medium",
71
- "high"
90
+ "high",
91
+ "xhigh",
92
+ "max"
72
93
  ],
73
- "description": "Harness-specific reasoning effort. Currently used by Codex."
94
+ "description": "Harness-specific reasoning effort. Used by Codex and passed to Claude Code when configured."
74
95
  }
75
96
  }
76
97
  }
@@ -88,13 +109,15 @@
88
109
  "enum": [
89
110
  "low",
90
111
  "medium",
91
- "high"
112
+ "high",
113
+ "xhigh",
114
+ "max"
92
115
  ],
93
116
  "description": "Deprecated legacy Codex reasoning effort. Use harnesses.codex.reasoningEffort instead."
94
117
  },
95
118
  "defaultWorkdir": {
96
119
  "type": "string",
97
- "description": "Default working directory for new sessions"
120
+ "description": "Default working directory for new sessions. Because the default worktree strategy is 'delegate', this should normally be a git repository root unless defaultWorktreeStrategy is changed to 'off'."
98
121
  },
99
122
  "idleTimeoutMinutes": {
100
123
  "type": "number",
@@ -139,13 +162,13 @@
139
162
  },
140
163
  "planApproval": {
141
164
  "type": "string",
142
- "default": "ask",
165
+ "default": "delegate",
143
166
  "enum": [
144
167
  "approve",
145
168
  "ask",
146
169
  "delegate"
147
170
  ],
148
- "description": "Plan approval behavior. 'ask' (default): orchestrator always forwards plans to the user for approval. 'delegate': orchestrator autonomously decides whether to approve low-risk plans or escalate to the user. 'approve': orchestrator can auto-approve after verification."
171
+ "description": "Plan approval behavior. 'delegate' (default): orchestrator must review the full plan, then approve low-risk plans or escalate to the user. 'ask': always forwards plans to the user for approval. 'approve': orchestrator can auto-approve after verification."
149
172
  },
150
173
  "defaultHarness": {
151
174
  "type": "string",
@@ -155,9 +178,9 @@
155
178
  },
156
179
  "defaultWorktreeStrategy": {
157
180
  "type": "string",
158
- "default": "off",
181
+ "default": "delegate",
159
182
  "enum": ["off", "manual", "ask", "delegate", "auto-merge", "auto-pr"],
160
- "description": "Default worktree strategy for all new sessions when agent_launch omits worktree_strategy. 'off' (default) = no worktree. 'manual' = create worktree, no automatic action. 'ask' = push branch and notify the user with inline buttons (Merge locally / Create PR). 'delegate' = push branch and wake the orchestrator to decide autonomously. 'auto-merge' = auto-merge to base branch on completion. 'auto-pr' = auto-create or update a GitHub PR on completion."
183
+ "description": "Default worktree strategy for all new sessions when agent_launch omits worktree_strategy. 'delegate' (default) creates an isolated worktree and wakes the orchestrator to decide follow-through autonomously. 'off' = no worktree. 'manual' = create worktree, no automatic action. 'ask' = push branch and notify the user with inline buttons (Merge locally / Create PR). 'auto-merge' = auto-merge to base branch on completion. 'auto-pr' = auto-create or update a GitHub PR on completion."
161
184
  },
162
185
  "worktreeDir": {
163
186
  "type": "string",
@@ -186,7 +209,7 @@
186
209
  },
187
210
  "defaultWorkdir": {
188
211
  "label": "Default working directory",
189
- "help": "Base directory used for new sessions when agent_launch does not provide a workdir.",
212
+ "help": "Base directory used for new sessions when agent_launch does not provide a workdir. With the default delegated worktree strategy, choose a git repository root; use the advanced worktree strategy setting to disable worktrees for non-git directories.",
190
213
  "placeholder": "/home/user/project"
191
214
  },
192
215
  "harnesses": {
@@ -216,12 +239,12 @@
216
239
  },
217
240
  "planApproval": {
218
241
  "label": "Plan approval policy",
219
- "help": "Choose whether plans are always sent to the user with Approve/Revise/Reject buttons (`ask`, default), delegated to the orchestrator for full-plan review first, or auto-approved.",
242
+ "help": "Choose whether plans are delegated to the orchestrator for full-plan review first (`delegate`, default), always sent to the user with Approve/Revise/Reject buttons, or auto-approved.",
220
243
  "advanced": true
221
244
  },
222
245
  "defaultWorktreeStrategy": {
223
246
  "label": "Default worktree strategy",
224
- "help": "Applies to all sessions that don't specify worktree_strategy explicitly. 'off' (default) disables worktrees globally. 'ask' creates a worktree and sends inline Merge locally / Create PR buttons on completion. 'delegate' wakes the orchestrator to decide autonomously. 'auto-merge' and 'auto-pr' are fully automated.",
247
+ "help": "Applies to all sessions that don't specify worktree_strategy explicitly. 'delegate' (default) creates a worktree and wakes the orchestrator to decide follow-through. 'off' disables worktrees globally. 'ask' sends inline Merge locally / Create PR buttons on completion. 'auto-merge' and 'auto-pr' are fully automated.",
225
248
  "advanced": true
226
249
  }
227
250
  },
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "openclaw-code-agent",
3
- "version": "4.1.0",
3
+ "version": "4.1.2",
4
4
  "type": "module",
5
5
  "packageManager": "pnpm@10.30.0",
6
6
  "main": "dist/index.js",
7
7
  "scripts": {
8
8
  "audit:prod": "pnpm audit --prod",
9
- "build": "esbuild index.ts --bundle --platform=node --target=node22 --format=esm --outfile=dist/index.js --minify --external:openclaw --external:openclaw/plugin-sdk --external:openclaw/plugin-sdk/* --external:@anthropic-ai/claude-agent-sdk",
9
+ "build": "esbuild index.ts --bundle --platform=node --target=node22 --format=esm --outfile=dist/index.js --minify --external:@anthropic-ai/claude-agent-sdk",
10
10
  "check-plugin-security": "node scripts/check-plugin-security.mjs",
11
11
  "test": "node scripts/run-tests.mjs",
12
12
  "test:serial": "node scripts/run-tests.mjs",
@@ -29,8 +29,8 @@
29
29
  "minGatewayVersion": "2026.4.21"
30
30
  },
31
31
  "build": {
32
- "openclawVersion": "2026.4.29",
33
- "pluginSdkVersion": "2026.4.29"
32
+ "openclawVersion": "2026.5.4",
33
+ "pluginSdkVersion": "2026.5.4"
34
34
  }
35
35
  },
36
36
  "files": [
@@ -49,7 +49,7 @@
49
49
  "@types/node": "^25.5.2",
50
50
  "esbuild": "^0.28.0",
51
51
  "nanoid": "^5.1.7",
52
- "openclaw": "2026.4.29",
52
+ "openclaw": "2026.5.4",
53
53
  "tsx": "^4.21.0",
54
54
  "typescript": "^6.0.2"
55
55
  },
@@ -87,7 +87,8 @@
87
87
  "openclaw": ">=2026.4.21"
88
88
  },
89
89
  "overrides": {
90
- "basic-ftp": "5.3.0"
90
+ "basic-ftp": "5.3.0",
91
+ "ip-address@<10.1.1": "10.1.1"
91
92
  },
92
93
  "pnpm": {
93
94
  "onlyBuiltDependencies": [
@@ -106,7 +107,9 @@
106
107
  "brace-expansion@>=4.0.0 <5.0.5": ">=5.0.5",
107
108
  "path-to-regexp@>=8.0.0 <8.4.0": ">=8.4.0",
108
109
  "fast-xml-parser@>=5.0.0 <5.7.0": ">=5.7.0",
109
- "@anthropic-ai/sdk@<0.91.1": "0.91.1"
110
+ "@anthropic-ai/sdk@<0.91.1": "0.91.1",
111
+ "@anthropic-ai/vertex-sdk>google-auth-library": "10.6.2",
112
+ "ip-address@<10.1.1": "10.1.1"
110
113
  }
111
114
  }
112
115
  }
@@ -25,7 +25,7 @@ Use `openclaw-code-agent` to run Claude Code or Codex sessions as background cod
25
25
  - Set `workdir` to the target repo.
26
26
  - Use `permission_mode: "plan"` when the user wants a real review gate before implementation.
27
27
  - Use `permission_mode: "bypassPermissions"` only for autonomous execution.
28
- - `defaultWorktreeStrategy` now defaults to `off`. Opt into a worktree strategy explicitly when you want branch isolation.
28
+ - `defaultWorktreeStrategy` defaults to `delegate`, so new sessions normally use branch isolation and orchestrator-led follow-through. Use `worktree_strategy: "off"` only when the task must run in the main checkout or outside a git repo.
29
29
  - In `plan` mode, the plan belongs in normal session output. Do not ask the coding agent to write plan docs or transcript artifacts unless the user explicitly asked for a file.
30
30
 
31
31
  Example:
@@ -126,7 +126,9 @@ Use `permission_mode: "plan"` whenever the user wants a real planning checkpoint
126
126
 
127
127
  - Approval belongs to the user.
128
128
  - The plugin sends the canonical Approve / Revise / Reject prompt directly to the user.
129
+ - Telegram and Discord buttons use the shared direct-message presentation path; if buttons are missing, plain-text `Approve`, `Revise`, or `Reject` in the same thread drives the same decision path.
129
130
  - If the user requests changes, wait for the revised plan from that same session; the revised submission becomes the latest actionable review version automatically.
131
+ - If the user rejects the plan or the session is killed, treat older plan prompts as stale and verify state with `agent_sessions` before acting.
130
132
  - Wait for the user's answer, then forward it with `agent_respond(...)`.
131
133
  - Do not send a duplicate approval recap or second approval prompt.
132
134