nvidia-nat 1.4.0a20251102__py3-none-any.whl → 1.4.0a20251120__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. nat/builder/builder.py +52 -0
  2. nat/builder/component_utils.py +7 -1
  3. nat/builder/context.py +17 -0
  4. nat/builder/framework_enum.py +1 -0
  5. nat/builder/function.py +74 -3
  6. nat/builder/workflow.py +4 -2
  7. nat/builder/workflow_builder.py +129 -0
  8. nat/cli/commands/workflow/workflow_commands.py +3 -2
  9. nat/cli/register_workflow.py +50 -0
  10. nat/cli/type_registry.py +68 -0
  11. nat/data_models/component.py +2 -0
  12. nat/data_models/component_ref.py +11 -0
  13. nat/data_models/config.py +16 -0
  14. nat/data_models/function.py +14 -1
  15. nat/data_models/middleware.py +35 -0
  16. nat/data_models/runtime_enum.py +26 -0
  17. nat/eval/dataset_handler/dataset_filter.py +34 -2
  18. nat/eval/evaluate.py +11 -3
  19. nat/eval/utils/weave_eval.py +17 -3
  20. nat/front_ends/fastapi/fastapi_front_end_config.py +29 -0
  21. nat/front_ends/fastapi/fastapi_front_end_plugin.py +13 -7
  22. nat/front_ends/fastapi/fastapi_front_end_plugin_worker.py +144 -14
  23. nat/front_ends/mcp/mcp_front_end_plugin.py +4 -0
  24. nat/front_ends/mcp/mcp_front_end_plugin_worker.py +26 -0
  25. nat/llm/aws_bedrock_llm.py +11 -9
  26. nat/llm/azure_openai_llm.py +12 -4
  27. nat/llm/litellm_llm.py +11 -4
  28. nat/llm/nim_llm.py +11 -9
  29. nat/llm/openai_llm.py +12 -9
  30. nat/middleware/__init__.py +35 -0
  31. nat/middleware/cache_middleware.py +256 -0
  32. nat/middleware/function_middleware.py +186 -0
  33. nat/middleware/middleware.py +184 -0
  34. nat/middleware/register.py +35 -0
  35. nat/profiler/decorators/framework_wrapper.py +16 -0
  36. nat/retriever/milvus/register.py +11 -3
  37. nat/retriever/milvus/retriever.py +102 -40
  38. nat/runtime/runner.py +12 -1
  39. nat/runtime/session.py +10 -3
  40. nat/tool/code_execution/code_sandbox.py +4 -7
  41. nat/tool/code_execution/local_sandbox/Dockerfile.sandbox +19 -32
  42. nat/tool/code_execution/local_sandbox/local_sandbox_server.py +5 -0
  43. nat/tool/code_execution/local_sandbox/sandbox.requirements.txt +2 -0
  44. nat/tool/code_execution/local_sandbox/start_local_sandbox.sh +10 -4
  45. nat/tool/server_tools.py +15 -2
  46. nat/utils/__init__.py +8 -4
  47. nat/utils/io/yaml_tools.py +73 -3
  48. {nvidia_nat-1.4.0a20251102.dist-info → nvidia_nat-1.4.0a20251120.dist-info}/METADATA +11 -3
  49. {nvidia_nat-1.4.0a20251102.dist-info → nvidia_nat-1.4.0a20251120.dist-info}/RECORD +54 -50
  50. {nvidia_nat-1.4.0a20251102.dist-info → nvidia_nat-1.4.0a20251120.dist-info}/entry_points.txt +1 -0
  51. nat/data_models/temperature_mixin.py +0 -44
  52. nat/data_models/top_p_mixin.py +0 -44
  53. nat/tool/code_execution/test_code_execution_sandbox.py +0 -414
  54. {nvidia_nat-1.4.0a20251102.dist-info → nvidia_nat-1.4.0a20251120.dist-info}/WHEEL +0 -0
  55. {nvidia_nat-1.4.0a20251102.dist-info → nvidia_nat-1.4.0a20251120.dist-info}/licenses/LICENSE-3rd-party.txt +0 -0
  56. {nvidia_nat-1.4.0a20251102.dist-info → nvidia_nat-1.4.0a20251120.dist-info}/licenses/LICENSE.md +0 -0
  57. {nvidia_nat-1.4.0a20251102.dist-info → nvidia_nat-1.4.0a20251120.dist-info}/top_level.txt +0 -0
@@ -16,6 +16,7 @@
16
16
  import io
17
17
  import logging
18
18
  import typing
19
+ from pathlib import Path
19
20
 
20
21
  import expandvars
21
22
  import yaml
@@ -44,23 +45,92 @@ def _interpolate_variables(value: str | int | float | bool | None) -> str | int
44
45
  return expandvars.expandvars(value)
45
46
 
46
47
 
47
- def yaml_load(config_path: StrPath) -> dict:
48
+ def deep_merge(base: dict, override: dict) -> dict:
49
+ """
50
+ Recursively merge override dictionary into base dictionary.
51
+
52
+ Args:
53
+ base (dict): The base configuration dictionary.
54
+ override (dict): The override configuration dictionary.
55
+
56
+ Returns:
57
+ dict: The merged configuration dictionary.
58
+ """
59
+ result = base.copy()
60
+ for key, value in override.items():
61
+ if key in result and isinstance(result[key], dict) and isinstance(value, dict):
62
+ result[key] = deep_merge(result[key], value)
63
+ else:
64
+ result[key] = value
65
+ return result
66
+
67
+
68
+ def yaml_load(config_path: StrPath, _visited: set[Path] | None = None) -> dict:
48
69
  """
49
70
  Load a YAML file and interpolate variables in the format
50
71
  ${VAR:-default_value}.
51
72
 
73
+ If the YAML file contains a "base" key, the file at that path will be
74
+ loaded first, and the current config will be merged on top of it. This enables
75
+ config inheritance to reduce duplication across similar configuration files.
76
+
52
77
  Args:
53
78
  config_path (StrPath): The path to the YAML file to load.
79
+ _visited (set[Path] | None): Internal parameter for circular dependency detection.
54
80
 
55
81
  Returns:
56
82
  dict: The processed configuration dictionary.
83
+
84
+ Raises:
85
+ TypeError: If the "base" key is not a string.
86
+ FileNotFoundError: If the base configuration file does not exist.
87
+ ValueError: If a circular dependency is detected in configuration inheritance.
57
88
  """
89
+ # Normalize the config path and detect circular dependencies
90
+ config_path_obj = Path(config_path).resolve()
91
+
92
+ if _visited is None:
93
+ _visited = set()
94
+
95
+ if config_path_obj in _visited:
96
+ raise ValueError(f"Circular dependency detected in configuration inheritance: {config_path_obj} "
97
+ f"is already in the inheritance chain")
98
+
99
+ _visited.add(config_path_obj)
58
100
 
59
101
  # Read YAML file
60
- with open(config_path, encoding="utf-8") as stream:
102
+ with open(config_path_obj, encoding="utf-8") as stream:
61
103
  config_str = stream.read()
