Skip to content

fix(nemo-agents): update fabric adapter compatibility - #865

Merged
mmogallapalli merged 4 commits into
mainfrom
pr-863
Jul 24, 2026
Merged

fix(nemo-agents): update fabric adapter compatibility#865
mmogallapalli merged 4 commits into
mainfrom
pr-863

Conversation

@mmogallapalli

@mmogallapalli mmogallapalli commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR updates the NeMo Agents Fabric integration to align with the current nemo-fabric>=0.1.0a20260724,<0.2.0 packaging/API shape while keeping Fabric out of the default Platform dependency path for now.

The main intent is to keep the default workspace and CI compatible while still allowing Fabric-backed agent flows to be tested explicitly via the nemo-agents-plugin[fabric] extra.

Changes

  • Moved Fabric dependencies behind a new optional fabric extra on nemo-agents-plugin.
  • Removed Fabric from the generated default nemo-agents-plugin dependency bundle in packages/nemo_platform.
  • Set the optional Fabric extra to the fixed prerelease range:
    • nemo-fabric[runtime]>=0.1.0a20260724,<0.2.0
    • nemo-fabric-adapters-codex>=0.1.0a20260724,<0.2.0
    • nemo-fabric-adapters-hermes>=0.1.0a20260724,<0.2.0
  • Updated the Fabric adapter mapping for Codex from nvidia.fabric.codex.cli to nvidia.fabric.codex.
  • Updated the example Platform-owned agent config to default to Codex.
  • Added Hermes isolated-environment settings via HERMES_ADAPTER_PYTHON.
  • Added README instructions for explicitly installing Fabric dependencies and running Codex/Hermes smoke tests.
  • Updated unit tests to cover the current example config and adapter IDs.
  • Regenerated lock/vendor/license artifacts after dependency changes.

Why Fabric Is Optional For Now

nemo-fabric>=0.1.0a20260724,<0.2.0 uses the newer config-first SDK contract. Other workspace consumers are still migrating to that contract, so installing Fabric in the default workspace can cause unrelated type/lint failures.

Keeping Fabric behind nemo-agents-plugin[fabric] lets us test and iterate on the NeMo Agents Fabric path without forcing the whole workspace onto that SDK API immediately.

Summary by CodeRabbit

Summary

  • New Features
    • Expanded the Fabric-backed agent config example for Codex and Hermes.
    • Added support for configuring a Hermes Python environment via a python_env setting.
  • Bug Fixes
    • Updated Codex harness translation to use the correct adapter identifier.
  • Documentation
    • Added an end-to-end README with Codex and Hermes setup/invoke steps.
  • Chores
    • Refreshed Fabric optional dependency extras/version pins and updated pinned requirements/security/license metadata.
    • Updated the example config defaults and ignore rules (artifacts/, workspace/).

AjayThorve and others added 2 commits July 22, 2026 23:48
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Updates Fabric dependency packaging, changes Codex adapter translation, adds Hermes Python environment configuration, documents the example workflow, updates tests, and refreshes third-party advisory and license metadata.

Changes

Fabric adapter integration

