digitalkin 1.0.0.dev9__tar.gz → 1.0.0.dev10__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.
Files changed (235) hide show
  1. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/PKG-INFO +1 -1
  2. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/pyproject.toml +1 -1
  3. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/__version__.py +1 -1
  4. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/setup_types.py +15 -3
  5. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/tool_reference.py +95 -26
  6. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin.egg-info/PKG-INFO +1 -1
  7. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/LICENSE +0 -0
  8. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/README.md +0 -0
  9. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/base_server/__init__.py +0 -0
  10. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/base_server/mock/__init__.py +0 -0
  11. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/base_server/mock/mock_pb2.py +0 -0
  12. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  13. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/base_server/server_async_insecure.py +0 -0
  14. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/base_server/server_async_secure.py +0 -0
  15. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/base_server/server_sync_insecure.py +0 -0
  16. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/base_server/server_sync_secure.py +0 -0
  17. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/__init__.py +0 -0
  18. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/echo_module.py +0 -0
  19. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/models/__init__.py +0 -0
  20. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/models/input.py +0 -0
  21. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/models/output.py +0 -0
  22. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/models/secret.py +0 -0
  23. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/models/setup.py +0 -0
  24. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/server.py +0 -0
  25. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/triggers/__init__.py +0 -0
  26. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/bench_module/triggers/message_trigger.py +0 -0
  27. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/modules/__init__.py +0 -0
  28. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/modules/archetype_with_tools_module.py +0 -0
  29. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/modules/cpu_intensive_module.py +0 -0
  30. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/modules/dynamic_setup_module.py +0 -0
  31. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/modules/minimal_llm_module.py +0 -0
  32. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/modules/text_transform_module.py +0 -0
  33. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  34. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  35. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  36. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  37. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  38. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/monitoring/tests/test_metrics.py +0 -0
  39. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/client.py +0 -0
  40. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/echo_module.py +0 -0
  41. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/models/__init__.py +0 -0
  42. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/models/input.py +0 -0
  43. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/models/output.py +0 -0
  44. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/models/secret.py +0 -0
  45. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/models/setup.py +0 -0
  46. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/server.py +0 -0
  47. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/triggers/__init__.py +0 -0
  48. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/redis_demo/triggers/message_trigger.py +0 -0
  49. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/services/filesystem_module.py +0 -0
  50. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/examples/services/storage_module.py +0 -0
  51. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/setup.cfg +0 -0
  52. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/__init__.py +0 -0
  53. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/community/__init__.py +0 -0
  54. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/community/agno/__init__.py +0 -0
  55. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/community/agno/agno_adapter.py +0 -0
  56. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/community/agno/agui_tools.py +0 -0
  57. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/community/agno/hitl.py +0 -0
  58. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/community/agno/models.py +0 -0
  59. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/__init__.py +0 -0
  60. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/common/__init__.py +0 -0
  61. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/common/factories.py +0 -0
  62. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/exceptions.py +0 -0
  63. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/job_manager/__init__.py +0 -0
  64. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
  65. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
  66. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/profiling/__init__.py +0 -0
  67. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/profiling/step_timer.py +0 -0
  68. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/profiling/task_profiler.py +0 -0
  69. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/resilience/__init__.py +0 -0
  70. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/resilience/bulkhead.py +0 -0
  71. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/resilience/task_supervisor.py +0 -0
  72. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/__init__.py +0 -0
  73. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  74. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  75. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/module_runner.py +0 -0
  76. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/__init__.py +0 -0
  77. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/instrumented.py +0 -0
  78. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/proto_streams.py +0 -0
  79. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/redis_checkpoint.py +0 -0
  80. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/redis_client.py +0 -0
  81. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/redis_idempotency.py +0 -0
  82. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/redis_signal.py +0 -0
  83. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/redis_state.py +0 -0
  84. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/redis_streams.py +0 -0
  85. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/redis/shadow.py +0 -0
  86. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  87. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  88. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/core/task_manager/task_session.py +0 -0
  89. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/exceptions.py +0 -0
  90. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/__init__.py +0 -0
  91. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  92. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/exceptions.py +0 -0
  93. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/gateway_servicer.py +0 -0
  94. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/interceptors/__init__.py +0 -0
  95. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/interceptors/circuit_breaker_interceptor.py +0 -0
  96. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/m2m_call_registry.py +0 -0
  97. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/module_server.py +0 -0
  98. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
  99. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/stream_registry.py +0 -0
  100. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/stream_session.py +0 -0
  101. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  102. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/utils/circuit_breaker.py +0 -0
  103. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  104. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  105. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  106. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/grpc_servers/utils/validators.py +0 -0
  107. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/logger.py +0 -0
  108. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/mixins/__init__.py +0 -0
  109. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/mixins/agui_mixin.py +0 -0
  110. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/mixins/base_mixin.py +0 -0
  111. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/mixins/cost_mixin.py +0 -0
  112. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  113. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  114. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/mixins/logger_mixin.py +0 -0
  115. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/mixins/storage_mixin.py +0 -0
  116. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/__init__.py +0 -0
  117. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/core/__init__.py +0 -0
  118. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/core/job_manager_models.py +0 -0
  119. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/core/redis.py +0 -0
  120. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/core/task_monitor.py +0 -0
  121. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/events/__init__.py +0 -0
  122. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/events/agent_events.py +0 -0
  123. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  124. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/grpc_servers/circuit_breaker.py +0 -0
  125. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/grpc_servers/m2m.py +0 -0
  126. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/grpc_servers/models.py +0 -0
  127. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/grpc_servers/stream_error_codes.py +0 -0
  128. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/grpc_servers/types.py +0 -0
  129. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/__init__.py +0 -0
  130. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/ag_ui.py +0 -0
  131. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/base_types.py +0 -0
  132. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/module.py +0 -0
  133. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/module_context.py +0 -0
  134. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/module_types.py +0 -0
  135. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/request_metadata.py +0 -0
  136. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/select_schema.py +0 -0
  137. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/tool_cache.py +0 -0
  138. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/module/utility.py +0 -0
  139. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/services/__init__.py +0 -0
  140. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/services/cost.py +0 -0
  141. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/services/registry.py +0 -0
  142. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/services/services.py +0 -0
  143. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/services/storage.py +0 -0
  144. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/__init__.py +0 -0
  145. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/consumer.py +0 -0
  146. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/gateway.py +0 -0
  147. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/grpc_client.py +0 -0
  148. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/log.py +0 -0
  149. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/module.py +0 -0
  150. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/profiling.py +0 -0
  151. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/queue.py +0 -0
  152. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/redis.py +0 -0
  153. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/resilience.py +0 -0
  154. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/server/__init__.py +0 -0
  155. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/server/channel.py +0 -0
  156. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/server/grpc.py +0 -0
  157. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/server/server.py +0 -0
  158. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/server/servicer.py +0 -0
  159. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/task_manager.py +0 -0
  160. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/utils/__init__.py +0 -0
  161. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/settings/utils/channel.py +0 -0
  162. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/utils/__init__.py +0 -0
  163. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/models/utils/dynamic_schema.py +0 -0
  164. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/__init__.py +0 -0
  165. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/_base_module.py +0 -0
  166. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/archetype_module.py +0 -0
  167. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/tool_module.py +0 -0
  168. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/trigger_handler.py +0 -0
  169. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/triggers/__init__.py +0 -0
  170. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  171. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  172. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  173. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/py.typed +0 -0
  174. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/__init__.py +0 -0
  175. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/base_strategy.py +0 -0
  176. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/communication/__init__.py +0 -0
  177. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  178. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/communication/default_communication.py +0 -0
  179. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/communication/exceptions.py +0 -0
  180. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/communication/grpc_communication.py +0 -0
  181. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/cost/__init__.py +0 -0
  182. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  183. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/cost/default_cost.py +0 -0
  184. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/cost/exceptions.py +0 -0
  185. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  186. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/filesystem/__init__.py +0 -0
  187. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  188. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/filesystem/exceptions.py +0 -0
  189. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  190. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  191. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/identity/__init__.py +0 -0
  192. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/identity/default_identity.py +0 -0
  193. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  194. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/registry/__init__.py +0 -0
  195. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/registry/default_registry.py +0 -0
  196. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/registry/exceptions.py +0 -0
  197. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  198. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/registry/registry_models.py +0 -0
  199. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  200. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/services_config.py +0 -0
  201. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/services_models.py +0 -0
  202. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/setup/__init__.py +0 -0
  203. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/setup/default_setup.py +0 -0
  204. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/setup/exceptions.py +0 -0
  205. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  206. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  207. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/storage/__init__.py +0 -0
  208. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/storage/default_storage.py +0 -0
  209. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/storage/exceptions.py +0 -0
  210. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  211. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  212. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/task_manager/__init__.py +0 -0
  213. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/task_manager/default_task_manager.py +0 -0
  214. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/task_manager/exceptions.py +0 -0
  215. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/task_manager/redis_task_manager.py +0 -0
  216. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/task_manager/task_manager_strategy.py +0 -0
  217. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/user_profile/__init__.py +0 -0
  218. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  219. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/user_profile/exceptions.py +0 -0
  220. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  221. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  222. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/__init__.py +0 -0
  223. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/arg_parser.py +0 -0
  224. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/conditional_schema.py +0 -0
  225. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/development_mode_action.py +0 -0
  226. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/dynamic_schema.py +0 -0
  227. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/exceptions.py +0 -0
  228. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  229. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/package_discover.py +0 -0
  230. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/proto_utils.py +0 -0
  231. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin/utils/schema_splitter.py +0 -0
  232. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin.egg-info/SOURCES.txt +0 -0
  233. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  234. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin.egg-info/requires.txt +0 -0
  235. {digitalkin-1.0.0.dev9 → digitalkin-1.0.0.dev10}/src/digitalkin.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 1.0.0.dev9
