Skip to content

Commit 6aa1ed6

Browse files
Merge remote-tracking branch 'upstream/release/1.4' into ak-per-user-a2a
2 parents e31667d + 5690ec4 commit 6aa1ed6

File tree

14 files changed

+70
-59
lines changed

14 files changed

+70
-59
lines changed

.coderabbit.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ reviews:
129129
digit version (ex: `~=1.0`).
130130
- Not all packages contain Python code, if they do they should also contain their own set of tests, in a
131131
`tests/` directory at the same level as the `pyproject.toml` file.
132-
- When adding a new package, that new package name (as defined in the `pyproject.toml` file) should
132+
- When adding a new package, that new package name (as defined in the `pyproject.toml` file) should
133133
be added as a dependency to the nvidia-nat-all package in `packages/nvidia_nat_all/pyproject.toml`
134134
135135
- path: "tests/**/*.py"
@@ -142,6 +142,8 @@ reviews:
142142
@pytest.fixture(name="my_fixture")
143143
def fixture_my_fixture():
144144
pass
145+
- Do NOT add `@pytest.mark.asyncio` to any test. Async tests are automatically detected and run by the
146+
async runner - the decorator is unnecessary clutter.
145147
146148
auto_apply_labels: true
147149
suggested_labels: true

.cursor/rules/documentation/capitalization.mdc

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
description:
2+
description:
33
globs: **/*.md
44
alwaysApply: false
55
---
@@ -105,11 +105,14 @@ Don't capitalize:
105105
- **Commands**: Usually lowercase unless they're proper names
106106

107107
### Product Names
108-
- **Use official capitalization**:
109-
- NVIDIA NeMo Agent toolkit (first use)
110-
- Agent toolkit (subsequent uses)
108+
- **Use official capitalization**:
109+
- NVIDIA NeMo Agent toolkit (first use in body text)
110+
- NVIDIA NeMo Agent Toolkit (first use in titles/headings where all words are capitalized)
111+
- NeMo Agent toolkit or "the toolkit" (subsequent uses in body text)
112+
- NeMo Agent Toolkit (subsequent uses in titles/headings)
111113
- CUDA, TensorRT, PyTorch
112114
- **Don't capitalize** generic terms: database, server, application (unless part of proper name)
115+
- **Never use** "NAT" or "nat" as an abbreviation for the toolkit in documentation
113116

114117
### Feature Names
115118
- **Capitalize** official feature names: Smart Search, Auto-Save, Real-time Analytics
@@ -136,7 +139,7 @@ Don't capitalize:
136139
- **Example**: "application programming interface" → "API"
137140

138141
#### Version Numbers
139-
- **Follow product conventions**:
142+
- **Follow product conventions**:
140143
- "version 2.1" (lowercase version)
141144
- "Python 3.9" (capitalize language name)
142145
- "CUDA 11.8" (follow product style)

.cursor/rules/documentation/general.mdc

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,23 @@ Follow these rules when working with any documentation in the NeMo Agent toolkit
3131

3232
### Terminology and Naming
3333
- Make sure to follow this naming convention for all the documentation. If there is any documentation not following this rule, you MUST update it.
34-
- **Full name on first use**: "NVIDIA NeMo Agent toolkit"
35-
- **Subsequent references**: "NeMo Agent toolkit"
36-
- **Abbreviations**: "NAT" or "nat"
37-
- "nat" for the API namespace and CLI tool
38-
- "nvidia-nat" for the package name
39-
- "NAT" for environment variable prefixes, and informal usage in comments
40-
- This should be used for all abbreviations in the comments in the code.
41-
- This should NEVER be used in the documentation.
34+
- **Full name (first use)**: "NVIDIA NeMo Agent toolkit" — use for document titles, webpage headers, and any public descriptions
35+
- **Short name (subsequent references)**: "NeMo Agent toolkit" or "the toolkit"
36+
- **Capitalization rules**:
37+
- In document titles, headings, or any context where all words are capitalized, use "Toolkit" (capital T): e.g., "NVIDIA NeMo Agent Toolkit" or "NeMo Agent Toolkit"
38+
- In all other contexts (body text, descriptions), use "toolkit" (lowercase t): e.g., "NVIDIA NeMo Agent toolkit" or "NeMo Agent toolkit"
39+
- **Technical identifiers** (code, CLI, packages, URLs):
40+
- `nat` for the API namespace and CLI tool
41+
- `nvidia-nat` for the package name
42+
- `NAT_` prefix for environment variables
43+
- `NeMo-Agent-Toolkit` for URLs, directory names, and contexts where capitalization is preserved (no underscores or spaces)
44+
- **"NAT" abbreviation**:
45+
- OK in code comments
46+
- NEVER use "NAT" or "nat" to refer to the toolkit in documentation
4247
- Examples:
4348
- "In the NeMo Agent toolkit, you can…"
4449
- "Change directory to the NeMo Agent toolkit repo root…"
50+
- Heading: "# Getting Started with NeMo Agent Toolkit"
4551
- Consistently use this terminology throughout all documentation
4652
- NeMo Agent toolkit was previously known as the Agent Intelligence toolkit, and AgentIQ. You should NEVER use the deprecated names, including Agent Intelligence toolkit, aiqtoolkit, AgentIQ, or AIQ/aiq. If you see any of these names in the documentation, you MUST update it based on the latest naming convention above, unless those names are intentionally used to refer to the deprecated names, or implementing a compatibility layer for the deprecated names.
4753

.cursor/rules/documentation/punctuation.mdc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
description:
2+
description:
33
globs: **/*.md
44
alwaysApply: false
55
---
@@ -32,6 +32,10 @@ Use apostrophes for:
3232
- Possessive form of "it" → use `its`
3333
- Possessive pronouns → `yours`, `theirs`
3434
- Plural nouns → `devices` not `device's`
35+
- Inanimate objects (use alternative phrasing instead)
36+
- **Incorrect**: "NeMo Agent toolkit's evaluation system can be used..."
37+
- **Correct**: "The NeMo Agent toolkit evaluation system can be used..."
38+
- **Also correct**: "The evaluation system included in NeMo Agent toolkit can be used..."
3539

