@openclaw/codex 2026.6.8 → 2026.6.9
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/{notification-correlation-BGoG0N90.js → app-server-policy-BPTiVNsW.js} +15 -74
- package/dist/attempt-notifications-7oZeRa71.js +249 -0
- package/dist/{client-DovmVtbr.js → client-CLrtWgrD.js} +24 -2
- package/dist/{client-factory-C71Xdb6z.js → client-factory-Bm6HsGob.js} +3 -2
- package/dist/{command-handlers-DHecBkuc.js → command-handlers-BaqM9s9b.js} +17 -13
- package/dist/{compact-GEKusemL.js → compact-aQJ0ZKhe.js} +5 -5
- package/dist/{computer-use-D1qxvTE_.js → computer-use-BmuwYrW6.js} +3 -3
- package/dist/{config-DJXpBkGf.js → config-CszD0vP3.js} +176 -25
- package/dist/{conversation-binding-CbnMilVW.js → conversation-binding-DbG2ZJQY.js} +166 -58
- package/dist/doctor-contract-api.js +37 -3
- package/dist/harness.js +6 -6
- package/dist/index.js +108 -27
- package/dist/media-understanding-provider-Dmfg4tH_.js +463 -0
- package/dist/media-understanding-provider.js +1 -355
- package/dist/{models-DRKnOpzF.js → models-CAmfBWRl.js} +2 -2
- package/dist/{plugin-app-cache-key-kIqpGTQj.js → plugin-app-cache-key-vaZ_8Usz.js} +17 -6
- package/dist/prompt-overlay.js +2 -6
- package/dist/{protocol-oeJQu4rs.js → protocol-dh-ETiNd.js} +4 -1
- package/dist/{protocol-validators-B48C6S9O.js → protocol-validators-B19q5BIX.js} +210 -16
- package/dist/{provider-C5P6352f.js → provider-B-OHpbD3.js} +4 -4
- package/dist/{native-hook-relay-C3i3FYtc.js → provider-capabilities-ByR82ytL.js} +803 -78
- package/dist/provider.js +1 -1
- package/dist/{request-BxZ40QKY.js → request-Dcd452Nk.js} +2 -2
- package/dist/{run-attempt-D_q-VrpR.js → run-attempt-DYt00Jxz.js} +519 -789
- package/dist/{sandbox-guard-C-Yv9uwY.js → sandbox-guard-3tnjhjFb.js} +37 -10
- package/dist/{session-binding-ElbcSq2o.js → session-binding-HOuPt-E0.js} +27 -8
- package/dist/{shared-client-jFMumCOe.js → shared-client-Dtx5i7Ez.js} +4 -4
- package/dist/{side-question-DqKLfWMB.js → side-question-h01W1aCe.js} +106 -42
- package/dist/{thread-lifecycle-cban34w3.js → thread-lifecycle-DQyii5vp.js} +948 -616
- package/dist/web-search-contract-api.js +10 -0
- package/dist/web-search-provider.runtime-BWG_oqLf.js +74 -0
- package/dist/web-search-provider.shared-BrZmlqyR.js +32 -0
- package/npm-shrinkwrap.json +2 -2
- package/openclaw.plugin.json +140 -6
- package/package.json +4 -4
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { t as createCodexWebSearchProviderBase } from "./web-search-provider.shared-BrZmlqyR.js";
|
|
2
|
+
//#region extensions/codex/web-search-contract-api.ts
|
|
3
|
+
function createCodexWebSearchProvider() {
|
|
4
|
+
return {
|
|
5
|
+
...createCodexWebSearchProviderBase(),
|
|
6
|
+
createTool: () => null
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { createCodexWebSearchProvider };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { n as isJsonObject } from "./protocol-dh-ETiNd.js";
|
|
2
|
+
import { g as buildCodexNativeWebSearchThreadConfig } from "./thread-lifecycle-DQyii5vp.js";
|
|
3
|
+
import { n as runBoundedCodexAppServerTurn } from "./media-understanding-provider-Dmfg4tH_.js";
|
|
4
|
+
import { readStringParam, resolveSearchTimeoutSeconds, wrapWebContent } from "openclaw/plugin-sdk/provider-web-search";
|
|
5
|
+
//#region extensions/codex/src/web-search-provider.runtime.ts
|
|
6
|
+
async function executeCodexWebSearchProviderTool(ctx, args, executionContext, options) {
|
|
7
|
+
const query = readStringParam(args, "query", { required: true });
|
|
8
|
+
const start = Date.now();
|
|
9
|
+
const result = await runBoundedCodexAppServerTurn({
|
|
10
|
+
config: ctx.config,
|
|
11
|
+
model: { mode: "live-default" },
|
|
12
|
+
timeoutMs: resolveSearchTimeoutSeconds(ctx.searchConfig) * 1e3,
|
|
13
|
+
signal: executionContext?.signal,
|
|
14
|
+
agentDir: ctx.agentDir,
|
|
15
|
+
options,
|
|
16
|
+
taskLabel: "hosted search",
|
|
17
|
+
developerInstructions: "You are OpenClaw's bounded web-search worker. You must use Codex hosted web_search to answer the user's search query. Return a concise grounded answer with source URLs. Do not call other tools, edit files, or ask follow-up questions.",
|
|
18
|
+
input: [{
|
|
19
|
+
type: "text",
|
|
20
|
+
text: query,
|
|
21
|
+
text_elements: []
|
|
22
|
+
}],
|
|
23
|
+
requiredModalities: ["text"],
|
|
24
|
+
isolation: "private-stdio",
|
|
25
|
+
threadConfig: buildCodexNativeWebSearchThreadConfig(ctx.config)
|
|
26
|
+
});
|
|
27
|
+
const searches = result.items.filter((item) => item.type === "webSearch").map(summarizeCodexWebSearchItem);
|
|
28
|
+
if (searches.length === 0) throw new Error("Codex hosted search completed without invoking web search.");
|
|
29
|
+
return {
|
|
30
|
+
query,
|
|
31
|
+
provider: "codex",
|
|
32
|
+
model: result.model,
|
|
33
|
+
tookMs: Date.now() - start,
|
|
34
|
+
externalContent: {
|
|
35
|
+
untrusted: true,
|
|
36
|
+
source: "web_search",
|
|
37
|
+
provider: "codex",
|
|
38
|
+
wrapped: true
|
|
39
|
+
},
|
|
40
|
+
content: wrapWebContent(result.text, "web_search"),
|
|
41
|
+
searches
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function summarizeCodexWebSearchItem(item) {
|
|
45
|
+
const action = isJsonObject(item.action) ? item.action : void 0;
|
|
46
|
+
const actionType = readNonEmptyString(action, "type");
|
|
47
|
+
const queries = actionType === "search" ? readNonEmptyStringArray(action, "queries") : [];
|
|
48
|
+
const query = normalizeNonEmptyString(item.query) ?? (actionType === "search" ? readNonEmptyString(action, "query") : void 0) ?? queries[0];
|
|
49
|
+
const url = readNonEmptyString(action, "url");
|
|
50
|
+
const pattern = readNonEmptyString(action, "pattern");
|
|
51
|
+
return {
|
|
52
|
+
...query ? { query } : {},
|
|
53
|
+
...queries.length > 0 ? { queries } : {},
|
|
54
|
+
...actionType && actionType !== "search" ? { action: actionType } : {},
|
|
55
|
+
...url ? { url } : {},
|
|
56
|
+
...pattern ? { pattern } : {}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function readNonEmptyString(record, key) {
|
|
60
|
+
return record ? normalizeNonEmptyString(record[key]) : void 0;
|
|
61
|
+
}
|
|
62
|
+
function readNonEmptyStringArray(record, key) {
|
|
63
|
+
const value = record?.[key];
|
|
64
|
+
if (!Array.isArray(value)) return [];
|
|
65
|
+
return value.flatMap((entry) => {
|
|
66
|
+
const normalized = normalizeNonEmptyString(entry);
|
|
67
|
+
return normalized ? [normalized] : [];
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function normalizeNonEmptyString(value) {
|
|
71
|
+
return typeof value === "string" ? value.trim() || void 0 : void 0;
|
|
72
|
+
}
|
|
73
|
+
//#endregion
|
|
74
|
+
export { executeCodexWebSearchProviderTool };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createWebSearchProviderContractFields } from "openclaw/plugin-sdk/provider-web-search-contract";
|
|
2
|
+
//#region extensions/codex/src/web-search-provider.shared.ts
|
|
3
|
+
function createCodexWebSearchProviderBase() {
|
|
4
|
+
return {
|
|
5
|
+
id: "codex",
|
|
6
|
+
label: "Codex Hosted Search",
|
|
7
|
+
hint: "Grounded answers through your Codex app-server account",
|
|
8
|
+
onboardingScopes: ["text-inference"],
|
|
9
|
+
requiresCredential: false,
|
|
10
|
+
envVars: [],
|
|
11
|
+
placeholder: "(uses Codex sign-in)",
|
|
12
|
+
signupUrl: "https://chatgpt.com/codex",
|
|
13
|
+
docsUrl: "https://docs.openclaw.ai/tools/web",
|
|
14
|
+
autoDetectOrder: 900,
|
|
15
|
+
credentialPath: "",
|
|
16
|
+
...createWebSearchProviderContractFields({
|
|
17
|
+
credentialPath: "",
|
|
18
|
+
searchCredential: { type: "none" },
|
|
19
|
+
selectionPluginId: "codex"
|
|
20
|
+
}),
|
|
21
|
+
runSetup: async (ctx) => {
|
|
22
|
+
await ctx.prompter.note([
|
|
23
|
+
"Codex Hosted Search uses the bundled Codex app-server and your Codex/OpenAI sign-in.",
|
|
24
|
+
"If needed, sign in with: openclaw models auth login --provider openai",
|
|
25
|
+
"Verify the app-server account with /codex status."
|
|
26
|
+
].join("\n"), "Codex Hosted Search");
|
|
27
|
+
return ctx.config;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { createCodexWebSearchProviderBase as t };
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/codex",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.9",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@openclaw/codex",
|
|
9
|
-
"version": "2026.6.
|
|
9
|
+
"version": "2026.6.9",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@openai/codex": "0.139.0",
|
|
12
12
|
"typebox": "1.1.39",
|
package/openclaw.plugin.json
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
"providers": ["codex"],
|
|
6
6
|
"contracts": {
|
|
7
7
|
"mediaUnderstandingProviders": ["codex"],
|
|
8
|
-
"migrationProviders": ["codex"]
|
|
8
|
+
"migrationProviders": ["codex"],
|
|
9
|
+
"webSearchProviders": ["codex"]
|
|
9
10
|
},
|
|
10
11
|
"mediaUnderstandingProviderMetadata": {
|
|
11
12
|
"codex": {
|
|
@@ -100,7 +101,7 @@
|
|
|
100
101
|
"default": false
|
|
101
102
|
},
|
|
102
103
|
"allow_destructive_actions": {
|
|
103
|
-
"type": "boolean",
|
|
104
|
+
"oneOf": [{ "type": "boolean" }, { "const": "auto" }],
|
|
104
105
|
"default": true
|
|
105
106
|
},
|
|
106
107
|
"plugins": {
|
|
@@ -120,7 +121,7 @@
|
|
|
120
121
|
"type": "string"
|
|
121
122
|
},
|
|
122
123
|
"allow_destructive_actions": {
|
|
123
|
-
"type": "boolean"
|
|
124
|
+
"oneOf": [{ "type": "boolean" }, { "const": "auto" }]
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
}
|
|
@@ -151,15 +152,18 @@
|
|
|
151
152
|
]
|
|
152
153
|
},
|
|
153
154
|
"url": { "type": "string" },
|
|
154
|
-
"authToken": { "type": "string" },
|
|
155
|
+
"authToken": { "type": ["string", "object"] },
|
|
155
156
|
"headers": {
|
|
156
157
|
"type": "object",
|
|
157
|
-
"additionalProperties": { "type": "string" }
|
|
158
|
+
"additionalProperties": { "type": ["string", "object"] }
|
|
158
159
|
},
|
|
159
160
|
"clearEnv": {
|
|
160
161
|
"type": "array",
|
|
161
162
|
"items": { "type": "string" }
|
|
162
163
|
},
|
|
164
|
+
"remoteWorkspaceRoot": {
|
|
165
|
+
"type": "string"
|
|
166
|
+
},
|
|
163
167
|
"codeModeOnly": {
|
|
164
168
|
"type": "boolean",
|
|
165
169
|
"default": false
|
|
@@ -192,6 +196,47 @@
|
|
|
192
196
|
"enum": ["user", "auto_review", "guardian_subagent"]
|
|
193
197
|
},
|
|
194
198
|
"serviceTier": { "type": ["string", "null"] },
|
|
199
|
+
"networkProxy": {
|
|
200
|
+
"type": "object",
|
|
201
|
+
"additionalProperties": false,
|
|
202
|
+
"properties": {
|
|
203
|
+
"enabled": {
|
|
204
|
+
"type": "boolean",
|
|
205
|
+
"default": false
|
|
206
|
+
},
|
|
207
|
+
"profileName": { "type": "string" },
|
|
208
|
+
"baseProfile": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"enum": ["read-only", "workspace"]
|
|
211
|
+
},
|
|
212
|
+
"mode": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"enum": ["limited", "full"]
|
|
215
|
+
},
|
|
216
|
+
"domains": {
|
|
217
|
+
"type": "object",
|
|
218
|
+
"additionalProperties": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"enum": ["allow", "deny"]
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"unixSockets": {
|
|
224
|
+
"type": "object",
|
|
225
|
+
"additionalProperties": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"enum": ["allow", "none"]
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"proxyUrl": { "type": "string" },
|
|
231
|
+
"socksUrl": { "type": "string" },
|
|
232
|
+
"enableSocks5": { "type": "boolean" },
|
|
233
|
+
"enableSocks5Udp": { "type": "boolean" },
|
|
234
|
+
"allowUpstreamProxy": { "type": "boolean" },
|
|
235
|
+
"allowLocalBinding": { "type": "boolean" },
|
|
236
|
+
"dangerouslyAllowNonLoopbackProxy": { "type": "boolean" },
|
|
237
|
+
"dangerouslyAllowAllUnixSockets": { "type": "boolean" }
|
|
238
|
+
}
|
|
239
|
+
},
|
|
195
240
|
"defaultWorkspaceDir": {
|
|
196
241
|
"type": "string"
|
|
197
242
|
},
|
|
@@ -209,6 +254,14 @@
|
|
|
209
254
|
}
|
|
210
255
|
}
|
|
211
256
|
},
|
|
257
|
+
"configContracts": {
|
|
258
|
+
"secretInputs": {
|
|
259
|
+
"paths": [
|
|
260
|
+
{ "path": "appServer.authToken", "expected": "string" },
|
|
261
|
+
{ "path": "appServer.headers.*", "expected": "string" }
|
|
262
|
+
]
|
|
263
|
+
}
|
|
264
|
+
},
|
|
212
265
|
"uiHints": {
|
|
213
266
|
"codexDynamicToolsLoading": {
|
|
214
267
|
"label": "Dynamic Tools Loading",
|
|
@@ -290,7 +343,7 @@
|
|
|
290
343
|
},
|
|
291
344
|
"codexPlugins.allow_destructive_actions": {
|
|
292
345
|
"label": "Allow Destructive Plugin Actions",
|
|
293
|
-
"help": "Default policy for plugin app write or destructive action elicitations.
|
|
346
|
+
"help": "Default policy for plugin app write or destructive action elicitations. Use true to accept safe schemas without prompting, false to decline, or auto to ask through plugin approvals.",
|
|
294
347
|
"advanced": true
|
|
295
348
|
},
|
|
296
349
|
"codexPlugins.plugins": {
|
|
@@ -337,6 +390,7 @@
|
|
|
337
390
|
"appServer.headers": {
|
|
338
391
|
"label": "Headers",
|
|
339
392
|
"help": "Additional headers sent to the WebSocket app-server.",
|
|
393
|
+
"sensitive": true,
|
|
340
394
|
"advanced": true
|
|
341
395
|
},
|
|
342
396
|
"appServer.clearEnv": {
|
|
@@ -344,6 +398,11 @@
|
|
|
344
398
|
"help": "Environment variable names removed from the spawned stdio app-server process after overrides are applied.",
|
|
345
399
|
"advanced": true
|
|
346
400
|
},
|
|
401
|
+
"appServer.remoteWorkspaceRoot": {
|
|
402
|
+
"label": "Remote Workspace Root",
|
|
403
|
+
"help": "Remote Codex app-server workspace root used to project OpenClaw cwd suffixes before starting Codex threads.",
|
|
404
|
+
"advanced": true
|
|
405
|
+
},
|
|
347
406
|
"appServer.codeModeOnly": {
|
|
348
407
|
"label": "Code Mode Only",
|
|
349
408
|
"help": "Expose Codex's code-mode-only tool surface. OpenClaw dynamic tools remain available through Codex nested tool calls.",
|
|
@@ -384,6 +443,81 @@
|
|
|
384
443
|
"help": "Optional Codex app-server service tier. Use priority, flex, or null. Legacy fast is accepted as priority.",
|
|
385
444
|
"advanced": true
|
|
386
445
|
},
|
|
446
|
+
"appServer.networkProxy": {
|
|
447
|
+
"label": "Network Proxy",
|
|
448
|
+
"help": "Enable Codex permissions-profile networking for app-server commands.",
|
|
449
|
+
"advanced": true
|
|
450
|
+
},
|
|
451
|
+
"appServer.networkProxy.enabled": {
|
|
452
|
+
"label": "Network Proxy Enabled",
|
|
453
|
+
"help": "When enabled, OpenClaw defines a Codex permissions profile and selects it with default_permissions instead of sandbox fields.",
|
|
454
|
+
"advanced": true
|
|
455
|
+
},
|
|
456
|
+
"appServer.networkProxy.profileName": {
|
|
457
|
+
"label": "Network Proxy Profile",
|
|
458
|
+
"help": "Optional stable Codex permissions profile name. Leave unset to use a generated openclaw-network fingerprint name.",
|
|
459
|
+
"advanced": true
|
|
460
|
+
},
|
|
461
|
+
"appServer.networkProxy.baseProfile": {
|
|
462
|
+
"label": "Network Proxy Base",
|
|
463
|
+
"help": "Filesystem access used by the generated profile. Defaults to read-only for read-only sandboxes and workspace otherwise.",
|
|
464
|
+
"advanced": true
|
|
465
|
+
},
|
|
466
|
+
"appServer.networkProxy.domains": {
|
|
467
|
+
"label": "Network Domains",
|
|
468
|
+
"help": "Domain allow and deny rules for Codex sandboxed networking.",
|
|
469
|
+
"advanced": true
|
|
470
|
+
},
|
|
471
|
+
"appServer.networkProxy.unixSockets": {
|
|
472
|
+
"label": "Unix Sockets",
|
|
473
|
+
"help": "Unix socket allow and none rules for Codex sandboxed networking.",
|
|
474
|
+
"advanced": true
|
|
475
|
+
},
|
|
476
|
+
"appServer.networkProxy.proxyUrl": {
|
|
477
|
+
"label": "HTTP Proxy URL",
|
|
478
|
+
"help": "HTTP listener URL used by Codex sandboxed networking.",
|
|
479
|
+
"advanced": true
|
|
480
|
+
},
|
|
481
|
+
"appServer.networkProxy.socksUrl": {
|
|
482
|
+
"label": "SOCKS Proxy URL",
|
|
483
|
+
"help": "SOCKS listener URL used by Codex sandboxed networking.",
|
|
484
|
+
"advanced": true
|
|
485
|
+
},
|
|
486
|
+
"appServer.networkProxy.enableSocks5": {
|
|
487
|
+
"label": "Enable SOCKS5",
|
|
488
|
+
"help": "Expose SOCKS5 support for the generated Codex permissions profile.",
|
|
489
|
+
"advanced": true
|
|
490
|
+
},
|
|
491
|
+
"appServer.networkProxy.enableSocks5Udp": {
|
|
492
|
+
"label": "Enable SOCKS5 UDP",
|
|
493
|
+
"help": "Allow UDP over the SOCKS5 listener when SOCKS5 is enabled.",
|
|
494
|
+
"advanced": true
|
|
495
|
+
},
|
|
496
|
+
"appServer.networkProxy.allowUpstreamProxy": {
|
|
497
|
+
"label": "Allow Upstream Proxy",
|
|
498
|
+
"help": "Allow Codex sandboxed networking to chain through inherited HTTP(S)_PROXY or ALL_PROXY settings.",
|
|
499
|
+
"advanced": true
|
|
500
|
+
},
|
|
501
|
+
"appServer.networkProxy.allowLocalBinding": {
|
|
502
|
+
"label": "Allow Local Binding",
|
|
503
|
+
"help": "Permit broader local and private-network access through Codex sandboxed networking.",
|
|
504
|
+
"advanced": true
|
|
505
|
+
},
|
|
506
|
+
"appServer.networkProxy.mode": {
|
|
507
|
+
"label": "Network Mode",
|
|
508
|
+
"help": "Codex sandboxed networking mode for subprocess traffic.",
|
|
509
|
+
"advanced": true
|
|
510
|
+
},
|
|
511
|
+
"appServer.networkProxy.dangerouslyAllowNonLoopbackProxy": {
|
|
512
|
+
"label": "Allow Non-Loopback Proxy",
|
|
513
|
+
"help": "Permit non-loopback bind addresses for Codex sandboxed networking listeners.",
|
|
514
|
+
"advanced": true
|
|
515
|
+
},
|
|
516
|
+
"appServer.networkProxy.dangerouslyAllowAllUnixSockets": {
|
|
517
|
+
"label": "Allow All Unix Sockets",
|
|
518
|
+
"help": "Bypass Codex's Unix socket allowlist for tightly controlled environments.",
|
|
519
|
+
"advanced": true
|
|
520
|
+
},
|
|
387
521
|
"appServer.defaultWorkspaceDir": {
|
|
388
522
|
"label": "Default Workspace",
|
|
389
523
|
"help": "Workspace used by /codex bind when --cwd is omitted.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/codex",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.9",
|
|
4
4
|
"description": "OpenClaw Codex app-server harness and model provider plugin with a Codex-managed GPT catalog.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
]
|
|
35
35
|
},
|
|
36
36
|
"compat": {
|
|
37
|
-
"pluginApi": ">=2026.6.
|
|
37
|
+
"pluginApi": ">=2026.6.9"
|
|
38
38
|
},
|
|
39
39
|
"build": {
|
|
40
|
-
"openclawVersion": "2026.6.
|
|
40
|
+
"openclawVersion": "2026.6.9"
|
|
41
41
|
},
|
|
42
42
|
"release": {
|
|
43
43
|
"publishToClawHub": true,
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"README.md"
|
|
56
56
|
],
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"openclaw": ">=2026.6.
|
|
58
|
+
"openclaw": ">=2026.6.9"
|
|
59
59
|
},
|
|
60
60
|
"peerDependenciesMeta": {
|
|
61
61
|
"openclaw": {
|