62
104
 
63
- return yaml_loads(config_str)
105
+ config = yaml_loads(config_str)
106
+
107
+ # Check if config specifies a base for inheritance
108
+ if "base" in config:
109
+ base_path_str = config["base"]
110
+
111
+ # Validate that base is a string
112
+ if not isinstance(base_path_str, str):
113
+ raise TypeError(f"Configuration 'base' key must be a string, got {type(base_path_str).__name__}")
114
+
115
+ # Resolve base path relative to current config
116
+ if not Path(base_path_str).is_absolute():
117
+ base_path = config_path_obj.parent / base_path_str
118
+ else:
119
+ base_path = Path(base_path_str)
120
+
121
+ # Normalize and check if base file exists
122
+ base_path = base_path.resolve()
123
+ if not base_path.exists():
124
+ raise FileNotFoundError(f"Base configuration file not found: {base_path}")
125
+
126
+ # Load base config (recursively, so bases can have bases)
127
+ base_config = yaml_load(base_path, _visited=_visited)
128
+
129
+ # Perform deep merge and remove 'base' key from result
130
+ config = deep_merge(base_config, config)
131
+ config.pop("base", None)
132
+
133
+ return config
64
134
 
65
135
 
66
136
  def yaml_loads(config: str) -> dict:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nvidia-nat
3
- Version: 1.4.0a20251102
3
+ Version: 1.4.0a20251120
4
4
  Summary: NVIDIA NeMo Agent toolkit
5
5
  Author: NVIDIA Corporation
6
6
  Maintainer: NVIDIA Corporation
@@ -39,11 +39,11 @@ Requires-Dist: pkce==1.0.3
39
39
  Requires-Dist: pkginfo~=1.12
40
40
  Requires-Dist: platformdirs~=4.3
41
41
  Requires-Dist: pydantic~=2.11
42
- Requires-Dist: pymilvus~=2.4
42
+ Requires-Dist: pymilvus~=2.5
43
43
  Requires-Dist: python-dotenv~=1.1.1
44
44
  Requires-Dist: PyYAML~=6.0
45
45
  Requires-Dist: ragas~=0.2.14
46
- Requires-Dist: rich~=13.9
46
+ Requires-Dist: rich<15.0.0,>=14.0.0
47
47
  Requires-Dist: tabulate~=0.9
48
48
  Requires-Dist: uvicorn[standard]<0.36
49
49
  Requires-Dist: wikipedia~=1.4
@@ -83,12 +83,18 @@ Provides-Extra: s3
83
83
  Requires-Dist: nvidia-nat-s3; extra == "s3"
84
84
  Provides-Extra: semantic-kernel
85
85
  Requires-Dist: nvidia-nat-semantic-kernel; extra == "semantic-kernel"
86
+ Provides-Extra: strands
87
+ Requires-Dist: nvidia-nat-strands; extra == "strands"
86
88
  Provides-Extra: telemetry
87
89
  Requires-Dist: nvidia-nat-data-flywheel; extra == "telemetry"
88
90
  Requires-Dist: nvidia-nat-opentelemetry; extra == "telemetry"
89
91
  Requires-Dist: nvidia-nat-phoenix; extra == "telemetry"
90
92
  Requires-Dist: nvidia-nat-ragaai; extra == "telemetry"
91
93
  Requires-Dist: nvidia-nat-weave; extra == "telemetry"
94
+ Provides-Extra: test
95
+ Requires-Dist: nvidia-nat-test; extra == "test"
96
+ Provides-Extra: vanna
97
+ Requires-Dist: nvidia-nat-vanna; extra == "vanna"
92
98
  Provides-Extra: weave
93
99
  Requires-Dist: nvidia-nat-weave; extra == "weave"
94
100
  Provides-Extra: zep-cloud
@@ -107,6 +113,7 @@ Requires-Dist: nat_profiler_agent; extra == "examples"
107
113
  Requires-Dist: nat_router_agent; extra == "examples"
108
114
  Requires-Dist: nat_semantic_kernel_demo; extra == "examples"
109
115
  Requires-Dist: nat_sequential_executor; extra == "examples"
116
+ Requires-Dist: nat_service_account_auth_mcp; extra == "examples"
110
117
  Requires-Dist: nat_simple_auth; extra == "examples"
111
118
  Requires-Dist: nat_simple_auth_mcp; extra == "examples"
112
119
  Requires-Dist: nat_simple_web_query; extra == "examples"
@@ -118,6 +125,7 @@ Requires-Dist: nat_simple_calculator_mcp; extra == "examples"
118
125
  Requires-Dist: nat_simple_calculator_observability; extra == "examples"
119
126
  Requires-Dist: nat_simple_calculator_hitl; extra == "examples"
120
127
  Requires-Dist: nat_simple_rag; extra == "examples"
128
+ Requires-Dist: nat_strands_demo; extra == "examples"
121
129
  Requires-Dist: nat_swe_bench; extra == "examples"
122
130
  Requires-Dist: nat_user_report; extra == "examples"
123
131
  Provides-Extra: gunicorn
@@ -42,28 +42,28 @@ nat/authentication/oauth2/oauth2_auth_code_flow_provider_config.py,sha256=R261a2
42
42
  nat/authentication/oauth2/oauth2_resource_server_config.py,sha256=WtqFMsJ-FzIjP7tjqs-tdYN4Pck0wxvdSyKIObNtU_8,5374
43
43
  nat/authentication/oauth2/register.py,sha256=7rXhf-ilgSS_bUJsd9pOOCotL1FM8dKUt3ke1TllKkQ,1228
44
44
  nat/builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- nat/builder/builder.py,sha256=okI3Y101hwF63AwazzxiahQx-W9eFZ_SNdFXzDuoftU,11608
46
- nat/builder/component_utils.py,sha256=gxDhm4NCLI1GU0XL9gFe_gife0oJLwgk_YuABJneFfs,13838
47
- nat/builder/context.py,sha256=YmgYHzXggPQCOIBj1Mirr7xKM7NvtVr3XrSfn979fDM,13138
45
+ nat/builder/builder.py,sha256=tASkiXNAia1rG-IfBY80CJIGSOrPb4bb6hKzZqPwbNw,13290
46
+ nat/builder/component_utils.py,sha256=yUOGpc-26WZvJIMZylXr0ykVmoSC-CbRQ0AZvW1fMkQ,14129
47
+ nat/builder/context.py,sha256=_TqYF4Gsdnt7jvUmcwoTCM-CtlFqbHIlsA_BeSwHCS0,13895
48
48
  nat/builder/embedder.py,sha256=NPkOEcxt_-wc53QRijCQQDLretRUYHRYaKoYmarmrBk,965
49
49
  nat/builder/eval_builder.py,sha256=I-ScvupmorClYoVBIs_PhSsB7Xf9e2nGWe0rCZp3txo,6857
50
50
  nat/builder/evaluator.py,sha256=xWHMND2vcAUkdFP7FU3jnVki1rUHeTa0-9saFh2hWKs,1162
