@openclaw/codex 2026.8.1-beta.3 → 2026.9.1-beta.1
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/api.js +3 -3
- package/dist/{attempt-client-cleanup-URjUlCHg.js → attempt-client-cleanup-bfsmcQ6m.js} +21 -2
- package/dist/{binding-connection-DAvZwp96.js → binding-connection-BMvPX73o.js} +2 -2
- package/dist/{bounded-turn-4BjrZEwW.js → bounded-turn-B7iBUcuP.js} +8 -8
- package/dist/{capabilities-CH3K57v4.js → capabilities-BRMh0aIq.js} +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/{command-formatters-D0nZ3qtd.js → command-formatters-DEsIufkt.js} +2 -2
- package/dist/{command-handlers-DC86lgT4.js → command-handlers-D_-1_qRp.js} +43 -32
- package/dist/{command-rpc-xUIIonsO.js → command-rpc-CCeCkf_v.js} +4 -4
- package/dist/{compact-COqgBRny.js → compact-BglNFZrQ.js} +8 -8
- package/dist/{config-CpNeo5AE.js → config-giW8X0QA.js} +82 -28
- package/dist/doctor-contract-api.js +9 -8
- package/dist/{dynamic-tools-fJZhl4CE.js → dynamic-tools-Dnlfa--w.js} +108 -820
- package/dist/{effective-mcp-catalog-4YKn51aG.js → effective-mcp-catalog-CTeGrnfO.js} +2 -2
- package/dist/{event-projector-assistant-message-BwxV4d6N.js → event-projector-assistant-message-C5-Ds8mA.js} +18 -1
- package/dist/{event-projector-usage-CLwNEJqW.js → event-projector-usage-Bk1I90Bg.js} +3 -3
- package/dist/{harness-DoKQcF8n.js → harness-Csz0F-DK.js} +11 -11
- package/dist/harness.js +1 -1
- package/dist/index.js +130 -172
- package/dist/{isolated-completion-DPMtlH9r.js → isolated-completion-Cv6FqygM.js} +4 -4
- package/dist/{managed-binary-By4FZC6i.js → managed-binary-DFYK4DWq.js} +43 -7
- package/dist/media-understanding-provider.js +1 -1
- package/dist/{model-catalog-CmGoqVKB.js → model-catalog-i9rNBthX.js} +4 -4
- package/dist/{models-CZw1wClT.js → models-TS3HBU-q.js} +4 -3
- package/dist/{native-subagent-monitor-GGq3RnOo.js → native-subagent-monitor-4Mfq2HDs.js} +176 -19
- package/dist/{node-exec-server.runtime-Bsu1LdFZ.js → node-exec-server.runtime-BpWqJO1V.js} +2 -2
- package/dist/{plugin-app-cache-key-DMNQ8Zi8.js → plugin-app-cache-key-C1CAdfcP.js} +6 -3
- package/dist/{plugin-approval-roundtrip-C75Yiiwc.js → plugin-approval-roundtrip-bUm777tR.js} +1 -1
- package/dist/{plugin-marketplace-discovery-CSWDkMrP.js → plugin-marketplace-discovery-B9DvaAG-.js} +29 -38
- package/dist/{plugin-metadata-cache-BXH5NF-4.js → plugin-metadata-cache-CTCT3w5L.js} +162 -135
- package/dist/{protocol-validators-VAVyEnDp.js → protocol-validators-VeJxxJ0U.js} +25 -3
- package/dist/{rate-limits-BI1dMHDG.js → rate-limits-C5_D8Gmb.js} +1 -1
- package/dist/{request-DSK0W6YI.js → request-DXXGHko0.js} +2 -2
- package/dist/{run-attempt-BV3HzuCf.js → run-attempt-DYc0QCBF.js} +346 -267
- package/dist/{sandbox-guard-C1qEeZ5C.js → sandbox-guard-kuWTn9C5.js} +1 -1
- package/dist/{session-binding-BTrLf9Qm.js → session-binding-Bcynfd-_.js} +1 -1
- package/dist/{session-catalog-ezP_UcRM.js → session-catalog-DaLKVtpH.js} +17 -16
- package/dist/{session-cli-B1hKvfkI.js → session-cli-DMc4oS2w.js} +1 -1
- package/dist/session-permission-policy-BrNH1bjy.js +160 -0
- package/dist/{session-retirement-CE4iMiLh.js → session-retirement-CcNC3YSY.js} +3 -3
- package/dist/{session-upstream-marker-D_2npHlA.js → session-upstream-marker-BIkusb95.js} +1 -1
- package/dist/{settled-turn-finalizer-Dx1onIqg.js → settled-turn-finalizer-Dc3ApjU4.js} +4 -4
- package/dist/{shared-client-Dw-rzii0.js → shared-client-DKz23hHY.js} +1026 -248
- package/dist/{side-question-DbXkJZzg.js → side-question-DjA_jsNe.js} +65 -36
- package/dist/{thread-lifecycle-DKdrnTMX.js → thread-lifecycle-L7oEkTlq.js} +850 -35
- package/dist/{thread-ownership-i2NBwDUL.js → thread-ownership-DZeuKH1j.js} +2 -2
- package/dist/{thread-resume-CdJk2Ehf.js → thread-resume-BE9qNEW0.js} +3 -3
- package/dist/{transcript-mirror-BU0_LKAL.js → transcript-mirror-DsCMWBca.js} +91 -10
- package/dist/{upstream-session-fork-BDVJCLAD.js → upstream-session-fork-DlaHxSLC.js} +3 -3
- package/dist/{usage-9dKJCgcy.js → usage-ROIaW3wo.js} +3 -3
- package/dist/{web-search-provider.runtime-DCdx4DGu.js → web-search-provider.runtime-ClaNPV7N.js} +3 -3
- package/openclaw.plugin.json +18 -1
- package/package.json +8 -8
- package/dist/app-server-policy-bg5QPSVP.js +0 -25
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as closeCodexStartupClientBestEffort, d as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-
|
|
1
|
+
import { $ as releaseCodexAppServerLiveThread, Z as isCodexAppServerLiveThreadClaimed, et as retainCodexAppServerLiveThread, h as retainSharedCodexAppServerClientByInstanceId } from "./shared-client-DKz23hHY.js";
|
|
2
|
+
import { a as closeCodexStartupClientBestEffort, d as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-bfsmcQ6m.js";
|
|
3
3
|
import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
|
|
4
4
|
//#region extensions/codex/src/app-server/thread-ownership.ts
|
|
5
5
|
const nativeThreadOwners = new KeyedAsyncQueue();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as
|
|
2
|
-
import { i as assertCodexThreadResumeSubscription, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-
|
|
3
|
-
import { i as assertCodexThreadResumeResponse } from "./protocol-validators-
|
|
1
|
+
import { B as isCodexAppServerPrewriteRequestCancellationError, G as CodexAppServerRpcError, c as isCodexAppServerStartSelectionChangedError } from "./shared-client-DKz23hHY.js";
|
|
2
|
+
import { i as assertCodexThreadResumeSubscription, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-bfsmcQ6m.js";
|
|
3
|
+
import { i as assertCodexThreadResumeResponse } from "./protocol-validators-VeJxxJ0U.js";
|
|
4
4
|
//#region extensions/codex/src/app-server/thread-resume.ts
|
|
5
5
|
/** Owns Codex thread/resume subscription safety. */
|
|
6
6
|
/** Resumes one thread and retires the physical client when acceptance is indeterminate. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as readUpstreamUserText, n as attachUpstreamUserText, r as readMirrorIdentity, t as attachCodexMirrorIdentity } from "./upstream-prompt-provenance-CFmsKwr9.js";
|
|
2
2
|
import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
|
-
import { embeddedAgentLog, formatErrorMessage, projectAgentHarnessTranscriptMessageForDisplay, runAgentHarnessBeforeMessageWriteHook } from "openclaw/plugin-sdk/agent-harness-runtime";
|
|
3
|
+
import { deliverAgentHarnessUserInputPrompt, embeddedAgentLog, formatErrorMessage, projectAgentHarnessTranscriptMessageForDisplay, runAgentHarnessBeforeMessageWriteHook } from "openclaw/plugin-sdk/agent-harness-runtime";
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
5
5
|
import { truncateUtf8Prefix } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
6
6
|
import { withCodexSessionTranscriptMirrorWriteLock } from "openclaw/plugin-sdk/codex-session-transcript-runtime";
|
|
@@ -82,6 +82,8 @@ function projectCodexThreadHistory(params) {
|
|
|
82
82
|
const role = item.type === "userMessage" ? "user" : item.type === "agentMessage" ? "assistant" : void 0;
|
|
83
83
|
itemOffset += 1;
|
|
84
84
|
if (!text || !role) continue;
|
|
85
|
+
const phase = item.phase === "commentary" || item.phase === "final_answer" ? item.phase : void 0;
|
|
86
|
+
const asyncDelivery = item.delivery === "async";
|
|
85
87
|
const message = role === "assistant" ? attachCodexMirrorIdentity({
|
|
86
88
|
role,
|
|
87
89
|
content: [{
|
|
@@ -94,13 +96,14 @@ function projectCodexThreadHistory(params) {
|
|
|
94
96
|
usage: CODEX_HISTORY_ZERO_USAGE,
|
|
95
97
|
stopReason: turn.status === "interrupted" ? "aborted" : turn.status === "failed" ? "error" : "stop",
|
|
96
98
|
...turn.status === "failed" && turn.error?.message ? { errorMessage: turn.error.message } : {},
|
|
99
|
+
...phase ? { phase } : {},
|
|
100
|
+
...asyncDelivery && itemId ? { openclawAsyncDelivery: { itemId } } : {},
|
|
97
101
|
timestamp
|
|
98
102
|
}, identity) : attachCodexMirrorIdentity({
|
|
99
103
|
role,
|
|
100
104
|
content: text,
|
|
101
105
|
timestamp
|
|
102
106
|
}, identity);
|
|
103
|
-
const phase = item.phase === "commentary" || item.phase === "final_answer" ? item.phase : void 0;
|
|
104
107
|
projected.push({
|
|
105
108
|
message,
|
|
106
109
|
responseItem: {
|
|
@@ -141,7 +144,7 @@ function projectBoundedCodexThreadHistory(params) {
|
|
|
141
144
|
return {
|
|
142
145
|
importedMessages: selected.length,
|
|
143
146
|
omittedMessages: projected.length - selected.length,
|
|
144
|
-
responseItems: selected.filter(({ message }) => message.role !== "assistant" || message.stopReason !== "aborted" && message.stopReason !== "error").map(({ responseItem }) => responseItem),
|
|
147
|
+
responseItems: selected.filter(({ message }) => message.role !== "assistant" || message.stopReason !== "aborted" && message.stopReason !== "error" && !("openclawAsyncDelivery" in message)).map(({ responseItem }) => responseItem),
|
|
145
148
|
transcriptMessages: selected.map(({ message }) => message)
|
|
146
149
|
};
|
|
147
150
|
}
|
|
@@ -150,7 +153,7 @@ function projectBoundedCodexVisibleSessionHistory(entries) {
|
|
|
150
153
|
const projected = [];
|
|
151
154
|
for (const entry of entries) {
|
|
152
155
|
if (entry.role !== "user" && entry.role !== "assistant" || !("content" in entry.message)) continue;
|
|
153
|
-
if (entry.role === "assistant" && "stopReason" in entry.message && (entry.message.stopReason === "aborted" || entry.message.stopReason === "error")) continue;
|
|
156
|
+
if (entry.role === "assistant" && ("stopReason" in entry.message && (entry.message.stopReason === "aborted" || entry.message.stopReason === "error") || "openclawAsyncDelivery" in entry.message)) continue;
|
|
154
157
|
const content = entry.message.content;
|
|
155
158
|
const text = normalizeImportedHistoryText(typeof content === "string" ? content : Array.isArray(content) ? content.flatMap((part) => part && typeof part === "object" && "text" in part && typeof part.text === "string" ? [part.text] : []).join("\n") : void 0);
|
|
156
159
|
if (!text) continue;
|
|
@@ -270,6 +273,10 @@ async function buildResolvedCodexUserPromptMessage(params) {
|
|
|
270
273
|
function isMirroredAgentMessage(message) {
|
|
271
274
|
return message.role === "user" || message.role === "assistant" || message.role === "toolResult";
|
|
272
275
|
}
|
|
276
|
+
function readMirroredAssistantText(message) {
|
|
277
|
+
if (message?.role !== "assistant") return;
|
|
278
|
+
return message.content.flatMap((part) => part.type === "text" ? [part.text] : []).join("\n") || void 0;
|
|
279
|
+
}
|
|
273
280
|
/** Imports a bounded, user-visible Codex history tail into a new OpenClaw transcript. */
|
|
274
281
|
async function importCodexThreadHistoryToTranscript(params) {
|
|
275
282
|
const projection = projectBoundedCodexThreadHistory({
|
|
@@ -431,6 +438,7 @@ function buildMirrorDedupeIdentity(message) {
|
|
|
431
438
|
async function mirror(params) {
|
|
432
439
|
const messages = params.messages.filter(isMirroredAgentMessage);
|
|
433
440
|
if (messages.length === 0) return {
|
|
441
|
+
assistantMirrorIdentitiesAppended: [],
|
|
434
442
|
assistantMirrorIdentitiesOwned: [],
|
|
435
443
|
anchorsByMirrorIdentity: /* @__PURE__ */ new Map(),
|
|
436
444
|
messagesPresent: [],
|
|
@@ -449,11 +457,12 @@ async function mirror(params) {
|
|
|
449
457
|
});
|
|
450
458
|
const candidateIdempotencyKeys = candidates.flatMap(({ idempotencyKey }) => idempotencyKey ? [idempotencyKey] : []);
|
|
451
459
|
const transcriptTarget = resolveCodexMirrorTranscriptTarget(params);
|
|
452
|
-
const { appendedUpdates, assistantMirrorIdentitiesOwned, anchorsByMirrorIdentity, messagesPresent, userMessageReceipts, userMessagesPresent } = await withCodexSessionTranscriptMirrorWriteLock({
|
|
460
|
+
const { appendedUpdates, assistantMirrorIdentitiesAppended, assistantMirrorIdentitiesOwned, anchorsByMirrorIdentity, messagesPresent, userMessageReceipts, userMessagesPresent } = await withCodexSessionTranscriptMirrorWriteLock({
|
|
453
461
|
...transcriptTarget,
|
|
454
462
|
config: params.config
|
|
455
463
|
}, async (transcript) => {
|
|
456
464
|
const nextAppendedUpdates = [];
|
|
465
|
+
const nextAssistantMirrorIdentitiesAppended = /* @__PURE__ */ new Set();
|
|
457
466
|
const nextAssistantMirrorIdentitiesOwned = /* @__PURE__ */ new Set();
|
|
458
467
|
const nextAnchorsByMirrorIdentity = /* @__PURE__ */ new Map();
|
|
459
468
|
const nextMessagesPresent = [];
|
|
@@ -501,6 +510,7 @@ async function mirror(params) {
|
|
|
501
510
|
} : attachCodexMirrorAttestation(nextMessage, sourceFingerprint);
|
|
502
511
|
if (mirrorIdentity) messageToAppend = attachCodexMirrorIdentity(messageToAppend, mirrorIdentity);
|
|
503
512
|
if (ownsRun && params.runId) messageToAppend = attachCodexMirrorRunId(messageToAppend, params.runId, ownsTerminal);
|
|
513
|
+
if (message.role === "assistant" && message.openclawAsyncDelivery) messageToAppend = Object.assign(messageToAppend, { openclawAsyncDelivery: { itemId: message.openclawAsyncDelivery.itemId } });
|
|
504
514
|
messageToAppend = projectAgentHarnessTranscriptMessageForDisplay({
|
|
505
515
|
hidden: message.display === false,
|
|
506
516
|
message: messageToAppend
|
|
@@ -525,11 +535,14 @@ async function mirror(params) {
|
|
|
525
535
|
message: appendedMessage
|
|
526
536
|
});
|
|
527
537
|
}
|
|
528
|
-
if (appended.appended)
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
538
|
+
if (appended.appended) {
|
|
539
|
+
if (message.role === "assistant") nextAssistantMirrorIdentitiesAppended.add(dedupeIdentity);
|
|
540
|
+
nextAppendedUpdates.push({
|
|
541
|
+
messageId,
|
|
542
|
+
message: appendedMessage,
|
|
543
|
+
...messageSeq !== void 0 ? { messageSeq } : {}
|
|
544
|
+
});
|
|
545
|
+
}
|
|
533
546
|
if (idempotencyKey) {
|
|
534
547
|
mirrorFacts.existingIdempotencyKeys.add(idempotencyKey);
|
|
535
548
|
if (appended.anchor) mirrorFacts.anchorsByIdempotencyKey.set(idempotencyKey, appended.anchor);
|
|
@@ -537,6 +550,7 @@ async function mirror(params) {
|
|
|
537
550
|
}
|
|
538
551
|
return {
|
|
539
552
|
appendedUpdates: nextAppendedUpdates,
|
|
553
|
+
assistantMirrorIdentitiesAppended: [...nextAssistantMirrorIdentitiesAppended],
|
|
540
554
|
assistantMirrorIdentitiesOwned: [...nextAssistantMirrorIdentitiesOwned],
|
|
541
555
|
anchorsByMirrorIdentity: nextAnchorsByMirrorIdentity,
|
|
542
556
|
messagesPresent: nextMessagesPresent,
|
|
@@ -562,6 +576,7 @@ async function mirror(params) {
|
|
|
562
576
|
embeddedAgentLog.warn("failed to publish codex app-server transcript update", { error: formatErrorMessage(error) });
|
|
563
577
|
}
|
|
564
578
|
return {
|
|
579
|
+
assistantMirrorIdentitiesAppended,
|
|
565
580
|
assistantMirrorIdentitiesOwned,
|
|
566
581
|
anchorsByMirrorIdentity,
|
|
567
582
|
messagesPresent,
|
|
@@ -569,10 +584,76 @@ async function mirror(params) {
|
|
|
569
584
|
userMessagesPresent
|
|
570
585
|
};
|
|
571
586
|
}
|
|
587
|
+
async function deliverAsyncMessageBestEffort(params) {
|
|
588
|
+
const mirrorIdentity = `${params.turnId}:async:${params.itemId}`;
|
|
589
|
+
const deliveryIntentId = `block-reply:v1:codex-app-server:${[
|
|
590
|
+
params.threadId,
|
|
591
|
+
params.turnId,
|
|
592
|
+
params.itemId
|
|
593
|
+
].map(encodeURIComponent).join(":")}`;
|
|
594
|
+
const target = params.params.sessionTarget;
|
|
595
|
+
if (!target) {
|
|
596
|
+
if (!params.params.onBlockReply) return "retry";
|
|
597
|
+
try {
|
|
598
|
+
await deliverAsyncBlockReply(params.params.onBlockReply, params.text, deliveryIntentId);
|
|
599
|
+
return "settled";
|
|
600
|
+
} catch (error) {
|
|
601
|
+
embeddedAgentLog.warn("failed to deliver codex async agent message", {
|
|
602
|
+
error: formatErrorMessage(error),
|
|
603
|
+
itemId: params.itemId,
|
|
604
|
+
runId: params.params.runId,
|
|
605
|
+
threadId: params.threadId,
|
|
606
|
+
turnId: params.turnId
|
|
607
|
+
});
|
|
608
|
+
return "retry";
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
let result;
|
|
612
|
+
try {
|
|
613
|
+
result = await mirror({
|
|
614
|
+
agentId: target.agentId ?? params.params.agentId,
|
|
615
|
+
sessionId: target.sessionId ?? params.params.sessionId,
|
|
616
|
+
sessionKey: target.sessionKey ?? params.params.sessionKey,
|
|
617
|
+
storePath: target.storePath,
|
|
618
|
+
cwd: params.cwd,
|
|
619
|
+
config: params.params.config,
|
|
620
|
+
messages: [attachCodexMirrorIdentity(params.message, mirrorIdentity)],
|
|
621
|
+
idempotencyScope: `codex-app-server:${params.threadId}`
|
|
622
|
+
});
|
|
623
|
+
} catch (error) {
|
|
624
|
+
embeddedAgentLog.warn("failed to persist codex async agent message", {
|
|
625
|
+
error: formatErrorMessage(error),
|
|
626
|
+
itemId: params.itemId,
|
|
627
|
+
runId: params.params.runId,
|
|
628
|
+
threadId: params.threadId,
|
|
629
|
+
turnId: params.turnId
|
|
630
|
+
});
|
|
631
|
+
return "retry";
|
|
632
|
+
}
|
|
633
|
+
if (!result.assistantMirrorIdentitiesOwned.includes(mirrorIdentity)) return "retry";
|
|
634
|
+
const persistedText = readMirroredAssistantText(result.messagesPresent.find((message) => readMirrorIdentity(message) === mirrorIdentity));
|
|
635
|
+
if (params.params.onBlockReply && persistedText !== void 0) try {
|
|
636
|
+
await deliverAsyncBlockReply(params.params.onBlockReply, persistedText, deliveryIntentId);
|
|
637
|
+
} catch (error) {
|
|
638
|
+
embeddedAgentLog.warn("failed to deliver persisted codex async agent message", {
|
|
639
|
+
error: formatErrorMessage(error),
|
|
640
|
+
itemId: params.itemId,
|
|
641
|
+
runId: params.params.runId,
|
|
642
|
+
threadId: params.threadId,
|
|
643
|
+
turnId: params.turnId
|
|
644
|
+
});
|
|
645
|
+
return "retry";
|
|
646
|
+
}
|
|
647
|
+
return "settled";
|
|
648
|
+
}
|
|
572
649
|
const codexTranscriptMirrorRuntime = {
|
|
650
|
+
deliverAsyncMessageBestEffort,
|
|
573
651
|
mirror,
|
|
574
652
|
mirrorBestEffort
|
|
575
653
|
};
|
|
654
|
+
async function deliverAsyncBlockReply(onBlockReply, text, deliveryIntentId) {
|
|
655
|
+
await deliverAgentHarnessUserInputPrompt({ onBlockReply: (payload) => onBlockReply(payload, { deliveryIntentId }) }, [], { intro: text });
|
|
656
|
+
}
|
|
576
657
|
function resolveCodexMirrorTranscriptTarget(params) {
|
|
577
658
|
const sessionKey = params.sessionKey?.trim();
|
|
578
659
|
const storePath = params.storePath?.trim();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { d as sessionBindingIdentity } from "./session-binding-
|
|
2
|
-
import { r as assertCodexThreadForkResponse } from "./protocol-validators-
|
|
1
|
+
import { d as sessionBindingIdentity } from "./session-binding-Bcynfd-_.js";
|
|
2
|
+
import { r as assertCodexThreadForkResponse } from "./protocol-validators-VeJxxJ0U.js";
|
|
3
3
|
import { t as isIncognitoSessionKey } from "./incognito-session-ET_ufDH-.js";
|
|
4
|
-
import { i as createImportedCodexSession, n as codexUpstreamBaseline, t as codexLastTerminalTurnId } from "./session-upstream-marker-
|
|
4
|
+
import { i as createImportedCodexSession, n as codexUpstreamBaseline, t as codexLastTerminalTurnId } from "./session-upstream-marker-BIkusb95.js";
|
|
5
5
|
import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { readVisibleSessionTranscriptMessageEntries } from "openclaw/plugin-sdk/session-transcript-runtime";
|
|
7
7
|
import { deleteSessionUpstreamLink, upsertSessionUpstreamLink } from "openclaw/plugin-sdk/session-catalog";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as resolveCodexAppServerRuntimeOptions } from "./config-
|
|
2
|
-
import { t as buildCodexAppServerUsageSnapshot } from "./rate-limits-
|
|
3
|
-
import { t as readCodexAppServerUsage } from "./request-
|
|
1
|
+
import { i as resolveCodexAppServerRuntimeOptions } from "./config-giW8X0QA.js";
|
|
2
|
+
import { t as buildCodexAppServerUsageSnapshot } from "./rate-limits-C5_D8Gmb.js";
|
|
3
|
+
import { t as readCodexAppServerUsage } from "./request-DXXGHko0.js";
|
|
4
4
|
import { CODEX_APP_SERVER_AUTH_MARKER } from "openclaw/plugin-sdk/agent-runtime";
|
|
5
5
|
//#region extensions/codex/src/app-server/usage.ts
|
|
6
6
|
/** Handles the synthetic usage credential for a Codex-backed OpenAI route. */
|
package/dist/{web-search-provider.runtime-DCdx4DGu.js → web-search-provider.runtime-ClaNPV7N.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as runBoundedCodexAppServerTurn } from "./bounded-turn-
|
|
1
|
+
import { vt as isJsonObject } from "./shared-client-DKz23hHY.js";
|
|
2
|
+
import { P as buildCodexNativeWebSearchThreadConfig } from "./thread-lifecycle-L7oEkTlq.js";
|
|
3
|
+
import { t as runBoundedCodexAppServerTurn } from "./bounded-turn-B7iBUcuP.js";
|
|
4
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { readStringParam, resolveSearchTimeoutSeconds, wrapWebContent } from "openclaw/plugin-sdk/provider-web-search";
|
|
6
6
|
//#region extensions/codex/src/web-search-provider.runtime.ts
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "codex",
|
|
3
|
+
"backupResources": [
|
|
4
|
+
{
|
|
5
|
+
"disposition": "regenerable",
|
|
6
|
+
"scope": "agent",
|
|
7
|
+
"relativePath": "codex-home/tmp/arg0"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"disposition": "regenerable",
|
|
11
|
+
"scope": "agent",
|
|
12
|
+
"relativePath": "codex-home/.tmp/plugins"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"disposition": "regenerable",
|
|
16
|
+
"scope": "agent",
|
|
17
|
+
"relativePath": "codex-home/.tmp/bundled-marketplaces"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
3
20
|
"doctorContract": {
|
|
4
21
|
"configRepair": true,
|
|
5
22
|
"stateMigrations": true
|
|
@@ -497,7 +514,7 @@
|
|
|
497
514
|
},
|
|
498
515
|
"computerUse.autoRepair": {
|
|
499
516
|
"label": "Auto Repair",
|
|
500
|
-
"help": "When true, failed Computer Use live tests
|
|
517
|
+
"help": "When true, failed Computer Use live tests reload the Codex-owned MCP runtime before retrying once.",
|
|
501
518
|
"advanced": true
|
|
502
519
|
},
|
|
503
520
|
"computerUse.marketplaceSource": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/codex",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.9.1-beta.1",
|
|
4
4
|
"description": "OpenClaw Codex app-server harness and native session supervision plugin.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@openai/codex": "0.
|
|
11
|
+
"@openai/codex": "0.150.1",
|
|
12
12
|
"semver": "7.8.5",
|
|
13
|
-
"smol-toml": "1.
|
|
14
|
-
"typebox": "1.3.
|
|
15
|
-
"ws": "8.21.
|
|
13
|
+
"smol-toml": "1.8.0",
|
|
14
|
+
"typebox": "1.3.16",
|
|
15
|
+
"ws": "8.21.3",
|
|
16
16
|
"zod": "4.4.3"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
]
|
|
37
37
|
},
|
|
38
38
|
"compat": {
|
|
39
|
-
"pluginApi": ">=2026.
|
|
39
|
+
"pluginApi": ">=2026.9.1-beta.1"
|
|
40
40
|
},
|
|
41
41
|
"build": {
|
|
42
|
-
"openclawVersion": "2026.
|
|
42
|
+
"openclawVersion": "2026.9.1-beta.1"
|
|
43
43
|
},
|
|
44
44
|
"release": {
|
|
45
45
|
"publishToClawHub": true,
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"README.md"
|
|
60
60
|
],
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"openclaw": ">=2026.
|
|
62
|
+
"openclaw": ">=2026.9.1-beta.1"
|
|
63
63
|
},
|
|
64
64
|
"peerDependenciesMeta": {
|
|
65
65
|
"openclaw": {
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { b as canUseCodexModelBackedApprovalsReviewerForModel } from "./config-CpNeo5AE.js";
|
|
2
|
-
//#region extensions/codex/src/app-server/app-server-policy.ts
|
|
3
|
-
function resolveCodexAppServerForModelProvider(params) {
|
|
4
|
-
const explicitProvider = normalizeModelBackedReviewerProvider(params.provider);
|
|
5
|
-
if (!isCodexModelBackedApprovalsReviewer(params.appServer.approvalsReviewer) || canUseCodexModelBackedApprovalsReviewerForModel({
|
|
6
|
-
modelProvider: explicitProvider,
|
|
7
|
-
model: params.model,
|
|
8
|
-
config: params.config,
|
|
9
|
-
env: params.env,
|
|
10
|
-
agentDir: params.agentDir,
|
|
11
|
-
codexConfigToml: params.codexConfigToml
|
|
12
|
-
})) return params.appServer;
|
|
13
|
-
return {
|
|
14
|
-
...params.appServer,
|
|
15
|
-
approvalsReviewer: "user"
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
function isCodexModelBackedApprovalsReviewer(value) {
|
|
19
|
-
return value === "auto_review" || value === "guardian_subagent";
|
|
20
|
-
}
|
|
21
|
-
function normalizeModelBackedReviewerProvider(provider) {
|
|
22
|
-
return provider?.trim().toLowerCase() || void 0;
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { resolveCodexAppServerForModelProvider as t };
|