Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
46036f5
security: bump nltk to >=3.10.0 in iheval and rolemrc
kajalj22 Jul 31, 2026
6171a8a
ci: set PYTHONSAFEPATH=1 to fix nltk inisec blocking regex in server …
kajalj22 Aug 3, 2026
fb69762
Merge branch 'main' into security/bump-nltk-cve-jul2026
kajalj22 Aug 3, 2026
45df6ec
fix(iheval,rolemrc): pre-import regex to bypass nltk inisec.py block
kajalj22 Aug 3, 2026
9889f7b
fix(lint): remove unnecessary noqa: E402 suppression on regex imports
kajalj22 Aug 3, 2026
c7df787
fix(lint): suppress F401 on intentional regex pre-import
kajalj22 Aug 3, 2026
9526d42
fix(lint): remove blank line flagged by ruff-format
kajalj22 Aug 3, 2026
cb11a8e
fix(iheval,rolemrc): pre-import defusedxml alongside regex
kajalj22 Aug 3, 2026
f427ccd
fix(iheval,rolemrc): pre-import defusedxml.ElementTree submodule
kajalj22 Aug 3, 2026
8a4a7c0
ci: add workflow_dispatch trigger to unit-tests
kajalj22 Aug 3, 2026
0f6e73a
fix(ifbench,instruction_following,toolsandbox): pre-import regex and …
kajalj22 Aug 3, 2026
319d7a1
fix(ifbench,tau2): fix punkt download timing and update tau2 snapshot
kajalj22 Aug 3, 2026
e9956e8
ci: temporarily add workflow_dispatch to trigger full suite validation
kajalj22 Aug 3, 2026
b425fdc
ci: remove temporary workflow_dispatch trigger
kajalj22 Aug 3, 2026
2e6af5b
fix(lint): sort toolsandbox pre-imports alphabetically (polars before…
kajalj22 Aug 3, 2026
629ecbe
fix(tau2): compact test_data.json to avoid secrets-detector false pos…
kajalj22 Aug 3, 2026
852cd5b
Merge branch 'main' into security/bump-nltk-cve-jul2026
kajalj22 Aug 3, 2026
c227b17
revert: restore original test_data.json for tau2
kajalj22 Aug 3, 2026
a3dc7e2
Merge remote-tracking branch 'origin/security/bump-nltk-cve-jul2026' …
kajalj22 Aug 3, 2026
2f3f24d
revert(tau2): restore test_data.json to exact main version
kajalj22 Aug 3, 2026
214d9fb
ci: temporarily add workflow_dispatch to run full suite
kajalj22 Aug 3, 2026
9217178
ci: remove temporary workflow_dispatch trigger
kajalj22 Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,7 @@ asyncio.run(main())
For an end-to-end agent run, add this provider config to `mini_swe_agent_2`'s config paths — the agent config is unchanged:

```bash
gym env start \
--config responses_api_agents/mini_swe_agent_2/configs/mini_swe_agent_2.yaml \
--config nemo_gym/sandbox/providers/ecs_fargate/configs/ecs_fargate.yaml \
--config <MODEL_CONFIG>
ng_run "+config_paths=[responses_api_agents/mini_swe_agent_2/configs/mini_swe_agent_2.yaml, nemo_gym/sandbox/providers/ecs_fargate/configs/ecs_fargate.yaml, <MODEL_CONFIG>]"
```

## Troubleshooting
Expand Down
20 changes: 10 additions & 10 deletions fern/versions/latest/pages/model-server/vllm.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -217,17 +217,17 @@ When `return_token_id_information: true`, the completions backend automatically
The end-to-end flow is identical to the [Use VLLMModel](#use-vllmmodel) walkthrough above; just swap the model-server config:

```bash
gym env start \
--config resources_servers/example_multi_step/configs/example_multi_step.yaml \
--config responses_api_models/vllm_model/configs/vllm_model_completions.yaml \
--model-url http://0.0.0.0:10240/v1 \
--model <your-model> \
--model-api-key dummy_key
config_paths="resources_servers/example_multi_step/configs/example_multi_step.yaml,\
responses_api_models/vllm_model/configs/vllm_model_completions.yaml"

gym eval run --no-serve \
--agent <your_agent> \
--input <your_data.jsonl> \
--output results/rollouts_completions.jsonl
ng_run "+config_paths=[$config_paths]" \
++policy_base_url=http://0.0.0.0:10240/v1 \
++policy_model_name=<your-model> \
++policy_api_key=dummy_key

ng_collect_rollouts +agent_name=<your_agent> \
+input_jsonl_fpath=<your_data.jsonl> \
+output_jsonl_fpath=results/rollouts_completions.jsonl
```

Make sure your input JSONL respects the selected mode in the [Constraint matrix](#constraint-matrix) above.
Expand Down
6 changes: 6 additions & 0 deletions resources_servers/ifbench/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
import logging
from typing import List, Literal

# Pre-import packages that nltk pulls in during its init so they are already in
# sys.modules before nltk's inisec.py finder is installed. nltk>=3.9 blocks any
# import originating from nltk if the module path falls inside the process CWD —
# which happens in CI where the server venv lives inside the repo root.
import defusedxml.ElementTree # noqa: F401
import regex # noqa: F401
from fastapi import FastAPI

from nemo_gym.base_resources_server import (
Expand Down
7 changes: 7 additions & 0 deletions resources_servers/ifbench/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.

# Pre-import packages that nltk pulls in during its init so they are already in
# sys.modules before nltk's inisec.py finder is installed. This must happen here
# (before ensure_ifbench() calls _ensure_nltk_data() → import nltk) so that the
# punkt download inside _ensure_nltk_data() is not silently blocked.
import defusedxml.ElementTree # noqa: F401
import regex # noqa: F401

from resources_servers.ifbench.setup_ifbench import ensure_ifbench


Expand Down
6 changes: 6 additions & 0 deletions resources_servers/iheval/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,12 @@
from pathlib import Path
from typing import Any, Dict, List, Literal, Optional, Tuple

# Pre-import packages that nltk pulls in during its init so they are already in
# sys.modules before nltk's inisec.py finder is installed. nltk>=3.9 blocks any
# import originating from nltk if the module path falls inside the process CWD —
# which happens in CI where the server venv lives inside the repo root.
import defusedxml.ElementTree # noqa: F401
import regex # noqa: F401
from fastapi import FastAPI
from pydantic import ConfigDict

Expand Down
2 changes: 1 addition & 1 deletion resources_servers/iheval/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ rouge-score>=0.1.2
# Rule-following: vendored IFEval checkers (ifeval/) depend on these.
immutabledict>=2.0
langdetect>=1.0.9
nltk>=3.9
nltk>=3.10.0
6 changes: 6 additions & 0 deletions resources_servers/instruction_following/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@
# limitations under the License.
from typing import Any, Dict, List

# Pre-import packages that nltk pulls in during its init so they are already in
# sys.modules before nltk's inisec.py finder is installed. nltk>=3.9 blocks any
# import originating from nltk if the module path falls inside the process CWD —
# which happens in CI where the server venv lives inside the repo root.
import defusedxml.ElementTree # noqa: F401
import regex # noqa: F401
from fastapi import FastAPI
from pydantic import model_validator
from verifiable_instructions import instructions_registry
Expand Down
6 changes: 6 additions & 0 deletions resources_servers/rolemrc/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@
from functools import lru_cache
from typing import Any, Callable, Dict, List, Literal, Optional, Tuple

# Pre-import packages that nltk pulls in during its init so they are already in
# sys.modules before nltk's inisec.py finder is installed. nltk>=3.9 blocks any
# import originating from nltk if the module path falls inside the process CWD —
# which happens in CI where the server venv lives inside the repo root.
import defusedxml.ElementTree # noqa: F401
import regex # noqa: F401
from fastapi import FastAPI
from pydantic import ConfigDict, PrivateAttr

Expand Down
2 changes: 1 addition & 1 deletion resources_servers/rolemrc/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Reference-metric scoring (reference mode).
rouge-score>=0.1.2
sacrebleu>=2.4
nltk>=3.9
nltk>=3.10.0
# BERTScore is on by default in reference mode; pulls a roberta-large checkpoint
# on first use. Drop these three deps (and set include_bertscore=false) for a
# lightweight ROUGE/BLEU/METEOR-only install. matplotlib + pillow are declared
Expand Down
6 changes: 6 additions & 0 deletions resources_servers/toolsandbox/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,13 @@
import uuid
from typing import Any, Dict, List, Optional, Tuple

# Pre-import packages that nltk pulls in during its init so they are already in
# sys.modules before nltk's inisec.py finder is installed. nltk>=3.9 blocks any
# import originating from nltk if the module path falls inside the process CWD —
# which happens in CI where the server venv lives inside the repo root.
import defusedxml.ElementTree # noqa: F401
import polars as pl
import regex # noqa: F401
from fastapi import FastAPI, Request
from openai import NOT_GIVEN
from openai.types.chat import ChatCompletion
Expand Down
Loading