Layer / File(s) Summary
Fabric dependency and package metadata
packages/nemo_platform/pyproject.toml, plugins/nemo-agents/pyproject.toml, third_party/requirements-main.txt, third_party/licenses.jsonl
Moves Fabric packages to pinned runtime and adapter requirements under the optional fabric extra and updates generated package metadata.
Agent configuration and translation
plugins/nemo-agents/examples/nemo-agent-config/*, plugins/nemo-agents/src/nemo_agents_plugin/fabric/translator.py, plugins/nemo-agents/tests/unit/*
Sets Codex as the default harness, adds Hermes python_env, removes skip_git_repo_check, maps Codex to nvidia.fabric.codex, and updates coverage.
OSV advisory metadata refresh
third_party/osv-licenses.json
Refreshes GitPython, pyasn1, and setuptools advisory data, package records, identifier groups, and license totals.

Possibly related PRs

Suggested reviewers: mikeknep

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: updating Nemo Agents Fabric adapter compatibility and packaging.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pr-863

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
plugins/nemo-agents/examples/nemo-agent-config/README.md (1)

1-42: 📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift

Restructure this as a complete HOW-TO page.

Add prerequisites at the top; present Codex and Hermes as tabbed variants; provide both Python SDK and CLI examples; verify the snippets before publishing; add Next Steps cross-links; and use configured substitutions for product names in prose.

As per coding guidelines, documentation pages must list prerequisites first, fit one Diataxis quadrant, use tab sets for variants, provide Python SDK and CLI examples, include Next Steps, test snippets, and avoid hardcoded product names.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/nemo-agents/examples/nemo-agent-config/README.md` around lines 1 -
42, Restructure the README into a complete HOW-TO page: add prerequisites first,
use configured substitutions for product names in prose, and place Codex and
Hermes instructions in tabbed variants. Provide verified Python SDK and CLI
examples for each applicable variant, then add a Next Steps section with
cross-links to related documentation; keep all commands and configuration
consistent with the existing agent.yaml workflow.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@plugins/nemo-agents/examples/nemo-agent-config/README.md`:
- Around line 35-41: Update the Hermes workflow instructions in the README to
explicitly restore default_harness to codex in agent.yaml after the Hermes
invocation, so subsequent invocations use the standard Codex default.

In `@plugins/nemo-agents/pyproject.toml`:
- Around line 21-23: The nemo-fabric dependency pins are inconsistent with the
lockfile. Update the pins at plugins/nemo-agents/pyproject.toml lines 21-23 and
packages/nemo_platform/pyproject.toml lines 237-239 for nemo-fabric[runtime],
nemo-fabric-adapters-codex, and nemo-fabric-adapters-hermes to 0.1.0a20260722,
or regenerate the lockfile so all dependency declarations and the lock resolve
to the same versions.

In `@plugins/nemo-agents/tests/unit/test_fabric_translator.py`:
- Around line 74-85: Update
test_repository_example_uses_current_codex_and_isolated_hermes_adapters to
assert config.default_harness equals "codex", then call
translate_agent_config(config) without harness_name for the Codex translation;
keep the explicit Hermes translation and existing adapter/settings assertions
unchanged.

---

Outside diff comments:
In `@plugins/nemo-agents/examples/nemo-agent-config/README.md`:
- Around line 1-42: Restructure the README into a complete HOW-TO page: add
prerequisites first, use configured substitutions for product names in prose,
and place Codex and Hermes instructions in tabbed variants. Provide verified
Python SDK and CLI examples for each applicable variant, then add a Next Steps
section with cross-links to related documentation; keep all commands and
configuration consistent with the existing agent.yaml workflow.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f608b1b7-1f2a-4fba-8487-0a847f19eef6

📥 Commits

Reviewing files that changed from the base of the PR and between 53947a1 and 8debe0f.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (12)
  • packages/nemo_platform/pyproject.toml
  • plugins/nemo-agents/examples/nemo-agent-config/.gitignore
  • plugins/nemo-agents/examples/nemo-agent-config/README.md
  • plugins/nemo-agents/examples/nemo-agent-config/agent.yaml
  • plugins/nemo-agents/pyproject.toml
  • plugins/nemo-agents/src/nemo_agents_plugin/fabric/translator.py
  • plugins/nemo-agents/tests/unit/test_agent_config.py
  • plugins/nemo-agents/tests/unit/test_fabric_translator.py
  • plugins/nemo-agents/tests/unit/test_fabric_validation.py
  • third_party/licenses.jsonl
  • third_party/osv-licenses.json
  • third_party/requirements-main.txt

Comment thread plugins/nemo-agents/examples/nemo-agent-config/README.md
Comment thread plugins/nemo-agents/pyproject.toml Outdated
Comment thread plugins/nemo-agents/tests/unit/test_fabric_translator.py
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 27158/34869 77.9% 62.2%
Integration Tests 15968/33581 47.5% 20.0%

Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
@mmogallapalli
mmogallapalli added this pull request to the merge queue Jul 24, 2026
Merged via the queue into main with commit 009588a Jul 24, 2026
62 checks passed
@mmogallapalli
mmogallapalli deleted the pr-863 branch July 24, 2026 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants