digitalkin 0.3.2.dev17__tar.gz → 0.3.2.dev18__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.
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/PKG-INFO +1 -1
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/pyproject.toml +1 -1
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/__version__.py +1 -1
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/module_context.py +10 -14
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/tool_cache.py +15 -11
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/tool_reference.py +4 -2
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/utils/schema_splitter.py +6 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin.egg-info/PKG-INFO +1 -1
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/LICENSE +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/README.md +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/mock/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/mock/mock_pb2.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/server_async_insecure.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/server_async_secure.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/server_sync_insecure.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/server_sync_secure.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/modules/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/modules/archetype_with_tools_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/modules/cpu_intensive_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/modules/dynamic_setup_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/modules/minimal_llm_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/modules/text_transform_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/monitoring/tests/test_metrics.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/services/filesystem_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/services/storage_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/setup.cfg +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/common/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/common/factories.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/job_manager/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/job_manager/taskiq_broker.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/job_manager/taskiq_job_manager.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/surrealdb_repository.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/task_executor.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/task_session.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/_base_server.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/module_server.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/utils/exceptions.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/logger.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/base_mixin.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/callback_mixin.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/chat_history_mixin.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/cost_mixin.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/file_history_mixin.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/logger_mixin.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/storage_mixin.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/core/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/core/job_manager_models.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/core/task_monitor.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/grpc_servers/models.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/grpc_servers/types.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/base_types.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/module_types.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/setup_types.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/utility.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/services/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/services/cost.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/services/registry.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/services/storage.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/_base_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/archetype_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/tool_module.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/trigger_handler.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/triggers/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/py.typed +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/agent/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/agent/agent_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/agent/default_agent.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/base_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/communication/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/communication/communication_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/communication/default_communication.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/communication/grpc_communication.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/cost/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/cost/cost_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/cost/default_cost.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/cost/grpc_cost.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/filesystem/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/identity/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/identity/default_identity.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/identity/identity_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/default_registry.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/exceptions.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/grpc_registry.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/registry_models.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/registry_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/services_config.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/services_models.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/setup/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/setup/default_setup.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/setup/grpc_setup.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/setup/setup_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/snapshot/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/snapshot/default_snapshot.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/snapshot/snapshot_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/storage/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/storage/default_storage.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/storage/grpc_storage.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/storage/storage_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/user_profile/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/utils/__init__.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/utils/arg_parser.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/utils/development_mode_action.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/utils/dynamic_schema.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/utils/llm_ready_schema.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/utils/package_discover.py +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin.egg-info/SOURCES.txt +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin.egg-info/dependency_links.txt +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin.egg-info/requires.txt +0 -0
- {digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin.egg-info/top_level.txt +0 -0
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/module_context.py
RENAMED
|
@@ -8,7 +8,7 @@ from typing import Any
|
|
|
8
8
|
from zoneinfo import ZoneInfo
|
|
9
9
|
|
|
10
10
|
from digitalkin.logger import logger
|
|
11
|
-
from digitalkin.models.module.tool_cache import ToolCache, ToolDefinition, ToolParameter
|
|
11
|
+
from digitalkin.models.module.tool_cache import ToolCache, ToolDefinition, ToolModuleInfo, ToolParameter
|
|
12
12
|
from digitalkin.services.agent.agent_strategy import AgentStrategy
|
|
13
13
|
from digitalkin.services.communication.communication_strategy import CommunicationStrategy
|
|
14
14
|
from digitalkin.services.cost.cost_strategy import CostStrategy
|
|
@@ -227,20 +227,20 @@ class ModuleContext:
|
|
|
227
227
|
llm_format=llm_format,
|
|
228
228
|
)
|
|
229
229
|
|
|
230
|
-
async def create_openai_style_tools(self,
|
|
230
|
+
async def create_openai_style_tools(self, module_id: str) -> list[dict[str, Any]]:
|
|
231
231
|
"""Create OpenAI-style function calling schemas for a tool module.
|
|
232
232
|
|
|
233
233
|
Uses tool cache (fast path) with registry fallback. Returns one schema
|
|
234
234
|
per ToolDefinition (protocol) in the module.
|
|
235
235
|
|
|
236
236
|
Args:
|
|
237
|
-
|
|
237
|
+
module_id: Module ID to look up (checks cache first, then registry).
|
|
238
238
|
|
|
239
239
|
Returns:
|
|
240
240
|
List of OpenAI-style tool schemas, one per protocol. Empty if not found.
|
|
241
241
|
"""
|
|
242
242
|
tool_module_info = await self.tool_cache.get(
|
|
243
|
-
|
|
243
|
+
module_id, registry=self.registry, communication=self.communication
|
|
244
244
|
)
|
|
245
245
|
if not tool_module_info:
|
|
246
246
|
return []
|
|
@@ -299,13 +299,11 @@ class ModuleContext:
|
|
|
299
299
|
|
|
300
300
|
communication = self.communication
|
|
301
301
|
session = self.session
|
|
302
|
-
address = tool_module_info.address
|
|
303
|
-
port = tool_module_info.port
|
|
304
302
|
|
|
305
303
|
result = []
|
|
306
304
|
for tool_def in tool_module_info.tools:
|
|
307
305
|
# Capture tool_def in closure via separate method
|
|
308
|
-
fn = ModuleContext._create_single_tool_function(communication, session,
|
|
306
|
+
fn = ModuleContext._create_single_tool_function(communication, session, tool_module_info, tool_def)
|
|
309
307
|
result.append((tool_def, fn))
|
|
310
308
|
|
|
311
309
|
return result
|
|
@@ -314,8 +312,7 @@ class ModuleContext:
|
|
|
314
312
|
def _create_single_tool_function(
|
|
315
313
|
communication: CommunicationStrategy,
|
|
316
314
|
session: Session,
|
|
317
|
-
|
|
318
|
-
port: int,
|
|
315
|
+
tool_module_info: ToolModuleInfo,
|
|
319
316
|
tool_def: ToolDefinition,
|
|
320
317
|
) -> Callable[..., AsyncGenerator[dict, None]]:
|
|
321
318
|
"""Create a single tool function for a specific protocol.
|
|
@@ -323,8 +320,7 @@ class ModuleContext:
|
|
|
323
320
|
Args:
|
|
324
321
|
communication: Communication strategy for gRPC calls.
|
|
325
322
|
session: Current session with setup_id and mission_id.
|
|
326
|
-
|
|
327
|
-
port: Module port.
|
|
323
|
+
tool_module_info: Tool module information containing address and port.
|
|
328
324
|
tool_def: Tool definition with protocol name.
|
|
329
325
|
|
|
330
326
|
Returns:
|
|
@@ -336,10 +332,10 @@ class ModuleContext:
|
|
|
336
332
|
kwargs["protocol"] = protocol
|
|
337
333
|
wrapped_input = {"root": kwargs}
|
|
338
334
|
async for response in communication.call_module(
|
|
339
|
-
module_address=address,
|
|
340
|
-
module_port=port,
|
|
335
|
+
module_address=tool_module_info.address,
|
|
336
|
+
module_port=tool_module_info.port,
|
|
341
337
|
input_data=wrapped_input,
|
|
342
|
-
setup_id=
|
|
338
|
+
setup_id=tool_module_info.setup_id,
|
|
343
339
|
mission_id=session.mission_id,
|
|
344
340
|
):
|
|
345
341
|
yield response
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/tool_cache.py
RENAMED
|
@@ -52,6 +52,7 @@ class ToolModuleInfo(ModuleInfo):
|
|
|
52
52
|
"""Module info for tool modules."""
|
|
53
53
|
|
|
54
54
|
tools: list[ToolDefinition]
|
|
55
|
+
setup_id: str
|
|
55
56
|
|
|
56
57
|
|
|
57
58
|
class ToolCache(BaseModel):
|
|
@@ -59,22 +60,22 @@ class ToolCache(BaseModel):
|
|
|
59
60
|
|
|
60
61
|
entries: dict[str, ToolModuleInfo] = Field(default_factory=dict)
|
|
61
62
|
|
|
62
|
-
def add(self,
|
|
63
|
+
def add(self, setup_id: str, tool_module_info: ToolModuleInfo) -> None:
|
|
63
64
|
"""Add a tool to the cache.
|
|
64
65
|
|
|
65
66
|
Args:
|
|
66
|
-
|
|
67
|
+
setup_id: Field name from SetupModel used as cache key.
|
|
67
68
|
tool_module_info: Resolved tool module information.
|
|
68
69
|
"""
|
|
69
|
-
self.entries[
|
|
70
|
+
self.entries[setup_id] = tool_module_info
|
|
70
71
|
logger.debug(
|
|
71
72
|
"Tool cached",
|
|
72
|
-
extra={"
|
|
73
|
+
extra={"setup_id": setup_id, "module_id": tool_module_info.module_id},
|
|
73
74
|
)
|
|
74
75
|
|
|
75
76
|
async def get(
|
|
76
77
|
self,
|
|
77
|
-
|
|
78
|
+
setup_id: str,
|
|
78
79
|
*,
|
|
79
80
|
registry: RegistryStrategy | None = None,
|
|
80
81
|
communication: "CommunicationStrategy | None" = None,
|
|
@@ -82,28 +83,28 @@ class ToolCache(BaseModel):
|
|
|
82
83
|
"""Get a tool from cache, optionally querying registry on miss.
|
|
83
84
|
|
|
84
85
|
Args:
|
|
85
|
-
|
|
86
|
+
setup_id: Field name to look up.
|
|
86
87
|
registry: Optional registry to query on cache miss.
|
|
87
88
|
communication: Optional communication strategy for schema fetching.
|
|
88
89
|
|
|
89
90
|
Returns:
|
|
90
91
|
ToolModuleInfo if found, None otherwise.
|
|
91
92
|
"""
|
|
92
|
-
cached = self.entries.get(
|
|
93
|
+
cached = self.entries.get(setup_id)
|
|
93
94
|
if cached:
|
|
94
95
|
return cached
|
|
95
96
|
|
|
96
97
|
if registry and communication:
|
|
97
98
|
try:
|
|
98
|
-
setup_info = registry.get_setup(
|
|
99
|
+
setup_info = registry.get_setup(setup_id)
|
|
99
100
|
if setup_info and setup_info.module_id:
|
|
100
101
|
info = registry.discover_by_id(setup_info.module_id)
|
|
101
102
|
if info:
|
|
102
|
-
tool_info = await module_info_to_tool_module_info(info, communication)
|
|
103
|
-
self.add(
|
|
103
|
+
tool_info = await module_info_to_tool_module_info(info, setup_id, communication)
|
|
104
|
+
self.add(setup_id, tool_info)
|
|
104
105
|
return tool_info
|
|
105
106
|
except Exception:
|
|
106
|
-
logger.exception("Registry lookup failed", extra={"
|
|
107
|
+
logger.exception("Registry lookup failed", extra={"setup_id": setup_id})
|
|
107
108
|
|
|
108
109
|
return None
|
|
109
110
|
|
|
@@ -122,6 +123,7 @@ class ToolCache(BaseModel):
|
|
|
122
123
|
|
|
123
124
|
async def module_info_to_tool_module_info(
|
|
124
125
|
module_info: ModuleInfo,
|
|
126
|
+
setup_id: str,
|
|
125
127
|
communication: "CommunicationStrategy",
|
|
126
128
|
*,
|
|
127
129
|
llm_format: bool = True,
|
|
@@ -133,6 +135,7 @@ async def module_info_to_tool_module_info(
|
|
|
133
135
|
|
|
134
136
|
Args:
|
|
135
137
|
module_info: Module info from registry.
|
|
138
|
+
setup_id: Setup ID from tool configuration.
|
|
136
139
|
communication: Communication strategy for gRPC calls.
|
|
137
140
|
llm_format: Use LLM-friendly schema format.
|
|
138
141
|
|
|
@@ -161,6 +164,7 @@ async def module_info_to_tool_module_info(
|
|
|
161
164
|
documentation=module_info.documentation,
|
|
162
165
|
status=module_info.status,
|
|
163
166
|
tools=tools,
|
|
167
|
+
setup_id=setup_id,
|
|
164
168
|
)
|
|
165
169
|
|
|
166
170
|
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/tool_reference.py
RENAMED
|
@@ -115,7 +115,7 @@ class ToolReference(BaseModel):
|
|
|
115
115
|
self.config.module_id = setup.module_id
|
|
116
116
|
info = registry.discover_by_id(self.config.module_id)
|
|
117
117
|
if info:
|
|
118
|
-
tool_module_info = await module_info_to_tool_module_info(info, communication)
|
|
118
|
+
tool_module_info = await module_info_to_tool_module_info(info, self.config.setup_id, communication)
|
|
119
119
|
self._cached_info = tool_module_info
|
|
120
120
|
return tool_module_info
|
|
121
121
|
|
|
@@ -126,7 +126,9 @@ class ToolReference(BaseModel):
|
|
|
126
126
|
organization_id=self.config.organization_id,
|
|
127
127
|
)
|
|
128
128
|
if results:
|
|
129
|
-
tool_module_info = await module_info_to_tool_module_info(
|
|
129
|
+
tool_module_info = await module_info_to_tool_module_info(
|
|
130
|
+
results[0], self.config.setup_id, communication
|
|
131
|
+
)
|
|
130
132
|
self._cached_info = tool_module_info
|
|
131
133
|
self.config.module_id = tool_module_info.module_id
|
|
132
134
|
return tool_module_info
|
|
@@ -55,6 +55,8 @@ class SchemaSplitter:
|
|
|
55
55
|
for item in value:
|
|
56
56
|
if isinstance(item, dict):
|
|
57
57
|
cls._extract_ui_properties(item, ui_target)
|
|
58
|
+
elif key in {"if", "then", "else"} and isinstance(value, dict):
|
|
59
|
+
cls._extract_ui_properties(value, ui_target)
|
|
58
60
|
|
|
59
61
|
@classmethod
|
|
60
62
|
def _process_object( # noqa: C901, PLR0912
|
|
@@ -107,11 +109,15 @@ class SchemaSplitter:
|
|
|
107
109
|
item_json: dict[str, Any] = {}
|
|
108
110
|
cls._strip_ui_properties(item, item_json)
|
|
109
111
|
json_target["allOf"].append(item_json)
|
|
112
|
+
# Extract UI properties from allOf item
|
|
113
|
+
cls._extract_ui_properties(item, ui_target)
|
|
110
114
|
else:
|
|
111
115
|
json_target["allOf"].append(item)
|
|
112
116
|
elif key in {"if", "then", "else"} and isinstance(value, dict):
|
|
113
117
|
json_target[key] = {}
|
|
114
118
|
cls._strip_ui_properties(value, json_target[key])
|
|
119
|
+
# Extract UI properties from conditional
|
|
120
|
+
cls._extract_ui_properties(value, ui_target)
|
|
115
121
|
else:
|
|
116
122
|
json_target[key] = value
|
|
117
123
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/mock/mock_pb2_grpc.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/server_async_insecure.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/server_async_secure.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/server_sync_insecure.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/base_server/server_sync_secure.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/examples/modules/archetype_with_tools_module.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
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/job_manager/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/job_manager/taskiq_broker.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/task_executor.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/core/task_manager/task_session.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/_base_server.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/module_server.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/module_servicer.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/utils/__init__.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/grpc_servers/utils/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
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/chat_history_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/mixins/file_history_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/core/job_manager_models.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/core/task_monitor.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/grpc_servers/__init__.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/grpc_servers/models.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/grpc_servers/types.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/base_types.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/module_types.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/module/setup_types.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/models/services/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/archetype_module.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/modules/triggers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/agent/agent_strategy.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/agent/default_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/communication/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/cost/cost_strategy.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/cost/default_cost.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/filesystem/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/identity/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/exceptions.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/registry/grpc_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/services_config.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/services_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/setup/default_setup.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/setup/grpc_setup.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/setup/setup_strategy.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/snapshot/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/storage/__init__.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/storage/default_storage.py
RENAMED
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/storage/grpc_storage.py
RENAMED
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/services/user_profile/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin/utils/development_mode_action.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{digitalkin-0.3.2.dev17 → digitalkin-0.3.2.dev18}/src/digitalkin.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|