@openclaw/codex 2026.9.1-beta.1 → 2026.9.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/dist/api.js +8 -9
- package/dist/{attempt-client-cleanup-bfsmcQ6m.js → attempt-client-cleanup-Bp1ZOnk2.js} +105 -75
- package/dist/attempt-context-CSazkWns.js +634 -0
- package/dist/{auth-binding-B4FfbcCg.js → auth-binding-Ds_QVm-X.js} +18 -3
- package/dist/{bounded-turn-B7iBUcuP.js → bounded-turn-DxGJRYbY.js} +53 -57
- package/dist/{capabilities-BRMh0aIq.js → capabilities-B1mgvpP8.js} +2 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/{command-formatters-DEsIufkt.js → command-formatters-DSbGMXA0.js} +5 -4
- package/dist/{command-handlers-D_-1_qRp.js → command-handlers-DOJvGv6-.js} +243 -148
- package/dist/{compact-BglNFZrQ.js → compact-Y_xBqrHN.js} +109 -65
- package/dist/{config-giW8X0QA.js → config-CyapYSji.js} +328 -374
- package/dist/config-utils-C57JiJrU.js +69 -0
- package/dist/{context-compaction-activity-BOeJf7yo.js → context-compaction-activity-CMla5FPJ.js} +4 -1
- package/dist/{conversation-binding-data-CW2GuupV.js → conversation-binding-data-BiodpIzq.js} +2 -1
- package/dist/doctor-contract-api.js +144 -14
- package/dist/{dynamic-tools-Dnlfa--w.js → dynamic-tools-BwpvTxaX.js} +1119 -1135
- package/dist/{effective-mcp-catalog-CTeGrnfO.js → effective-mcp-catalog-CY9Jn4bA.js} +4 -3
- package/dist/{event-projector-assistant-message-C5-Ds8mA.js → event-projector-assistant-message-B9kp6iGC.js} +15 -6
- package/dist/event-projector-usage-ZqEVbAEY.js +212 -0
- package/dist/{harness-Csz0F-DK.js → harness-Czh2Sdoc.js} +65 -52
- package/dist/harness.js +1 -1
- package/dist/{image-payload-sanitizer-CnfoUPCE.js → image-payload-sanitizer-tupAr-2o.js} +29 -15
- package/dist/index.js +495 -457
- package/dist/{isolated-completion-Cv6FqygM.js → isolated-completion-CRh-51AK.js} +9 -21
- package/dist/{managed-binary-DFYK4DWq.js → managed-binary-DcpnJF9x.js} +117 -80
- package/dist/media-understanding-provider.js +1 -1
- package/dist/model-catalog-DT5vo6qo.js +101 -0
- package/dist/{models-TS3HBU-q.js → models-CcrgSMQR.js} +26 -29
- package/dist/{native-subagent-monitor-4Mfq2HDs.js → native-subagent-monitor-B3bvQGcg.js} +63 -122
- package/dist/{node-exec-server.runtime-BpWqJO1V.js → node-exec-server.runtime-nfbUOtUB.js} +10 -7
- package/dist/{plugin-approval-roundtrip-bUm777tR.js → plugin-approval-roundtrip-aQVdyL5g.js} +30 -3
- package/dist/{plugin-marketplace-discovery-B9DvaAG-.js → plugin-marketplace-discovery-B7gHXJ3d.js} +44 -30
- package/dist/{plugin-metadata-cache-CTCT3w5L.js → plugin-metadata-cache-BwCLTY_U.js} +6 -6
- package/dist/provider-capabilities-BpG9Ltc5.js +101 -0
- package/dist/{rate-limits-C5_D8Gmb.js → rate-limits-Fx_l4eNa.js} +3 -2
- package/dist/{sandbox-guard-kuWTn9C5.js → request-C8H22rPi.js} +195 -2
- package/dist/{run-attempt-DYc0QCBF.js → run-attempt-BzthFQSM.js} +1616 -2634
- package/dist/{runtime-artifact-BvyT1uyd.js → runtime-artifact-Bh_gf6-t.js} +22 -15
- package/dist/{session-binding-Bcynfd-_.js → session-binding-4Ki04sW-.js} +282 -399
- package/dist/session-binding-record-CyaXZvTe.js +270 -0
- package/dist/{session-catalog-DaLKVtpH.js → session-catalog-B47uwekb.js} +812 -504
- package/dist/{session-cli-DMc4oS2w.js → session-cli-BjLhpmS1.js} +1 -1
- package/dist/session-history-DWmMqiqW.js +93 -0
- package/dist/session-history-read-LHldwvyh.js +36 -0
- package/dist/session-history-worker-runtime.js +48 -0
- package/dist/session-history.worker-zZVcx0ME.js +267 -0
- package/dist/session-history.worker.js +2 -0
- package/dist/session-initialization-BCFVnLL4.js +75 -0
- package/dist/{session-permission-policy-BrNH1bjy.js → session-permission-policy-BaueHmSj.js} +2 -2
- package/dist/session-retirement-DNdmYdFc.js +97 -0
- package/dist/{session-upstream-marker-BIkusb95.js → session-upstream-marker-DReTpGz6.js} +20 -4
- package/dist/settled-turn-context-BOM3Y1pl.js +45 -0
- package/dist/settled-turn-finalizer-BI-b1sry.js +115 -0
- package/dist/{shared-client-DKz23hHY.js → shared-client-CKhX2kFt.js} +3659 -847
- package/dist/{side-question-DjA_jsNe.js → side-question-B6DWAw1A.js} +168 -81
- package/dist/{thread-lifecycle-L7oEkTlq.js → thread-lifecycle-DPK30jad.js} +2412 -2145
- package/dist/{thread-ownership-DZeuKH1j.js → thread-ownership-CbucAmmp.js} +27 -16
- package/dist/thread-policy-CTalhWFy.js +105 -0
- package/dist/{plugin-app-cache-key-C1CAdfcP.js → thread-resume-BLgqkUc1.js} +61 -9
- package/dist/{transcript-mirror-DsCMWBca.js → transcript-mirror-_njEB84z.js} +114 -110
- package/dist/transcript-mirror-attestation-Byl34PC-.js +76 -0
- package/dist/transport-stdio-CzTngV0j.js +728 -0
- package/dist/{upstream-prompt-provenance-CFmsKwr9.js → upstream-prompt-provenance-LphB8slG.js} +8 -4
- package/dist/upstream-session-fork-1fwbNKzQ.js +886 -0
- package/dist/{usage-ROIaW3wo.js → usage-i9fv5-4m.js} +3 -3
- package/dist/{web-search-provider.runtime-ClaNPV7N.js → web-search-provider.runtime-DKQn67A7.js} +3 -3
- package/openclaw.plugin.json +1 -30
- package/package.json +6 -6
- package/dist/binding-connection-BMvPX73o.js +0 -45
- package/dist/command-rpc-CCeCkf_v.js +0 -90
- package/dist/event-projector-usage-Bk1I90Bg.js +0 -328
- package/dist/incognito-session-ET_ufDH-.js +0 -2
- package/dist/model-catalog-i9rNBthX.js +0 -48
- package/dist/protocol-validators-VeJxxJ0U.js +0 -2421
- package/dist/request-DXXGHko0.js +0 -157
- package/dist/session-catalog-home-id-BNwAJ9D7.js +0 -18
- package/dist/session-retirement-CcNC3YSY.js +0 -36
- package/dist/settled-turn-finalizer-Dc3ApjU4.js +0 -328
- package/dist/thread-resume-BE9qNEW0.js +0 -30
- package/dist/transport-stdio-DhoGy33Z.js +0 -99
- package/dist/upstream-session-fork-DlaHxSLC.js +0 -326
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { i as resolveCodexAppServerRuntimeOptions } from "./config-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { r as readModelListResult } from "./models-
|
|
7
|
-
import {
|
|
1
|
+
import { B as isJsonObject, i as resolveCodexAppServerRuntimeOptions } from "./config-CyapYSji.js";
|
|
2
|
+
import { at as readCodexErrorNotification, ct as createCodexElicitationResponse, nt as assertCodexThreadStartResponse, rt as assertCodexTurnStartResponse, st as readCodexTurnCompletedNotification, u as isCodexAppServerStartSelectionChangedError } from "./shared-client-CKhX2kFt.js";
|
|
3
|
+
import { m as readCodexAppServerConfigOptions } from "./managed-binary-DcpnJF9x.js";
|
|
4
|
+
import { _ as readCodexNotificationTurnId, a as closeCodexStartupClientBestEffort, o as interruptCodexTurnAndWaitBestEffort, t as CODEX_APP_SERVER_INTERRUPT_TIMEOUT_MS } from "./attempt-client-cleanup-Bp1ZOnk2.js";
|
|
5
|
+
import { c as isRetryableErrorNotification, l as isTerminalTurnStatus, t as CodexUsageProjection, u as readCodexNotificationItem } from "./event-projector-usage-ZqEVbAEY.js";
|
|
6
|
+
import { r as readModelListResult } from "./models-CcrgSMQR.js";
|
|
7
|
+
import { Et as mergeCodexThreadConfigs, G as attestCodexRestrictedToolSurfaceMcpServersDisabled, _ as buildCodexRingZeroThreadConfigPatch, b as readCodexInheritedMcpServerNames, g as assertCodexManagedRequirementsDoNotOverrideToolPolicy, v as buildCodexRuntimeThreadConfig } from "./thread-lifecycle-DPK30jad.js";
|
|
8
8
|
import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
9
|
+
import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
|
9
10
|
import fs from "node:fs/promises";
|
|
10
11
|
import path from "node:path";
|
|
11
12
|
import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
|
|
12
|
-
import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
|
13
13
|
import { resolvePreferredOpenClawTmpDir, withTempWorkspace } from "openclaw/plugin-sdk/temp-path";
|
|
14
14
|
//#region extensions/codex/src/app-server/bounded-turn.ts
|
|
15
15
|
const CODEX_APP_SERVER_ARGS_ENV_KEY = "OPENCLAW_CODEX_APP_SERVER_ARGS";
|
|
@@ -39,6 +39,7 @@ var CodexBoundedTurnTimeoutError = class extends Error {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
async function runBoundedCodexAppServerTurn(params) {
|
|
42
|
+
params.assertCurrent?.();
|
|
42
43
|
const appServer = resolveCodexAppServerRuntimeOptions({
|
|
43
44
|
pluginConfig: params.options.pluginConfig,
|
|
44
45
|
managedCommandOrder: params.isolation === "private-stdio" ? "package-first" : void 0
|
|
@@ -64,31 +65,23 @@ async function runBoundedCodexAppServerTurnInWorkspace(params, appServer, worksp
|
|
|
64
65
|
const deadline = timing?.deadline ?? Date.now() + totalTimeoutMs;
|
|
65
66
|
const timeoutMs = deadline - Date.now();
|
|
66
67
|
if (timeoutMs <= 0) throw timeoutError;
|
|
68
|
+
params.assertCurrent?.();
|
|
67
69
|
const agentDir = params.agentDir?.trim() || void 0;
|
|
68
|
-
const
|
|
69
|
-
const startOptions = workspace.codexHome && params.preparedAuth ? {
|
|
70
|
-
...isolatedStartOptions,
|
|
71
|
-
homeScope: "agent"
|
|
72
|
-
} : isolatedStartOptions;
|
|
70
|
+
const startOptions = workspace.codexHome ? buildPrivateCodexAppServerStartOptions(appServer.start, workspace.codexHome) : appServer.start;
|
|
73
71
|
const ownsClient = !params.options.clientFactory;
|
|
74
|
-
const
|
|
75
|
-
const client = params.options.clientFactory ? await params.options.clientFactory({
|
|
72
|
+
const clientOptions = {
|
|
76
73
|
startOptions,
|
|
77
|
-
...
|
|
74
|
+
...params.preparedAuth ? { preparedAuth: params.preparedAuth } : { authProfileId: params.profile },
|
|
78
75
|
authRequirement: params.authRequirement,
|
|
79
76
|
agentDir,
|
|
80
77
|
config: params.config,
|
|
81
78
|
timeoutMs,
|
|
79
|
+
assertCurrent: params.assertCurrent,
|
|
82
80
|
...params.signal ? { abandonSignal: params.signal } : {}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
authRequirement: params.authRequirement,
|
|
88
|
-
agentDir,
|
|
89
|
-
authProfileStore: params.authProfileStore,
|
|
90
|
-
config: params.config,
|
|
91
|
-
...params.signal ? { abandonSignal: params.signal } : {}
|
|
81
|
+
};
|
|
82
|
+
const client = params.options.clientFactory ? await params.options.clientFactory(clientOptions) : await import("./shared-client-CKhX2kFt.js").then((n) => n.x).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
|
|
83
|
+
...clientOptions,
|
|
84
|
+
authProfileStore: params.authProfileStore
|
|
92
85
|
}));
|
|
93
86
|
const abortController = new AbortController();
|
|
94
87
|
let activeThreadId;
|
|
@@ -114,17 +107,23 @@ async function runBoundedCodexAppServerTurnInWorkspace(params, appServer, worksp
|
|
|
114
107
|
const timeout = setTimeout(() => abortRun(timeoutError), Math.max(1, remainingRunMs));
|
|
115
108
|
timeout.unref?.();
|
|
116
109
|
let retrySelection = false;
|
|
110
|
+
const requestOptions = {
|
|
111
|
+
timeoutMs,
|
|
112
|
+
signal: abortController.signal,
|
|
113
|
+
assertCurrent: params.assertCurrent
|
|
114
|
+
};
|
|
117
115
|
try {
|
|
116
|
+
params.assertCurrent?.();
|
|
118
117
|
const modelSelection = await resolveCodexBoundedTurnModel({
|
|
119
118
|
client,
|
|
120
119
|
selection: params.model,
|
|
121
120
|
requiredModalities: params.requiredModalities,
|
|
122
|
-
|
|
123
|
-
signal: abortController.signal
|
|
121
|
+
...requestOptions
|
|
124
122
|
});
|
|
125
123
|
const inheritedMcpServerNames = params.requireNoExternalCapabilities ? await readCodexInheritedMcpServerNames(client, workspace.cwd, abortController.signal) : [];
|
|
126
124
|
if (params.requireNoExternalCapabilities) await assertCodexManagedRequirementsDoNotOverrideToolPolicy(client, { restrictedToolSurface: true }, abortController.signal);
|
|
127
125
|
const threadConfig = buildCodexRuntimeThreadConfig(resolveBoundedThreadConfig(params, workspace, inheritedMcpServerNames), { nativeCodeModeEnabled: false });
|
|
126
|
+
params.assertCurrent?.();
|
|
128
127
|
const thread = assertCodexThreadStartResponse(await client.request("thread/start", {
|
|
129
128
|
model: modelSelection.runtimeModelId,
|
|
130
129
|
...params.modelProvider ? { modelProvider: params.modelProvider } : {},
|
|
@@ -139,20 +138,15 @@ async function runBoundedCodexAppServerTurnInWorkspace(params, appServer, worksp
|
|
|
139
138
|
dynamicTools: [],
|
|
140
139
|
experimentalRawEvents: true,
|
|
141
140
|
ephemeral: true
|
|
142
|
-
},
|
|
143
|
-
timeoutMs,
|
|
144
|
-
signal: abortController.signal
|
|
145
|
-
}));
|
|
141
|
+
}, requestOptions));
|
|
146
142
|
activeThreadId = thread.thread.id;
|
|
147
143
|
if (abortController.signal.aborted) requestInterrupt();
|
|
148
144
|
if (params.requireNoExternalCapabilities) await attestCodexRestrictedToolSurfaceMcpServersDisabled(client, thread.thread.id, threadConfig, abortController.signal);
|
|
149
145
|
if (params.historyItems?.length) await client.request("thread/inject_items", {
|
|
150
146
|
threadId: thread.thread.id,
|
|
151
147
|
items: params.historyItems
|
|
152
|
-
},
|
|
153
|
-
|
|
154
|
-
signal: abortController.signal
|
|
155
|
-
});
|
|
148
|
+
}, requestOptions);
|
|
149
|
+
params.assertCurrent?.();
|
|
156
150
|
const collector = createCodexBoundedTurnCollector(thread.thread.id, params.taskLabel, params.allowEmptyText === true);
|
|
157
151
|
const cleanup = client.addNotificationHandler(collector.handleNotification);
|
|
158
152
|
const requestCleanup = client.addRequestHandler(createCodexBoundedApprovalHandler(params.taskLabel));
|
|
@@ -161,20 +155,22 @@ async function runBoundedCodexAppServerTurnInWorkspace(params, appServer, worksp
|
|
|
161
155
|
threadId: thread.thread.id,
|
|
162
156
|
input: params.input,
|
|
163
157
|
approvalPolicy: "on-request",
|
|
164
|
-
model: modelSelection.runtimeModelId,
|
|
165
158
|
effort: "low"
|
|
166
|
-
},
|
|
167
|
-
timeoutMs,
|
|
168
|
-
signal: abortController.signal
|
|
169
|
-
}));
|
|
159
|
+
}, requestOptions));
|
|
170
160
|
activeTurnId = turn.turn.id;
|
|
171
161
|
if (abortController.signal.aborted) requestInterrupt();
|
|
162
|
+
const result = await collector.collect(turn.turn, {
|
|
163
|
+
signal: abortController.signal,
|
|
164
|
+
timeoutError
|
|
165
|
+
});
|
|
166
|
+
params.assertCurrent?.();
|
|
172
167
|
return {
|
|
173
|
-
...
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
168
|
+
...result,
|
|
169
|
+
model: modelSelection.catalogId,
|
|
170
|
+
nativeSelection: {
|
|
171
|
+
model: thread.model,
|
|
172
|
+
modelProvider: thread.modelProvider
|
|
173
|
+
}
|
|
178
174
|
};
|
|
179
175
|
} finally {
|
|
180
176
|
await interruptPromise;
|
|
@@ -204,10 +200,7 @@ function resolveBoundedThreadConfig(params, workspace, inheritedMcpServerNames)
|
|
|
204
200
|
return mergeCodexThreadConfigs(privateConfig, CODEX_SETTLED_FINALIZER_THREAD_CONFIG, buildCodexRingZeroThreadConfigPatch({ toolsAllow: ["openclaw"] }, true, inheritedMcpServerNames)) ?? privateConfig;
|
|
205
201
|
}
|
|
206
202
|
function buildPrivateCodexAppServerStartOptions(start, codexHome) {
|
|
207
|
-
const providerArgs = start.args.flatMap((
|
|
208
|
-
const override = arg === "-c" || arg === "--config" ? start.args[index + 1] : arg.startsWith("--config=") ? arg.slice(9) : void 0;
|
|
209
|
-
return override && /^\s*(?:openai_base_url|model_catalog_json)\s*=/u.test(override) ? ["-c", override] : [];
|
|
210
|
-
});
|
|
203
|
+
const providerArgs = readCodexAppServerConfigOptions(start.args).flatMap(({ name, value }) => (name === "-c" || name === "--config") && value && /^\s*(?:openai_base_url|model_catalog_json)\s*=/u.test(value) ? ["-c", value] : []);
|
|
211
204
|
const privateEnv = Object.fromEntries(Object.entries(start.env ?? {}).filter(([name]) => name.trim().toUpperCase() !== CODEX_APP_SERVER_ARGS_ENV_KEY));
|
|
212
205
|
const clearEnv = (start.clearEnv ?? []).filter((name) => {
|
|
213
206
|
const normalized = name.trim().toUpperCase();
|
|
@@ -215,6 +208,7 @@ function buildPrivateCodexAppServerStartOptions(start, codexHome) {
|
|
|
215
208
|
});
|
|
216
209
|
return {
|
|
217
210
|
...start,
|
|
211
|
+
homeScope: "agent",
|
|
218
212
|
args: [
|
|
219
213
|
"app-server",
|
|
220
214
|
...providerArgs,
|
|
@@ -246,14 +240,16 @@ function createCodexBoundedApprovalHandler(taskLabel) {
|
|
|
246
240
|
};
|
|
247
241
|
}
|
|
248
242
|
async function resolveCodexBoundedTurnModel(params) {
|
|
249
|
-
const
|
|
243
|
+
const result = await params.client.request("model/list", {
|
|
250
244
|
limit: null,
|
|
251
245
|
cursor: null,
|
|
252
|
-
includeHidden:
|
|
246
|
+
includeHidden: params.selection.mode === "required"
|
|
253
247
|
}, {
|
|
254
248
|
timeoutMs: Math.min(params.timeoutMs, 5e3),
|
|
255
|
-
signal: params.signal
|
|
256
|
-
|
|
249
|
+
signal: params.signal,
|
|
250
|
+
assertCurrent: params.assertCurrent
|
|
251
|
+
});
|
|
252
|
+
const listed = readModelListResult(result).models;
|
|
257
253
|
if (params.selection.mode === "live-default") {
|
|
258
254
|
const supported = listed.filter((entry) => params.requiredModalities.every((modality) => entry.inputModalities.includes(modality)));
|
|
259
255
|
const selected = supported.find((entry) => entry.isDefault) ?? supported[0];
|
|
@@ -277,7 +273,7 @@ function createCodexBoundedTurnCollector(threadId, taskLabel, allowEmptyText) {
|
|
|
277
273
|
let turnId;
|
|
278
274
|
let completedTurn;
|
|
279
275
|
let promptError;
|
|
280
|
-
|
|
276
|
+
const usageProjection = new CodexUsageProjection();
|
|
281
277
|
const pending = [];
|
|
282
278
|
const completedItems = /* @__PURE__ */ new Map();
|
|
283
279
|
const assistantTextByItem = /* @__PURE__ */ new Map();
|
|
@@ -311,8 +307,7 @@ function createCodexBoundedTurnCollector(threadId, taskLabel, allowEmptyText) {
|
|
|
311
307
|
return;
|
|
312
308
|
}
|
|
313
309
|
if (notification.method === "rawResponse/completed") {
|
|
314
|
-
|
|
315
|
-
responseUsage = usage ? normalizeCodexResponseTokenUsage(usage) : void 0;
|
|
310
|
+
usageProjection.record(params);
|
|
316
311
|
return;
|
|
317
312
|
}
|
|
318
313
|
if (notification.method === "turn/completed") {
|
|
@@ -321,6 +316,7 @@ function createCodexBoundedTurnCollector(threadId, taskLabel, allowEmptyText) {
|
|
|
321
316
|
return;
|
|
322
317
|
}
|
|
323
318
|
if (notification.method === "error") {
|
|
319
|
+
usageProjection.invalidateContext();
|
|
324
320
|
if (isRetryableErrorNotification(notification.params)) return;
|
|
325
321
|
promptError = readCodexErrorNotification(notification.params)?.error.message ?? `codex app-server ${taskLabel} turn failed`;
|
|
326
322
|
resolveCompletion();
|
|
@@ -349,7 +345,7 @@ function createCodexBoundedTurnCollector(threadId, taskLabel, allowEmptyText) {
|
|
|
349
345
|
return {
|
|
350
346
|
text,
|
|
351
347
|
items,
|
|
352
|
-
|
|
348
|
+
usage: usageProjection.usage
|
|
353
349
|
};
|
|
354
350
|
}
|
|
355
351
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { q as CodexAppServerRpcError } from "./shared-client-CKhX2kFt.js";
|
|
2
2
|
//#region extensions/codex/src/app-server/capabilities.ts
|
|
3
3
|
/**
|
|
4
4
|
* Capability helpers for optional Codex app-server control-plane methods.
|
|
@@ -17,6 +17,7 @@ const CODEX_CONTROL_METHODS = {
|
|
|
17
17
|
listSkills: "skills/list",
|
|
18
18
|
listThreads: "thread/list",
|
|
19
19
|
listThreadTurns: "thread/turns/list",
|
|
20
|
+
listThreadItems: "thread/items/list",
|
|
20
21
|
readThread: "thread/read",
|
|
21
22
|
rateLimits: "account/rateLimits/read",
|
|
22
23
|
archiveThread: "thread/archive",
|
package/dist/cli-metadata.js
CHANGED
|
@@ -2,7 +2,7 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
|
2
2
|
//#region extensions/codex/cli-metadata.ts
|
|
3
3
|
function registerCodexCliMetadata(api) {
|
|
4
4
|
api.registerCli(async ({ program }) => {
|
|
5
|
-
const { registerCodexSessionCli } = await import("./session-cli-
|
|
5
|
+
const { registerCodexSessionCli } = await import("./session-cli-BjLhpmS1.js");
|
|
6
6
|
registerCodexSessionCli(program);
|
|
7
7
|
}, { descriptors: [{
|
|
8
8
|
name: "codex",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as summarizeCodexRateLimits, o as summarizeCodexAccountRateLimits, r as hasCodexRateLimitSnapshots } from "./rate-limits-
|
|
1
|
+
import { B as isJsonObject } from "./config-CyapYSji.js";
|
|
2
|
+
import { c as summarizeCodexRateLimits, o as summarizeCodexAccountRateLimits, r as hasCodexRateLimitSnapshots } from "./rate-limits-Fx_l4eNa.js";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
//#region extensions/codex/src/command-formatters.ts
|
|
5
5
|
/**
|
|
@@ -118,7 +118,8 @@ function formatSkills(response) {
|
|
|
118
118
|
return lines.join("\n");
|
|
119
119
|
}
|
|
120
120
|
function formatCodexSkillEntry(entry) {
|
|
121
|
-
|
|
121
|
+
const record = isJsonObject(entry) ? entry : {};
|
|
122
|
+
return `\`${formatCodexDisplayText(normalizeOptionalString(record.name) ?? "<unknown>")}\``;
|
|
122
123
|
}
|
|
123
124
|
const CODEX_RESUME_SAFE_THREAD_ID_PATTERN = /^[A-Za-z0-9._:-]+$/;
|
|
124
125
|
function formatCodexResumeHint(threadId) {
|
|
@@ -278,4 +279,4 @@ function extractArray(value) {
|
|
|
278
279
|
return [];
|
|
279
280
|
}
|
|
280
281
|
//#endregion
|
|
281
|
-
export {
|
|
282
|
+
export { formatCodexDisplayText as a, formatComputerUseStatus as c, formatSkills as d, formatThreads as f, formatAccount as i, formatList as l, buildHelp as n, formatCodexStatus as o, escapeCodexChatText as r, formatCodexTextForDisplay as s, CODEX_RESUME_SAFE_THREAD_ID_PATTERN as t, formatModels as u };
|