nvidia-nat 1.3.0a20250910__py3-none-any.whl → 1.3.0a20250922__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.
- nat/agent/base.py +9 -4
- nat/agent/prompt_optimizer/prompt.py +68 -0
- nat/agent/prompt_optimizer/register.py +149 -0
- nat/agent/react_agent/agent.py +1 -1
- nat/agent/react_agent/register.py +17 -14
- nat/agent/reasoning_agent/reasoning_agent.py +9 -7
- nat/agent/register.py +1 -0
- nat/agent/rewoo_agent/agent.py +9 -2
- nat/agent/rewoo_agent/register.py +16 -12
- nat/agent/tool_calling_agent/agent.py +69 -7
- nat/agent/tool_calling_agent/register.py +14 -13
- nat/authentication/credential_validator/__init__.py +14 -0
- nat/authentication/credential_validator/bearer_token_validator.py +557 -0
- nat/authentication/oauth2/oauth2_resource_server_config.py +124 -0
- nat/builder/builder.py +27 -4
- nat/builder/component_utils.py +7 -3
- nat/builder/context.py +28 -6
- nat/builder/function.py +313 -0
- nat/builder/function_info.py +1 -1
- nat/builder/workflow.py +5 -0
- nat/builder/workflow_builder.py +215 -16
- nat/cli/commands/optimize.py +90 -0
- nat/cli/commands/workflow/templates/config.yml.j2 +0 -1
- nat/cli/commands/workflow/workflow_commands.py +4 -7
- nat/cli/entrypoint.py +4 -9
- nat/cli/register_workflow.py +38 -4
- nat/cli/type_registry.py +71 -0
- nat/control_flow/__init__.py +0 -0
- nat/control_flow/register.py +20 -0
- nat/control_flow/router_agent/__init__.py +0 -0
- nat/control_flow/router_agent/agent.py +329 -0
- nat/control_flow/router_agent/prompt.py +48 -0
- nat/control_flow/router_agent/register.py +91 -0
- nat/control_flow/sequential_executor.py +167 -0
- nat/data_models/agent.py +34 -0
- nat/data_models/authentication.py +38 -0
- nat/data_models/component.py +2 -0
- nat/data_models/component_ref.py +11 -0
- nat/data_models/config.py +40 -16
- nat/data_models/function.py +34 -0
- nat/data_models/function_dependencies.py +8 -0
- nat/data_models/optimizable.py +119 -0
- nat/data_models/optimizer.py +149 -0
- nat/data_models/temperature_mixin.py +4 -3
- nat/data_models/top_p_mixin.py +4 -3
- nat/embedder/nim_embedder.py +1 -1
- nat/embedder/openai_embedder.py +1 -1
- nat/eval/config.py +1 -1
- nat/eval/evaluate.py +5 -1
- nat/eval/register.py +4 -0
- nat/eval/runtime_evaluator/__init__.py +14 -0
- nat/eval/runtime_evaluator/evaluate.py +123 -0
- nat/eval/runtime_evaluator/register.py +100 -0
- nat/experimental/test_time_compute/functions/plan_select_execute_function.py +5 -1
- nat/front_ends/fastapi/dask_client_mixin.py +65 -0
- nat/front_ends/fastapi/fastapi_front_end_config.py +18 -3
- nat/front_ends/fastapi/fastapi_front_end_plugin.py +134 -3
- nat/front_ends/fastapi/fastapi_front_end_plugin_worker.py +243 -228
- nat/front_ends/fastapi/job_store.py +518 -99
- nat/front_ends/fastapi/main.py +11 -19
- nat/front_ends/fastapi/utils.py +57 -0
- nat/front_ends/mcp/introspection_token_verifier.py +73 -0
- nat/front_ends/mcp/mcp_front_end_config.py +5 -1
- nat/front_ends/mcp/mcp_front_end_plugin.py +37 -11
- nat/front_ends/mcp/mcp_front_end_plugin_worker.py +111 -3
- nat/front_ends/mcp/tool_converter.py +3 -0
- nat/llm/aws_bedrock_llm.py +14 -3
- nat/llm/nim_llm.py +14 -3
- nat/llm/openai_llm.py +8 -1
- nat/observability/exporter/processing_exporter.py +29 -55
- nat/observability/mixin/redaction_config_mixin.py +5 -4
- nat/observability/mixin/tagging_config_mixin.py +26 -14
- nat/observability/mixin/type_introspection_mixin.py +420 -107
- nat/observability/processor/processor.py +3 -0
- nat/observability/processor/redaction/__init__.py +24 -0
- nat/observability/processor/redaction/contextual_redaction_processor.py +125 -0
- nat/observability/processor/redaction/contextual_span_redaction_processor.py +66 -0
- nat/observability/processor/redaction/redaction_processor.py +177 -0
- nat/observability/processor/redaction/span_header_redaction_processor.py +92 -0
- nat/observability/processor/span_tagging_processor.py +21 -14
- nat/profiler/decorators/framework_wrapper.py +9 -6
- nat/profiler/parameter_optimization/__init__.py +0 -0
- nat/profiler/parameter_optimization/optimizable_utils.py +93 -0
- nat/profiler/parameter_optimization/optimizer_runtime.py +67 -0
- nat/profiler/parameter_optimization/parameter_optimizer.py +153 -0
- nat/profiler/parameter_optimization/parameter_selection.py +108 -0
- nat/profiler/parameter_optimization/pareto_visualizer.py +380 -0
- nat/profiler/parameter_optimization/prompt_optimizer.py +384 -0
- nat/profiler/parameter_optimization/update_helpers.py +66 -0
- nat/profiler/utils.py +3 -1
- nat/tool/chat_completion.py +4 -1
- nat/tool/github_tools.py +450 -0
- nat/tool/register.py +2 -7
- nat/utils/callable_utils.py +70 -0
- nat/utils/exception_handlers/automatic_retries.py +103 -48
- nat/utils/log_levels.py +25 -0
- nat/utils/type_utils.py +4 -0
- {nvidia_nat-1.3.0a20250910.dist-info → nvidia_nat-1.3.0a20250922.dist-info}/METADATA +10 -1
- {nvidia_nat-1.3.0a20250910.dist-info → nvidia_nat-1.3.0a20250922.dist-info}/RECORD +105 -76
- {nvidia_nat-1.3.0a20250910.dist-info → nvidia_nat-1.3.0a20250922.dist-info}/entry_points.txt +1 -0
- nat/observability/processor/header_redaction_processor.py +0 -123
- nat/observability/processor/redaction_processor.py +0 -77
- nat/tool/github_tools/create_github_commit.py +0 -133
- nat/tool/github_tools/create_github_issue.py +0 -87
- nat/tool/github_tools/create_github_pr.py +0 -106
- nat/tool/github_tools/get_github_file.py +0 -106
- nat/tool/github_tools/get_github_issue.py +0 -166
- nat/tool/github_tools/get_github_pr.py +0 -256
- nat/tool/github_tools/update_github_issue.py +0 -100
- /nat/{tool/github_tools → agent/prompt_optimizer}/__init__.py +0 -0
- {nvidia_nat-1.3.0a20250910.dist-info → nvidia_nat-1.3.0a20250922.dist-info}/WHEEL +0 -0
- {nvidia_nat-1.3.0a20250910.dist-info → nvidia_nat-1.3.0a20250922.dist-info}/licenses/LICENSE-3rd-party.txt +0 -0
- {nvidia_nat-1.3.0a20250910.dist-info → nvidia_nat-1.3.0a20250922.dist-info}/licenses/LICENSE.md +0 -0
- {nvidia_nat-1.3.0a20250910.dist-info → nvidia_nat-1.3.0a20250922.dist-info}/top_level.txt +0 -0
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
aiq/__init__.py,sha256=qte-NlwgM990yEeyaRUxA4IBQq3PaEkQUCK3i95iwPw,2341
|
|
2
2
|
nat/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
nat/agent/base.py,sha256=
|
|
3
|
+
nat/agent/base.py,sha256=6u0z7NjrtCBxvByijQz4vrRNPb4yX9FqEyJixuBRQV4,10157
|
|
4
4
|
nat/agent/dual_node.py,sha256=pfvXa1iLKtrNBHsh-tM5RWRmVe7QkyYhQNanOfWdJJs,2569
|
|
5
|
-
nat/agent/register.py,sha256=
|
|
5
|
+
nat/agent/register.py,sha256=rPhHDyqRBIKyon3HqhOmpAjqPP18Or6wDQb0wRUBIjQ,1032
|
|
6
|
+
nat/agent/prompt_optimizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
nat/agent/prompt_optimizer/prompt.py,sha256=2I1cGZH73Q1pwxA_V-9b1sFCdQ1PLFxliaRtrIkVVVU,3042
|
|
8
|
+
nat/agent/prompt_optimizer/register.py,sha256=qV9Qkd4XDfwVYSzZOyI9RlRzK26jukaB51RriYgWd6k,6790
|
|
6
9
|
nat/agent/react_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
nat/agent/react_agent/agent.py,sha256=
|
|
10
|
+
nat/agent/react_agent/agent.py,sha256=zz1rmXdx53QG-07KGJffLZCpI3ULvYEWyCdufD42CB4,21261
|
|
8
11
|
nat/agent/react_agent/output_parser.py,sha256=m7K6wRwtckBBpAHqOf3BZ9mqZLwrP13Kxz5fvNxbyZE,4219
|
|
9
12
|
nat/agent/react_agent/prompt.py,sha256=N47JJrT6xwYQCv1jedHhlul2AE7EfKsSYfAbgJwWRew,1758
|
|
10
|
-
nat/agent/react_agent/register.py,sha256=
|
|
13
|
+
nat/agent/react_agent/register.py,sha256=l2Enc2m3GaijrTRm9yQanVe_mWrA_ekA6SwnfLBGKDA,8663
|
|
11
14
|
nat/agent/reasoning_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
nat/agent/reasoning_agent/reasoning_agent.py,sha256=
|
|
15
|
+
nat/agent/reasoning_agent/reasoning_agent.py,sha256=049irI9FuqqIPDoX8Vf0GMU8w2nej7infugGG8NUjt8,9563
|
|
13
16
|
nat/agent/rewoo_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
nat/agent/rewoo_agent/agent.py,sha256=
|
|
17
|
+
nat/agent/rewoo_agent/agent.py,sha256=ogTtUsNqbAjEprBKp2ZEoYfuHvgxnjV7NgygvSgMz7M,19264
|
|
15
18
|
nat/agent/rewoo_agent/prompt.py,sha256=nFMav3Zl_vmKPLzAIhbQHlldWnurPJb1GlwnekUuxDs,3720
|
|
16
|
-
nat/agent/rewoo_agent/register.py,sha256=
|
|
19
|
+
nat/agent/rewoo_agent/register.py,sha256=BkYXTOXMFp_KXrzF7R49R6nWbQkiuHsOhBkVs6VWPGQ,8807
|
|
17
20
|
nat/agent/tool_calling_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
-
nat/agent/tool_calling_agent/agent.py,sha256=
|
|
19
|
-
nat/agent/tool_calling_agent/register.py,sha256=
|
|
21
|
+
nat/agent/tool_calling_agent/agent.py,sha256=4SIp29I56oznPRQu7B3HCoX53Ri3_o3BRRYNJjeBkF8,11006
|
|
22
|
+
nat/agent/tool_calling_agent/register.py,sha256=_zSknu-rdF6BRgPq4ccs0f8ki74C--a_HkY802A7pUI,5921
|
|
20
23
|
nat/authentication/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
21
24
|
nat/authentication/interfaces.py,sha256=FAYM-QXVUn3a_8bmAZ7kP-lmN_BrLW8mo6krZJ3e0ME,3314
|
|
22
25
|
nat/authentication/register.py,sha256=lFhswYUk9iZ53mq33fClR9UfjJPdjGIivGGNHQeWiYo,915
|
|
@@ -24,6 +27,8 @@ nat/authentication/api_key/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-i
|
|
|
24
27
|
nat/authentication/api_key/api_key_auth_provider.py,sha256=DoN1MoeB_uOWQMHUz2OiyhwbFxQkj0FOifN2TFr4sds,4022
|
|
25
28
|
nat/authentication/api_key/api_key_auth_provider_config.py,sha256=zfkxH3yvUSKKldRf1K4PPm0rJLXGH0GDH8xj7anPYGQ,5472
|
|
26
29
|
nat/authentication/api_key/register.py,sha256=Mhv3WyZ9H7C2JN8VuPvwlsJEZrwXJCLXCIokkN9RrP0,1147
|
|
30
|
+
nat/authentication/credential_validator/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
|
|
31
|
+
nat/authentication/credential_validator/bearer_token_validator.py,sha256=cwGENd_bp-u2Y_JCRbEPxFkulk_vREpLog5c83h1nRU,21250
|
|
27
32
|
nat/authentication/exceptions/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
28
33
|
nat/authentication/exceptions/api_key_exceptions.py,sha256=6wnz951BI77rFYuHxoHOthz-y5oE08uxsuM6G5EvOyM,1545
|
|
29
34
|
nat/authentication/http_basic_auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -32,35 +37,37 @@ nat/authentication/http_basic_auth/register.py,sha256=N2VD0vw7cYABsLxsGXl5yw0htc
|
|
|
32
37
|
nat/authentication/oauth2/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
33
38
|
nat/authentication/oauth2/oauth2_auth_code_flow_provider.py,sha256=iFp_kImFwDrweFHGTg4n9RGybH3-wRSJkyh-FPOxwDA,4538
|
|
34
39
|
nat/authentication/oauth2/oauth2_auth_code_flow_provider_config.py,sha256=e165ysd2pX2WTbV3_FQKEjEaa4TAXkJ7B98WUGbqnGE,2204
|
|
40
|
+
nat/authentication/oauth2/oauth2_resource_server_config.py,sha256=ltcNp8Dwb2Q4tlwMN5Cl0B5pouTLtXRoV-QopfqV45M,5314
|
|
35
41
|
nat/authentication/oauth2/register.py,sha256=7rXhf-ilgSS_bUJsd9pOOCotL1FM8dKUt3ke1TllKkQ,1228
|
|
36
42
|
nat/builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
nat/builder/builder.py,sha256=
|
|
38
|
-
nat/builder/component_utils.py,sha256=
|
|
39
|
-
nat/builder/context.py,sha256=
|
|
43
|
+
nat/builder/builder.py,sha256=odUw-s1jgrLWTgX4baXcAfKLeIcz8NY8cbv0LlEjK7E,10874
|
|
44
|
+
nat/builder/component_utils.py,sha256=rbKjs-Yo2uJ4xgEfTWbRWnSsJRrvalOb7TTOBljQZig,13839
|
|
45
|
+
nat/builder/context.py,sha256=6mpk7H_gZ5_gVOKbWp8BrToqJraP1GEh9-uKX4vRrpA,12462
|
|
40
46
|
nat/builder/embedder.py,sha256=NPkOEcxt_-wc53QRijCQQDLretRUYHRYaKoYmarmrBk,965
|
|
41
47
|
nat/builder/eval_builder.py,sha256=6Raia6VgQwfFTQGbjnwAL8p4MXQhl_n5UIVuQ-l9_GQ,6575
|
|
42
48
|
nat/builder/evaluator.py,sha256=xWHMND2vcAUkdFP7FU3jnVki1rUHeTa0-9saFh2hWKs,1162
|
|
43
49
|
nat/builder/framework_enum.py,sha256=eYwHQifZ86dx-OTubVA3qhCLRqhB4ElMBYBGA0gYtic,885
|
|
44
50
|
nat/builder/front_end.py,sha256=mHooS1M7mVo1swSgbYoqbzQENXkuG7_Es9q4gFiuL8E,2175
|
|
45
|
-
nat/builder/function.py,sha256=
|
|
51
|
+
nat/builder/function.py,sha256=Jl1SkeEJR_oOr44m_t6Zytca9gwlC1HimS-FnJA6iG4,26307
|
|
46
52
|
nat/builder/function_base.py,sha256=0Eg8RtjWhEU3Yme0CVxcRutobA0Qo8-YHZLI6L2qAgM,13116
|
|
47
|
-
nat/builder/function_info.py,sha256=
|
|
53
|
+
nat/builder/function_info.py,sha256=7Rmrn-gOFrT2TIJklJwA_O-ycx_oimwZ0-qMYpbuZrU,25161
|
|
48
54
|
nat/builder/intermediate_step_manager.py,sha256=iOuMLWTaES0J0XzaLxhTUqFvuoCAChJu3V69T43K0k0,7599
|
|
49
55
|
nat/builder/llm.py,sha256=DW-2q64A06VChsXNEL5PfBjH3DcsnTKVoCEWDuP7MF4,951
|
|
50
56
|
nat/builder/retriever.py,sha256=ZyEqc7pFK31t_yr6Jaxa34c-tRas2edKqJZCNiVh9-0,970
|
|
51
57
|
nat/builder/user_interaction_manager.py,sha256=-Z2qbQes7a2cuXgT7KEbWeuok0HcCnRdw9WB8Ghyl9k,3081
|
|
52
|
-
nat/builder/workflow.py,sha256=
|
|
53
|
-
nat/builder/workflow_builder.py,sha256=
|
|
58
|
+
nat/builder/workflow.py,sha256=bHrxK-VFsxUTw2wZgkWcCttpCMDeWNGPfmIGEW_bjZo,6908
|
|
59
|
+
nat/builder/workflow_builder.py,sha256=5cUu0WdQAfj3uwzgyjeP9HYTdxEoAigT8e7lHUaIn3A,55209
|
|
54
60
|
nat/cli/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
55
|
-
nat/cli/entrypoint.py,sha256=
|
|
61
|
+
nat/cli/entrypoint.py,sha256=YSXGpSAEt2mwEbJUJNsgx7txq7zaZRrf7H63mdYn-FY,4929
|
|
56
62
|
nat/cli/main.py,sha256=KzUSDB1TGzHRP_Fnq5XJRopx-i9S2oycgQrXrf2vDkE,2164
|
|
57
|
-
nat/cli/register_workflow.py,sha256=
|
|
58
|
-
nat/cli/type_registry.py,sha256=
|
|
63
|
+
nat/cli/register_workflow.py,sha256=DOQQgUWB_NO9k7nlkP4cAx_RX03Cndk032K-kqyuvEs,23285
|
|
64
|
+
nat/cli/type_registry.py,sha256=R301m91ar2vDorJvN8oqqGB9PhsoyNvToiYL3x2Q1io,48838
|
|
59
65
|
nat/cli/cli_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
66
|
nat/cli/cli_utils/config_override.py,sha256=hLhJDjkLTLkUSYXMjK1qT7USy7ds1ddEDxcEFETxK98,8900
|
|
61
67
|
nat/cli/cli_utils/validation.py,sha256=KVZvAkWZx-QVVBuCFTcH2muLzMB7ONQA1GE2TzEVN78,1288
|
|
62
68
|
nat/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
69
|
nat/cli/commands/evaluate.py,sha256=_gSK9km6DQNxFcOZnOpzYuXtM0MG3-ng6S-1UNccG80,4748
|
|
70
|
+
nat/cli/commands/optimize.py,sha256=07b8B6vPDljUgZtcnpaGFi4E10mqK4IwLMV1Y0ZzvQA,2954
|
|
64
71
|
nat/cli/commands/start.py,sha256=kYXLWj-jNQZLyC1JjM4UEvqSK9vP7As6C9pzhNwHQsg,10431
|
|
65
72
|
nat/cli/commands/uninstall.py,sha256=KJDe-BCUD5ws_lTpCNPj3Ac26TQO8kys0AZqjZsljfs,3180
|
|
66
73
|
nat/cli/commands/validate.py,sha256=mseAUfwRP8RL2Jc_a7MA9_0j9CRQFojEFPTPSuLiFGI,1669
|
|
@@ -89,27 +96,35 @@ nat/cli/commands/sizing/calc.py,sha256=3cJHKCbzvV7EwYfLcpfk3_Ki7soAjOaiBcLK-Q6hP
|
|
|
89
96
|
nat/cli/commands/sizing/sizing.py,sha256=-Hr9mz_ScEMtBbn6ijvmmWVk0WybLeX0Ryi4qhDiYQU,902
|
|
90
97
|
nat/cli/commands/workflow/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
|
|
91
98
|
nat/cli/commands/workflow/workflow.py,sha256=40nIOehOX-4xI-qJqJraBX3XVz3l2VtFsZkMQYd897w,1342
|
|
92
|
-
nat/cli/commands/workflow/workflow_commands.py,sha256=
|
|
99
|
+
nat/cli/commands/workflow/workflow_commands.py,sha256=_krSHCU9q-rI-0mc2ieiELu9n2Ovch4F4klXNza-eXk,13055
|
|
93
100
|
nat/cli/commands/workflow/templates/__init__.py.j2,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
|
-
nat/cli/commands/workflow/templates/config.yml.j2,sha256=
|
|
101
|
+
nat/cli/commands/workflow/templates/config.yml.j2,sha256=PriLJehyb5HIiVCy5NkU6lJ3znwZjtT2SQpNVp6zC64,203
|
|
95
102
|
nat/cli/commands/workflow/templates/pyproject.toml.j2,sha256=lDBC4exHYutXa_skuJj176yMEuZr-DsdzrqQHPZoKpk,1035
|
|
96
103
|
nat/cli/commands/workflow/templates/register.py.j2,sha256=txA-qBpWhxRc0GUcVRCIqVI6gGSh-TJijemrUqnb38s,138
|
|
97
104
|
nat/cli/commands/workflow/templates/workflow.py.j2,sha256=Z4uZPG9rtf1nxF74dF4DqDtrF3uYmYUmWowDFbQBjao,1241
|
|
105
|
+
nat/control_flow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
106
|
+
nat/control_flow/register.py,sha256=YBB73ecHpvUN_RivkeMWwu645gpC8OCPVOYgr_5aEOA,845
|
|
107
|
+
nat/control_flow/sequential_executor.py,sha256=CvGK8MdAzWwQeBuYArjnmNXjREhBLo3tmFsZq3u0XCc,8331
|
|
108
|
+
nat/control_flow/router_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
|
+
nat/control_flow/router_agent/agent.py,sha256=IvMqQuJTwsdARbgPdtfGVTwKO4XZfVLNDui_Kl843Pw,13695
|
|
110
|
+
nat/control_flow/router_agent/prompt.py,sha256=fIAiNsAs1zXRAatButR76zSpHJNxSkXXKKmCL86a58A,1720
|
|
111
|
+
nat/control_flow/router_agent/register.py,sha256=A0N9-9nUW9CLOPGOh2MzxLb3oBWvgGcGK5ssPU_D-W0,4140
|
|
98
112
|
nat/data_models/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
113
|
+
nat/data_models/agent.py,sha256=IwDyb9Zc3R4Zd5rFeqt7q0EQswczAl5focxV9KozIzs,1625
|
|
99
114
|
nat/data_models/api_server.py,sha256=Zl0eAd-yV9PD8vUH8eWRvXFcUBdY2tENKe73q-Uxxgg,25699
|
|
100
|
-
nat/data_models/authentication.py,sha256=
|
|
115
|
+
nat/data_models/authentication.py,sha256=t9-2CQaIfk74DM3CLaJU5NAYGs7m6BjdFFm1hj8WwtY,9064
|
|
101
116
|
nat/data_models/common.py,sha256=nXXfGrjpxebzBUa55mLdmzePLt7VFHvTAc6Znj3yEv0,5875
|
|
102
|
-
nat/data_models/component.py,sha256=
|
|
103
|
-
nat/data_models/component_ref.py,sha256=
|
|
104
|
-
nat/data_models/config.py,sha256=
|
|
117
|
+
nat/data_models/component.py,sha256=b_hXOA8Gm5UNvlFkAhsR6kEvf33ST50MKtr5kWf75Ao,1894
|
|
118
|
+
nat/data_models/component_ref.py,sha256=KFDWFVCcvJCfBBcXTh9f3R802EVHBtHXh9OdbRqFmdM,4747
|
|
119
|
+
nat/data_models/config.py,sha256=pWy-rHI7lfn1-_Vtl6HAmVZs2rC7GZF54ZojoEp0ZbQ,18817
|
|
105
120
|
nat/data_models/dataset_handler.py,sha256=UDQLpStUwLEMm0e6BvuOFEsHYSopWu5DhinxEv2U6og,5523
|
|
106
121
|
nat/data_models/discovery_metadata.py,sha256=_l97iQsqp_ihba8CbMBQ73mH1sipTQ19GiJDdzQYQGY,13432
|
|
107
122
|
nat/data_models/embedder.py,sha256=nPhthEQDtzAMGd8gFRB1ZfJpN5M9DJvv0h28ohHnTmI,1002
|
|
108
123
|
nat/data_models/evaluate.py,sha256=L0GdNh_c8jii-MiK8oHW9sUUsGO3l1FMsprr-UazT5c,4836
|
|
109
124
|
nat/data_models/evaluator.py,sha256=bd2njsyQB2t6ClJ66gJiCjYHsQpWZwPD7rsU0J109TI,939
|
|
110
125
|
nat/data_models/front_end.py,sha256=z8k6lSWjt1vMOYFbjWQxodpwAqPeuGS0hRBjsriDW2s,932
|
|
111
|
-
nat/data_models/function.py,sha256=
|
|
112
|
-
nat/data_models/function_dependencies.py,sha256=
|
|
126
|
+
nat/data_models/function.py,sha256=CuhV-fIjVVTsOJmTbvZ5Q9V370uKZJ0bJLyU2gEe35E,2265
|
|
127
|
+
nat/data_models/function_dependencies.py,sha256=soDGXU4IwEn-3w3fGDm6vNLOR6jS6me-Ml_g7B6giBw,2901
|
|
113
128
|
nat/data_models/gated_field_mixin.py,sha256=1xycSpXc_fq8CucLp3khE1w0-JYfcbr__EJkbvxTD0w,9817
|
|
114
129
|
nat/data_models/interactive.py,sha256=qOkxyYPQYEBIBMDAA1rjfYcdvf6-iCM4qPV8Awc4VGw,8794
|
|
115
130
|
nat/data_models/intermediate_step.py,sha256=OhdGAtSBiMiCfT1R-BjihUvcVoQsRsxHDQcJ1gMDVXA,11585
|
|
@@ -118,6 +133,8 @@ nat/data_models/llm.py,sha256=PCTeCPg2YnYk5tvSu7XOEVr2Cg_wSkjAdVsoiTg8Joo,968
|
|
|
118
133
|
nat/data_models/logging.py,sha256=1QtVjIQ99PgMYUuzw4h1FAoPRteZY7uf3oFTqV3ONgA,940
|
|
119
134
|
nat/data_models/memory.py,sha256=IKwe7CflCto30j4yI5yQtq8DXfMilAJ17S5NcsSDrOQ,1052
|
|
120
135
|
nat/data_models/object_store.py,sha256=S8YY6i8ALgRPuggUI1FCG-xbvwPWuaCg1lJnZOx5scM,1515
|
|
136
|
+
nat/data_models/optimizable.py,sha256=VTu9RlS102bsU6G_uhrxFkMATextuVQozfWsfoktqRc,4861
|
|
137
|
+
nat/data_models/optimizer.py,sha256=Zs4-w_Ek08iSLulsbb-4c1gK8zQB67UeRK1gHoqS1X4,5291
|
|
121
138
|
nat/data_models/profiler.py,sha256=z3IlEhj-veB4Yz85271bTkScSUkVwK50tR3dwlDRgcE,1781
|
|
122
139
|
nat/data_models/registry_handler.py,sha256=g1rFaz4uSydMJn7qpdX-DNHJd_rNf8tXYN49dLDYHPo,968
|
|
123
140
|
nat/data_models/retriever.py,sha256=IJAIaeEXM8zj_towrvZ30Uoxt8e4WvOXrQwqGloS1qI,1202
|
|
@@ -127,20 +144,20 @@ nat/data_models/step_adaptor.py,sha256=1qn56wB_nIYBM5IjN4ftsltCAkqaJd3Sqe5v0TRR4
|
|
|
127
144
|
nat/data_models/streaming.py,sha256=sSqJqLqb70qyw69_4R9QC2RMbRw7UjTLPdo3FYBUGxE,1159
|
|
128
145
|
nat/data_models/swe_bench_model.py,sha256=uZs-hLFuT1B5CiPFwFg1PHinDW8PHne8TBzu7tHFv_k,1718
|
|
129
146
|
nat/data_models/telemetry_exporter.py,sha256=P7kqxIQnFVuvo_UFpH9QSB8fACy_0U2Uzkw_IfWXagE,998
|
|
130
|
-
nat/data_models/temperature_mixin.py,sha256=
|
|
147
|
+
nat/data_models/temperature_mixin.py,sha256=LlpfWrWtDrPJfSKfNx5E0P3p5SNGZli7ACRRpmO0QqA,1628
|
|
131
148
|
nat/data_models/thinking_mixin.py,sha256=lzAnUk5vyv1nTYG9ho4BD3U2NTVZ50gBysN62iGj2KM,3303
|
|
132
|
-
nat/data_models/top_p_mixin.py,sha256=
|
|
149
|
+
nat/data_models/top_p_mixin.py,sha256=mu0DLnCAiwNzpSFR8FOW4kQBUpodSrvUR4MsLrNtbgA,1599
|
|
133
150
|
nat/data_models/ttc_strategy.py,sha256=tAkKWcyEBmBOOYtHMtQTgeCbHxFTk5SEkmFunNVnfyE,1114
|
|
134
151
|
nat/embedder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
152
|
nat/embedder/azure_openai_embedder.py,sha256=8OM54DCVCmWuQ8eZ5lXxsKYQktRmHMoIelRHZmKurUk,2381
|
|
136
|
-
nat/embedder/nim_embedder.py,sha256=
|
|
137
|
-
nat/embedder/openai_embedder.py,sha256=
|
|
153
|
+
nat/embedder/nim_embedder.py,sha256=4DLcweOajXi67ZpLq_QvK0ZihFsntpsSF27FEvhF1ZQ,2532
|
|
154
|
+
nat/embedder/openai_embedder.py,sha256=uASGh8KEmJg6_km8YNaenpPC92v-WbFpsvq-l4R38pY,1937
|
|
138
155
|
nat/embedder/register.py,sha256=TM_LKuSlJr3tEceNVuHfAx_yrCzf1sryD5Ycep5rNGo,883
|
|
139
156
|
nat/eval/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
140
|
-
nat/eval/config.py,sha256=
|
|
141
|
-
nat/eval/evaluate.py,sha256=
|
|
157
|
+
nat/eval/config.py,sha256=G0LE4JpZaQy3PvERldVATFpQCiDQcVJGUFChgorqzNo,2377
|
|
158
|
+
nat/eval/evaluate.py,sha256=gYlKht-vBseRuD_LdV1BBcoyx-Gx5Q3jz2f44VRTO7Q,26683
|
|
142
159
|
nat/eval/intermediate_step_adapter.py,sha256=mquQfPbq4-Owid2GzSyxtGNXoZ0i8crB6sA49rxnyrU,4483
|
|
143
|
-
nat/eval/register.py,sha256=
|
|
160
|
+
nat/eval/register.py,sha256=Vce8HGsu6KDj7MA_5W2ziQtss1F180ndMjuqGiHxTe8,1358
|
|
144
161
|
nat/eval/remote_workflow.py,sha256=JAAbD0s753AOjo9baT4OqcB5dVEDmN34jPe0Uk13LcU,6024
|
|
145
162
|
nat/eval/runtime_event_subscriber.py,sha256=9MVgZLKvpnThHINaPbszPYDWnJ61sntS09YZtDhIRE4,1900
|
|
146
163
|
nat/eval/usage_stats.py,sha256=_d_ErIvSKDN8wuvOyPn01kqM7zlFpwVxqOonaCV5XtY,1319
|
|
@@ -157,6 +174,9 @@ nat/eval/rag_evaluator/register.py,sha256=AzT5uICDU5dEo7scvStmOWC7ac-S0Tx4UY87id
|
|
|
157
174
|
nat/eval/runners/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
|
|
158
175
|
nat/eval/runners/config.py,sha256=bRPai_th02OJrFepbbY6w-t7A18TBXozQUnnnH9iWIU,1403
|
|
159
176
|
nat/eval/runners/multi_eval_runner.py,sha256=3YSHOHjGFSlMxVEkuphUsCW5H5w73k3xD-W2rFNRWqE,1986
|
|
177
|
+
nat/eval/runtime_evaluator/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
|
|
178
|
+
nat/eval/runtime_evaluator/evaluate.py,sha256=HTUDWrUD6G8ggkofDCRhwuXWdQTb3V7o9FJ2_vc_LyQ,5379
|
|
179
|
+
nat/eval/runtime_evaluator/register.py,sha256=eOqokSisoaYzCANzyLXmGGCGUp0rLXdcqHXtDW_bZ5s,4509
|
|
160
180
|
nat/eval/swe_bench_evaluator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
161
181
|
nat/eval/swe_bench_evaluator/evaluate.py,sha256=SkP8spu351UBgzjdG8ox6uHpiTAWxe2CCIMRxvOIMfg,9832
|
|
162
182
|
nat/eval/swe_bench_evaluator/register.py,sha256=5mzvBTUBdqahBZNU4KjB1go81cObo9F4iA3y_eOJ86g,1537
|
|
@@ -182,7 +202,7 @@ nat/experimental/test_time_compute/editing/llm_as_a_judge_editor.py,sha256=QAu46
|
|
|
182
202
|
nat/experimental/test_time_compute/editing/motivation_aware_summarization.py,sha256=S7s_BigZ1ru-3lP7c58Zpt5Nxavi8Ko-A1cmH7KkX3s,4503
|
|
183
203
|
nat/experimental/test_time_compute/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
184
204
|
nat/experimental/test_time_compute/functions/execute_score_select_function.py,sha256=OHiQ01a6g3OEd-K1WZynuQspmrvBpgKKxxqO-UbM4z0,4550
|
|
185
|
-
nat/experimental/test_time_compute/functions/plan_select_execute_function.py,sha256=
|
|
205
|
+
nat/experimental/test_time_compute/functions/plan_select_execute_function.py,sha256=2j8m2VuoMmjKMoMlre0VcYxtu3saDf81lxXg6kzaPsE,10055
|
|
186
206
|
nat/experimental/test_time_compute/functions/ttc_tool_orchestration_function.py,sha256=ZzDGHg7xDdXgubF6o7Mih-5SHStWKjxB1PiDzGdPFew,8440
|
|
187
207
|
nat/experimental/test_time_compute/functions/ttc_tool_wrapper_function.py,sha256=H4LmatlubHGTUBXAp-8LIK8Z6bUid0W_8EuigaGU89Q,6907
|
|
188
208
|
nat/experimental/test_time_compute/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -217,36 +237,39 @@ nat/front_ends/console/console_front_end_plugin.py,sha256=BJ1o2IflZeFKC2gGfL_gI2
|
|
|
217
237
|
nat/front_ends/console/register.py,sha256=2Kf6Mthx6jzWzU8YdhYIR1iABmZDvs1UXM_20npXWXs,1153
|
|
218
238
|
nat/front_ends/cron/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
219
239
|
nat/front_ends/fastapi/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
220
|
-
nat/front_ends/fastapi/
|
|
240
|
+
nat/front_ends/fastapi/dask_client_mixin.py,sha256=N_tw4yxA7EKIFTKp5_C2ZksIZucWxRYkFjmZszkAkXc,2072
|
|
241
|
+
nat/front_ends/fastapi/fastapi_front_end_config.py,sha256=BcuzrVlA5b7yYyQKNvQgEanDBtKEHdpC8TAd-O7lfF0,11992
|
|
221
242
|
nat/front_ends/fastapi/fastapi_front_end_controller.py,sha256=ei-34KCMpyaeAgeAN4gVvSGFjewjjRhHZPN0FqAfhDY,2548
|
|
222
|
-
nat/front_ends/fastapi/fastapi_front_end_plugin.py,sha256=
|
|
223
|
-
nat/front_ends/fastapi/fastapi_front_end_plugin_worker.py,sha256=
|
|
243
|
+
nat/front_ends/fastapi/fastapi_front_end_plugin.py,sha256=e33YkMcLzvm4OUG34bhl-WYiBTqkR-_wJYKG4GODkGM,11169
|
|
244
|
+
nat/front_ends/fastapi/fastapi_front_end_plugin_worker.py,sha256=F-A6KQRqO0JOVj90rGewFzzSlrSIAMxAeq8L1OFQClE,52989
|
|
224
245
|
nat/front_ends/fastapi/intermediate_steps_subscriber.py,sha256=kbyWlBVpyvyQQjeUnFG9nsR4RaqqNkx567ZSVwwl2RU,3104
|
|
225
|
-
nat/front_ends/fastapi/job_store.py,sha256=
|
|
226
|
-
nat/front_ends/fastapi/main.py,sha256=
|
|
246
|
+
nat/front_ends/fastapi/job_store.py,sha256=S0ab_MyJvr3z28l1UY5rhORt6eiEls9_xcQDrNrBJm8,22746
|
|
247
|
+
nat/front_ends/fastapi/main.py,sha256=s8gXCy61rJjK1aywMRpgPvzlkMGsCS-kI_0EIy4JjBM,2445
|
|
227
248
|
nat/front_ends/fastapi/message_handler.py,sha256=mMgw1B3zCzLBiOWRzDD55--K-J4lZ94zrug3xh87ijg,15206
|
|
228
249
|
nat/front_ends/fastapi/message_validator.py,sha256=g4pfyQ0Yhv8Ec_Pi0Ps7TGLIzFwys3SCwsjVZEEFBHw,17496
|
|
229
250
|
nat/front_ends/fastapi/register.py,sha256=rA12NPFgV9ZNHOEIgB7_SB6NytjRxgBTLo7fJ-73_HM,1153
|
|
230
251
|
nat/front_ends/fastapi/response_helpers.py,sha256=MGE9E73sQSCYjsR5YXRga2qbl44hrTAPW2N5Ui3vXX0,9028
|
|
231
252
|
nat/front_ends/fastapi/step_adaptor.py,sha256=J6UtoXL9De8bgAg93nE0ASLUHZbidWOfRiuFo-tyZgY,12412
|
|
253
|
+
nat/front_ends/fastapi/utils.py,sha256=oYuuLsugx-fpy6u4xd9gL7g9kfwsyKOnwH5YOwH633w,1998
|
|
232
254
|
nat/front_ends/fastapi/auth_flow_handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
233
255
|
nat/front_ends/fastapi/auth_flow_handlers/http_flow_handler.py,sha256=69ye-nJ81jAoD1cVYv86-AUYu2-Uk8ZqU_m8AVO9vT8,1280
|
|
234
256
|
nat/front_ends/fastapi/auth_flow_handlers/websocket_flow_handler.py,sha256=5HX6mpKPmErkhwIAwFIGONYj_CkPrhCG7L56-79o7Yw,4862
|
|
235
257
|
nat/front_ends/fastapi/html_snippets/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
|
|
236
258
|
nat/front_ends/fastapi/html_snippets/auth_code_grant_success.py,sha256=BNpWwzmA58UM0GK4kZXG4PHJy_5K9ihaVHu8SgCs5JA,1131
|
|
237
259
|
nat/front_ends/mcp/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
238
|
-
nat/front_ends/mcp/
|
|
239
|
-
nat/front_ends/mcp/
|
|
240
|
-
nat/front_ends/mcp/
|
|
260
|
+
nat/front_ends/mcp/introspection_token_verifier.py,sha256=s7Q4Q6rWZJ0ZVujSxxpvVI6Bnhkg1LJQ3RLkvhzFIGE,2836
|
|
261
|
+
nat/front_ends/mcp/mcp_front_end_config.py,sha256=fFbg800FDJfwv-nXc0jEPaNVtW4ApESmVRexr-werks,2313
|
|
262
|
+
nat/front_ends/mcp/mcp_front_end_plugin.py,sha256=NiIIgApk1X2yAEwtG9tHaY6SexQMbZrd6Drs7uIJix8,5055
|
|
263
|
+
nat/front_ends/mcp/mcp_front_end_plugin_worker.py,sha256=TnrxwNfkphOp6a2itbJQKonjrJCK3nDXynUOe79HP2Q,10176
|
|
241
264
|
nat/front_ends/mcp/register.py,sha256=3aJtgG5VaiqujoeU1-Eq7Hl5pWslIlIwGFU2ASLTXgM,1173
|
|
242
|
-
nat/front_ends/mcp/tool_converter.py,sha256=
|
|
265
|
+
nat/front_ends/mcp/tool_converter.py,sha256=J0GS85qs2rVO2ZyGfxQcbtlWevoMJCEiEfa83PK10Ew,11548
|
|
243
266
|
nat/front_ends/simple_base/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
244
267
|
nat/front_ends/simple_base/simple_front_end_plugin_base.py,sha256=3kevZVhvzj_Wvu8HYhRz-CRrO2OldW6wcmtcsIQCELk,1765
|
|
245
268
|
nat/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
246
|
-
nat/llm/aws_bedrock_llm.py,sha256
|
|
269
|
+
nat/llm/aws_bedrock_llm.py,sha256=-P6OltFz8CPHmKmgUipFaIpROLGdnnRmd-q5BfjY7lM,3219
|
|
247
270
|
nat/llm/azure_openai_llm.py,sha256=30JWbNyscHhuRjFdWF2yLAEcKurY0q2BSMVFTdtSv9g,2649
|
|
248
|
-
nat/llm/nim_llm.py,sha256=
|
|
249
|
-
nat/llm/openai_llm.py,sha256=
|
|
271
|
+
nat/llm/nim_llm.py,sha256=9sU3FUOedx5jY3He3qiN0T-AC48F5maIpz87NxP7Q0Q,2696
|
|
272
|
+
nat/llm/openai_llm.py,sha256=AMf8Xxzo3kYVi7XfyqatuU1-CH0-8QGmshDbSHHREXY,2487
|
|
250
273
|
nat/llm/register.py,sha256=DAM4rKfdwArZiKrhx_XhWVKik9ubUIrnPHE1Gy0pH1Q,898
|
|
251
274
|
nat/llm/utils/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
|
|
252
275
|
nat/llm/utils/env_config_value.py,sha256=kBVsv0pEokIAfDQx5omR7_FevFv_5fTPswcbnvhVT2c,3548
|
|
@@ -268,7 +291,7 @@ nat/observability/exporter/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48j
|
|
|
268
291
|
nat/observability/exporter/base_exporter.py,sha256=tP7c5O-gQnHB_1TwIJJUib1xmtUhX4f4Mf_bmpejtkI,16612
|
|
269
292
|
nat/observability/exporter/exporter.py,sha256=fqF0GYuhZRQEq0skq_FK2nlnsaUAzLpQi-OciaOkRno,2391
|
|
270
293
|
nat/observability/exporter/file_exporter.py,sha256=XYsFjF8ob4Ag-SyGtKEh6wRU9lBx3lbdu7Uo85NvVyo,1465
|
|
271
|
-
nat/observability/exporter/processing_exporter.py,sha256=
|
|
294
|
+
nat/observability/exporter/processing_exporter.py,sha256=U_VE1VZZ2giGE-OUGH4pnHTYW2Nwcwfx4bFLL7_iu9M,25044
|
|
272
295
|
nat/observability/exporter/raw_exporter.py,sha256=0ROEd-DlLP6pIxl4u2zJ6PMVrDrQa0DMHFDRsdGQMIk,1859
|
|
273
296
|
nat/observability/exporter/span_exporter.py,sha256=p2rugOIyubBk_Frg1c-x-THzvFZt8q8HhYssKUp8Hdg,13250
|
|
274
297
|
nat/observability/mixin/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
@@ -276,21 +299,24 @@ nat/observability/mixin/batch_config_mixin.py,sha256=DixQq-jRhBFJvpOX-gq7GvPmZCP
|
|
|
276
299
|
nat/observability/mixin/collector_config_mixin.py,sha256=3iptkRH9N6JgcsPq7GyjjJVAoxjd-l42UKE7iSF4Hq8,1087
|
|
277
300
|
nat/observability/mixin/file_mixin.py,sha256=J5kC70O3hoU86IDOoQtdk7caRD28nlIZL3igXcRSNBE,12306
|
|
278
301
|
nat/observability/mixin/file_mode.py,sha256=Rq7l8UegECub5QCyCAYwhyL_Jul386gW-ANmtMmv2G4,837
|
|
279
|
-
nat/observability/mixin/redaction_config_mixin.py,sha256=
|
|
302
|
+
nat/observability/mixin/redaction_config_mixin.py,sha256=yzLsgt1iaU0z7q1HvVT39kwhVVV6jBtWuP0SKG3jkMI,2141
|
|
280
303
|
nat/observability/mixin/resource_conflict_mixin.py,sha256=mcUp3Qinmhiepq3DyRvp9IaKGYtJfDgQVB-MuyVkWvk,5243
|
|
281
304
|
nat/observability/mixin/serialize_mixin.py,sha256=DgRHJpXCz9qHFYzhlTTx8Dkj297EylCKK3ydGrH5zOw,2478
|
|
282
|
-
nat/observability/mixin/tagging_config_mixin.py,sha256=
|
|
283
|
-
nat/observability/mixin/type_introspection_mixin.py,sha256=
|
|
305
|
+
nat/observability/mixin/tagging_config_mixin.py,sha256=m-AUeLsiiKPMdMv_0TKAFL18BvVJ4tRzPoRCVpzyfN8,1777
|
|
306
|
+
nat/observability/mixin/type_introspection_mixin.py,sha256=ZHMRmp38R2KypnPBJyenf6rW8jVoz0cWnFlG8rHLtpA,20327
|
|
284
307
|
nat/observability/processor/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
285
308
|
nat/observability/processor/batching_processor.py,sha256=R0Qy3bHmf-QBM6FJmjmccdsf60JuvYLU-tV4kvy2hBA,13762
|
|
286
309
|
nat/observability/processor/callback_processor.py,sha256=T5DsEm4HCUOi1VL29XCpaK04sYQvJ75KZLH-mlJGQgk,1547
|
|
287
310
|
nat/observability/processor/falsy_batch_filter_processor.py,sha256=CInyZ1eIjtD1W6imPbuqwUeoWOMQ_0J0M9nPL6XwhTo,1778
|
|
288
|
-
nat/observability/processor/header_redaction_processor.py,sha256=cUmsVjHepddFHZu80zvdugG2eOUaGQr6cqxKyVS8fi4,4284
|
|
289
311
|
nat/observability/processor/intermediate_step_serializer.py,sha256=aHeCmixyop7uxNnKmrUZ8SIFeBNS05gYohKLepqbrcQ,1249
|
|
290
|
-
nat/observability/processor/processor.py,sha256=
|
|
312
|
+
nat/observability/processor/processor.py,sha256=NhcRKkXcfRDgHfn8Bw0XSnb8S9h5cdI4HnEO2BubLfo,2695
|
|
291
313
|
nat/observability/processor/processor_factory.py,sha256=1Ak4OWwmbimc5PKWwqPYq4fJqJifFm6MiI8vcafeErY,2408
|
|
292
|
-
nat/observability/processor/
|
|
293
|
-
nat/observability/processor/
|
|
314
|
+
nat/observability/processor/span_tagging_processor.py,sha256=9Zqr-IvnZYOddTw-n0pVzigcJB6hNVc9TyZma9z8Ozw,2553
|
|
315
|
+
nat/observability/processor/redaction/__init__.py,sha256=fctoXoEfCotEJphUS7rqtT7jHw2MPRA795D77xjSKfU,964
|
|
316
|
+
nat/observability/processor/redaction/contextual_redaction_processor.py,sha256=HFsuOsFgUinTUWJ3GEsqvLBfV08So2A2rf9LGZyzc34,4953
|
|
317
|
+
nat/observability/processor/redaction/contextual_span_redaction_processor.py,sha256=wmliaoeKwzQQX8kaeC-Jifq6YvSgeO_H5ri6sWhX7t4,2575
|
|
318
|
+
nat/observability/processor/redaction/redaction_processor.py,sha256=9WZACuFcR8f41VyOYWwXHxpHuxR2sQ3QC-Ta3TNJ2wk,6164
|
|
319
|
+
nat/observability/processor/redaction/span_header_redaction_processor.py,sha256=NA3M8Ex4J5QqMfAIOiI-I_TUgO3511FY7xZmglRg3xU,3764
|
|
294
320
|
nat/observability/utils/__init__.py,sha256=Xs1JQ16L9btwreh4pdGKwskffAw1YFO48jKrU4ib_7c,685
|
|
295
321
|
nat/observability/utils/dict_utils.py,sha256=DcNhZ0mgcJ-QQfsCl9QSGL-m_jTuHhr1N-v43ZCAMik,7371
|
|
296
322
|
nat/observability/utils/time_utils.py,sha256=V8m-e3ldUgwv031B17y29yLXIowdlTH4QW8xDw9WKvk,1071
|
|
@@ -301,7 +327,7 @@ nat/profiler/data_models.py,sha256=UAuTy9_l623JUNdIKIHPxoNEwZ7Qj-Vv93rfjxyf5Ak,1
|
|
|
301
327
|
nat/profiler/inference_metrics_model.py,sha256=Thz3OHBDzGrpPYaOm8m8_pNeEA_q0yDlUUDHFkQ3U90,1481
|
|
302
328
|
nat/profiler/intermediate_property_adapter.py,sha256=cCxyldN052meVJ4Ul-vbmguum0mLdaz3syFoidkIDsg,3537
|
|
303
329
|
nat/profiler/profile_runner.py,sha256=mVYfonKyP-KwxG9aACicP7m0eeGovmK8a_WUsq-RGkA,22541
|
|
304
|
-
nat/profiler/utils.py,sha256=
|
|
330
|
+
nat/profiler/utils.py,sha256=XAMq_0nYMf0blD8ffoRj4xSQgwz8KagsqlM7VmnDI44,8266
|
|
305
331
|
nat/profiler/calc/__init__.py,sha256=GUJrgGtpvyMUCjUBvR3faAdv-tZzbU9W-izgx9aMEQg,680
|
|
306
332
|
nat/profiler/calc/calc_runner.py,sha256=1xvLvVF4QOX_p1-Ps1wqNGWZ9zX49JZxjqo0KiDDn-g,30624
|
|
307
333
|
nat/profiler/calc/calculations.py,sha256=K_r1OvEOEF5ffoadS4mAzTNHguVLMkNkrxrdtKvJJSs,12327
|
|
@@ -315,7 +341,7 @@ nat/profiler/callbacks/llama_index_callback_handler.py,sha256=xzYve07uMlSTDjj929
|
|
|
315
341
|
nat/profiler/callbacks/semantic_kernel_callback_handler.py,sha256=BknzhQNB-MDMhR4QC9JScCp-zXq7KZ33SFb7X0MiTaI,11087
|
|
316
342
|
nat/profiler/callbacks/token_usage_base_model.py,sha256=X0b_AbBgVQAAbgbDMim-3S3XdQ7PaPs9qMUACvMAe5o,1104
|
|
317
343
|
nat/profiler/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
318
|
-
nat/profiler/decorators/framework_wrapper.py,sha256=
|
|
344
|
+
nat/profiler/decorators/framework_wrapper.py,sha256=r-ysp4IRZhsfuUzeEukMwvLqD-hIVbF4yfJQ5PXr_5A,5517
|
|
319
345
|
nat/profiler/decorators/function_tracking.py,sha256=aZWPOsWKwFCFZSoxXz3SpHmbVB39W3hC0cVND7Tby4I,15795
|
|
320
346
|
nat/profiler/forecasting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
321
347
|
nat/profiler/forecasting/config.py,sha256=5BhMa8csuPCjEnTaNQjo_2IoO7esh1ch02MoSWkvwPw,791
|
|
@@ -336,6 +362,14 @@ nat/profiler/inference_optimization/bottleneck_analysis/simple_stack_analysis.py
|
|
|
336
362
|
nat/profiler/inference_optimization/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
337
363
|
nat/profiler/inference_optimization/experimental/concurrency_spike_analysis.py,sha256=3hFMDbfW7MKxFIhO7y35qtP5wPtLAA2ZqltlnI-OsVc,16953
|
|
338
364
|
nat/profiler/inference_optimization/experimental/prefix_span_analysis.py,sha256=-e5pEW4CQXYm0c5JrI-d0p-yZzvHlUzZYM8GOYA4hEU,16662
|
|
365
|
+
nat/profiler/parameter_optimization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
366
|
+
nat/profiler/parameter_optimization/optimizable_utils.py,sha256=93Pl8A14Zq_f3XsxSH-yFnEJ6B7W5hp7doPnPoLlRB4,3714
|
|
367
|
+
nat/profiler/parameter_optimization/optimizer_runtime.py,sha256=rXmCOq81o7ZorQOUYociVjuO3NO9CIjFBbwql2u_4H4,2715
|
|
368
|
+
nat/profiler/parameter_optimization/parameter_optimizer.py,sha256=CxRFSnl0w0JQvijsY-gszUNxvSrihQ0Jl9ySYClsNFI,6544
|
|
369
|
+
nat/profiler/parameter_optimization/parameter_selection.py,sha256=-cKhoEgwC2K-brHOiLmgLnxk23bRMDefDCZSwvCqqJM,4007
|
|
370
|
+
nat/profiler/parameter_optimization/pareto_visualizer.py,sha256=06SqR6b50dI4emJiGPLV0en19utf3jrrwLUYf_LwNDs,15904
|
|
371
|
+
nat/profiler/parameter_optimization/prompt_optimizer.py,sha256=foO-IQWBzCsFRDxAwucIq1kQOO-XwFeULBWyoGc33Zo,17646
|
|
372
|
+
nat/profiler/parameter_optimization/update_helpers.py,sha256=NxWhrGVchbjws85pPd-jS-C14_l70QvVSvEfENndVcY,2339
|
|
339
373
|
nat/registry_handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
340
374
|
nat/registry_handlers/metadata_factory.py,sha256=MTbXa7pifVPpmLJs86jVCS1wHk5drRykNPpJuv2A_0U,2769
|
|
341
375
|
nat/registry_handlers/package_utils.py,sha256=2xX3IHr5aK-xx8asULFw0VDgZb3MT-o7F-pTWJYgtp4,22517
|
|
@@ -377,11 +411,12 @@ nat/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
377
411
|
nat/settings/global_settings.py,sha256=JSlYnW3CeGJYGxlaXLz5F9xXf72I5TUz-w6qngG5di0,12476
|
|
378
412
|
nat/test/.namespace,sha256=Gace0pOC3ETEJf-TBVuNw0TQV6J_KtOPpEiSzMH-odo,215
|
|
379
413
|
nat/tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
380
|
-
nat/tool/chat_completion.py,sha256=
|
|
414
|
+
nat/tool/chat_completion.py,sha256=u9i39TuIPrCSWrNOw57QYD3i6pPbxV-7Gox8GRx9Vz0,3251
|
|
381
415
|
nat/tool/datetime_tools.py,sha256=yZV5lE3FsQuIZE3B36gg38hxfavxgaG04eVFbL0UBTI,3239
|
|
382
416
|
nat/tool/document_search.py,sha256=pLXWNfrddwu45Qa7z3pxfCUQEpTgGekvE-2WzM-CTP4,6751
|
|
417
|
+
nat/tool/github_tools.py,sha256=Pn6p6ebLClNUy6MJIWf-Pl5NguMUT-IJ-bhmpJmvBrg,21900
|
|
383
418
|
nat/tool/nvidia_rag.py,sha256=cEHSc3CZwpd71YcOQngya-Ca_B6ZOb87Dmsoza0VhFY,4163
|
|
384
|
-
nat/tool/register.py,sha256=
|
|
419
|
+
nat/tool/register.py,sha256=F1mQs9gI3Ee0EESFyBiTFZeqscY173ENQlfKcWZup0c,1208
|
|
385
420
|
nat/tool/retriever.py,sha256=FP5JL1vCQNrqaKz4F1up-osjxEPhxPFOyaScrgByc34,3877
|
|
386
421
|
nat/tool/server_tools.py,sha256=rQLipwRv8lAyU-gohky2JoVDxWQTUTSttNWjhu7lcHU,3194
|
|
387
422
|
nat/tool/code_execution/README.md,sha256=sl3YX4As95HX61XqTXOGnUcHBV1lla-OeuTnLI4qgng,4019
|
|
@@ -396,33 +431,27 @@ nat/tool/code_execution/local_sandbox/__init__.py,sha256=k25Kqr_PrH4s0YCfzVzC9va
|
|
|
396
431
|
nat/tool/code_execution/local_sandbox/local_sandbox_server.py,sha256=j8R7YwRyKrCsfqykUaCvbW2fhCAOkLXEwirnNQNXu08,6928
|
|
397
432
|
nat/tool/code_execution/local_sandbox/sandbox.requirements.txt,sha256=R86yJ6mcUhfD9_ZU-rSMdaojR6MU41hcH4pE3vAGmcE,43
|
|
398
433
|
nat/tool/code_execution/local_sandbox/start_local_sandbox.sh,sha256=gnPuzbneKZ61YvzaGIYSUdcyKMLuchYPti3zGLaNCZY,2055
|
|
399
|
-
nat/tool/github_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
400
|
-
nat/tool/github_tools/create_github_commit.py,sha256=O4EmNk_QQlflOpY5gT6oWlnY4wbzA7BnTk49D-2FbT8,6604
|
|
401
|
-
nat/tool/github_tools/create_github_issue.py,sha256=9jAHtKgZFGCJV4OE0Pj8sZDKr25pf7cbJ8Czt5hTaj0,3428
|
|
402
|
-
nat/tool/github_tools/create_github_pr.py,sha256=9nuJq9bAbqVXOyLhjO_3tS70eI_72mhNE6KRtN7PSCQ,4945
|
|
403
|
-
nat/tool/github_tools/get_github_file.py,sha256=tGMzrE-v16rjDoG-IbOkaS5hXe4SCb-onkTZdA-6eSg,4486
|
|
404
|
-
nat/tool/github_tools/get_github_issue.py,sha256=fFJFYt3mWR6CK46r6k3-3eVbAKLNh1yHRMmZU0c-4jA,6532
|
|
405
|
-
nat/tool/github_tools/get_github_pr.py,sha256=p4Xu-YA6L1dQ8O0e5LDzphrn5DknjttDhLeudgk7Iys,9716
|
|
406
|
-
nat/tool/github_tools/update_github_issue.py,sha256=fj_OAp5bSmSyj-wPAUvzfCGRBuwPyoK1kJ95Fn8XDg8,4103
|
|
407
434
|
nat/tool/memory_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
408
435
|
nat/tool/memory_tools/add_memory_tool.py,sha256=DYaYkVlH2myRshJpzmULfzdF0wFoPCAkTBokFVmhfzU,3349
|
|
409
436
|
nat/tool/memory_tools/delete_memory_tool.py,sha256=EWJVgzIzLDqktY5domXph-N2U9FmybdWl4J7KM7uK4g,2532
|
|
410
437
|
nat/tool/memory_tools/get_memory_tool.py,sha256=pJw6Lu2wukCW3mUGx5TtBNfdmdr-wqf7DQn2yNKxJ_4,2749
|
|
411
438
|
nat/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
439
|
+
nat/utils/callable_utils.py,sha256=EIao6NhHRFEoBqYRC7aWoFqhlr2LeFT0XK-ac0coF9E,2475
|
|
412
440
|
nat/utils/debugging_utils.py,sha256=6M4JhbHDNDnfmSRGmHvT5IgEeWSHBore3VngdE_PMqc,1332
|
|
413
441
|
nat/utils/dump_distro_mapping.py,sha256=ptRVwrzhZplEWZUwwHOzyeuLj-ykkxn96t4oxUmRG28,1147
|
|
442
|
+
nat/utils/log_levels.py,sha256=2hHWgOSuvuISdKN82BQgBh2yk9V5324jYMki8-1rAYs,888
|
|
414
443
|
nat/utils/log_utils.py,sha256=dZLHt7qFqLlpPqMMFO9UVtSkOpMjFwz9tkmbAfOiNlg,1355
|
|
415
444
|
nat/utils/metadata_utils.py,sha256=BSsiB6jIWd8oEuEynJi55qCG762UuTYFaiUH0OT9HdY,2897
|
|
416
445
|
nat/utils/optional_imports.py,sha256=jQSVBc2fBSRw-2d6r8cEwvh5-di2EUUPakuuo9QbbwA,4039
|
|
417
446
|
nat/utils/producer_consumer_queue.py,sha256=AcSYkAMBxLx06A5Xdy960PP3AJ7YaSPGJ7rbN_hJsjI,6599
|
|
418
447
|
nat/utils/string_utils.py,sha256=71HuIzGx7rF8ocTmeoUBpnCi1Qf1yynYlNLLIKP4BVs,1415
|
|
419
448
|
nat/utils/type_converter.py,sha256=tO5XPbr5MPhBqbseEM2hROAk_CTcnlzibTGdOPT3MfQ,10640
|
|
420
|
-
nat/utils/type_utils.py,sha256=
|
|
449
|
+
nat/utils/type_utils.py,sha256=bOsRUaMnGRH3R8xPYKJc40ddSV_QYTErVPiCqKyB_rg,14819
|
|
421
450
|
nat/utils/url_utils.py,sha256=UzDP_xaS6brWTu7vAws0B4jZyrITIK9Si3U6pZBZqDE,1028
|
|
422
451
|
nat/utils/data_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
423
452
|
nat/utils/data_models/schema_validator.py,sha256=pmGr5KuRX5tbVsymG1NxaSnGrKIfzxXEJNd58wIQ9SM,1532
|
|
424
453
|
nat/utils/exception_handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
425
|
-
nat/utils/exception_handlers/automatic_retries.py,sha256=
|
|
454
|
+
nat/utils/exception_handlers/automatic_retries.py,sha256=ppTgYy8MH2LOPladPif5dg0qC4nPqhKkUeXJdE9ZLAo,14511
|
|
426
455
|
nat/utils/exception_handlers/schemas.py,sha256=EcNukc4-oASIX2mHAP-hH1up1roWnm99iY18P_v13D0,3800
|
|
427
456
|
nat/utils/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
428
457
|
nat/utils/io/model_processing.py,sha256=bEbH_tIgZQvPlEJKVV4kye_Y9UU96W4k2mKuckGErHA,936
|
|
@@ -438,10 +467,10 @@ nat/utils/reactive/base/observer_base.py,sha256=6BiQfx26EMumotJ3KoVcdmFBYR_fnAss
|
|
|
438
467
|
nat/utils/reactive/base/subject_base.py,sha256=UQOxlkZTIeeyYmG5qLtDpNf_63Y7p-doEeUA08_R8ME,2521
|
|
439
468
|
nat/utils/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
440
469
|
nat/utils/settings/global_settings.py,sha256=9JaO6pxKT_Pjw6rxJRsRlFCXdVKCl_xUKU2QHZQWWNM,7294
|
|
441
|
-
nvidia_nat-1.3.
|
|
442
|
-
nvidia_nat-1.3.
|
|
443
|
-
nvidia_nat-1.3.
|
|
444
|
-
nvidia_nat-1.3.
|
|
445
|
-
nvidia_nat-1.3.
|
|
446
|
-
nvidia_nat-1.3.
|
|
447
|
-
nvidia_nat-1.3.
|
|
470
|
+
nvidia_nat-1.3.0a20250922.dist-info/licenses/LICENSE-3rd-party.txt,sha256=fOk5jMmCX9YoKWyYzTtfgl-SUy477audFC5hNY4oP7Q,284609
|
|
471
|
+
nvidia_nat-1.3.0a20250922.dist-info/licenses/LICENSE.md,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
472
|
+
nvidia_nat-1.3.0a20250922.dist-info/METADATA,sha256=oRhemXV7FuDWWz4Aw7e3q5JW7s9wWfZHjrwAfhq7MsU,22605
|
|
473
|
+
nvidia_nat-1.3.0a20250922.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
474
|
+
nvidia_nat-1.3.0a20250922.dist-info/entry_points.txt,sha256=4jCqjyETMpyoWbCBf4GalZU8I_wbstpzwQNezdAVbbo,698
|
|
475
|
+
nvidia_nat-1.3.0a20250922.dist-info/top_level.txt,sha256=lgJWLkigiVZuZ_O1nxVnD_ziYBwgpE2OStdaCduMEGc,8
|
|
476
|
+
nvidia_nat-1.3.0a20250922.dist-info/RECORD,,
|
{nvidia_nat-1.3.0a20250910.dist-info → nvidia_nat-1.3.0a20250922.dist-info}/entry_points.txt
RENAMED
|
@@ -5,6 +5,7 @@ nat = nat.cli.main:run_cli
|
|
|
5
5
|
[nat.components]
|
|
6
6
|
nat_agents = nat.agent.register
|
|
7
7
|
nat_authentication = nat.authentication.register
|
|
8
|
+
nat_control_flow = nat.control_flow.register
|
|
8
9
|
nat_embedders = nat.embedder.register
|
|
9
10
|
nat_evaluators = nat.eval.register
|
|
10
11
|
nat_llms = nat.llm.register
|
|
@@ -1,123 +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 logging
|
|
17
|
-
from collections.abc import Callable
|
|
18
|
-
from functools import lru_cache
|
|
19
|
-
|
|
20
|
-
from starlette.datastructures import Headers
|
|
21
|
-
|
|
22
|
-
from nat.builder.context import Context
|
|
23
|
-
from nat.data_models.span import Span
|
|
24
|
-
from nat.observability.processor.redaction_processor import SpanRedactionProcessor
|
|
25
|
-
from nat.utils.type_utils import override
|
|
26
|
-
|
|
27
|
-
logger = logging.getLogger(__name__)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def default_callback(_auth_key: str) -> bool:
|
|
31
|
-
"""Default callback that always returns False."""
|
|
32
|
-
return False
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class HeaderRedactionProcessor(SpanRedactionProcessor):
|
|
36
|
-
"""Processor that redacts the span based on auth key, span attributes, and callback.
|
|
37
|
-
|
|
38
|
-
Uses an LRU cache to avoid redundant callback executions for the same auth keys,
|
|
39
|
-
providing bounded memory usage and automatic eviction of least recently used entries.
|
|
40
|
-
|
|
41
|
-
Args:
|
|
42
|
-
attributes: List of span attribute keys to redact.
|
|
43
|
-
header: The header key to check for authentication.
|
|
44
|
-
callback: Function to determine if the auth key should trigger redaction.
|
|
45
|
-
enabled: Whether the processor is enabled (default: True).
|
|
46
|
-
force_redact: If True, always redact regardless of header checks (default: False).
|
|
47
|
-
redaction_value: The value to replace redacted attributes with (default: "[REDACTED]").
|
|
48
|
-
"""
|
|
49
|
-
|
|
50
|
-
def __init__(self,
|
|
51
|
-
attributes: list[str] | None = None,
|
|
52
|
-
header: str | None = None,
|
|
53
|
-
callback: Callable[[str], bool] | None = None,
|
|
54
|
-
enabled: bool = True,
|
|
55
|
-
force_redact: bool = False,
|
|
56
|
-
redaction_value: str = "[REDACTED]"):
|
|
57
|
-
self.attributes = attributes or []
|
|
58
|
-
self.header = header
|
|
59
|
-
self.callback = callback or default_callback
|
|
60
|
-
self.enabled = enabled
|
|
61
|
-
self.force_redact = force_redact
|
|
62
|
-
self.redaction_value = redaction_value
|
|
63
|
-
|
|
64
|
-
@override
|
|
65
|
-
def should_redact(self, item: Span, context: Context) -> bool:
|
|
66
|
-
"""Determine if this span should be redacted based on header auth.
|
|
67
|
-
|
|
68
|
-
Args:
|
|
69
|
-
item (Span): The span to check.
|
|
70
|
-
context (Context): The current context.
|
|
71
|
-
|
|
72
|
-
Returns:
|
|
73
|
-
bool: True if the span should be redacted, False otherwise.
|
|
74
|
-
"""
|
|
75
|
-
# If force_redact is enabled, always redact regardless of other conditions
|
|
76
|
-
if self.force_redact:
|
|
77
|
-
return True
|
|
78
|
-
|
|
79
|
-
if not self.enabled:
|
|
80
|
-
return False
|
|
81
|
-
|
|
82
|
-
headers: Headers | None = context.metadata.headers
|
|
83
|
-
|
|
84
|
-
if headers is None or self.header is None:
|
|
85
|
-
return False
|
|
86
|
-
|
|
87
|
-
auth_key = headers.get(self.header, None)
|
|
88
|
-
|
|
89
|
-
if not auth_key:
|
|
90
|
-
return False
|
|
91
|
-
|
|
92
|
-
# Use LRU cached method to determine if redaction is needed
|
|
93
|
-
return self._should_redact_impl(auth_key)
|
|
94
|
-
|
|
95
|
-
@lru_cache(maxsize=128)
|
|
96
|
-
def _should_redact_impl(self, auth_key: str) -> bool:
|
|
97
|
-
"""Implementation method for checking if redaction should occur.
|
|
98
|
-
|
|
99
|
-
This method uses lru_cache to avoid redundant callback executions.
|
|
100
|
-
|
|
101
|
-
Args:
|
|
102
|
-
auth_key (str): The authentication key to check.
|
|
103
|
-
|
|
104
|
-
Returns:
|
|
105
|
-
bool: True if the span should be redacted, False otherwise.
|
|
106
|
-
"""
|
|
107
|
-
return self.callback(auth_key)
|
|
108
|
-
|
|
109
|
-
@override
|
|
110
|
-
def redact_item(self, item: Span) -> Span:
|
|
111
|
-
"""Redact the span.
|
|
112
|
-
|
|
113
|
-
Args:
|
|
114
|
-
item (Span): The span to redact.
|
|
115
|
-
|
|
116
|
-
Returns:
|
|
117
|
-
Span: The redacted span.
|
|
118
|
-
"""
|
|
119
|
-
for key in self.attributes:
|
|
120
|
-
if key in item.attributes:
|
|
121
|
-
item.attributes[key] = self.redaction_value
|
|
122
|
-
|
|
123
|
-
return item
|
|
@@ -1,77 +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 logging
|
|
17
|
-
from abc import ABC
|
|
18
|
-
from abc import abstractmethod
|
|
19
|
-
from typing import TypeVar
|
|
20
|
-
|
|
21
|
-
from nat.builder.context import Context
|
|
22
|
-
from nat.data_models.span import Span
|
|
23
|
-
from nat.observability.processor.processor import Processor
|
|
24
|
-
from nat.utils.type_utils import override
|
|
25
|
-
|
|
26
|
-
RedactionItemT = TypeVar('RedactionItemT')
|
|
27
|
-
|
|
28
|
-
logger = logging.getLogger(__name__)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
class RedactionProcessor(Processor[RedactionItemT, RedactionItemT], ABC):
|
|
32
|
-
"""Abstract base class for redaction processors."""
|
|
33
|
-
|
|
34
|
-
@abstractmethod
|
|
35
|
-
def should_redact(self, item: RedactionItemT, context: Context) -> bool:
|
|
36
|
-
"""Determine if this item should be redacted.
|
|
37
|
-
|
|
38
|
-
Args:
|
|
39
|
-
item (RedactionItemT): The item to check.
|
|
40
|
-
context (Context): The current context.
|
|
41
|
-
|
|
42
|
-
Returns:
|
|
43
|
-
bool: True if the item should be redacted, False otherwise.
|
|
44
|
-
"""
|
|
45
|
-
pass
|
|
46
|
-
|
|
47
|
-
@abstractmethod
|
|
48
|
-
def redact_item(self, item: RedactionItemT) -> RedactionItemT:
|
|
49
|
-
"""Redact the item.
|
|
50
|
-
|
|
51
|
-
Args:
|
|
52
|
-
item (RedactionItemT): The item to redact.
|
|
53
|
-
|
|
54
|
-
Returns:
|
|
55
|
-
RedactionItemT: The redacted item.
|
|
56
|
-
"""
|
|
57
|
-
pass
|
|
58
|
-
|
|
59
|
-
@override
|
|
60
|
-
async def process(self, item: RedactionItemT) -> RedactionItemT:
|
|
61
|
-
"""Perform redaction on the item if it should be redacted.
|
|
62
|
-
|
|
63
|
-
Args:
|
|
64
|
-
item (RedactionItemT): The item to process.
|
|
65
|
-
|
|
66
|
-
Returns:
|
|
67
|
-
RedactionItemT: The processed item.
|
|
68
|
-
"""
|
|
69
|
-
context = Context.get()
|
|
70
|
-
if self.should_redact(item, context):
|
|
71
|
-
return self.redact_item(item)
|
|
72
|
-
return item
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
class SpanRedactionProcessor(RedactionProcessor[Span]):
|
|
76
|
-
"""Abstract base class for span redaction processors."""
|
|
77
|
-
pass
|