3
+ Version: 1.0.0.dev10
4
4
  Summary: SDK to build kin used in DigitalKin
5
5
  Author-email: "DigitalKin.ai" <contact@digitalkin.ai>
6
6
  License: Attribution-NonCommercial-ShareAlike 4.0 International
@@ -37,7 +37,7 @@
37
37
  "pydantic-settings>=2.14.1",
38
38
  "redis[hiredis]>=7.4.0,<8",
39
39
  ]
40
- version = "1.0.0.dev9"
40
+ version = "1.0.0.dev10"
41
41
 
42
42
  [project.optional-dependencies]
43
43
  performance = [ "uvloop>=0.21" ]
@@ -5,4 +5,4 @@ from importlib.metadata import PackageNotFoundError, version
5
5
  try:
6
6
  __version__ = version("digitalkin")
7
7
  except PackageNotFoundError:
8
- __version__ = "1.0.0.dev9"
8
+ __version__ = "1.0.0.dev10"
@@ -453,7 +453,8 @@ class SetupModel(BaseModel, Generic[SetupModelT]):
453
453
  """
454
454
  cache = ToolCache()
455
455
  await self._collect_tools_recursive(self, cache, registry, communication)
456
- logger.info("Tool cache built: %d entries", len(cache.entries))
456
+ counts = " ".join(f"{sid}={len(info.tools)}" for sid, info in cache.entries.items())
457
+ logger.info("Tool cache built: %d entries [%s]", len(cache.entries), counts)
457
458
  return cache
458
459
 
459
460
  async def _collect_tools_recursive( # noqa: C901
@@ -531,7 +532,18 @@ class SetupModel(BaseModel, Generic[SetupModelT]):
531
532
  except Exception:
532
533
  logger.exception("Failed to resolve ToolReference '%s'", field_name)
533
534
 
535
+ missing: list[str] = []
534
536
  for entry in tool_ref.selected_tools:
535
537
  tool_info = self.resolved_tools.get(entry.setup_id) if entry.setup_id else None
536
- if tool_info:
537
- cache.add(tool_info)
538
+ if tool_info is None:
539
+ if entry.setup_id:
540
+ missing.append(entry.setup_id)
541
+ continue
542
+ cache.add(tool_info)
543
+
544
+ if missing:
545
+ logger.warning(
546
+ "ToolReference '%s' has %d unresolved setup_id(s): %s "
547
+ "(each has an upstream 'Tool resolve failed' log with the reason)",
548
+ field_name, len(missing), missing,
549
+ )
@@ -1,6 +1,7 @@
1
1
  """Tool reference types for module configuration."""
2
2
 
3
3
  import asyncio
4
+ import logging
4
5
  from typing import Annotated, ClassVar
5
6
 
6
7
  from pydantic import AfterValidator, BaseModel, BeforeValidator, Field, PlainSerializer
@@ -29,37 +30,49 @@ class ToolReference(BaseModel):
29
30
  default_factory=list, description="Selected tools with trigger filters."
30
31
  )
31
32
 
32
- async def resolve(self, registry: RegistryStrategy, communication: CommunicationStrategy) -> list[ToolModuleInfo]:
33
+ async def resolve(
34
+ self,
35
+ registry: RegistryStrategy,
36
+ communication: CommunicationStrategy,
37
+ ) -> list[ToolModuleInfo]:
33
38
  """Resolve selected tools using the registry.
