@openclaw/codex 2026.8.1-beta.2 → 2026.8.1-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 (59) hide show
  1. package/dist/api.js +147 -0
  2. package/dist/app-server-policy-bg5QPSVP.js +25 -0
  3. package/dist/{attempt-client-cleanup-DMLXUfa8.js → attempt-client-cleanup-URjUlCHg.js} +1 -1
  4. package/dist/{binding-connection-I5Bo-AsX.js → binding-connection-DAvZwp96.js} +15 -3
  5. package/dist/{bounded-turn-qgZmzy_4.js → bounded-turn-4BjrZEwW.js} +22 -16
  6. package/dist/{capabilities-CybGI1oz.js → capabilities-CH3K57v4.js} +1 -1
  7. package/dist/cli-metadata.js +1 -1
  8. package/dist/{command-formatters-B1AEz8ZA.js → command-formatters-D0nZ3qtd.js} +2 -2
  9. package/dist/{command-handlers-Db8pu_ds.js → command-handlers-DC86lgT4.js} +39 -22
  10. package/dist/command-rpc-xUIIonsO.js +90 -0
  11. package/dist/{compact-LspQaGfl.js → compact-COqgBRny.js} +35 -29
  12. package/dist/{session-binding-DPxIvMgE.js → config-CpNeo5AE.js} +28 -888
  13. package/dist/context-compaction-activity-BOeJf7yo.js +58 -0
  14. package/dist/doctor-contract-api.js +15 -14
  15. package/dist/{dynamic-tools-BVdyWkUD.js → dynamic-tools-fJZhl4CE.js} +1284 -651
  16. package/dist/{effective-mcp-catalog-DIIhAtOZ.js → effective-mcp-catalog-4YKn51aG.js} +2 -2
  17. package/dist/elicitation-input-DMkeki8d.js +71 -0
  18. package/dist/{event-projector-usage-e5huIQWu.js → event-projector-usage-CLwNEJqW.js} +16 -16
  19. package/dist/harness-DoKQcF8n.js +258 -0
  20. package/dist/harness.js +2 -226
  21. package/dist/index.js +171 -48
  22. package/dist/{isolated-completion-C58NbL40.js → isolated-completion-DPMtlH9r.js} +3 -3
  23. package/dist/managed-binary-By4FZC6i.js +212 -0
  24. package/dist/media-understanding-provider.js +2 -2
  25. package/dist/model-catalog-CmGoqVKB.js +48 -0
  26. package/dist/{models-BFlpn1Ex.js → models-CZw1wClT.js} +2 -2
  27. package/dist/{native-subagent-monitor-DyTGmTUx.js → native-subagent-monitor-GGq3RnOo.js} +185 -71
  28. package/dist/node-exec-server.runtime-Bsu1LdFZ.js +192 -0
  29. package/dist/{plugin-app-cache-key-C3H2CVp6.js → plugin-app-cache-key-DMNQ8Zi8.js} +15 -3
  30. package/dist/plugin-approval-roundtrip-C75Yiiwc.js +95 -0
  31. package/dist/{plugin-marketplace-discovery-CzrGJdCR.js → plugin-marketplace-discovery-CSWDkMrP.js} +40 -26
  32. package/dist/{plugin-metadata-cache-CNJPj4_b.js → plugin-metadata-cache-BXH5NF-4.js} +8 -5
  33. package/dist/{protocol-validators-B4F7L8Rf.js → protocol-validators-VAVyEnDp.js} +55 -2
  34. package/dist/{rate-limits-DZXmOL8-.js → rate-limits-BI1dMHDG.js} +1 -1
  35. package/dist/{request-BRl5_UfX.js → request-DSK0W6YI.js} +2 -2
  36. package/dist/{run-attempt-P8BdxC1I.js → run-attempt-BV3HzuCf.js} +1098 -666
  37. package/dist/{runtime-artifact-BVSPdd6g.js → runtime-artifact-BvyT1uyd.js} +4 -7
  38. package/dist/{sandbox-guard-Cmwc9eIk.js → sandbox-guard-C1qEeZ5C.js} +25 -19
  39. package/dist/session-binding-BTrLf9Qm.js +874 -0
  40. package/dist/{session-catalog-xwNi_SDM.js → session-catalog-ezP_UcRM.js} +1541 -1296
  41. package/dist/session-catalog-home-id-BNwAJ9D7.js +18 -0
  42. package/dist/{session-cli-7hgXZDV7.js → session-cli-B1hKvfkI.js} +20 -7
  43. package/dist/{session-retirement-DoMMJFKm.js → session-retirement-CE4iMiLh.js} +3 -3
  44. package/dist/{session-upstream-marker-CrIFX06J.js → session-upstream-marker-D_2npHlA.js} +1 -1
  45. package/dist/{settled-turn-finalizer-BRWBO4MO.js → settled-turn-finalizer-Dx1onIqg.js} +23 -19
  46. package/dist/{shared-client-kIBbGjk4.js → shared-client-Dw-rzii0.js} +755 -273
  47. package/dist/{side-question-9HAL26l9.js → side-question-DbXkJZzg.js} +52 -30
  48. package/dist/{thread-lifecycle-Bu1BTDXr.js → thread-lifecycle-DKdrnTMX.js} +310 -92
  49. package/dist/{thread-ownership-6kOQHlyC.js → thread-ownership-i2NBwDUL.js} +2 -2
  50. package/dist/{thread-resume-CPrJNQVM.js → thread-resume-CdJk2Ehf.js} +3 -3
  51. package/dist/{transcript-mirror-B9gGgnJS.js → transcript-mirror-BU0_LKAL.js} +46 -28
  52. package/dist/{transport-stdio-DIImwDVS.js → transport-stdio-DhoGy33Z.js} +2 -2
  53. package/dist/{upstream-prompt-provenance-ClRBije0.js → upstream-prompt-provenance-CFmsKwr9.js} +12 -14
  54. package/dist/{upstream-session-fork-CE-_LdnP.js → upstream-session-fork-BDVJCLAD.js} +12 -6
  55. package/dist/{usage-CHlV0e-o.js → usage-9dKJCgcy.js} +3 -3
  56. package/dist/{web-search-provider.runtime-DRw2Vl42.js → web-search-provider.runtime-DCdx4DGu.js} +3 -3
  57. package/openclaw.plugin.json +31 -1
  58. package/package.json +6 -5
  59. package/dist/app-server-policy-zcBDc1JU.js +0 -49
