@openclaw/codex 2026.5.16-beta.1 → 2026.5.16-beta.3

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.
Files changed (23) hide show
  1. package/dist/{client-CoctX13d.js → client-CA7amCZ8.js} +1 -1
  2. package/dist/{client-factory-Be6RD28K.js → client-factory-DwzPofwS.js} +1 -1
  3. package/dist/{command-handlers-CbJPJwK_.js → command-handlers-C4F8BChC.js} +6 -6
  4. package/dist/{compact-CKWfgifa.js → compact-96QPqIAu.js} +97 -3
  5. package/dist/{computer-use-DsJxRRtm.js → computer-use-BX02ojP4.js} +2 -2
  6. package/dist/{config-0rd3LnKg.js → config-3ATInASk.js} +7 -1
  7. package/dist/harness.js +9 -6
  8. package/dist/index.js +6 -6
  9. package/dist/media-understanding-provider.js +4 -4
  10. package/dist/{models-GCYf5s8J.js → models-BZLMz9WS.js} +2 -2
  11. package/dist/{node-cli-sessions-xstpFJmx.js → node-cli-sessions-BLDFnUEF.js} +4 -4
  12. package/dist/{plugin-activation-aQOmRQwA.js → plugin-activation-BDU4e-NA.js} +1 -1
  13. package/dist/{protocol-validators-CSY0BFBo.js → protocol-validators-BGBspNmF.js} +12 -40
  14. package/dist/provider.js +2 -2
  15. package/dist/{request-CKYiRqsN.js → request-Czoa60Nt.js} +3 -3
  16. package/dist/{run-attempt-frGYsF9Y.js → run-attempt-B3nk5oT1.js} +501 -89
  17. package/dist/{session-binding-CMTXuyoz.js → session-binding-DbdVqMzW.js} +14 -2
  18. package/dist/{shared-client-BwUqd3lh.js → shared-client-CnbrvEfV.js} +2 -2
  19. package/dist/{side-question-CDcvaIKA.js → side-question-D3nH-Jk1.js} +7 -7
  20. package/dist/test-api.js +2 -2
  21. package/dist/{thread-lifecycle-BzY-GLGu.js → thread-lifecycle-D2sxRPdz.js} +157 -36
  22. package/dist/{vision-tools-CyhFwJIY.js → vision-tools-Cm_YicZb.js} +106 -6
  23. package/package.json +4 -4
@@ -1,4 +1,4 @@
1
- import { s as resolveCodexAppServerRuntimeOptions } from "./config-0rd3LnKg.js";
1
+ import { c as resolveCodexAppServerRuntimeOptions } from "./config-3ATInASk.js";
2
2
  import { n as isRpcResponse } from "./protocol-C9UWI98H.js";
3
3
  import { createInterface } from "node:readline";
4
4
  import { OPENCLAW_VERSION, embeddedAgentLog } from "openclaw/plugin-sdk/agent-harness-runtime";
@@ -1,5 +1,5 @@
1
1
  //#region extensions/codex/src/app-server/client-factory.ts