3640
### Brackets
3741

@@ -121,7 +125,7 @@ Use apostrophes for:
121125
- `History is stained with blood spilled in the name of "civilization."`
122126
- **Colons and semicolons**: Always outside quotation marks
123127
- `Three elements of her "Olympic journey": family, commitment, coaching`
124-
- **Question marks and exclamation points**:
128+
- **Question marks and exclamation points**:
125129
- Inside if they apply to the quotation
126130
- Outside if they apply to the whole sentence
127131

.cursor/rules/general.mdc

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,23 @@ These are the overarching standards that every **source, test, documentation and
1313
## Terminology and Naming
1414

1515
- Make sure to follow this naming convention for all the documentation. If there is any documentation not following this rule, you MUST update it.
16-
- **Full name on first use**: "NVIDIA NeMo Agent toolkit"
17-
- **Subsequent references**: "NeMo Agent toolkit"
18-
- If the name is part of a heading, use "NeMo Agent Toolkit" in the heading. Capitalize the "T" in "Toolkit".
19-
- **Abbreviations**: "NAT" or "nat"
20-
- "nat" for the API namespace and CLI tool
21-
- "nvidia-nat" for the package name
22-
- "NAT" for environment variable prefixes, and informal usage in comments
23-
- This should be used for all abbreviations in the comments in the code.
24-
- This should NEVER be used in the documentation.
16+
- **Full name (first use)**: "NVIDIA NeMo Agent toolkit" — use for document titles, webpage headers, and any public descriptions
17+
- **Short name (subsequent references)**: "NeMo Agent toolkit" or "the toolkit"
18+
- **Capitalization rules**:
19+
- In document titles, headings, or any context where all words are capitalized, use "Toolkit" (capital T): e.g., "NVIDIA NeMo Agent Toolkit" or "NeMo Agent Toolkit"
20+
- In all other contexts (body text, descriptions), use "toolkit" (lowercase t): e.g., "NVIDIA NeMo Agent toolkit" or "NeMo Agent toolkit"
21+
- **Technical identifiers** (code, CLI, packages, URLs):
22+
- `nat` for the API namespace and CLI tool
23+
- `nvidia-nat` for the package name
24+
- `NAT_` prefix for environment variables
25+
- `NeMo-Agent-Toolkit` for URLs, directory names, and contexts where capitalization is preserved (no underscores or spaces)
26+
- **"NAT" abbreviation**:
27+
- OK in code comments
28+
- NEVER use "NAT" or "nat" to refer to the toolkit in documentation
2529
- Examples:
2630
- "In the NeMo Agent toolkit, you can…"
2731
- "Change directory to the NeMo Agent toolkit repo root…"
32+
- Heading: "# Getting Started with NeMo Agent Toolkit"
2833
- Consistently use this terminology throughout all documentation
2934
- NeMo Agent toolkit was previously known as the Agent Intelligence toolkit, and AgentIQ. You should NEVER use the deprecated names, including Agent Intelligence toolkit, aiqtoolkit, AgentIQ, or AIQ/aiq. If you see any of these names in the documentation, you should update it based on the latest naming convention above, unless those names are intentionally used to refer to the deprecated names, or implementing a compatibility layer for the deprecated names.
3035
- DO NOT change the content of `CHANGELOG.md`