51
- nat/builder/framework_enum.py,sha256=n7IaTQBxhFozIQqRMcX9kXntw28JhFzCj82jJ0C5tNU,901
51
+ nat/builder/framework_enum.py,sha256=mClqqhe1LXQKCpi64GdeJen_C_DJ8V3AhgY9I2GAYi8,925
52
52
  nat/builder/front_end.py,sha256=FCJ87NSshVVuTg8zZrq3YAr_u0RaYVZVcibnqlRFy-M,2173
53
- nat/builder/function.py,sha256=eZZWLwhphgQTnPvbga8sGleX7HCP46usZPIegE7zFzs,27725
53
+ nat/builder/function.py,sha256=lGRDVs0tTjMkDZNJSbb3aTraA4Z2XBI7qRWUX83nxvw,30996
54
54
  nat/builder/function_base.py,sha256=0Eg8RtjWhEU3Yme0CVxcRutobA0Qo8-YHZLI6L2qAgM,13116
55
55
  nat/builder/function_info.py,sha256=7Rmrn-gOFrT2TIJklJwA_O-ycx_oimwZ0-qMYpbuZrU,25161
56
56
  nat/builder/intermediate_step_manager.py,sha256=oHbvFg4R9Ka5a2KmUVETJFUxKZt90A96r9KH1TrJlR4,8999
57
57
  nat/builder/llm.py,sha256=DW-2q64A06VChsXNEL5PfBjH3DcsnTKVoCEWDuP7MF4,951
58
58
  nat/builder/retriever.py,sha256=ZyEqc7pFK31t_yr6Jaxa34c-tRas2edKqJZCNiVh9-0,970
59
59
  nat/builder/user_interaction_manager.py,sha256=-Z2qbQes7a2cuXgT7KEbWeuok0HcCnRdw9WB8Ghyl9k,3081
60
- nat/builder/workflow.py,sha256=bHrxK-VFsxUTw2wZgkWcCttpCMDeWNGPfmIGEW_bjZo,6908
61
- nat/builder/workflow_builder.py,sha256=GgNkeBmG_q3YGnGliuzpYhkC869q_PdaP4RoqXH6HdI,58709
60
+ nat/builder/workflow.py,sha256=3BPPYseD96zzj3lT4Iy_FnoAPkQyMEHwVQxoCV4tiCI,7080
61
+ nat/builder/workflow_builder.py,sha256=nvnoua_DJzbvloJLQQ884UbN7z4S2lqlCj5Dg_X7hzA,64444
62
62
  nat/cli/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
63
63
  nat/cli/entrypoint.py,sha256=vN9G8fe-7ITmsVciJU11Fk7JaSxFnN5A4FrD7WjYbxg,5105
64
64
  nat/cli/main.py,sha256=LZMKvoHYR926mghMjVpfLiI2qraqtrhMY9hvuAQCRWk,2258
65
- nat/cli/register_workflow.py,sha256=DOQQgUWB_NO9k7nlkP4cAx_RX03Cndk032K-kqyuvEs,23285
66
- nat/cli/type_registry.py,sha256=HbPU-7lzSHZ4aepJ3qOgfnl5LzK6-KHwcerhFpWw6mU,48839
65
+ nat/cli/register_workflow.py,sha256=UxhCsyrLJgPBBTgJnTQilQFHUtsgVc39iS6da6jHtto,25135
66
+ nat/cli/type_registry.py,sha256=OkR-K1JL_UGJUITA_mx-SJp9qAX9yJzPFDApAXHHCuI,51671
67
67
  nat/cli/cli_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  nat/cli/cli_utils/config_override.py,sha256=6eYS_dYsf-4fSc70_z9dVc66EaTDsjOVwVFWQfKGlZE,8899
69
69
  nat/cli/cli_utils/validation.py,sha256=KVZvAkWZx-QVVBuCFTcH2muLzMB7ONQA1GE2TzEVN78,1288
@@ -99,7 +99,7 @@ nat/cli/commands/sizing/calc.py,sha256=3cJHKCbzvV7EwYfLcpfk3_Ki7soAjOaiBcLK-Q6hP
99
99
  nat/cli/commands/sizing/sizing.py,sha256=-Hr9mz_ScEMtBbn6ijvmmWVk0WybLeX0Ryi4qhDiYQU,902
100
100
  nat/cli/commands/workflow/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
101
101
  nat/cli/commands/workflow/workflow.py,sha256=40nIOehOX-4xI-qJqJraBX3XVz3l2VtFsZkMQYd897w,1342
102
- nat/cli/commands/workflow/workflow_commands.py,sha256=hJXsy0vDhL6ITCJaM_xPepXwEom2E6_beTqr0HBldaU,14256
102
+ nat/cli/commands/workflow/workflow_commands.py,sha256=SI2redhG-9tLgWWXcRjkxdFhvKmmzBIqzWHZhRZpAbQ,14399
103
103
  nat/cli/commands/workflow/templates/__init__.py.j2,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
104
  nat/cli/commands/workflow/templates/config.yml.j2,sha256=KORGAFt1TW524YxXD2jpm_uTESihUKV5fnSoXQrH1PI,368
105
105
  nat/cli/commands/workflow/templates/pyproject.toml.j2,sha256=lDBC4exHYutXa_skuJj176yMEuZr-DsdzrqQHPZoKpk,1035
@@ -117,16 +117,16 @@ nat/data_models/agent.py,sha256=IwDyb9Zc3R4Zd5rFeqt7q0EQswczAl5focxV9KozIzs,1625
117
117
  nat/data_models/api_server.py,sha256=sX_faprmycij1Zy_PQqEMtAcbvGD8PG1kWKLAyNQx6M,30775
118
118
  nat/data_models/authentication.py,sha256=XPu9W8nh4XRSuxPv3HxO-FMQ_JtTEoK6Y02JwnzDwTg,8457
119
119
  nat/data_models/common.py,sha256=dOtZI6g9AvFplu40nTsUDnahafVa9c2VITq19V_cb50,7302
120
- nat/data_models/component.py,sha256=b_hXOA8Gm5UNvlFkAhsR6kEvf33ST50MKtr5kWf75Ao,1894
121
- nat/data_models/component_ref.py,sha256=KFDWFVCcvJCfBBcXTh9f3R802EVHBtHXh9OdbRqFmdM,4747
122
- nat/data_models/config.py,sha256=P0JJmjqvUHUkpZ3Yc0IrMPoA2qP8HkmOjl7CwNq-nQQ,18833
120
+ nat/data_models/component.py,sha256=TA8wm5H8L_6hlihYqBmQvE2xRT2FXAsS4QxJ-0bZ4EU,1954
121
+ nat/data_models/component_ref.py,sha256=_hJiv-Uxogr0wT3u-2IwTLlRFIGRIBFilqSUuJk9kmY,4962
122
+ nat/data_models/config.py,sha256=6Sz06P3SnblHFD6Tm8FH1tE5C2HQe7ZVzD9vLYQxaMc,19695
123
123
  nat/data_models/dataset_handler.py,sha256=1zz0456WGcGdLA9bodbMd1EMtQC8pns8TpvjNkk27No,5611