2
- const defaultCodexAppServerClientFactory = (startOptions, authProfileId, agentDir, config) => import("./shared-client-BwUqd3lh.js").then((n) => n.a).then(({ getSharedCodexAppServerClient }) => getSharedCodexAppServerClient({
2
+ const defaultCodexAppServerClientFactory = (startOptions, authProfileId, agentDir, config) => import("./shared-client-CnbrvEfV.js").then((n) => n.a).then(({ getSharedCodexAppServerClient }) => getSharedCodexAppServerClient({
3
3
  startOptions,
4
4
  authProfileId,
5
5
  agentDir,
@@ -1,11 +1,11 @@
1
- import { i as isCodexFastServiceTier, s as resolveCodexAppServerRuntimeOptions } from "./config-0rd3LnKg.js";
2
- import { n as listCodexAppServerModels, t as listAllCodexAppServerModels } from "./models-GCYf5s8J.js";
1
+ import { a as isCodexFastServiceTier, c as resolveCodexAppServerRuntimeOptions } from "./config-3ATInASk.js";
2
+ import { n as listCodexAppServerModels, t as listAllCodexAppServerModels } from "./models-BZLMz9WS.js";
3
3
  import { t as isJsonObject } from "./protocol-C9UWI98H.js";
4
- import { i as describeControlFailure, r as CODEX_CONTROL_METHODS, t as requestCodexAppServerJson } from "./request-CKYiRqsN.js";
4
+ import { i as describeControlFailure, r as CODEX_CONTROL_METHODS, t as requestCodexAppServerJson } from "./request-Czoa60Nt.js";
5
5
  import { a as formatComputerUseStatus, c as formatThreads, i as formatCodexStatus, l as readString$1, n as formatAccount, o as formatList, p as summarizeCodexAccountUsage, r as formatCodexDisplayText, s as formatModels, t as buildHelp } from "./command-formatters-BRW7_Nu7.js";
6
- import { i as readCodexAppServerBinding, o as writeCodexAppServerBinding, t as clearCodexAppServerBinding } from "./session-binding-CMTXuyoz.js";
7
- import { _ as steerCodexConversationTurn, b as readCodexConversationBindingData, d as parseCodexFastModeArg, f as parseCodexPermissionsModeArg, g as setCodexConversationPermissions, h as setCodexConversationModel, l as startCodexConversationThread, m as setCodexConversationFastMode, p as readCodexConversationActiveTurn, r as formatCodexCliSessions, u as formatPermissionsMode, v as stopCodexConversationTurn, x as resolveCodexDefaultWorkspaceDir, y as createCodexCliNodeConversationBindingData } from "./node-cli-sessions-xstpFJmx.js";
8
- import { n as installCodexComputerUse, r as readCodexComputerUseStatus } from "./computer-use-DsJxRRtm.js";
6
+ import { i as readCodexAppServerBinding, o as writeCodexAppServerBinding, t as clearCodexAppServerBinding } from "./session-binding-DbdVqMzW.js";
7
+ import { _ as steerCodexConversationTurn, b as readCodexConversationBindingData, d as parseCodexFastModeArg, f as parseCodexPermissionsModeArg, g as setCodexConversationPermissions, h as setCodexConversationModel, l as startCodexConversationThread, m as setCodexConversationFastMode, p as readCodexConversationActiveTurn, r as formatCodexCliSessions, u as formatPermissionsMode, v as stopCodexConversationTurn, x as resolveCodexDefaultWorkspaceDir, y as createCodexCliNodeConversationBindingData } from "./node-cli-sessions-BLDFnUEF.js";
8
+ import { n as installCodexComputerUse, r as readCodexComputerUseStatus } from "./computer-use-BX02ojP4.js";
9
9
  import { n as rememberCodexRateLimits } from "./rate-limit-cache-dvhq-4pi.js";
10
10
  import crypto from "node:crypto";
11
11
  import { ensureAuthProfileStore, findNormalizedProviderValue, resolveAuthProfileEligibility, resolveAuthProfileOrder, resolveDefaultAgentDir, resolveProfileUnusableUntilForDisplay } from "openclaw/plugin-sdk/agent-runtime";
@@ -1,13 +1,14 @@
1
- import { s as resolveCodexAppServerRuntimeOptions } from "./config-0rd3LnKg.js";
1
+ import { c as resolveCodexAppServerRuntimeOptions } from "./config-3ATInASk.js";
2
2
  import { t as isJsonObject } from "./protocol-C9UWI98H.js";
3
- import { i as readCodexAppServerBinding } from "./session-binding-CMTXuyoz.js";
4
- import { t as defaultCodexAppServerClientFactory } from "./client-factory-Be6RD28K.js";
3
+ import { i as readCodexAppServerBinding, t as clearCodexAppServerBinding } from "./session-binding-DbdVqMzW.js";
4
+ import { t as defaultCodexAppServerClientFactory } from "./client-factory-DwzPofwS.js";
5
5
  import { embeddedAgentLog, formatErrorMessage, isActiveHarnessContextEngine, resolveContextEngineOwnerPluginId, runHarnessContextEngineMaintenance } from "openclaw/plugin-sdk/agent-harness-runtime";
6
6
  //#region extensions/codex/src/app-server/compact.ts
7
7
  const DEFAULT_CODEX_COMPACTION_WAIT_TIMEOUT_MS = 300 * 1e3;
8
8
  const warnedIgnoredCompactionOverrides = /* @__PURE__ */ new Set();
9
9
  async function maybeCompactCodexAppServerSession(params, options = {}) {
10
10
  const activeContextEngine = isActiveHarnessContextEngine(params.contextEngine) ? params.contextEngine : void 0;
11
+ if (activeContextEngine?.info.ownsCompaction) return await compactOwningContextEngine(params, activeContextEngine);
11
12
  warnIfIgnoringOpenClawCompactionOverrides(params);
12
13
  const nativeResult = await compactCodexNativeThread(params, options);
13
14
  if (activeContextEngine && nativeResult?.ok && nativeResult.compacted) try {
@@ -29,6 +30,99 @@ async function maybeCompactCodexAppServerSession(params, options = {}) {
29
30
  }
30
31
  return nativeResult;
31
32
  }
33
+ async function compactOwningContextEngine(params, contextEngine) {
34
+ embeddedAgentLog.info("starting context-engine-owned Codex app-server compaction", {
35
+ sessionId: params.sessionId,
36
+ sessionKey: params.sessionKey,
37
+ engineId: contextEngine.info.id,
38
+ tokenBudget: params.contextTokenBudget,
39
+ currentTokenCount: params.currentTokenCount,
40
+ trigger: params.trigger,
41
+ compactionTarget: params.trigger === "manual" ? "threshold" : "budget",
42
+ force: params.trigger === "manual"
43
+ });
44
+ let result;
45
+ try {
46
+ result = await contextEngine.compact({
47
+ sessionId: params.sessionId,
48
+ sessionKey: params.sessionKey,
49
+ sessionFile: params.sessionFile,
50
+ tokenBudget: params.contextTokenBudget,
51
+ currentTokenCount: params.currentTokenCount,
52
+ compactionTarget: params.trigger === "manual" ? "threshold" : "budget",
53
+ customInstructions: params.customInstructions,
54
+ force: params.trigger === "manual",
55
+ runtimeContext: params.contextEngineRuntimeContext
56
+ });
57
+ } catch (error) {
58
+ embeddedAgentLog.warn("context-engine-owned Codex app-server compaction failed", {
59
+ sessionId: params.sessionId,
60
+ sessionKey: params.sessionKey,
61
+ engineId: contextEngine.info.id,
62
+ error: formatErrorMessage(error)
63
+ });
64
+ return {
65
+ ok: false,
66
+ compacted: false,
67
+ reason: `context engine compaction failed: ${formatErrorMessage(error)}`
68
+ };
69
+ }
70
+ if (result.ok && result.compacted) {
71
+ const compactedSessionId = result.result?.sessionId ?? params.sessionId;
72
+ const compactedSessionFile = result.result?.sessionFile ?? params.sessionFile;
73
+ try {
74
+ await runHarnessContextEngineMaintenance({
75
+ contextEngine,
76
+ sessionId: compactedSessionId,
77
+ sessionKey: params.sessionKey,
78
+ sessionFile: compactedSessionFile,
79
+ reason: "compaction",
80
+ runtimeContext: params.contextEngineRuntimeContext,
81
+ config: params.config
82
+ });
83
+ } catch (error) {
84
+ embeddedAgentLog.warn("context engine compaction maintenance failed", {
85
+ sessionId: compactedSessionId,
86
+ engineId: contextEngine.info.id,
87
+ error: formatErrorMessage(error)
88
+ });
89
+ }
90
+ await clearCodexAppServerBinding(params.sessionFile);
91
+ if (compactedSessionFile !== params.sessionFile) await clearCodexAppServerBinding(compactedSessionFile);
92
+ }
93
+ embeddedAgentLog.info("completed context-engine-owned Codex app-server compaction", {
94
+ sessionId: params.sessionId,
95
+ sessionKey: params.sessionKey,
96
+ engineId: contextEngine.info.id,
97
+ ok: result.ok,
98
+ compacted: result.compacted,
99
+ reason: result.reason,
100
+ codexThreadBindingInvalidated: result.ok && result.compacted
101
+ });
102
+ return {
103
+ ok: result.ok,
104
+ compacted: result.compacted,
105
+ reason: result.reason,
106
+ result: result.result ? {
107
+ ...result.result,
108
+ summary: result.result.summary ?? "",
109
+ firstKeptEntryId: result.result.firstKeptEntryId ?? "",
110
+ details: mergeContextEngineCompactionDetails(result.result.details, { codexThreadBindingInvalidated: result.ok && result.compacted })
111
+ } : result.ok && result.compacted ? {
112
+ summary: "",
113
+ firstKeptEntryId: "",
114
+ tokensBefore: params.currentTokenCount ?? 0,
115
+ details: { codexThreadBindingInvalidated: true }
116
+ } : void 0
117
+ };
118
+ }
119
+ function mergeContextEngineCompactionDetails(details, extra) {
120
+ if (details && typeof details === "object" && !Array.isArray(details)) return {
121
+ ...details,
122
+ ...extra
123
+ };
124
+ return extra;
125
+ }
32
126
  function warnIfIgnoringOpenClawCompactionOverrides(params) {
33
127
  const ignoredConfig = readIgnoredCompactionOverridePaths(params, isActiveHarnessContextEngine(params.contextEngine) ? params.contextEngine : void 0);
34
128
  if (ignoredConfig.length === 0) return;
@@ -1,5 +1,5 @@
1
- import { c as resolveCodexComputerUseConfig, s as resolveCodexAppServerRuntimeOptions } from "./config-0rd3LnKg.js";
2
- import { i as describeControlFailure, t as requestCodexAppServerJson } from "./request-CKYiRqsN.js";
1
+ import { c as resolveCodexAppServerRuntimeOptions, l as resolveCodexComputerUseConfig } from "./config-3ATInASk.js";
2
+ import { i as describeControlFailure, t as requestCodexAppServerJson } from "./request-Czoa60Nt.js";
3
3
  import { existsSync } from "node:fs";
4
4
  //#region extensions/codex/src/app-server/computer-use.ts
5
5
  var CodexComputerUseSetupError = class extends Error {
@@ -158,6 +158,12 @@ function resolveCodexAppServerRuntimeOptions(params = {}) {
158
158
  ...serviceTier ? { serviceTier } : {}
159
159
  };
160
160
  }
161
+ function isCodexAppServerApprovalPolicyAllowedByRequirements(policy, params = {}) {
162
+ const content = readCodexRequirementsToml(params);
163
+ if (content === void 0) return true;
164
+ const allowedApprovalPolicies = parseAllowedApprovalPoliciesFromCodexRequirements(content);
165
+ return allowedApprovalPolicies === void 0 || allowedApprovalPolicies.has(policy);
166
+ }
161
167
  function resolveCodexComputerUseConfig(params = {}) {
162
168
  const env = params.env ?? process.env;
163
169
  const config = readCodexPluginConfig(params.pluginConfig).computerUse ?? {};
@@ -493,4 +499,4 @@ function splitShellWords(value) {
493
499
  return words;
494
500
  }
495
501
  //#endregion
496
- export { normalizeCodexServiceTier as a, resolveCodexComputerUseConfig as c, isCodexFastServiceTier as i, resolveCodexPluginsPolicy as l, codexAppServerStartOptionsKey as n, readCodexPluginConfig as o, codexSandboxPolicyForTurn as r, resolveCodexAppServerRuntimeOptions as s, CODEX_PLUGINS_MARKETPLACE_NAME as t, withMcpElicitationsApprovalPolicy as u };
502
+ export { isCodexFastServiceTier as a, resolveCodexAppServerRuntimeOptions as c, withMcpElicitationsApprovalPolicy as d, isCodexAppServerApprovalPolicyAllowedByRequirements as i, resolveCodexComputerUseConfig as l, codexAppServerStartOptionsKey as n, normalizeCodexServiceTier as o, codexSandboxPolicyForTurn as r, readCodexPluginConfig as s, CODEX_PLUGINS_MARKETPLACE_NAME as t, resolveCodexPluginsPolicy as u };
package/dist/harness.js CHANGED
@@ -18,25 +18,28 @@ function createCodexAppServerAgentHarness(options) {
18
18
  };
19
19
  },
20
20
  runAttempt: async (params) => {
21
- const { runCodexAppServerAttempt } = await import("./run-attempt-frGYsF9Y.js");
22
- return runCodexAppServerAttempt(params, { pluginConfig: options?.pluginConfig });
21
+ const { runCodexAppServerAttempt } = await import("./run-attempt-B3nk5oT1.js");
22
+ return runCodexAppServerAttempt(params, {
23
+ pluginConfig: options?.pluginConfig,
24
+ nativeHookRelay: { enabled: true }
25
+ });
23
26
  },
24
27
  runSideQuestion: async (params) => {
25
- const { runCodexAppServerSideQuestion } = await import("./side-question-CDcvaIKA.js");
28
+ const { runCodexAppServerSideQuestion } = await import("./side-question-D3nH-Jk1.js");
26
29
  return runCodexAppServerSideQuestion(params, { pluginConfig: options?.pluginConfig });
27
30
  },
28
31
  compact: async (params) => {
29
- const { maybeCompactCodexAppServerSession } = await import("./compact-CKWfgifa.js");
32
+ const { maybeCompactCodexAppServerSession } = await import("./compact-96QPqIAu.js");
30
33
  return maybeCompactCodexAppServerSession(params, { pluginConfig: options?.pluginConfig });
31
34
  },
32
35
  reset: async (params) => {
33
36
  if (params.sessionFile) {
34
- const { clearCodexAppServerBinding } = await import("./session-binding-CMTXuyoz.js").then((n) => n.a);
37
+ const { clearCodexAppServerBinding } = await import("./session-binding-DbdVqMzW.js").then((n) => n.a);
35
38
  await clearCodexAppServerBinding(params.sessionFile);
36
39
  }
37
40
  },
38
41
  dispose: async () => {
39
- const { clearSharedCodexAppServerClientAndWait } = await import("./shared-client-BwUqd3lh.js").then((n) => n.a);
42
+ const { clearSharedCodexAppServerClientAndWait } = await import("./shared-client-CnbrvEfV.js").then((n) => n.a);
40
43
  await clearSharedCodexAppServerClientAndWait();
41
44
  }
42
45
  };
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { createCodexAppServerAgentHarness } from "./harness.js";
2
- import { o as readCodexPluginConfig, s as resolveCodexAppServerRuntimeOptions, t as CODEX_PLUGINS_MARKETPLACE_NAME } from "./config-0rd3LnKg.js";
2
+ import { c as resolveCodexAppServerRuntimeOptions, s as readCodexPluginConfig, t as CODEX_PLUGINS_MARKETPLACE_NAME } from "./config-3ATInASk.js";
3
3
  import { buildCodexMediaUnderstandingProvider } from "./media-understanding-provider.js";
4
4
  import { buildCodexProvider } from "./provider.js";
5
- import { i as describeControlFailure, n as buildCodexPluginAppCacheKey, t as requestCodexAppServerJson } from "./request-CKYiRqsN.js";
5
+ import { i as describeControlFailure, n as buildCodexPluginAppCacheKey, t as requestCodexAppServerJson } from "./request-Czoa60Nt.js";
6
6
  import { r as formatCodexDisplayText } from "./command-formatters-BRW7_Nu7.js";
7
- import { c as resolveCodexAppServerAuthAccountCacheKey, d as resolveCodexAppServerEnvApiKeyCacheKey, i as getSharedCodexAppServerClient, t as clearSharedCodexAppServerClientAndWait, u as resolveCodexAppServerAuthProfileIdForAgent } from "./shared-client-BwUqd3lh.js";
8
- import { a as resolveCodexCliSessionForBindingOnNode, c as handleCodexConversationInboundClaim, i as listCodexCliSessionsOnNode, n as createCodexCliSessionNodeInvokePolicies, o as resumeCodexCliSessionOnNode, s as handleCodexConversationBindingResolved, t as createCodexCliSessionNodeHostCommands } from "./node-cli-sessions-xstpFJmx.js";
9
- import { a as defaultCodexAppInventoryCache, n as pluginReadParams, t as ensureCodexPluginActivation } from "./plugin-activation-aQOmRQwA.js";
7
+ import { c as resolveCodexAppServerAuthAccountCacheKey, d as resolveCodexAppServerEnvApiKeyCacheKey, i as getSharedCodexAppServerClient, t as clearSharedCodexAppServerClientAndWait, u as resolveCodexAppServerAuthProfileIdForAgent } from "./shared-client-CnbrvEfV.js";
8
+ import { a as resolveCodexCliSessionForBindingOnNode, c as handleCodexConversationInboundClaim, i as listCodexCliSessionsOnNode, n as createCodexCliSessionNodeInvokePolicies, o as resumeCodexCliSessionOnNode, s as handleCodexConversationBindingResolved, t as createCodexCliSessionNodeHostCommands } from "./node-cli-sessions-BLDFnUEF.js";
9
+ import { a as defaultCodexAppInventoryCache, n as pluginReadParams, t as ensureCodexPluginActivation } from "./plugin-activation-BDU4e-NA.js";
10
10
  import { resolveLivePluginConfigObject } from "openclaw/plugin-sdk/plugin-config-runtime";
11
11
  import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
12
12
  import os from "node:os";
@@ -38,7 +38,7 @@ async function handleCodexCommand(ctx, options = {}) {
38
38
  }
39
39
  }
40
40
  async function loadDefaultCodexSubcommandHandler() {
41
- const { handleCodexSubcommand } = await import("./command-handlers-CbJPJwK_.js");
41
+ const { handleCodexSubcommand } = await import("./command-handlers-C4F8BChC.js");
42
42
  return handleCodexSubcommand;
43
43
  }
44
44
  //#endregion
@@ -1,7 +1,7 @@
1
1
  import { CODEX_PROVIDER_ID, FALLBACK_CODEX_MODELS } from "./provider-catalog.js";
2
- import { s as resolveCodexAppServerRuntimeOptions } from "./config-0rd3LnKg.js";
3
- import { i as assertCodexTurnStartResponse, l as readCodexTurnCompletedNotification, o as readCodexErrorNotification, r as assertCodexThreadStartResponse } from "./protocol-validators-CSY0BFBo.js";
4
- import { i as readModelListResult } from "./models-GCYf5s8J.js";
2
+ import { c as resolveCodexAppServerRuntimeOptions } from "./config-3ATInASk.js";
3
+ import { i as assertCodexTurnStartResponse, l as readCodexTurnCompletedNotification, o as readCodexErrorNotification, r as assertCodexThreadStartResponse } from "./protocol-validators-BGBspNmF.js";
4
+ import { i as readModelListResult } from "./models-BZLMz9WS.js";
5
5
  import { t as isJsonObject } from "./protocol-C9UWI98H.js";
6
6
  import { validateJsonSchemaValue } from "openclaw/plugin-sdk/json-schema-runtime";
7
7
  //#region extensions/codex/media-understanding-provider.ts
@@ -62,7 +62,7 @@ async function runBoundedCodexVisionTurn(params) {
62
62
  const appServer = resolveCodexAppServerRuntimeOptions({ pluginConfig: params.options.pluginConfig });
63
63
  const timeoutMs = Math.max(100, params.timeoutMs);
64
64
  const ownsClient = !params.options.clientFactory;
65
- const client = params.options.clientFactory ? await params.options.clientFactory(appServer.start, params.profile) : await import("./shared-client-BwUqd3lh.js").then((n) => n.a).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
65
+ const client = params.options.clientFactory ? await params.options.clientFactory(appServer.start, params.profile) : await import("./shared-client-CnbrvEfV.js").then((n) => n.a).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
66
66
  startOptions: appServer.start,
67
67
  timeoutMs,
68
68
  authProfileId: params.profile
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
2
- import { s as readCodexModelListResponse } from "./protocol-validators-CSY0BFBo.js";
2
+ import { s as readCodexModelListResponse } from "./protocol-validators-BGBspNmF.js";
3
3
  //#region extensions/codex/src/app-server/models.ts
4
4
  var models_exports = /* @__PURE__ */ __exportAll({
5
5
  listAllCodexAppServerModels: () => listAllCodexAppServerModels,
@@ -39,7 +39,7 @@ async function listAllCodexAppServerModels(options = {}) {
39
39
  async function withCodexAppServerModelClient(options, run) {
40
40
  const timeoutMs = options.timeoutMs ?? 2500;
41
41
  const useSharedClient = options.sharedClient !== false;
42
- const { createIsolatedCodexAppServerClient, getSharedCodexAppServerClient } = await import("./shared-client-BwUqd3lh.js").then((n) => n.a);
42
+ const { createIsolatedCodexAppServerClient, getSharedCodexAppServerClient } = await import("./shared-client-CnbrvEfV.js").then((n) => n.a);
43
43
  const client = useSharedClient ? await getSharedCodexAppServerClient({
44
44
  startOptions: options.startOptions,
45
45
  timeoutMs,
@@ -1,9 +1,9 @@
1
- import { i as isCodexFastServiceTier, r as codexSandboxPolicyForTurn, s as resolveCodexAppServerRuntimeOptions } from "./config-0rd3LnKg.js";
1
+ import { a as isCodexFastServiceTier, c as resolveCodexAppServerRuntimeOptions, r as codexSandboxPolicyForTurn } from "./config-3ATInASk.js";
2
2
  import { t as isJsonObject } from "./protocol-C9UWI98H.js";
3
- import { r as CODEX_CONTROL_METHODS } from "./request-CKYiRqsN.js";
3
+ import { r as CODEX_CONTROL_METHODS } from "./request-Czoa60Nt.js";
4
4
  import { r as formatCodexDisplayText } from "./command-formatters-BRW7_Nu7.js";
5
- import { i as getSharedCodexAppServerClient, u as resolveCodexAppServerAuthProfileIdForAgent } from "./shared-client-BwUqd3lh.js";
6
- import { i as readCodexAppServerBinding, n as isCodexAppServerNativeAuthProfile, o as writeCodexAppServerBinding, r as normalizeCodexAppServerBindingModelProvider, t as clearCodexAppServerBinding } from "./session-binding-CMTXuyoz.js";
5
+ import { i as getSharedCodexAppServerClient, u as resolveCodexAppServerAuthProfileIdForAgent } from "./shared-client-CnbrvEfV.js";
6
+ import { i as readCodexAppServerBinding, n as isCodexAppServerNativeAuthProfile, o as writeCodexAppServerBinding, r as normalizeCodexAppServerBindingModelProvider, t as clearCodexAppServerBinding } from "./session-binding-DbdVqMzW.js";
7
7
  import os from "node:os";
8
8
  import { formatErrorMessage } from "openclaw/plugin-sdk/agent-harness-runtime";
9
9
  import { spawn } from "node:child_process";
@@ -1,4 +1,4 @@
1
- import { l as resolveCodexPluginsPolicy, t as CODEX_PLUGINS_MARKETPLACE_NAME } from "./config-0rd3LnKg.js";
1
+ import { t as CODEX_PLUGINS_MARKETPLACE_NAME, u as resolveCodexPluginsPolicy } from "./config-3ATInASk.js";
2
2
  import "node:fs/promises";
3
3
  import "node:path";
4
4
  var CodexAppInventoryCache = class {
@@ -318,6 +318,12 @@ var ThreadResumeResponse_default = {
318
318
  "anyOf": [{ "$ref": "#/definitions/PermissionProfile" }, { "type": "null" }]
319
319
  },
320
320
  "reasoningEffort": { "anyOf": [{ "$ref": "#/definitions/ReasoningEffort" }, { "type": "null" }] },
321
+ "runtimeWorkspaceRoots": {
322
+ "description": "Thread-scoped runtime workspace roots used to materialize `:workspace_roots`.",
323
+ "default": [],
324
+ "type": "array",
325
+ "items": { "$ref": "#/definitions/AbsolutePathBuf" }
326
+ },
321
327
  "sandbox": {
322
328
  "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `permissionProfile` when they need exact runtime permissions.",
323
329
  "allOf": [{ "$ref": "#/definitions/SandboxPolicy" }]
@@ -342,29 +348,9 @@ var ThreadResumeResponse_default = {
342
348
  "id": {
343
349
  "description": "Identifier from `default_permissions` or the implicit built-in default, such as `:workspace` or a user-defined `[permissions.<id>]` profile.",
344
350
  "type": "string"
345
- },
346
- "modifications": {
347
- "description": "Bounded user-requested modifications applied on top of the named profile, if any.",
348
- "default": [],
349
- "type": "array",
350
- "items": { "$ref": "#/definitions/ActivePermissionProfileModification" }
351
351
  }
352
352
  }
353
353
  },
354
- "ActivePermissionProfileModification": { "oneOf": [{
355
- "description": "Additional concrete directory that should be writable.",
356
- "type": "object",
357
- "required": ["path", "type"],
358
- "properties": {
359
- "path": { "$ref": "#/definitions/AbsolutePathBuf" },
360
- "type": {
361
- "type": "string",
362
- "enum": ["additionalWritableRoot"],
363
- "title": "AdditionalWritableRootActivePermissionProfileModificationType"
364
- }
365
- },
366
- "title": "AdditionalWritableRootActivePermissionProfileModification"
367
- }] },
368
354
  "AgentPath": { "type": "string" },
369
355
  "ApprovalsReviewer": {
370
356
  "description": "Configures who approval requests are routed to for review. Examples include sandbox escapes, blocked network access, MCP approval prompts, and ARC escalations. Defaults to `user`. `auto_review` uses a carefully prompted subagent to gather relevant context and apply a risk-based decision framework before approving or denying the request. The legacy value `guardian_subagent` is accepted for compatibility.",
@@ -2035,6 +2021,12 @@ var ThreadStartResponse_default = {
2035
2021
  "anyOf": [{ "$ref": "#/definitions/PermissionProfile" }, { "type": "null" }]
2036
2022
  },
2037
2023
  "reasoningEffort": { "anyOf": [{ "$ref": "#/definitions/ReasoningEffort" }, { "type": "null" }] },
2024
+ "runtimeWorkspaceRoots": {
2025
+ "description": "Thread-scoped runtime workspace roots used to materialize `:workspace_roots`.",
2026
+ "default": [],
2027
+ "type": "array",
2028
+ "items": { "$ref": "#/definitions/AbsolutePathBuf" }
2029
+ },
2038
2030
  "sandbox": {
2039
2031
  "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `permissionProfile` when they need exact runtime permissions.",
2040
2032
  "allOf": [{ "$ref": "#/definitions/SandboxPolicy" }]
@@ -2059,29 +2051,9 @@ var ThreadStartResponse_default = {
2059
2051
  "id": {
2060
2052
  "description": "Identifier from `default_permissions` or the implicit built-in default, such as `:workspace` or a user-defined `[permissions.<id>]` profile.",
2061
2053
  "type": "string"
2062
- },
2063
- "modifications": {
2064
- "description": "Bounded user-requested modifications applied on top of the named profile, if any.",
2065
- "default": [],
2066
- "type": "array",
2067
- "items": { "$ref": "#/definitions/ActivePermissionProfileModification" }
2068
2054
  }
2069
2055
  }
2070
2056
  },
2071
- "ActivePermissionProfileModification": { "oneOf": [{
2072
- "description": "Additional concrete directory that should be writable.",
2073
- "type": "object",
2074
- "required": ["path", "type"],
2075
- "properties": {
2076
- "path": { "$ref": "#/definitions/AbsolutePathBuf" },
2077
- "type": {
2078
- "type": "string",
2079
- "enum": ["additionalWritableRoot"],
2080
- "title": "AdditionalWritableRootActivePermissionProfileModificationType"
2081
- }
2082
- },
2083
- "title": "AdditionalWritableRootActivePermissionProfileModification"
2084
- }] },
2085
2057
  "AgentPath": { "type": "string" },
2086
2058
  "ApprovalsReviewer": {
2087
2059
  "description": "Configures who approval requests are routed to for review. Examples include sandbox escapes, blocked network access, MCP approval prompts, and ARC escalations. Defaults to `user`. `auto_review` uses a carefully prompted subagent to gather relevant context and apply a risk-based decision framework before approving or denying the request. The legacy value `guardian_subagent` is accepted for compatibility.",
package/dist/provider.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { CODEX_APP_SERVER_AUTH_MARKER, CODEX_BASE_URL, CODEX_PROVIDER_ID, FALLBACK_CODEX_MODELS, buildCodexModelDefinition, buildCodexProviderConfig } from "./provider-catalog.js";
2
- import { o as readCodexPluginConfig, s as resolveCodexAppServerRuntimeOptions } from "./config-0rd3LnKg.js";
2
+ import { c as resolveCodexAppServerRuntimeOptions, s as readCodexPluginConfig } from "./config-3ATInASk.js";
3
3
  import { resolveCodexSystemPromptContribution } from "./prompt-overlay.js";
4
4
  import { resolvePluginConfigObject } from "openclaw/plugin-sdk/plugin-config-runtime";
5
5
  import { createSubsystemLogger } from "openclaw/plugin-sdk/core";
@@ -123,7 +123,7 @@ async function listModelsBestEffort(params) {
123
123
  }
124
124
  }
125
125
  async function listCodexAppServerModelsLazy(options) {
126
- const { listCodexAppServerModels } = await import("./models-GCYf5s8J.js").then((n) => n.r);
126
+ const { listCodexAppServerModels } = await import("./models-BZLMz9WS.js").then((n) => n.r);
127
127
  return listCodexAppServerModels(options);
128
128
  }
129
129
  function normalizeTimeoutMs(value) {
@@ -1,6 +1,6 @@
1
- import { n as CodexAppServerRpcError } from "./client-CoctX13d.js";
2
- import { f as resolveCodexAppServerHomeDir, i as getSharedCodexAppServerClient, o as withTimeout, r as createIsolatedCodexAppServerClient } from "./shared-client-BwUqd3lh.js";
3
- import { i as buildCodexAppInventoryCacheKey } from "./plugin-activation-aQOmRQwA.js";
1
+ import { n as CodexAppServerRpcError } from "./client-CA7amCZ8.js";
2
+ import { f as resolveCodexAppServerHomeDir, i as getSharedCodexAppServerClient, o as withTimeout, r as createIsolatedCodexAppServerClient } from "./shared-client-CnbrvEfV.js";
3
+ import { i as buildCodexAppInventoryCacheKey } from "./plugin-activation-BDU4e-NA.js";
4
4
  import { createHash } from "node:crypto";
5
5
  //#region extensions/codex/src/app-server/capabilities.ts
6
6
  const CODEX_CONTROL_METHODS = {