34
39
 
35
- Each tool resolution is bounded by DIGITALKIN_MODULE_TOOL_RESOLVE_TIMEOUT (default 10s).
40
+ Each tool resolution is bounded by ``DIGITALKIN_MODULE_TOOL_RESOLVE_TIMEOUT``
41
+ (default 10s). Inputs that fail to resolve are logged as WARNING with the
42
+ ``setup_id`` and a ``reason=...`` field; the returned list contains only
43
+ successful ``ToolModuleInfo``s. The caller can correlate against
44
+ ``self.selected_tools`` by ``setup_id``.
36
45
 
37
46
  Args:
38
47
  registry: Registry service for module discovery.
39
48
  communication: Communication service for module schemas.
40
49
 
41
50
  Returns:
42
- List of ToolModuleInfo for resolved tools, filtered by enabled triggers.
51
+ List of resolved ``ToolModuleInfo``. Failed resolutions are logged and omitted.
43
52
  """
44
53
  timeout = get_module_settings().tool_resolve_timeout
45
54
 
46
- async def _resolve_with_timeout(entry: ToolSelection) -> ToolModuleInfo | None:
47
- return await asyncio.wait_for(
48
- ToolReference._resolve_single(entry, registry, communication),
49
- timeout=timeout,
50
- )
55
+ async def _bounded(entry: ToolSelection) -> ToolModuleInfo | None:
56
+ try:
57
+ return await asyncio.wait_for(
58
+ ToolReference._resolve_single(entry, registry, communication),
59
+ timeout=timeout,
60
+ )
61
+ except asyncio.TimeoutError:
62
+ logger.warning(
63
+ "Tool resolve failed: setup_id=%s reason=resolve_timeout timeout_s=%.1f",
64
+ entry.setup_id, timeout,
65
+ )
66
+ return None
67
+ except Exception:
68
+ logger.exception(
69
+ "Tool resolve failed: setup_id=%s reason=resolve_exception",
70
+ entry.setup_id,
71
+ )
72
+ return None
51
73
 
52
- results = await asyncio.gather(
53
- *(_resolve_with_timeout(entry) for entry in self.selected_tools),
54
- return_exceptions=True,
55
- )
56
- resolved: list[ToolModuleInfo] = []
57
- for entry, result in zip(self.selected_tools, results):
58
- if isinstance(result, BaseException):
59
- logger.warning("Failed to resolve tool (setup_id=%s): %s", entry.setup_id, result)
60
- elif isinstance(result, ToolModuleInfo):
61
- resolved.append(result)
62
- return resolved
74
+ results = await asyncio.gather(*(_bounded(e) for e in self.selected_tools))
75
+ return [r for r in results if r is not None]
63
76
 
64
77
  @staticmethod
65
78
  async def _resolve_single(
@@ -67,7 +80,15 @@ class ToolReference(BaseModel):
67
80
  registry: RegistryStrategy,
68
81
  communication: CommunicationStrategy,
69
82
  ) -> ToolModuleInfo | None:
70
- """Resolve a single tool selection.
83
+ """Resolve a single tool selection; emit one structured audit line per call.
84
+
85
+ Every failure path logs a ``WARNING`` with a ``reason=...`` field
86
+ (``setup_not_found``, ``module_not_discovered``, ``schema_fetch_failed``)
87
+ so callers don't need to re-derive the cause. Successful resolutions
88
+ emit ``[lat-audit] tool_resolve`` at INFO with input/output counts.
89
+ Post-filter results of zero functions emit a second ``WARNING`` naming
90
+ the structural cause (``module_exposes_no_triggers``,
91
+ ``all_user_triggers_unknown``, or ``post_filter_empty``).
71
92
 
72
93
  Args:
73
94
  entry: Tool selection to resolve.
@@ -75,26 +96,74 @@ class ToolReference(BaseModel):
75
96
  communication: Communication service for module schemas.
76
97
 
77
98
  Returns:
78
- ToolModuleInfo if resolved, None otherwise.
99
+ ToolModuleInfo on success (possibly with empty ``tools``); ``None`` on registry miss.
79
100
  """
