@@ -337,7 +337,9 @@ const codexAppServerNetworkProxySchema = z
337337 baseProfile : z . enum ( [ "read-only" , "workspace" ] ) . optional ( ) ,
338338 mode : z . enum ( [ "limited" , "full" ] ) . optional ( ) ,
339339 domains : z . record ( z . string ( ) , codexAppServerNetworkProxyDomainPermissionSchema ) . optional ( ) ,
340- unixSockets : z . record ( z . string ( ) , codexAppServerNetworkProxyUnixSocketPermissionSchema ) . optional ( ) ,
340+ unixSockets : z
341+ . record ( z . string ( ) , codexAppServerNetworkProxyUnixSocketPermissionSchema )
342+ . optional ( ) ,
341343 proxyUrl : z . string ( ) . trim ( ) . min ( 1 ) . optional ( ) ,
342344 socksUrl : z . string ( ) . trim ( ) . min ( 1 ) . optional ( ) ,
343345 enableSocks5 : z . boolean ( ) . optional ( ) ,
@@ -493,6 +495,19 @@ export function resolveCodexPluginsPolicy(pluginConfig?: unknown): ResolvedCodex
493495 } ;
494496}
495497
498+ function resolveCodexPluginDestructivePolicy ( policy : CodexPluginDestructivePolicy ) : {
499+ allowDestructiveActions : boolean ;
500+ destructiveApprovalMode : CodexPluginDestructiveApprovalMode ;
501+ } {
502+ if ( policy === "auto" ) {
503+ return { allowDestructiveActions : true , destructiveApprovalMode : "auto" } ;
504+ }
505+ return {
506+ allowDestructiveActions : policy ,
507+ destructiveApprovalMode : policy ? "allow" : "deny" ,
508+ } ;
509+ }
510+
496511type CodexAppServerRuntimeParams = {
497512 pluginConfig ?: unknown ;
498513 execMode ?: OpenClawExecMode ;
@@ -672,6 +687,9 @@ export function resolveCodexAppServerRuntime(
672687 headers,
673688 ...( transport === "stdio" && clearEnv . length > 0 ? { clearEnv } : { } ) ,
674689 } ,
690+ connectionClass,
691+ remoteAppsSubstrate,
692+ ...( remoteWorkspaceRoot ? { remoteWorkspaceRoot } : { } ) ,
675693 codeModeOnly : config . codeModeOnly === true ,
676694 requestTimeoutMs : normalizePositiveNumber ( config . requestTimeoutMs , 60_000 ) ,
677695 turnCompletionIdleTimeoutMs : normalizePositiveNumber (
@@ -688,16 +706,13 @@ export function resolveCodexAppServerRuntime(
688706 : { } ) ,
689707 approvalPolicy : forcedPolicy ?. approvalPolicy ?? approvalPolicy ,
690708 approvalPolicySource,
691- sandbox :
692- forcedPolicy ?. sandbox ??
693- configuredSandbox ??
694- defaultPolicy ?. sandbox ??
695- ( policyMode === "guardian" ? "workspace-write" : "danger-full-access" ) ,
709+ sandbox : resolvedSandbox ,
696710 approvalsReviewer :
697711 forcedPolicy ?. approvalsReviewer ??
698712 explicitApprovalsReviewer ??
699713 defaultPolicy ?. approvalsReviewer ??
700714 ( policyMode === "guardian" ? "auto_review" : "user" ) ,
715+ ...resolveCodexAppServerNetworkProxy ( config . networkProxy , resolvedSandbox ) ,
701716 ...( serviceTier ? { serviceTier } : { } ) ,
702717 } ,
703718 } ;
@@ -929,7 +944,7 @@ function resolveCodexAppServerNetworkProxy(
929944 enabled : true ,
930945 mode : config . mode ,
931946 domains : normalizeNetworkProxyPermissionMap ( config . domains ) ,
932- unix_sockets : normalizeNetworkProxyPermissionMap ( config . unixSockets ) ,
947+ unix_sockets : normalizeNetworkProxyUnixSocketPermissionMap ( config . unixSockets ) ,
933948 proxy_url : readNonEmptyString ( config . proxyUrl ) ,
934949 socks_url : readNonEmptyString ( config . socksUrl ) ,
935950 enable_socks5 : config . enableSocks5 ,
@@ -984,6 +999,20 @@ export function fingerprintCodexAppServerNetworkProxyConfigPatch(configPatch: Js
984999 return createHash ( "sha256" ) . update ( stableStringifyJson ( configPatch ) ) . digest ( "hex" ) ;
9851000}
9861001
1002+ function normalizeNetworkProxyUnixSocketPermissionMap (
1003+ value : Record < string , CodexAppServerNetworkProxyUnixSocketPermission > | undefined ,
1004+ ) : Record < string , "allow" | "deny" > | undefined {
1005+ const normalized = normalizeNetworkProxyPermissionMap ( value ) ;
1006+ return normalized
1007+ ? Object . fromEntries (
1008+ Object . entries ( normalized ) . map ( ( [ socketPath , permission ] ) => [
1009+ socketPath ,
1010+ permission === "none" ? "deny" : permission ,
1011+ ] ) ,
1012+ )
1013+ : undefined ;
1014+ }
1015+
9871016function normalizeNetworkProxyPermissionMap < TPermission extends string > (
9881017 value : Record < string , TPermission > | undefined ,
9891018) : Record < string , TPermission > | undefined {
0 commit comments