chuk-tool-processor 0.22.1__tar.gz → 0.22.2__tar.gz
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.
- {chuk_tool_processor-0.22.1/src/chuk_tool_processor.egg-info → chuk_tool_processor-0.22.2}/PKG-INFO +4 -5
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/pyproject.toml +5 -6
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/core/processor.py +7 -5
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/strategies/inprocess_strategy.py +5 -5
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/mcp_tool.py +2 -4
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/register_mcp_tools.py +1 -1
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/metadata.py +1 -7
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2/src/chuk_tool_processor.egg-info}/PKG-INFO +4 -5
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor.egg-info/requires.txt +3 -4
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/LICENSE +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/README.md +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/setup.cfg +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/config.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/core/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/core/context.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/core/exceptions.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/discovery/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/discovery/dynamic_provider.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/discovery/search.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/discovery/searchable.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/discovery/synonyms.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/bulkhead.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/code_sandbox.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/strategies/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/strategies/subprocess_strategy.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/tool_executor.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/caching.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/circuit_breaker.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/factory.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/observable.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/rate_limiting.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/redis_circuit_breaker.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/redis_rate_limiting.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/execution/wrappers/retry.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/assumption_trace.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/base.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/budget.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/chain.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/concurrency.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/contract_guard.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/models.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/network_policy.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/output_size.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/per_tool.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/plan_shape.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/precondition.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/provenance.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/retry_safety.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/runaway.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/saturation.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/schema_strictness.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/sensitive_data.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/side_effect.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/timeout_budget.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/unresolved.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/logging/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/logging/context.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/logging/formatter.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/logging/helpers.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/logging/metrics.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/middleware.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/models.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/setup_mcp_http_streamable.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/setup_mcp_sse.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/setup_mcp_stdio.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/stream_manager.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/transport/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/transport/base_transport.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/transport/http_streamable_transport.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/transport/models.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/transport/sse_transport.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/transport/stdio_transport.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/execution_span.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/execution_strategy.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/execution_trace.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/return_order.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/sandbox_policy.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/streaming_tool.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/tool_call.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/tool_contract.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/tool_export_mixin.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/tool_result.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/tool_spec.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/validated_tool.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/observability/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/observability/metrics.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/observability/setup.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/observability/trace_sink.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/observability/tracing.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/plugins/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/plugins/discovery.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/plugins/parsers/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/plugins/parsers/base.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/plugins/parsers/function_call_tool.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/plugins/parsers/json_tool.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/plugins/parsers/openai_tool.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/plugins/parsers/xml_tool.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/py.typed +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/auto_register.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/decorators.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/interface.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/provider.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/providers/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/providers/memory.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/providers/redis.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/registry/tool_export.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/scheduling/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/scheduling/greedy_dag.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/scheduling/policy.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/scheduling/types.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/utils/__init__.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/utils/fast_json.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/utils/validation.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor.egg-info/SOURCES.txt +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor.egg-info/dependency_links.txt +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor.egg-info/top_level.txt +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/tests/test_bulkhead.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/tests/test_config_coverage.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/tests/test_execution_context.py +0 -0
- {chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/tests/test_scoped_registry.py +0 -0
{chuk_tool_processor-0.22.1/src/chuk_tool_processor.egg-info → chuk_tool_processor-0.22.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: chuk-tool-processor
|
|
3
|
-
Version: 0.22.
|
|
3
|
+
Version: 0.22.2
|
|
4
4
|
Summary: Async-native framework for registering, discovering, and executing tools referenced in LLM responses
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: llm,tools,async,ai,openai,mcp,model-context-protocol,tool-calling,function-calling
|
|
@@ -20,19 +20,18 @@ Requires-Python: >=3.11
|
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
22
|
Requires-Dist: chuk-mcp>=0.9
|
|
23
|
-
Requires-Dist: dotenv>=0.
|
|
23
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
24
24
|
Requires-Dist: psutil>=7.0.0
|
|
25
25
|
Requires-Dist: pydantic>=2.11.3
|
|
26
|
-
Requires-Dist: uuid>=1.30
|
|
27
26
|
Provides-Extra: fast-json
|
|
28
27
|
Requires-Dist: orjson<4,>=3.10.0; extra == "fast-json"
|
|
29
28
|
Provides-Extra: redis
|
|
30
|
-
Requires-Dist: redis[hiredis]<
|
|
29
|
+
Requires-Dist: redis[hiredis]<8,>=7.2; extra == "redis"
|
|
31
30
|
Provides-Extra: full
|
|
32
31
|
Requires-Dist: orjson<4,>=3.10.0; extra == "full"
|
|
33
32
|
Provides-Extra: all
|
|
34
33
|
Requires-Dist: orjson<4,>=3.10.0; extra == "all"
|
|
35
|
-
Requires-Dist: redis[hiredis]<
|
|
34
|
+
Requires-Dist: redis[hiredis]<8,>=7.2; extra == "all"
|
|
36
35
|
Dynamic: license-file
|
|
37
36
|
|
|
38
37
|
# CHUK Tool Processor — A Tool Execution Runtime for AI Systems
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "chuk-tool-processor"
|
|
7
|
-
version = "0.22.
|
|
7
|
+
version = "0.22.2"
|
|
8
8
|
description = "Async-native framework for registering, discovering, and executing tools referenced in LLM responses"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -36,10 +36,9 @@ classifiers = [
|
|
|
36
36
|
]
|
|
37
37
|
dependencies = [
|
|
38
38
|
"chuk-mcp>=0.9",
|
|
39
|
-
"dotenv>=0.
|
|
39
|
+
"python-dotenv>=1.0.0",
|
|
40
40
|
"psutil>=7.0.0",
|
|
41
41
|
"pydantic>=2.11.3",
|
|
42
|
-
"uuid>=1.30",
|
|
43
42
|
]
|
|
44
43
|
|
|
45
44
|
# Optional dependency groups
|
|
@@ -51,7 +50,7 @@ fast-json = [
|
|
|
51
50
|
|
|
52
51
|
# Redis registry for distributed deployments
|
|
53
52
|
redis = [
|
|
54
|
-
"redis[hiredis]>=
|
|
53
|
+
"redis[hiredis]>=7.2,<8",
|
|
55
54
|
]
|
|
56
55
|
|
|
57
56
|
# Full feature set with performance optimizations
|
|
@@ -62,7 +61,7 @@ full = [
|
|
|
62
61
|
# All extras combined
|
|
63
62
|
all = [
|
|
64
63
|
"orjson>=3.10.0,<4",
|
|
65
|
-
"redis[hiredis]>=
|
|
64
|
+
"redis[hiredis]>=7.2,<8",
|
|
66
65
|
]
|
|
67
66
|
|
|
68
67
|
# Tell setuptools to look in src/ for your a2a package
|
|
@@ -106,7 +105,7 @@ dev = [
|
|
|
106
105
|
"pre-commit>=3.8.0",
|
|
107
106
|
"coverage[toml]>=7.6.0",
|
|
108
107
|
"orjson>=3.10.0",
|
|
109
|
-
"redis[hiredis]>=
|
|
108
|
+
"redis[hiredis]>=7.2,<8",
|
|
110
109
|
"fakeredis[lua]>=2.32.1",
|
|
111
110
|
]
|
|
112
111
|
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/core/processor.py
RENAMED
|
@@ -500,9 +500,10 @@ class ToolProcessor:
|
|
|
500
500
|
|
|
501
501
|
# Execute tool calls
|
|
502
502
|
async with log_context_span("tool_execution", {"num_calls": len(calls)}):
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
503
|
+
if self.registry is None:
|
|
504
|
+
raise RuntimeError("Registry not initialized. Call initialize() first.")
|
|
505
|
+
if self.executor is None:
|
|
506
|
+
raise RuntimeError("Executor not initialized. Call initialize() first.")
|
|
506
507
|
|
|
507
508
|
# Check if any tools are unknown - search across all namespaces
|
|
508
509
|
unknown_tools = []
|
|
@@ -518,7 +519,8 @@ class ToolProcessor:
|
|
|
518
519
|
|
|
519
520
|
# Execute tools (with context scope if provided)
|
|
520
521
|
async def _execute_with_context() -> list[ToolResult]:
|
|
521
|
-
|
|
522
|
+
if self.executor is None:
|
|
523
|
+
raise RuntimeError("Executor not initialized. Call initialize() first.")
|
|
522
524
|
# If return_order is specified and strategy supports it, call run() directly
|
|
523
525
|
# This bypasses the wrapper chain but preserves return_order semantics
|
|
524
526
|
if return_order is not None and self.strategy is not None and hasattr(self.strategy, "run"):
|
|
@@ -645,7 +647,7 @@ class ToolProcessor:
|
|
|
645
647
|
results = await self.executor.execute(
|
|
646
648
|
calls=calls,
|
|
647
649
|
timeout=timeout,
|
|
648
|
-
use_cache=use_cache
|
|
650
|
+
use_cache=use_cache,
|
|
649
651
|
)
|
|
650
652
|
|
|
651
653
|
# Ensure we always return a list (never None)
|
|
@@ -749,12 +749,12 @@ class InProcessStrategy(ExecutionStrategy):
|
|
|
749
749
|
all_tools = await self.registry.list_tools()
|
|
750
750
|
|
|
751
751
|
# Look for exact matches in tool name (ignoring namespace)
|
|
752
|
-
for
|
|
753
|
-
if
|
|
754
|
-
logger.debug(f"Fuzzy match: found '{
|
|
755
|
-
tool = await self.registry.get_tool(
|
|
752
|
+
for tool_info in all_tools:
|
|
753
|
+
if tool_info.name == tool_name:
|
|
754
|
+
logger.debug(f"Fuzzy match: found '{tool_info.name}' in namespace '{tool_info.namespace}'")
|
|
755
|
+
tool = await self.registry.get_tool(tool_info.name, tool_info.namespace)
|
|
756
756
|
if tool is not None:
|
|
757
|
-
return tool, namespace
|
|
757
|
+
return tool, tool_info.namespace
|
|
758
758
|
|
|
759
759
|
# Log all available tools for debugging
|
|
760
760
|
logger.debug(f"Available tools: {all_tools}")
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/mcp_tool.py
RENAMED
|
@@ -327,10 +327,8 @@ class MCPTool:
|
|
|
327
327
|
)
|
|
328
328
|
return True
|
|
329
329
|
|
|
330
|
-
# Fallback -
|
|
331
|
-
server_info: list[dict[str, Any]] =
|
|
332
|
-
self._sm.get_server_info(), timeout=1.0
|
|
333
|
-
)
|
|
330
|
+
# Fallback - check server_info synchronously (get_server_info is not a coroutine)
|
|
331
|
+
server_info: list[dict[str, Any]] = self._sm.get_server_info()
|
|
334
332
|
healthy = len(server_info) > 0
|
|
335
333
|
logger.debug(f"StreamManager health for '{self.tool_name}': {healthy} (via server_info)")
|
|
336
334
|
return healthy
|
|
@@ -187,7 +187,7 @@ async def update_mcp_tools_stream_manager(
|
|
|
187
187
|
try:
|
|
188
188
|
# List all tools in the namespace
|
|
189
189
|
all_tools = await registry.list_tools()
|
|
190
|
-
namespace_tools = [name for
|
|
190
|
+
namespace_tools = [tool_info.name for tool_info in all_tools if tool_info.namespace == namespace]
|
|
191
191
|
|
|
192
192
|
for tool_name in namespace_tools:
|
|
193
193
|
try:
|
|
@@ -8,7 +8,7 @@ from __future__ import annotations
|
|
|
8
8
|
from datetime import UTC, datetime
|
|
9
9
|
from typing import Any
|
|
10
10
|
|
|
11
|
-
from pydantic import BaseModel, Field
|
|
11
|
+
from pydantic import BaseModel, Field
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class MCPToolFactoryParams(BaseModel):
|
|
@@ -109,12 +109,6 @@ class ToolMetadata(BaseModel):
|
|
|
109
109
|
None, description="Factory parameters for creating deferred MCP tools"
|
|
110
110
|
)
|
|
111
111
|
|
|
112
|
-
@model_validator(mode="after")
|
|
113
|
-
def ensure_async(self) -> ToolMetadata:
|
|
114
|
-
"""Ensure all tools are marked as async in the async-native architecture."""
|
|
115
|
-
self.is_async = True
|
|
116
|
-
return self
|
|
117
|
-
|
|
118
112
|
def with_updated_timestamp(self) -> ToolMetadata:
|
|
119
113
|
"""Create a copy with updated timestamp."""
|
|
120
114
|
return self.model_copy(update={"updated_at": datetime.now(UTC)})
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2/src/chuk_tool_processor.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: chuk-tool-processor
|
|
3
|
-
Version: 0.22.
|
|
3
|
+
Version: 0.22.2
|
|
4
4
|
Summary: Async-native framework for registering, discovering, and executing tools referenced in LLM responses
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: llm,tools,async,ai,openai,mcp,model-context-protocol,tool-calling,function-calling
|
|
@@ -20,19 +20,18 @@ Requires-Python: >=3.11
|
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
22
|
Requires-Dist: chuk-mcp>=0.9
|
|
23
|
-
Requires-Dist: dotenv>=0.
|
|
23
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
24
24
|
Requires-Dist: psutil>=7.0.0
|
|
25
25
|
Requires-Dist: pydantic>=2.11.3
|
|
26
|
-
Requires-Dist: uuid>=1.30
|
|
27
26
|
Provides-Extra: fast-json
|
|
28
27
|
Requires-Dist: orjson<4,>=3.10.0; extra == "fast-json"
|
|
29
28
|
Provides-Extra: redis
|
|
30
|
-
Requires-Dist: redis[hiredis]<
|
|
29
|
+
Requires-Dist: redis[hiredis]<8,>=7.2; extra == "redis"
|
|
31
30
|
Provides-Extra: full
|
|
32
31
|
Requires-Dist: orjson<4,>=3.10.0; extra == "full"
|
|
33
32
|
Provides-Extra: all
|
|
34
33
|
Requires-Dist: orjson<4,>=3.10.0; extra == "all"
|
|
35
|
-
Requires-Dist: redis[hiredis]<
|
|
34
|
+
Requires-Dist: redis[hiredis]<8,>=7.2; extra == "all"
|
|
36
35
|
Dynamic: license-file
|
|
37
36
|
|
|
38
37
|
# CHUK Tool Processor — A Tool Execution Runtime for AI Systems
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
chuk-mcp>=0.9
|
|
2
|
-
dotenv>=0.
|
|
2
|
+
python-dotenv>=1.0.0
|
|
3
3
|
psutil>=7.0.0
|
|
4
4
|
pydantic>=2.11.3
|
|
5
|
-
uuid>=1.30
|
|
6
5
|
|
|
7
6
|
[all]
|
|
8
7
|
orjson<4,>=3.10.0
|
|
9
|
-
redis[hiredis]<
|
|
8
|
+
redis[hiredis]<8,>=7.2
|
|
10
9
|
|
|
11
10
|
[fast-json]
|
|
12
11
|
orjson<4,>=3.10.0
|
|
@@ -15,4 +14,4 @@ orjson<4,>=3.10.0
|
|
|
15
14
|
orjson<4,>=3.10.0
|
|
16
15
|
|
|
17
16
|
[redis]
|
|
18
|
-
redis[hiredis]<
|
|
17
|
+
redis[hiredis]<8,>=7.2
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/core/__init__.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/core/context.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/core/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/base.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/budget.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/chain.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/per_tool.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/guards/runaway.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/logging/context.py
RENAMED
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/logging/helpers.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/logging/metrics.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/__init__.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/middleware.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/mcp/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/utils/__init__.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22.1 → chuk_tool_processor-0.22.2}/src/chuk_tool_processor/utils/fast_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|