80
101
  setup = await registry.get_setup(entry.setup_id)
81
102
  if not setup or not setup.module_id:
103
+ logger.warning(
104
+ "Tool resolve failed: setup_id=%s reason=setup_not_found",
105
+ entry.setup_id,
106
+ )
82
107
  return None
83
108
  info = await registry.discover_by_id(setup.module_id)
84
109
  if not info:
110
+ logger.warning(
111
+ "Tool resolve failed: setup_id=%s tool_name=%s module_id=%s reason=module_not_discovered",
112
+ entry.setup_id, setup.name, setup.module_id,
113
+ )
85
114
  return None
86
- tool_info = await module_info_to_tool_module_info(info, entry.setup_id, setup.name, communication)
115
+
116
+ try:
117
+ tool_info = await module_info_to_tool_module_info(
118
+ info, entry.setup_id, setup.name, communication,
119
+ )
120
+ except Exception:
121
+ logger.exception(
122
+ "Tool resolve failed: setup_id=%s tool_name=%s reason=schema_fetch_failed",
123
+ entry.setup_id, setup.name,
124
+ )
125
+ return None
126
+
127
+ available = {t.name for t in tool_info.tools}
87
128
  enabled_triggers = {name for name, enabled in entry.triggers.items() if enabled}
129
+
88
130
  if enabled_triggers:
