diff --git a/nemoclaw-blueprint/policies/presets/tavily.yaml b/nemoclaw-blueprint/policies/presets/tavily.yaml index 192fe0eb941..19f3147461e 100644 --- a/nemoclaw-blueprint/policies/presets/tavily.yaml +++ b/nemoclaw-blueprint/policies/presets/tavily.yaml @@ -17,6 +17,8 @@ network_policies: - allow: { method: GET, path: "/**" } - allow: { method: POST, path: "/**" } binaries: + # OpenShell attributes Deep Agents Code Tavily requests to its managed Python venv. + - { path: /opt/venv/bin/python3* } - { path: /usr/local/bin/node } - { path: /usr/bin/node } - { path: /usr/local/bin/curl } diff --git a/nemoclaw-blueprint/provider-profiles/tavily.yaml b/nemoclaw-blueprint/provider-profiles/tavily.yaml index 1e74bef9ea4..bf8b5ccdbbd 100644 --- a/nemoclaw-blueprint/provider-profiles/tavily.yaml +++ b/nemoclaw-blueprint/provider-profiles/tavily.yaml @@ -20,6 +20,8 @@ endpoints: access: read-write enforcement: enforce binaries: + # OpenShell attributes Deep Agents Code Tavily requests to its managed Python venv. + - /opt/venv/bin/python3* - /usr/local/bin/node - /usr/bin/node - /usr/local/bin/curl diff --git a/test/tavily-preset.test.ts b/test/tavily-preset.test.ts index 9f09d276499..1f2b0ea0c9b 100644 --- a/test/tavily-preset.test.ts +++ b/test/tavily-preset.test.ts @@ -45,6 +45,7 @@ describe("tavily opt-in preset", () => { }, ]); expect(policy?.binaries).toEqual([ + { path: "/opt/venv/bin/python3*" }, { path: "/usr/local/bin/node" }, { path: "/usr/bin/node" }, { path: "/usr/local/bin/curl" }, diff --git a/test/validate-blueprint.test.ts b/test/validate-blueprint.test.ts index f633ebe8d9e..2510b6df484 100644 --- a/test/validate-blueprint.test.ts +++ b/test/validate-blueprint.test.ts @@ -505,6 +505,7 @@ describe("Tavily Search provider profile", () => { it("limits the binary allowlist to runtimes the Tavily client actually uses", () => { expect(profile.binaries).toEqual([ + "/opt/venv/bin/python3*", "/usr/local/bin/node", "/usr/bin/node", "/usr/local/bin/curl",