124
124
  nat/data_models/discovery_metadata.py,sha256=_l97iQsqp_ihba8CbMBQ73mH1sipTQ19GiJDdzQYQGY,13432
125
125
  nat/data_models/embedder.py,sha256=nPhthEQDtzAMGd8gFRB1ZfJpN5M9DJvv0h28ohHnTmI,1002
126
126
  nat/data_models/evaluate.py,sha256=L0GdNh_c8jii-MiK8oHW9sUUsGO3l1FMsprr-UazT5c,4836
127
127
  nat/data_models/evaluator.py,sha256=bd2njsyQB2t6ClJ66gJiCjYHsQpWZwPD7rsU0J109TI,939
128
128
  nat/data_models/front_end.py,sha256=z8k6lSWjt1vMOYFbjWQxodpwAqPeuGS0hRBjsriDW2s,932
129
- nat/data_models/function.py,sha256=CuhV-fIjVVTsOJmTbvZ5Q9V370uKZJ0bJLyU2gEe35E,2265
129
+ nat/data_models/function.py,sha256=8kqyjNRSpSfTS4pXis351SRT6vlKMBYMyoeZmBflnNs,2832
130
130
  nat/data_models/function_dependencies.py,sha256=soDGXU4IwEn-3w3fGDm6vNLOR6jS6me-Ml_g7B6giBw,2901
131
131
  nat/data_models/gated_field_mixin.py,sha256=1xycSpXc_fq8CucLp3khE1w0-JYfcbr__EJkbvxTD0w,9817
132
132
  nat/data_models/interactive.py,sha256=qOkxyYPQYEBIBMDAA1rjfYcdvf6-iCM4qPV8Awc4VGw,8794
@@ -135,6 +135,7 @@ nat/data_models/invocation_node.py,sha256=nDRylgzBfJduGA-lme9xN4P6BdOYj0L6ytLHnT
135
135
  nat/data_models/llm.py,sha256=HQKNeWx3ZT15W19b7QX5dHRD4jFs9RnM6f-gh1B_7iY,1526
136
136
  nat/data_models/logging.py,sha256=1QtVjIQ99PgMYUuzw4h1FAoPRteZY7uf3oFTqV3ONgA,940
137
137
  nat/data_models/memory.py,sha256=IKwe7CflCto30j4yI5yQtq8DXfMilAJ17S5NcsSDrOQ,1052
138
+ nat/data_models/middleware.py,sha256=yk2b0WYFEt0RPXGgYPWi4_flYDB6TexFQCWsO9U-F70,1271
138
139
  nat/data_models/object_store.py,sha256=S8YY6i8ALgRPuggUI1FCG-xbvwPWuaCg1lJnZOx5scM,1515
139
140
  nat/data_models/openai_mcp.py,sha256=UkAalZE0my8a_sq-GynjsfDoSOw2NWLNZM9hcV23TzY,1911
140
141
  nat/data_models/optimizable.py,sha256=dG9YGM6MwAReLXimk31CzzOlbknGwsk0znfAiDuOeuI,8981
@@ -143,14 +144,13 @@ nat/data_models/profiler.py,sha256=z3IlEhj-veB4Yz85271bTkScSUkVwK50tR3dwlDRgcE,1
143
144
  nat/data_models/registry_handler.py,sha256=g1rFaz4uSydMJn7qpdX-DNHJd_rNf8tXYN49dLDYHPo,968
144
145
  nat/data_models/retriever.py,sha256=IJAIaeEXM8zj_towrvZ30Uoxt8e4WvOXrQwqGloS1qI,1202
145
146
  nat/data_models/retry_mixin.py,sha256=s7UAhAHhlwTJ3uz6POVaSD8Y5DwKnU8mmo7OkRzeaW8,1863
147
+ nat/data_models/runtime_enum.py,sha256=T6TKBtexRbxcZb8H1Esd9ogEhQwh_nDu57MuxwtPXHg,878
146
148
  nat/data_models/span.py,sha256=1ylpLf0UKwJSpKbwuFian9ut40GnF-AXsWYep1n2Y_0,8056
147
149
  nat/data_models/step_adaptor.py,sha256=1qn56wB_nIYBM5IjN4ftsltCAkqaJd3Sqe5v0TRR4K8,2615
148
150
  nat/data_models/streaming.py,sha256=sSqJqLqb70qyw69_4R9QC2RMbRw7UjTLPdo3FYBUGxE,1159
149
151
  nat/data_models/swe_bench_model.py,sha256=uZs-hLFuT1B5CiPFwFg1PHinDW8PHne8TBzu7tHFv_k,1718
150
152
  nat/data_models/telemetry_exporter.py,sha256=P7kqxIQnFVuvo_UFpH9QSB8fACy_0U2Uzkw_IfWXagE,998
151
- nat/data_models/temperature_mixin.py,sha256=LlpfWrWtDrPJfSKfNx5E0P3p5SNGZli7ACRRpmO0QqA,1628
152
153
  nat/data_models/thinking_mixin.py,sha256=VRDUJZ8XP_Vv0gW2FRZUf8O9-kVgNEdZCEZ8oEmHyMk,3335
153
- nat/data_models/top_p_mixin.py,sha256=mu0DLnCAiwNzpSFR8FOW4kQBUpodSrvUR4MsLrNtbgA,1599
154
154
  nat/data_models/ttc_strategy.py,sha256=tAkKWcyEBmBOOYtHMtQTgeCbHxFTk5SEkmFunNVnfyE,1114
155
155
  nat/embedder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
156
  nat/embedder/azure_openai_embedder.py,sha256=yMHOA6lWZl15Pvd9Gpp_rHy5q2qmBiRjbFesFBGuC_U,2441
@@ -159,7 +159,7 @@ nat/embedder/openai_embedder.py,sha256=To7aCg8UyWPwSoA0MAHanH_MAKFDi3EcZxgLU1xYE
159
159
  nat/embedder/register.py,sha256=TM_LKuSlJr3tEceNVuHfAx_yrCzf1sryD5Ycep5rNGo,883
160
160
  nat/eval/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
161
161
  nat/eval/config.py,sha256=G0LE4JpZaQy3PvERldVATFpQCiDQcVJGUFChgorqzNo,2377
162
- nat/eval/evaluate.py,sha256=XmgSrhu-N11W4WeE7yqZmNLLNM90lU5OyWKuFEhUo2Y,26927
162
+ nat/eval/evaluate.py,sha256=BdddPjtvtZR0RXzJNxHPPl9uBovOJE3PiUTkRAbJWqQ,27421
163
163
  nat/eval/intermediate_step_adapter.py,sha256=mquQfPbq4-Owid2GzSyxtGNXoZ0i8crB6sA49rxnyrU,4483
164
164
  nat/eval/register.py,sha256=Vce8HGsu6KDj7MA_5W2ziQtss1F180ndMjuqGiHxTe8,1358