89
- available = {t.name for t in tool_info.tools}
90
131
  if unknown := enabled_triggers - available:
91
132
  logger.warning(
92
133
  "Tool '%s' enables triggers the module does not expose: %s (available: %s)",
93
- entry.setup_id,
94
- sorted(unknown),
95
- sorted(available),
134
+ entry.setup_id, sorted(unknown), sorted(available),
96
135
  )
97
136
  tool_info.tools = [t for t in tool_info.tools if t.name in enabled_triggers]
137
+
138
+ post_count = len(tool_info.tools)
139
+ logger.info(
140
+ "[lat-audit] tool_resolve: setup_id=%s slug=%s "
141
+ "user_triggers_enabled=%d user_triggers_total=%d "
142
+ "module_available=%d post_filter=%d",
143
+ entry.setup_id, tool_info.slug,
144
+ len(enabled_triggers), len(entry.triggers),
145
+ len(available), post_count,
146
+ )
147
+ if logger.isEnabledFor(logging.DEBUG):
148
+ logger.debug(
149
+ "tool_resolve detail: setup_id=%s user_triggers=%s available=%s",
150
+ entry.setup_id, dict(entry.triggers), sorted(available),
151
+ )
152
+
153
+ if post_count == 0:
154
+ if not available:
155
+ reason = "module_exposes_no_triggers"
156
+ elif enabled_triggers and not (enabled_triggers & available):
157
+ reason = "all_user_triggers_unknown"
158
+ else:
159
+ reason = "post_filter_empty"
160
+ logger.warning(
161
+ "Tool resolved with 0 functions: setup_id=%s slug=%s reason=%s "
162
+ "user_enabled=%d module_available=%d",
163
+ entry.setup_id, tool_info.slug, reason,
164
+ len(enabled_triggers), len(available),
165
+ )
166
+
98
167
  return tool_info
99
168
 
100
169
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 1.0.0.dev9
3
+ Version: 1.0.0.dev10
4
4
  Summary: SDK to build kin used in DigitalKin
5
5
  Author-email: "DigitalKin.ai" <contact@digitalkin.ai>
6
6
  License: Attribution-NonCommercial-ShareAlike 4.0 International