@@ -1,9 +1,10 @@
1
- import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-DIImwDVS.js";
1
+ import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-DhoGy33Z.js";
2
2
  import fs from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { createHash } from "node:crypto";
5
5
  import { constants } from "node:fs";
6
6
  import { resolveWindowsExecutablePath, resolveWindowsSpawnProgram } from "openclaw/plugin-sdk/windows-spawn";
7
+ import { isPathInside } from "openclaw/plugin-sdk/file-access-runtime";
7
8
  //#region extensions/codex/src/app-server/runtime-artifact.ts
8
9
  /** Exact local runtime artifact identity for verified Codex setup turns. */
9
10
  const ARTIFACT_ID_PREFIX = "codex-app-server:v1:";
@@ -123,10 +124,6 @@ async function listPackageFiles(params) {
123
124
  await visit(params.rootPath, 0);
124
125
  return files;
125
126
  }
126
- function pathIsWithin(rootPath, candidatePath) {
127
- const relative = path.relative(rootPath, candidatePath);
128
- return relative === "" || !path.isAbsolute(relative) && !relative.startsWith(`..${path.sep}`) && relative !== "..";
129
- }
130
127
  function assertSafeNodeOptions(env) {
131
128
  for (const [rawKey, value] of Object.entries(env)) {
132
129
  if (rawKey.toUpperCase() !== "NODE_OPTIONS" || !value?.trim()) continue;
@@ -223,7 +220,7 @@ async function hashSelectedArtifactFiles(descriptor, signal) {
223
220
  } catch (error) {
224
221
  if (!isMissingPathError(error)) throw error;
225
222
  }
226
- const externalFiles = [...new Set(allFiles)].filter((filePath) => !packageRoot || !pathIsWithin(packageRoot, filePath)).toSorted(compareArtifactNames);
223
+ const externalFiles = [...new Set(allFiles)].filter((filePath) => !packageRoot || !isPathInside(packageRoot, filePath)).toSorted(compareArtifactNames);
227
224
  const budget = {
228
225
  fileCount: 0,
229
226
  totalBytes: 0n
@@ -337,7 +334,7 @@ async function resolvePackageRoot(nativePath) {
337
334
  try {
338
335
  if (!(await fs.lstat(metadataPath)).isFile()) return;
339
336
  const root = await fs.realpath(candidate);
340
- return pathIsWithin(root, nativePath) ? root : void 0;
337
+ return isPathInside(root, nativePath) ? root : void 0;
341
338
  } catch {
342
339
  return;
343
340
  }
@@ -1,6 +1,7 @@
1
- import { C as isCodexRemoteExecPlacementSandbox } from "./session-binding-DPxIvMgE.js";
2
- import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
1
+ import { p as isCodexRemoteExecPlacementSandbox } from "./config-CpNeo5AE.js";
2
+ import { resolveAgentConfig, tryResolveDefaultAgentId } from "openclaw/plugin-sdk/agent-scope-runtime";
3
3
  import { getSessionEntry } from "openclaw/plugin-sdk/session-store-runtime";
4
+ import { normalizeAgentId, parseAgentSessionKey } from "openclaw/plugin-sdk/routing";
4
5
  import { resolveSandboxRuntimeStatus } from "openclaw/plugin-sdk/sandbox";
5
6
  //#region extensions/codex/src/app-server/native-execution-policy.ts
6
7
  /** Projects node execution ownership into the runtime tool factory options. */
@@ -21,23 +22,26 @@ function resolveCodexNativeExecutionPolicy(params) {
21
22
  sessionKey,
22
23
  agentId: params.agentId
23
24
  });
24
- const canReadSessionEntry = params.readRuntimeSessionEntry && shouldReadRuntimeSessionEntry({
25
+ const canReadSessionEntry = Boolean(agentId) && params.readRuntimeSessionEntry && shouldReadRuntimeSessionEntry({
25
26
  config,
26
27
  sessionKey,
27
- agentId: params.agentId
28
+ agentId
28
29
  });
29
- const sessionEntry = params.sessionEntry ?? (canReadSessionEntry && sessionKey ? readRuntimeSessionEntryBestEffort({
30
+ const sessionEntry = params.sessionEntry ?? (canReadSessionEntry && sessionKey && agentId ? readRuntimeSessionEntryBestEffort({
30
31
  sessionKey,
31
32
  agentId
32
33
  }) : void 0);
33
- const sandboxAvailable = params.sandboxAvailable ?? (sessionKey ? resolveSandboxRuntimeStatus({
34
+ const sandboxAgentId = parseAgentSessionKey(sessionKey)?.agentId ?? agentId;
35
+ const sandboxAvailable = params.sandboxAvailable ?? (sessionKey && sandboxAgentId ? resolveSandboxRuntimeStatus({
34
36
  cfg: config,
35
- sessionKey
37
+ sessionKey,
38
+ agentId: sandboxAgentId,
39
+ classificationAgentId: sandboxAgentId
36
40
  }).sandboxed : false);
37
- const agentExec = resolvePolicyAgentExec({
41
+ const agentExec = agentId ? resolvePolicyAgentExec({
38
42
  config,
39
43
  agentId
40
- });
44
+ }) : void 0;
41
45
  const globalExec = config.tools?.exec;
42
46
  const requestedExecHost = normalizeExecTarget(params.execOverrides?.host) ?? normalizeExecTarget(sessionEntry?.execHost) ?? normalizeExecTarget(agentExec?.host) ?? normalizeExecTarget(globalExec?.host) ?? "auto";
43
47
  const effectiveExecHost = resolveEffectiveExecHost({
@@ -72,13 +76,10 @@ function resolvePolicyAgentId(params) {
72
76
  if (explicitAgentId) return explicitAgentId;
73
77
  const sessionAgentId = parseAgentIdFromSessionKey(params.sessionKey);
74
78
  if (sessionAgentId) return sessionAgentId;
75
- return resolveDefaultPolicyAgentId(listAgentEntries(params.config));
79
+ return tryResolveDefaultAgentId(params.config);
76
80
  }
77
81
  function resolvePolicyAgentExec(params) {
78
- return listAgentEntries(params.config).find((entry) => normalizeAgentId(entry?.id) === params.agentId)?.tools?.exec;
79
- }
80
- function listAgentEntries(config) {
81
- return (config.agents?.list ?? []).filter((entry) => entry !== null && typeof entry === "object");
82
+ return resolveAgentConfig(params.config, params.agentId)?.tools?.exec;
82
83
  }
83
84
  function parseAgentIdFromSessionKey(sessionKey) {
84
85
  const raw = sessionKey?.trim();
@@ -99,10 +100,7 @@ function shouldReadRuntimeSessionEntry(params) {
99
100
  return sessionAgentId === explicitAgentId;
100
101
  }
101
102
  function isDefaultAgentSessionKeyForAgent(params) {
102
- return normalizeAgentId(params.agentId) === resolveDefaultPolicyAgentId(listAgentEntries(params.config));
103
- }
104
- function resolveDefaultPolicyAgentId(agents) {
105
- return normalizeAgentId((agents.find((entry) => entry?.default) ?? agents[0])?.id);
103
+ return normalizeAgentId(params.agentId) === tryResolveDefaultAgentId(params.config);
106
104
  }
107
105
  function normalizeAgentIdOrDefault(value) {
108
106
  const normalized = normalizeAgentId(value);
@@ -129,6 +127,10 @@ function readRuntimeSessionEntryBestEffort(params) {
129
127
  }
130
128
  //#endregion
131
129
  //#region extensions/codex/src/app-server/sandbox-guard.ts
130
+ /**
131
+ * Blocks direct Codex app-server requests that would bypass OpenClaw sandbox or
132
+ * node-exec routing guarantees.
133
+ */
132
134
  const DIRECT_METHOD_POLICIES = /* @__PURE__ */ new Map([
133
135
  ["account/rateLimits/read", "allowed-control-plane"],
134
136
  ["account/read", "allowed-control-plane"],
@@ -230,9 +232,13 @@ function resolveCodexNativeSandboxBlock(params) {
230
232
  const sessionKey = params.sessionKey?.trim() || params.sessionId?.trim();
231
233
  if (!sessionKey) return;
232
234
  if (isCodexRemoteExecPlacementSandbox(params.sandbox) || params.sandbox?.enabled === true) return formatCodexNativeSandboxBlock({ surface: params.surface });
235
+ const sandboxAgentId = parseAgentSessionKey(sessionKey)?.agentId ?? params.agentId ?? tryResolveDefaultAgentId(params.config ?? {});
236
+ if (!sandboxAgentId) return;
233
237
  if (!resolveSandboxRuntimeStatus({
234
238
  cfg: params.config,
235
- sessionKey
239
+ sessionKey,
240
+ agentId: sandboxAgentId,
241
+ classificationAgentId: sandboxAgentId
236
242
  }).sandboxed) return;
237
243
  return formatCodexNativeSandboxBlock({ surface: params.surface });
238
244
  }