165
165
  nat/eval/remote_workflow.py,sha256=JAAbD0s753AOjo9baT4OqcB5dVEDmN34jPe0Uk13LcU,6024
@@ -167,7 +167,7 @@ nat/eval/runtime_event_subscriber.py,sha256=9MVgZLKvpnThHINaPbszPYDWnJ61sntS09YZ
167
167
  nat/eval/usage_stats.py,sha256=r8Zr3bIy2qXU1BgVKXr_4mr7bG0hte3BPNQLSgZvg8M,1376
168
168
  nat/eval/dataset_handler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
169
  nat/eval/dataset_handler/dataset_downloader.py,sha256=ZaNohbRSvoHPWIj0C_FqyJnhQKoTBk_uZF7ijjfk6vE,4641
170
- nat/eval/dataset_handler/dataset_filter.py,sha256=HrK0m3SQnPX6zOcKwJwYMrD9O-f6aOw8Vo3j9RKszqE,2115
170
+ nat/eval/dataset_handler/dataset_filter.py,sha256=8ul9j8XvMJG28k2NoiTzGhN6l8pq58Y1T22uuW_m1rk,3397
171
171
  nat/eval/dataset_handler/dataset_handler.py,sha256=my28rKvQiiRN_h2TJz6fdKeMOjP3LC3_e2aJNnPPYhE,18159
172
172
  nat/eval/evaluator/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
173
173
  nat/eval/evaluator/base_evaluator.py,sha256=5WaVGhCGzkynCJyQdxRv7CtqLoUpr6B4O8tilP_gb3g,3232
@@ -194,7 +194,7 @@ nat/eval/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
194
  nat/eval/utils/eval_trace_ctx.py,sha256=hN0YZ0wMOPzh9I-iSav-cGdxY3RWQWoE_tk5BxUf1mc,3264
195
195
  nat/eval/utils/output_uploader.py,sha256=wtAaxvrJrjQPFt8mTLSz31sWDs09KmLkmyelMQOLDws,5667
196
196
  nat/eval/utils/tqdm_position_registry.py,sha256=9CtpCk1wtYCSyieHPaSp8nlZu6EcNUOaUz2RTqfekrA,1286
197
- nat/eval/utils/weave_eval.py,sha256=fma5x9JbWpWrfQbfMHcjMovlRVR0v35yfNt1Avt6Vro,7719
197
+ nat/eval/utils/weave_eval.py,sha256=kmpeSzDtZiHJW_suc1U6MlvPe_9cFIudjhr-C79MVAc,8238
198
198
  nat/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
199
199
  nat/experimental/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
200
  nat/experimental/decorators/experimental_warning_decorator.py,sha256=ADj8fR9jL2FGFDcR8zJZbdvO9Leur8pUEVEUqpfNENY,5757
@@ -242,10 +242,10 @@ nat/front_ends/console/register.py,sha256=2Kf6Mthx6jzWzU8YdhYIR1iABmZDvs1UXM_20n
242
242
  nat/front_ends/cron/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
243
243
  nat/front_ends/fastapi/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
244
244
  nat/front_ends/fastapi/dask_client_mixin.py,sha256=N_tw4yxA7EKIFTKp5_C2ZksIZucWxRYkFjmZszkAkXc,2072
245
- nat/front_ends/fastapi/fastapi_front_end_config.py,sha256=BcuzrVlA5b7yYyQKNvQgEanDBtKEHdpC8TAd-O7lfF0,11992
245
+ nat/front_ends/fastapi/fastapi_front_end_config.py,sha256=lKRINEsWTLYMHJ6RRe9Gc1zP6I49yKEhNPak6lTe034,13603
246
246
  nat/front_ends/fastapi/fastapi_front_end_controller.py,sha256=ei-34KCMpyaeAgeAN4gVvSGFjewjjRhHZPN0FqAfhDY,2548
247
- nat/front_ends/fastapi/fastapi_front_end_plugin.py,sha256=e33YkMcLzvm4OUG34bhl-WYiBTqkR-_wJYKG4GODkGM,11169
248
- nat/front_ends/fastapi/fastapi_front_end_plugin_worker.py,sha256=T6uslFdkHl_r0U54_7cRRKLnWYP2tTMcD7snx9Gv1xs,60547
247
+ nat/front_ends/fastapi/fastapi_front_end_plugin.py,sha256=5akdWipe8onOTdSqrbGq9KO71y0_BNQQJ3JAFj6LmFY,11575
248
+ nat/front_ends/fastapi/fastapi_front_end_plugin_worker.py,sha256=Q7_FTWgMlWnp70OszJhXhJxExfyhfQXHmUsQJB6Bi74,67115
249
249
  nat/front_ends/fastapi/intermediate_steps_subscriber.py,sha256=kbyWlBVpyvyQQjeUnFG9nsR4RaqqNkx567ZSVwwl2RU,3104
250
250
  nat/front_ends/fastapi/job_store.py,sha256=cWIBnIgRdkGL7qbBunEKzTYzdPp3l3QCDHMP-qTZJpc,22743
251
251
  nat/front_ends/fastapi/main.py,sha256=s8gXCy61rJjK1aywMRpgPvzlkMGsCS-kI_0EIy4JjBM,2445
@@ -263,19 +263,19 @@ nat/front_ends/fastapi/html_snippets/auth_code_grant_success.py,sha256=BNpWwzmA5
263
263
  nat/front_ends/mcp/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
264
264
  nat/front_ends/mcp/introspection_token_verifier.py,sha256=s7Q4Q6rWZJ0ZVujSxxpvVI6Bnhkg1LJQ3RLkvhzFIGE,2836
265
265
  nat/front_ends/mcp/mcp_front_end_config.py,sha256=QHmz0OdB6pdUU9TH65NjLk7JsAnR-F6xisel5Bv2Po4,5744
266
- nat/front_ends/mcp/mcp_front_end_plugin.py,sha256=MVYJBCOhZAzUPlnXest6CYP3Gf0Ef1lbURaezgHpoyg,6701
267
- nat/front_ends/mcp/mcp_front_end_plugin_worker.py,sha256=qoRbYLC_HWqSH_jSNb-w7R_qwOmLyXaUA5JK0SX33GA,15362
266
+ nat/front_ends/mcp/mcp_front_end_plugin.py,sha256=dU2j6eD2xnDNeD-g8ydem4NuA82ccq3L6Y_8h_Ho5uc,6891
267
+ nat/front_ends/mcp/mcp_front_end_plugin_worker.py,sha256=ySbQOBdq2giLlldA7LHvIvgzA_YRAsEuf2cONT6WFwI,16438
268
268
  nat/front_ends/mcp/memory_profiler.py,sha256=OpcpLBAGCdQwYSFZbtAqdfncrnGYVjDcMpWydB71hjY,12811
269
269
  nat/front_ends/mcp/register.py,sha256=3aJtgG5VaiqujoeU1-Eq7Hl5pWslIlIwGFU2ASLTXgM,1173