.cursor/rules/nat-tests/general.mdc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ All tests in NeMo Agent toolkit use pytest. See the general coding guidelines fo
2626
- Use `@pytest.fixture(name="fixture_name")` decorator pattern
2727
- Mock external services with `pytest_httpserver` or `unittest.mock`
2828
- Maintain ≥ 80% code coverage
29+
- Do NOT add `@pytest.mark.asyncio` to any test - async tests are automatically detected and run by the async runner
2930

3031
### Integration Tests
3132

.cursor/rules/nat-tests/integration-tests.mdc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ Key practices:
175175
- Import third-party service libraries at module level in fixtures
176176
- Use function scope for service fixtures (use session scope)
177177
- Fail tests when services are unavailable (skip them instead)
178+
- Add `@pytest.mark.asyncio` decorator - async tests are automatically detected and run by the async runner
178179

179180
## Running Integration Tests
180181

docs/source/get-started/tutorials/build-a-demo-agent-workflow-using-cursor-rules.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@ Cursor rules in NeMo Agent toolkit act as an intelligent development that offers
2828

2929
## Common Prompts
3030

31-
:::{note}
32-
For optimal Cursor rules experience, avoid using the `Auto` mode for LLM model selection. Instead, manually choose a model from the selection menu, such as `claude-4-sonnet`.
33-
:::
34-
3531
The following are frequently used prompts to begin development:
3632

3733
**Installing NeMo Agent Toolkit:**

src/nat/cli/commands/evaluate.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -195,16 +195,19 @@ def process_nat_eval(
195195
"have a partially completed dataset.")
196196

197197
# Create the configuration object
198-
config = EvaluationRunConfig(
199-
config_file=config_file,
200-
dataset=str(dataset) if dataset else None,
201-
result_json_path=result_json_path,
202-
skip_workflow=skip_workflow,
203-
skip_completed_entries=skip_completed_entries,
204-
endpoint=endpoint,
205-
endpoint_timeout=endpoint_timeout,
206-
reps=reps,
207-
override=override,
208-
user_id=user_id,
209-
)
198+
# Only include user_id if explicitly provided via CLI, otherwise use the default
199+
config_kwargs = {
200+
"config_file": config_file,
201+
"dataset": str(dataset) if dataset else None,
202+
"result_json_path": result_json_path,
203+
"skip_workflow": skip_workflow,
204+
"skip_completed_entries": skip_completed_entries,
205+
"endpoint": endpoint,
206+
"endpoint_timeout": endpoint_timeout,
207+
"reps": reps,
208+
"override": override,
209+
}
210+
if user_id is not None:
211+
config_kwargs["user_id"] = user_id
212+
config = EvaluationRunConfig(**config_kwargs)
210213
asyncio.run(run_and_evaluate(config))

src/nat/data_models/config.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,12 +215,6 @@ class GeneralConfig(BaseModel):
215215

216216
telemetry: TelemetryConfig = TelemetryConfig()
217217

218-
default_user_id: str = Field(
219-
default="default_user_id",
220-
description="Default user ID for per-user workflows when "
221-
"no session is available (for example, when using 'nat run'). This value identifies "
222-
"the workflow instances. For multi-user deployments with 'nat serve', the 'nat-session' "
223-
"cookie overrides this value. Must be a non-empty string when used as a fallback user ID.")
224218
per_user_workflow_timeout: timedelta = Field(
225219
default=timedelta(minutes=30),
226220
description="Time after which inactive per-user workflows are cleaned up. "

0 commit comments

Comments
 (0)