@openclaw/codex 2026.7.2-beta.5 → 2026.8.1-beta.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.md +2 -0
- package/dist/{app-server-policy-BmDgseo_.js → app-server-policy-zcBDc1JU.js} +1 -1
- package/dist/attempt-client-cleanup-DMLXUfa8.js +735 -0
- package/dist/binding-connection-I5Bo-AsX.js +33 -0
- package/dist/{bounded-turn-FEbUXoYT.js → bounded-turn-qgZmzy_4.js} +71 -63
- package/dist/{capabilities-BHRSI6Cn.js → capabilities-CybGI1oz.js} +8 -2
- package/dist/cli-metadata.js +1 -1
- package/dist/{command-formatters-ico4ZFnk.js → command-formatters-B1AEz8ZA.js} +18 -18
- package/dist/{command-handlers-CRmnwI2N.js → command-handlers-Db8pu_ds.js} +484 -95
- package/dist/{compact-dEN49UH6.js → compact-LspQaGfl.js} +213 -199
- package/dist/{conversation-binding-data-BHRpYbX3.js → conversation-binding-data-CW2GuupV.js} +6 -10
- package/dist/doctor-contract-api.js +40 -43
- package/dist/{dynamic-tools-LIt9ojep.js → dynamic-tools-BVdyWkUD.js} +2984 -1221
- package/dist/effective-mcp-catalog-DIIhAtOZ.js +119 -0
- package/dist/{event-projector-assistant-message-DTgnPPVF.js → event-projector-assistant-message-BwxV4d6N.js} +11 -23
- package/dist/{attempt-notifications-CMR2_fmR.js → event-projector-usage-e5huIQWu.js} +113 -29
- package/dist/harness.js +83 -13
- package/dist/image-payload-sanitizer-CnfoUPCE.js +65 -0
- package/dist/index.js +703 -329
- package/dist/isolated-completion-C58NbL40.js +75 -0
- package/dist/local-runtime-attribution-B_2mnqhb.js +19 -0
- package/dist/media-understanding-provider.js +5 -5
- package/dist/{models-BA01NEez.js → models-BFlpn1Ex.js} +12 -17
- package/dist/native-subagent-monitor-DyTGmTUx.js +3111 -0
- package/dist/{plugin-app-cache-key-DSXX-rXO.js → plugin-app-cache-key-C3H2CVp6.js} +135 -42
- package/dist/plugin-marketplace-discovery-CzrGJdCR.js +385 -0
- package/dist/{computer-use-BjGylO-E.js → plugin-metadata-cache-CNJPj4_b.js} +211 -113
- package/dist/protocol-validators-B4F7L8Rf.js +2346 -0
- package/dist/{rate-limits-S_PXs0ul.js → rate-limits-DZXmOL8-.js} +17 -35
- package/dist/{request-CXpPennK.js → request-BRl5_UfX.js} +4 -4
- package/dist/{run-attempt-C5GTPJOE.js → run-attempt-P8BdxC1I.js} +1996 -5728
- package/dist/{runtime-artifact-C2ITXdhM.js → runtime-artifact-BVSPdd6g.js} +91 -40
- package/dist/{sandbox-guard-D1Wky__S.js → sandbox-guard-Cmwc9eIk.js} +10 -13
- package/dist/{session-binding-DlVQ-Pxs.js → session-binding-DPxIvMgE.js} +305 -271
- package/dist/{session-catalog-CP2oCcEb.js → session-catalog-xwNi_SDM.js} +418 -144
- package/dist/{session-cli-CqZ0Fp2a.js → session-cli-7hgXZDV7.js} +1 -1
- package/dist/session-retirement-DoMMJFKm.js +36 -0
- package/dist/{session-upstream-marker-QE-m5QFG.js → session-upstream-marker-CrIFX06J.js} +1 -1
- package/dist/{settled-turn-finalizer-CA_2QXIE.js → settled-turn-finalizer-BRWBO4MO.js} +36 -15
- package/dist/{shared-client-BVKE40c-.js → shared-client-kIBbGjk4.js} +721 -240
- package/dist/{side-question-CO12sHxo.js → side-question-9HAL26l9.js} +102 -53
- package/dist/{thread-lifecycle-DRg_FdzC.js → thread-lifecycle-Bu1BTDXr.js} +1355 -660
- package/dist/thread-ownership-6kOQHlyC.js +92 -0
- package/dist/thread-resume-CPrJNQVM.js +30 -0
- package/dist/{transcript-mirror-uKA-A4tB.js → transcript-mirror-B9gGgnJS.js} +202 -182
- package/dist/{transport-stdio-DXgGZ7Ib.js → transport-stdio-DIImwDVS.js} +11 -0
- package/dist/upstream-prompt-provenance-ClRBije0.js +41 -0
- package/dist/{upstream-session-fork-_Vrz4WJr.js → upstream-session-fork-CE-_LdnP.js} +5 -5
- package/dist/{usage-UpVbdX5G.js → usage-CHlV0e-o.js} +3 -3
- package/dist/{web-search-provider.runtime-CaQMYDbp.js → web-search-provider.runtime-DRw2Vl42.js} +8 -9
- package/openclaw.plugin.json +18 -3
- package/package.json +6 -7
- package/dist/attempt-client-cleanup-Ia52yRWc.js +0 -127
- package/dist/conversation-control-DE7d9DOj.js +0 -287
- package/dist/event-projector-usage-tvgb1NCX.js +0 -69
- package/dist/notification-correlation-Bj_Ak_jI.js +0 -67
- package/dist/protocol-validators-Dm4eXZmt.js +0 -6337
- package/dist/realtime-voice-api-BPcA1uN9.js +0 -494
- package/dist/realtime-voice-api.js +0 -2
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
|
+
import { INLINE_IMAGE_DATA_URL_PREFIX, sanitizeInlineImageDataUrl } from "openclaw/plugin-sdk/inline-image-data-url-runtime";
|
|
3
|
+
//#region extensions/codex/src/app-server/image-payload-sanitizer.ts
|
|
4
|
+
/**
|
|
5
|
+
* Sanitizes inline image payloads mirrored through Codex history so invalid
|
|
6
|
+
* base64 data becomes readable text instead of poisoning replayed transcripts.
|
|
7
|
+
*/
|
|
8
|
+
const IMAGE_OMITTED_TEXT = "omitted image payload: invalid inline image data";
|
|
9
|
+
/** Validates and normalizes an inline image data URL for Codex history payloads. */
|
|
10
|
+
function sanitizeInlineImageDataUrl$1(imageUrl) {
|
|
11
|
+
return sanitizeInlineImageDataUrl(imageUrl);
|
|
12
|
+
}
|
|
13
|
+
/** Builds the replacement text inserted when an inline image payload is invalid. */
|
|
14
|
+
function invalidInlineImageText(label) {
|
|
15
|
+
return `[${label}] ${IMAGE_OMITTED_TEXT}`;
|
|
16
|
+
}
|
|
17
|
+
function sanitizeImageContentRecord(record, label) {
|
|
18
|
+
if (record.type === "image" && typeof record.data === "string") {
|
|
19
|
+
const mimeType = typeof record.mimeType === "string" ? record.mimeType : "image/png";
|
|
20
|
+
const imageUrl = sanitizeInlineImageDataUrl$1(`data:${mimeType};base64,${record.data}`);
|
|
21
|
+
if (!imageUrl) return {
|
|
22
|
+
type: "text",
|
|
23
|
+
text: invalidInlineImageText(label)
|
|
24
|
+
};
|
|
25
|
+
const commaIndex = imageUrl.indexOf(",");
|
|
26
|
+
const mime = imageUrl.slice(INLINE_IMAGE_DATA_URL_PREFIX.length, commaIndex).split(";")[0] ?? mimeType;
|
|
27
|
+
return {
|
|
28
|
+
...record,
|
|
29
|
+
mimeType: mime,
|
|
30
|
+
data: imageUrl.slice(commaIndex + 1)
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (record.type === "inputImage" && typeof record.imageUrl === "string") {
|
|
34
|
+
const imageUrl = sanitizeInlineImageDataUrl$1(record.imageUrl);
|
|
35
|
+
return imageUrl ? {
|
|
36
|
+
...record,
|
|
37
|
+
imageUrl
|
|
38
|
+
} : {
|
|
39
|
+
type: "inputText",
|
|
40
|
+
text: invalidInlineImageText(label)
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (record.type === "input_image" && typeof record.image_url === "string") {
|
|
44
|
+
const imageUrl = sanitizeInlineImageDataUrl$1(record.image_url);
|
|
45
|
+
return imageUrl ? {
|
|
46
|
+
...record,
|
|
47
|
+
image_url: imageUrl
|
|
48
|
+
} : {
|
|
49
|
+
type: "input_text",
|
|
50
|
+
text: invalidInlineImageText(label)
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Recursively sanitizes all Codex history image shapes while preserving unknown structure. */
|
|
55
|
+
function sanitizeCodexHistoryImagePayloads(value, label) {
|
|
56
|
+
if (Array.isArray(value)) return value.map((entry) => sanitizeCodexHistoryImagePayloads(entry, label));
|
|
57
|
+
if (!isRecord(value)) return value;
|
|
58
|
+
const imageRecord = sanitizeImageContentRecord(value, label);
|
|
59
|
+
if (imageRecord) return imageRecord;
|
|
60
|
+
const next = {};
|
|
61
|
+
for (const [key, child] of Object.entries(value)) next[key] = sanitizeCodexHistoryImagePayloads(child, label);
|
|
62
|
+
return next;
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
export { sanitizeCodexHistoryImagePayloads as n, sanitizeInlineImageDataUrl$1 as r, invalidInlineImageText as t };
|