270
270
  nat/front_ends/mcp/tool_converter.py,sha256=IOHb8UoW_TVvRoiML2yi6nlbx13KgcmUsuYOGS3xYe0,13349
271
271
  nat/front_ends/simple_base/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
272
272
  nat/front_ends/simple_base/simple_front_end_plugin_base.py,sha256=py_yA9XAw-yHfK5cQJLM8ElnubEEM2ac8M0bvz-ScWs,1801
273
273
  nat/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
274
- nat/llm/aws_bedrock_llm.py,sha256=Qo6-7MUrh4qGzUQMsEPTyKEBp5D7DwU6e8LHoHwzQIs,3252
275
- nat/llm/azure_openai_llm.py,sha256=IJ_o6W_NtR2rzaCowznyJUA8-5F4CG0scy3Nw2egoPs,2709
276
- nat/llm/litellm_llm.py,sha256=060odQkgTR087LmFrgnpy_yP0nvUoHI25DahS5VUbgA,3003
277
- nat/llm/nim_llm.py,sha256=2v5QC16Fk-Nczx2p9OP7hfPM7CsylbAEZlkJrkvLgKI,2789
278
- nat/llm/openai_llm.py,sha256=vg4K05IUamsRz9SVs1GUJrabr38cs8JNa_jd52048cw,2637
274
+ nat/llm/aws_bedrock_llm.py,sha256=ibaVTn72ae4Syugc21N2fNBjI2wv_UHXj4LbDrdRKBk,3508
275
+ nat/llm/azure_openai_llm.py,sha256=D_NCCiFvte43sxdOXZAI6A-T61R85XQeHIryeRBza2c,3226
276
+ nat/llm/litellm_llm.py,sha256=-q2PeOirP9soPUEs-nuqqCOADB4Y4E39v35ZOKXZzAA,3463
277
+ nat/llm/nim_llm.py,sha256=IqaDmgXkNkoRMamkGz-SQeIMLiL4CmZJdheUZj005jA,3087
278
+ nat/llm/openai_llm.py,sha256=adySEEbsoLouyXYCV_GluhwHaJpqj3fpslHZIGP-4xQ,2969
279
279
  nat/llm/register.py,sha256=7xDYdK4w4opAwIjzDM5x7moJXT3QeEGaGGc_nDfY0i4,1090
280
280
  nat/llm/utils/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
281
281
  nat/llm/utils/env_config_value.py,sha256=kBVsv0pEokIAfDQx5omR7_FevFv_5fTPswcbnvhVT2c,3548
@@ -285,6 +285,11 @@ nat/memory/__init__.py,sha256=ARS_HJipPR4mLDqw3VISSQLzeezru_vgNgsi1Ku0GRE,828
285
285
  nat/memory/interfaces.py,sha256=lyj1TGr3Fhibul8Y64Emj-BUEqDotmmFoVCEMqTujUA,5531
286
286
  nat/memory/models.py,sha256=c5dA7nKHQ4AS1_ptQZcfC_oXO495-ehocnf_qXTE6c8,4319
287
287
  nat/meta/pypi.md,sha256=BRG0KqnZlxRYorEkCpb8RoOe3RQC6FlvVeMWCcdAzY4,4502
288
+ nat/middleware/__init__.py,sha256=a-loyfA57ztnMUMv6ddTOui3lAGCxCHHX17fUKzjZNg,1426
289
+ nat/middleware/cache_middleware.py,sha256=DeiKyUKORoHGq47VHz_xW_dTaEKqPPotALg0QF6V44Q,10539
290
+ nat/middleware/function_middleware.py,sha256=oaTjcfsLIq-AT-fScltBa3yfkV-zC1PHdqutsr9eut4,7288
291
+ nat/middleware/middleware.py,sha256=s4Yz3FX1g-gE7YQ0RX51-dPs6u5K_2-WHmyoWvD9FR8,6512
292
+ nat/middleware/register.py,sha256=Wmhtaz8ZMk2T5kBrSC5IF5MbX2B5_2bQp2MIGJ2WavY,1451
288
293
  nat/object_store/__init__.py,sha256=81UKtZ6qcc__hfNjMnEYBHE16k7XBXX6R5IJNg1zfRs,831
289
294
  nat/object_store/in_memory_object_store.py,sha256=98UgQK2YdXTTQjBfQS-mjBCCugm1XUB7DZCFS8xe9yQ,2644
290
295
  nat/object_store/interfaces.py,sha256=5NbsE9TccihOf5ScG04hE1eNOaiajOZIUOeK_Kvukk8,2519
@@ -347,7 +352,7 @@ nat/profiler/callbacks/llama_index_callback_handler.py,sha256=niXcwdWbsvsNZotpBu
347
352
  nat/profiler/callbacks/semantic_kernel_callback_handler.py,sha256=BknzhQNB-MDMhR4QC9JScCp-zXq7KZ33SFb7X0MiTaI,11087
348
353
  nat/profiler/callbacks/token_usage_base_model.py,sha256=txWll6XpXrv8oQfF7Bl22W6Ya1P_GxIQpucKQqiRXfI,1292
349
354
  nat/profiler/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
350
- nat/profiler/decorators/framework_wrapper.py,sha256=qlQ_o6fzsV6jUBbHYFuGjX_Aq-NDZ23l9l3ViDKxy5g,7682
355
+ nat/profiler/decorators/framework_wrapper.py,sha256=7zpwnJzbnBUsPtDkdn5SOvUvCMlfTGu5NbR9SpRB8MU,8466
351
356
  nat/profiler/decorators/function_tracking.py,sha256=-ai_4djCbNwMan5SiTq3MVMBrcKoUWyxzviAV-Eh4xg,16771
352
357
  nat/profiler/forecasting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
353
358
  nat/profiler/forecasting/config.py,sha256=5BhMa8csuPCjEnTaNQjo_2IoO7esh1ch02MoSWkvwPw,791
@@ -403,15 +408,15 @@ nat/retriever/interface.py,sha256=CRvx-UBFoa_bDcHrr_kkKhgUx2fthcaH_p50s59zE6Y,14
403
408
  nat/retriever/models.py,sha256=J75RLAFCPaxFUzJHSe25s6mqKcRPcw9wZjkQeuIaNGo,2432
404
409
  nat/retriever/register.py,sha256=jzvq063XByWmFbCft2pv0_uHgIwnhN1d9WNDPgQTexQ,872
405
410
  nat/retriever/milvus/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
406
- nat/retriever/milvus/register.py,sha256=FaWvUFj4rU6qcui-G459Z-bQV-QAVR3PNONT1qu7jxs,4027
407
- nat/retriever/milvus/retriever.py,sha256=wfWi-Ck17ZXbrCJE3MiEVD4DuVeeAkgifdAkoISqNa0,9485
411
+ nat/retriever/milvus/register.py,sha256=TInHJJAAde0nQJRYApe_WKnUeXsttdd8uV-rki8-OgY,4387
412
+ nat/retriever/milvus/retriever.py,sha256=rCe0REtrgvuCPSLhpeQNnd6hu12bqmIGJ37Ckk4S3tk,12180
408
413
  nat/retriever/nemo_retriever/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
