chuk-tool-processor 0.22__tar.gz → 0.22.1__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/src/chuk_tool_processor.egg-info → chuk_tool_processor-0.22.1}/PKG-INFO +2 -2
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/README.md +1 -1
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/pyproject.toml +9 -1
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/core/processor.py +4 -3
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/context.py +1 -1
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/metadata.py +8 -4
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1/src/chuk_tool_processor.egg-info}/PKG-INFO +2 -2
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/LICENSE +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/setup.cfg +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/config.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/core/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/core/context.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/core/exceptions.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/discovery/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/discovery/dynamic_provider.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/discovery/search.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/discovery/searchable.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/discovery/synonyms.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/bulkhead.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/code_sandbox.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/strategies/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/strategies/inprocess_strategy.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/strategies/subprocess_strategy.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/tool_executor.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/caching.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/circuit_breaker.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/factory.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/observable.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/rate_limiting.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/redis_circuit_breaker.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/redis_rate_limiting.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/execution/wrappers/retry.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/assumption_trace.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/base.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/budget.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/chain.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/concurrency.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/contract_guard.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/models.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/network_policy.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/output_size.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/per_tool.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/plan_shape.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/precondition.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/provenance.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/retry_safety.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/runaway.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/saturation.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/schema_strictness.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/sensitive_data.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/side_effect.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/timeout_budget.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/unresolved.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/formatter.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/helpers.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/metrics.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/mcp_tool.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/middleware.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/models.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/register_mcp_tools.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/setup_mcp_http_streamable.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/setup_mcp_sse.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/setup_mcp_stdio.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/stream_manager.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/transport/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/transport/base_transport.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/transport/http_streamable_transport.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/transport/models.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/transport/sse_transport.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/transport/stdio_transport.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/execution_span.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/execution_strategy.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/execution_trace.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/return_order.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/sandbox_policy.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/streaming_tool.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/tool_call.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/tool_contract.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/tool_export_mixin.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/tool_result.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/tool_spec.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/validated_tool.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/observability/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/observability/metrics.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/observability/setup.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/observability/trace_sink.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/observability/tracing.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/discovery.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/parsers/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/parsers/base.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/parsers/function_call_tool.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/parsers/json_tool.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/parsers/openai_tool.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/parsers/xml_tool.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/py.typed +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/auto_register.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/decorators.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/interface.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/provider.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/providers/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/providers/memory.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/providers/redis.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/tool_export.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/scheduling/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/scheduling/greedy_dag.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/scheduling/policy.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/scheduling/types.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/utils/__init__.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/utils/fast_json.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/utils/validation.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor.egg-info/SOURCES.txt +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor.egg-info/dependency_links.txt +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor.egg-info/requires.txt +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor.egg-info/top_level.txt +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/tests/test_bulkhead.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/tests/test_config_coverage.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/tests/test_execution_context.py +0 -0
- {chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/tests/test_scoped_registry.py +0 -0
{chuk_tool_processor-0.22/src/chuk_tool_processor.egg-info → chuk_tool_processor-0.22.1}/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.1
|
|
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
|
|
@@ -655,7 +655,7 @@ python examples/04_mcp_integration/notion_oauth.py
|
|
|
655
655
|
python examples/04_mcp_integration/middleware_demo.py
|
|
656
656
|
```
|
|
657
657
|
|
|
658
|
-
See [examples/](examples/) for
|
|
658
|
+
See [examples/](examples/) for 45+ working examples.
|
|
659
659
|
|
|
660
660
|
---
|
|
661
661
|
|
|
@@ -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.1"
|
|
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"
|
|
@@ -82,6 +82,14 @@ addopts = "-v --cov=src --cov-report=term --cov-report=xml --cov-report=html"
|
|
|
82
82
|
asyncio_default_fixture_loop_scope = "function"
|
|
83
83
|
asyncio_mode = "strict"
|
|
84
84
|
minversion = "8.0"
|
|
85
|
+
filterwarnings = [
|
|
86
|
+
# Pydantic V1 compat warning from LangChain (third-party, can't fix)
|
|
87
|
+
"ignore::pydantic.warnings.PydanticDeprecatedSince20",
|
|
88
|
+
# RuntimeWarning from mock coroutines never awaited in tests
|
|
89
|
+
"ignore:coroutine .* was never awaited:RuntimeWarning",
|
|
90
|
+
# PytestCollectionWarning for test helper classes with __init__
|
|
91
|
+
"ignore::pytest.PytestCollectionWarning",
|
|
92
|
+
]
|
|
85
93
|
|
|
86
94
|
[dependency-groups]
|
|
87
95
|
dev = [
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/core/processor.py
RENAMED
|
@@ -12,6 +12,7 @@ from __future__ import annotations
|
|
|
12
12
|
|
|
13
13
|
import asyncio
|
|
14
14
|
import hashlib
|
|
15
|
+
import inspect
|
|
15
16
|
import json as stdlib_json # Use stdlib json for consistent hashing
|
|
16
17
|
import time
|
|
17
18
|
from typing import Any
|
|
@@ -863,7 +864,7 @@ class ToolProcessor:
|
|
|
863
864
|
# Close the executor if it has a close method
|
|
864
865
|
if self.executor and hasattr(self.executor, "close"):
|
|
865
866
|
close_method = self.executor.close
|
|
866
|
-
if
|
|
867
|
+
if inspect.iscoroutinefunction(close_method):
|
|
867
868
|
await close_method()
|
|
868
869
|
elif callable(close_method):
|
|
869
870
|
close_method()
|
|
@@ -871,7 +872,7 @@ class ToolProcessor:
|
|
|
871
872
|
# Close the strategy if it has a close method
|
|
872
873
|
if self.strategy and hasattr(self.strategy, "close"):
|
|
873
874
|
close_method = self.strategy.close
|
|
874
|
-
if
|
|
875
|
+
if inspect.iscoroutinefunction(close_method):
|
|
875
876
|
await close_method()
|
|
876
877
|
elif callable(close_method):
|
|
877
878
|
result = close_method()
|
|
@@ -887,7 +888,7 @@ class ToolProcessor:
|
|
|
887
888
|
if isinstance(current, CachingToolExecutor):
|
|
888
889
|
if hasattr(current.cache, "clear"):
|
|
889
890
|
clear_method = current.cache.clear
|
|
890
|
-
if
|
|
891
|
+
if inspect.iscoroutinefunction(clear_method):
|
|
891
892
|
await clear_method()
|
|
892
893
|
else:
|
|
893
894
|
clear_result = clear_method()
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/context.py
RENAMED
|
@@ -149,7 +149,7 @@ class AsyncContextManagerWrapper(contextlib.AbstractAsyncContextManager):
|
|
|
149
149
|
else:
|
|
150
150
|
# Propagate the exception into the generator
|
|
151
151
|
try:
|
|
152
|
-
await self._gen.athrow(
|
|
152
|
+
await self._gen.athrow(exc_val)
|
|
153
153
|
except StopAsyncIteration:
|
|
154
154
|
return False
|
|
155
155
|
# If the generator swallowed the exception, suppress it;
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/metadata.py
RENAMED
|
@@ -5,7 +5,7 @@ Tool metadata models for the registry with async-native support.
|
|
|
5
5
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
|
-
from datetime import datetime
|
|
8
|
+
from datetime import UTC, datetime
|
|
9
9
|
from typing import Any
|
|
10
10
|
|
|
11
11
|
from pydantic import BaseModel, Field, model_validator
|
|
@@ -83,8 +83,12 @@ class ToolMetadata(BaseModel):
|
|
|
83
83
|
result_schema: dict[str, Any] | None = Field(None, description="Schema for the tool's result")
|
|
84
84
|
requires_auth: bool = Field(False, description="Whether the tool requires authentication")
|
|
85
85
|
tags: set[str] = Field(default_factory=set, description="Tags associated with the tool")
|
|
86
|
-
created_at: datetime = Field(
|
|
87
|
-
|
|
86
|
+
created_at: datetime = Field(
|
|
87
|
+
default_factory=lambda: datetime.now(UTC), description="When the tool was first registered"
|
|
88
|
+
)
|
|
89
|
+
updated_at: datetime = Field(
|
|
90
|
+
default_factory=lambda: datetime.now(UTC), description="When the tool was last updated"
|
|
91
|
+
)
|
|
88
92
|
source: str | None = Field(None, description="Source of the tool (e.g., 'function', 'class', 'langchain')")
|
|
89
93
|
source_name: str | None = Field(None, description="Source identifier (e.g., function name, class name)")
|
|
90
94
|
concurrency_limit: int | None = Field(None, description="Maximum concurrent executions (None = unlimited)")
|
|
@@ -113,7 +117,7 @@ class ToolMetadata(BaseModel):
|
|
|
113
117
|
|
|
114
118
|
def with_updated_timestamp(self) -> ToolMetadata:
|
|
115
119
|
"""Create a copy with updated timestamp."""
|
|
116
|
-
return self.model_copy(update={"updated_at": datetime.
|
|
120
|
+
return self.model_copy(update={"updated_at": datetime.now(UTC)})
|
|
117
121
|
|
|
118
122
|
def __str__(self) -> str:
|
|
119
123
|
"""String representation of the tool metadata."""
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1/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.1
|
|
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
|
|
@@ -655,7 +655,7 @@ python examples/04_mcp_integration/notion_oauth.py
|
|
|
655
655
|
python examples/04_mcp_integration/middleware_demo.py
|
|
656
656
|
```
|
|
657
657
|
|
|
658
|
-
See [examples/](examples/) for
|
|
658
|
+
See [examples/](examples/) for 45+ working examples.
|
|
659
659
|
|
|
660
660
|
---
|
|
661
661
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/core/__init__.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/core/context.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/core/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/discovery/search.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
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/base.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/budget.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/chain.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/per_tool.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/plan_shape.py
RENAMED
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/provenance.py
RENAMED
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/runaway.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/saturation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/guards/unresolved.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/__init__.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/formatter.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/helpers.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/logging/metrics.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/__init__.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/mcp_tool.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/middleware.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/mcp/setup_mcp_sse.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
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/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
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/tool_call.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/models/tool_spec.py
RENAMED
|
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 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/__init__.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/plugins/discovery.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 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/registry/provider.py
RENAMED
|
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 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/scheduling/policy.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/scheduling/types.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/utils/__init__.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/utils/fast_json.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor/utils/validation.py
RENAMED
|
File without changes
|
{chuk_tool_processor-0.22 → chuk_tool_processor-0.22.1}/src/chuk_tool_processor.egg-info/SOURCES.txt
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
|