fix: allow AgentOS outbound networking

This commit is contained in:
-Puter
2026-07-28 17:29:47 +05:30
parent a4f121e190
commit dceaa2b417
2 changed files with 13 additions and 2 deletions

View File

@@ -9,6 +9,11 @@ describe("Codex agent-os config", () => {
expect(config.software?.[0]).toBeTypeOf("object"); expect(config.software?.[0]).toBeTypeOf("object");
}); });
it("allows outbound VM networking", () => {
const config = makeCodexAgentOsConfig();
expect(config.permissions?.network).toBe("allow");
});
it("builds model-provider session env", () => { it("builds model-provider session env", () => {
const env = codexSessionEnv( const env = codexSessionEnv(
{ {

View File

@@ -108,16 +108,22 @@ export const codexSessionEnv = (
export interface CodexAgentOsConfigInput { export interface CodexAgentOsConfigInput {
/** Extra software merged after the Codex+git bundle. */ /** Extra software merged after the Codex+git bundle. */
readonly software?: NonNullable<AgentOSConfigInput<undefined>["software"]>; readonly software?: NonNullable<AgentOSConfigInput<undefined>["software"]>;
/** VM permission overrides merged over the default network-enabled policy. */
readonly permissions?: AgentOSConfigInput<undefined>["permissions"];
} }
/** /**
* Builds an AgentOS actor config for a Codex-backed VM. The Codex CLI and git
* are always present; software the caller passes is appended, never replacing * are always present; software the caller passes is appended, never replacing
* the harness or git. Model-provider env is supplied per session via * the harness or git. Outbound networking is explicitly enabled for repository
* and model-provider access. Model-provider env is supplied per session via
* `codexSessionEnv`, not here — the actor config has no env field. * `codexSessionEnv`, not here — the actor config has no env field.
*/ */
export const makeCodexAgentOsConfig = ( export const makeCodexAgentOsConfig = (
input: CodexAgentOsConfigInput = {} input: CodexAgentOsConfigInput = {}
): AgentOSConfigInput<undefined> => ({ ): AgentOSConfigInput<undefined> => ({
permissions: {
network: "allow",
...input.permissions,
},
software: [...codexSoftware, ...(input.software ?? [])], software: [...codexSoftware, ...(input.software ?? [])],
}); });