409
414
  nat/retriever/nemo_retriever/register.py,sha256=j0K5wz4jS9LbSXMknKUjkZ5bnqLGqrkcKGKTQNSg0ro,2953
410
415
  nat/retriever/nemo_retriever/retriever.py,sha256=gi3_qJFqE-iqRh3of_cmJg-SwzaQ3z24zA9LwY_MSLY,6930
411
416
  nat/runtime/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
412
417
  nat/runtime/loader.py,sha256=obUdAgZVYCPGC0R8u3wcoKFJzzSPQgJvrbU4OWygtog,7953
413
- nat/runtime/runner.py,sha256=oOz0m6Hx_jPISo56GgzrnRxIeiewboLaGmNyHYzxVrY,12228
414
- nat/runtime/session.py,sha256=E8RTbnAhPbY5KCoSfiHzOJksmBh7xWjsoX0BC7Rn1ck,9101
418
+ nat/runtime/runner.py,sha256=uZdcfYIFASGYORFhXxR1RHCu0ygKhtQ1_8L_X-lwR0k,12714
419
+ nat/runtime/session.py,sha256=N9I0TSKWIUmfJ5V1-TrdXEkGGnZIcetWvvqL_bPqFDk,9560
415
420
  nat/runtime/user_metadata.py,sha256=ce37NRYJWnMOWk6A7VAQ1GQztjMmkhMOq-uYf2gNCwo,3692
416
421
  nat/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
417
422
  nat/settings/global_settings.py,sha256=dEw9nkyx7pEEufmLS1o3mWhcXy7-ZpES4BZx1OWfg5M,12467
@@ -424,24 +429,23 @@ nat/tool/github_tools.py,sha256=Pn6p6ebLClNUy6MJIWf-Pl5NguMUT-IJ-bhmpJmvBrg,2190
424
429
  nat/tool/nvidia_rag.py,sha256=cEHSc3CZwpd71YcOQngya-Ca_B6ZOb87Dmsoza0VhFY,4163
425
430
  nat/tool/register.py,sha256=F1mQs9gI3Ee0EESFyBiTFZeqscY173ENQlfKcWZup0c,1208
426
431
  nat/tool/retriever.py,sha256=FP5JL1vCQNrqaKz4F1up-osjxEPhxPFOyaScrgByc34,3877
427
- nat/tool/server_tools.py,sha256=rQLipwRv8lAyU-gohky2JoVDxWQTUTSttNWjhu7lcHU,3194
432
+ nat/tool/server_tools.py,sha256=sxsgaF5ZjKIc3cSLldt1MDhY3kptrDnkP3kVYvVexfY,3679
428
433
  nat/tool/code_execution/README.md,sha256=sl3YX4As95HX61XqTXOGnUcHBV1lla-OeuTnLI4qgng,4019
429
434
  nat/tool/code_execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
430
- nat/tool/code_execution/code_sandbox.py,sha256=AynQfmvT4mtrV5DHV-20HF8mNTDo1NX4Wj2mlpaEIfs,10159
435
+ nat/tool/code_execution/code_sandbox.py,sha256=PCTdQMWA3CAmjVJ-RQy7pxWkdMnF3OrWkxmplMNUFhs,10123
431
436
  nat/tool/code_execution/register.py,sha256=zPFzYqaQhH2B3K8iildVYY_7RKgpoRNKdAo00KmBLQI,3322
432
- nat/tool/code_execution/test_code_execution_sandbox.py,sha256=iyK9awJs6ST8fc_S3lNPye6It0DxSNp1UIrAUKPJ1h4,14776
433
437
  nat/tool/code_execution/utils.py,sha256=__W-T1kaphFKYSc2AydQW8lCdvD7zAccarvs7XVFTtI,4194
434
438
  nat/tool/code_execution/local_sandbox/.gitignore,sha256=BrV-H5osDtwwIx0eieoexolpnaJvc2DQLV15j95Qtyg,19
435
- nat/tool/code_execution/local_sandbox/Dockerfile.sandbox,sha256=CYqZ5jbBwk3ge8pg87aLjhzWERauScwya5naYq0vb5o,2316
439
+ nat/tool/code_execution/local_sandbox/Dockerfile.sandbox,sha256=mIbGFhhY-9ARQVK-tGmx-ft68wFIpB_RvM69V37OEAY,1557
436
440
  nat/tool/code_execution/local_sandbox/__init__.py,sha256=k25Kqr_PrH4s0YCfzVzC9vaBAiu8yI428C4HX-qUcqA,615
437
- nat/tool/code_execution/local_sandbox/local_sandbox_server.py,sha256=eOFQV8ZE9-n7YfV4EEr-BFxDXG15jQUhO9oX1P1mgm8,6926
438
- nat/tool/code_execution/local_sandbox/sandbox.requirements.txt,sha256=R86yJ6mcUhfD9_ZU-rSMdaojR6MU41hcH4pE3vAGmcE,43
439
- nat/tool/code_execution/local_sandbox/start_local_sandbox.sh,sha256=gnPuzbneKZ61YvzaGIYSUdcyKMLuchYPti3zGLaNCZY,2055
441
+ nat/tool/code_execution/local_sandbox/local_sandbox_server.py,sha256=VGLY2ASmSSYNacGNdMSiedclwTCILNHs6PX45LxQ4Wc,7040
442
+ nat/tool/code_execution/local_sandbox/sandbox.requirements.txt,sha256=DL4dVNC8G-PMvr_x2C5AhwmeOpSKynpy4FNHWtWWtG4,69
443
+ nat/tool/code_execution/local_sandbox/start_local_sandbox.sh,sha256=BejvFn0uqI-BdBh3HqGWu7CngeJObiUFw-vAVQZA5VE,2260
440
444
  nat/tool/memory_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
441
445
  nat/tool/memory_tools/add_memory_tool.py,sha256=N400PPvI37NUCMh5KcuoAL8khK8ecUQyfenahfjzbHQ,3368
442
446
  nat/tool/memory_tools/delete_memory_tool.py,sha256=zMllkpC0of9qFPNuG9vkVOoydRblOViCQf0uSbqz0sE,2461
443
447
  nat/tool/memory_tools/get_memory_tool.py,sha256=fcW6QE7bMZrpNK62et3sTw_QZ8cV9lXfEuDsm1-05bE,2768
444
- nat/utils/__init__.py,sha256=WRO5RDryn6mChA2gwDVERclaei7LGPwrEMCUSliZI7k,2653
448
+ nat/utils/__init__.py,sha256=v6KZnvq8gT1VK-P_g5zHgoq9lhD4wvGwqCyb67aBkTo,2859
445
449
  nat/utils/callable_utils.py,sha256=EIao6NhHRFEoBqYRC7aWoFqhlr2LeFT0XK-ac0coF9E,2475
446
450
  nat/utils/debugging_utils.py,sha256=6M4JhbHDNDnfmSRGmHvT5IgEeWSHBore3VngdE_PMqc,1332
447
451
  nat/utils/decorators.py,sha256=AoMip9zmqrZm5wovZQytNvzFfIlS3PQxSYcgYeoLhxA,8240
@@ -463,7 +467,7 @@ nat/utils/exception_handlers/automatic_retries.py,sha256=sgV_i8EEvWgeXxDRg3GGAxp
463
467
  nat/utils/exception_handlers/schemas.py,sha256=EcNukc4-oASIX2mHAP-hH1up1roWnm99iY18P_v13D0,3800
464
468
  nat/utils/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
465
469
  nat/utils/io/model_processing.py,sha256=bEbH_tIgZQvPlEJKVV4kye_Y9UU96W4k2mKuckGErHA,936
466
- nat/utils/io/yaml_tools.py,sha256=8zgBMedlJ-ixQ80bqbrBR4iODgETWaagm8uNpybelVc,3297
470
+ nat/utils/io/yaml_tools.py,sha256=vYe9XgqELuwpOZjehJwiYnE6lDuKKC1yRq2sNab34zI,5987
467
471
  nat/utils/reactive/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
468
472
  nat/utils/reactive/observable.py,sha256=VPfkETHXnBNfxKho9luIm4hxCsI_Hx46GgnEO848AMc,2221
469
473
  nat/utils/reactive/observer.py,sha256=y9aFhezP08TlV9Cx_S0mhShzdLzGQ9b_3PCcTsDxEOE,2508
@@ -475,10 +479,10 @@ nat/utils/reactive/base/observer_base.py,sha256=6BiQfx26EMumotJ3KoVcdmFBYR_fnAss
475
479
  nat/utils/reactive/base/subject_base.py,sha256=UQOxlkZTIeeyYmG5qLtDpNf_63Y7p-doEeUA08_R8ME,2521
476
480
  nat/utils/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
477
481
  nat/utils/settings/global_settings.py,sha256=9JaO6pxKT_Pjw6rxJRsRlFCXdVKCl_xUKU2QHZQWWNM,7294
478
- nvidia_nat-1.4.0a20251102.dist-info/licenses/LICENSE-3rd-party.txt,sha256=fOk5jMmCX9YoKWyYzTtfgl-SUy477audFC5hNY4oP7Q,284609
479
- nvidia_nat-1.4.0a20251102.dist-info/licenses/LICENSE.md,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
480
- nvidia_nat-1.4.0a20251102.dist-info/METADATA,sha256=12zXA7tcMxmvT_pFHs19NvDzbWMf-X-5uytqEFDHS_Y,10248
481
- nvidia_nat-1.4.0a20251102.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
482
- nvidia_nat-1.4.0a20251102.dist-info/entry_points.txt,sha256=4jCqjyETMpyoWbCBf4GalZU8I_wbstpzwQNezdAVbbo,698
483
- nvidia_nat-1.4.0a20251102.dist-info/top_level.txt,sha256=lgJWLkigiVZuZ_O1nxVnD_ziYBwgpE2OStdaCduMEGc,8
484
- nvidia_nat-1.4.0a20251102.dist-info/RECORD,,
482
+ nvidia_nat-1.4.0a20251120.dist-info/licenses/LICENSE-3rd-party.txt,sha256=fOk5jMmCX9YoKWyYzTtfgl-SUy477audFC5hNY4oP7Q,284609
483
+ nvidia_nat-1.4.0a20251120.dist-info/licenses/LICENSE.md,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
484
+ nvidia_nat-1.4.0a20251120.dist-info/METADATA,sha256=pWdy7Ww1tM9rEivPnwiwnu4wOMnLGrViq7G95PS1hUw,10595
485
+ nvidia_nat-1.4.0a20251120.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
486
+ nvidia_nat-1.4.0a20251120.dist-info/entry_points.txt,sha256=rmr_Nr8Tp38euxp7MoNapg1FRCAaX7mD_-bzrFB0TME,739
487
+ nvidia_nat-1.4.0a20251120.dist-info/top_level.txt,sha256=lgJWLkigiVZuZ_O1nxVnD_ziYBwgpE2OStdaCduMEGc,8
488
+ nvidia_nat-1.4.0a20251120.dist-info/RECORD,,
@@ -9,6 +9,7 @@ nat_control_flow = nat.control_flow.register
9
9
  nat_embedders = nat.embedder.register
10
10
  nat_evaluators = nat.eval.register
11
11
  nat_llms = nat.llm.register
12
+ nat_middleware = nat.middleware.register
12
13
  nat_object_stores = nat.object_store.register
13
14
  nat_observability = nat.observability.register
14
15
  nat_retrievers = nat.retriever.register
@@ -1,44 +0,0 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
- # SPDX-License-Identifier: Apache-2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- import re
17
-
18
- from pydantic import BaseModel
19
-
20
- from nat.data_models.gated_field_mixin import GatedFieldMixin
21
- from nat.data_models.optimizable import OptimizableField
22
- from nat.data_models.optimizable import SearchSpace
23
-
24
-
25
- class TemperatureMixin(
26
- BaseModel,
27
- GatedFieldMixin,
28
- field_name="temperature",
29
- default_if_supported=0.0,
30
- keys=("model_name", "model", "azure_deployment"),
31
- unsupported=(re.compile(r"gpt-?5", re.IGNORECASE), ),
32
- ):
33
- """
34
- Mixin class for temperature configuration. Unsupported on models like gpt-5.
35
-
36
- Attributes:
37
- temperature: Sampling temperature in [0, 1]. Defaults to 0.0 when supported on the model.
38
- """
39
- temperature: float | None = OptimizableField(
40
- default=None,
41
- ge=0.0,
42
- le=1.0,
43
- description="Sampling temperature in [0, 1]. Defaults to 0.0 when supported on the model.",
44
- space=SearchSpace(high=0.9, low=0.1, step=0.2))
@@ -1,44 +0,0 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
- # SPDX-License-Identifier: Apache-2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- import re
17
-
18
- from pydantic import BaseModel
19
-
20
- from nat.data_models.gated_field_mixin import GatedFieldMixin
21
- from nat.data_models.optimizable import OptimizableField
22
- from nat.data_models.optimizable import SearchSpace
23
-
24
-
25
- class TopPMixin(
26
- BaseModel,
27
- GatedFieldMixin,
28
- field_name="top_p",
29
- default_if_supported=1.0,
30
- keys=("model_name", "model", "azure_deployment"),
31
- unsupported=(re.compile(r"gpt-?5", re.IGNORECASE), ),
32
- ):
33
- """
34
- Mixin class for top-p configuration. Unsupported on models like gpt-5.
35
-
36
- Attributes:
37
- top_p: Top-p for distribution sampling. Defaults to 1.0 when supported on the model.
38
- """
39
- top_p: float | None = OptimizableField(
40
- default=None,
41
- ge=0.0,
42
- le=1.0,
43
- description="Top-p for distribution sampling. Defaults to 1.0 when supported on the model.",
44
- space=SearchSpace(high=1.0, low=0.5, step=0.1))