digitalkin 1.0.0.dev22__tar.gz → 1.0.0.dev23__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 (237) hide show
  1. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/PKG-INFO +2 -2
  2. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/pyproject.toml +2 -2
  3. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/__version__.py +1 -1
  4. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/gateway_servicer.py +38 -0
  5. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/communication/grpc_communication.py +35 -11
  6. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/services_config.py +6 -0
  7. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin.egg-info/PKG-INFO +2 -2
  8. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin.egg-info/requires.txt +1 -1
  9. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/LICENSE +0 -0
  10. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/README.md +0 -0
  11. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/base_server/__init__.py +0 -0
  12. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/base_server/mock/__init__.py +0 -0
  13. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/base_server/mock/mock_pb2.py +0 -0
  14. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  15. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/base_server/server_async_insecure.py +0 -0
  16. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/base_server/server_async_secure.py +0 -0
  17. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/base_server/server_sync_insecure.py +0 -0
  18. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/base_server/server_sync_secure.py +0 -0
  19. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/__init__.py +0 -0
  20. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/echo_module.py +0 -0
  21. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/models/__init__.py +0 -0
  22. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/models/input.py +0 -0
  23. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/models/output.py +0 -0
  24. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/models/secret.py +0 -0
  25. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/models/setup.py +0 -0
  26. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/server.py +0 -0
  27. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/triggers/__init__.py +0 -0
  28. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/bench_module/triggers/message_trigger.py +0 -0
  29. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/modules/__init__.py +0 -0
  30. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/modules/archetype_with_tools_module.py +0 -0
  31. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/modules/cpu_intensive_module.py +0 -0
  32. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/modules/dynamic_setup_module.py +0 -0
  33. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/modules/minimal_llm_module.py +0 -0
  34. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/modules/text_transform_module.py +0 -0
  35. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  36. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  37. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  38. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  39. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  40. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/monitoring/tests/test_metrics.py +0 -0
  41. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/client.py +0 -0
  42. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/echo_module.py +0 -0
  43. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/models/__init__.py +0 -0
  44. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/models/input.py +0 -0
  45. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/models/output.py +0 -0
  46. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/models/secret.py +0 -0
  47. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/models/setup.py +0 -0
  48. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/server.py +0 -0
  49. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/triggers/__init__.py +0 -0
  50. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/redis_demo/triggers/message_trigger.py +0 -0
  51. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/services/filesystem_module.py +0 -0
  52. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/examples/services/storage_module.py +0 -0
  53. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/setup.cfg +0 -0
  54. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/__init__.py +0 -0
  55. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/community/__init__.py +0 -0
  56. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/community/agno/__init__.py +0 -0
  57. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/community/agno/agno_adapter.py +0 -0
  58. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/community/agno/agui_tools.py +0 -0
  59. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/community/agno/hitl.py +0 -0
  60. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/community/agno/models.py +0 -0
  61. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/__init__.py +0 -0
  62. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/common/__init__.py +0 -0
  63. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/common/factories.py +0 -0
  64. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/exceptions.py +0 -0
  65. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/job_manager/__init__.py +0 -0
  66. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
  67. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
  68. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/profiling/__init__.py +0 -0
  69. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/profiling/step_timer.py +0 -0
  70. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/profiling/task_profiler.py +0 -0
  71. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/resilience/__init__.py +0 -0
  72. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/resilience/bulkhead.py +0 -0
  73. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/resilience/task_supervisor.py +0 -0
  74. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/__init__.py +0 -0
  75. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  76. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  77. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/module_runner.py +0 -0
  78. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/redis/__init__.py +0 -0
  79. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/redis/proto_streams.py +0 -0
  80. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/redis/redis_client.py +0 -0
  81. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/redis/redis_idempotency.py +0 -0
  82. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/redis/redis_signal.py +0 -0
  83. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/redis/redis_state.py +0 -0
  84. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  85. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  86. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/core/task_manager/task_session.py +0 -0
  87. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/exceptions.py +0 -0
  88. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/__init__.py +0 -0
  89. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  90. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/exceptions.py +0 -0
  91. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/interceptors/__init__.py +0 -0
  92. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/interceptors/permission.py +0 -0
  93. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/interceptors/request_ids.py +0 -0
  94. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/m2m_call_registry.py +0 -0
  95. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/module_server.py +0 -0
  96. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
  97. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/stream_registry.py +0 -0
  98. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/stream_session.py +0 -0
  99. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  100. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/utils/circuit_breaker.py +0 -0
  101. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  102. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  103. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  104. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/grpc_servers/utils/validators.py +0 -0
  105. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/logger.py +0 -0
  106. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/mixins/__init__.py +0 -0
  107. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/mixins/agui_mixin.py +0 -0
  108. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/mixins/base_mixin.py +0 -0
  109. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/mixins/cost_mixin.py +0 -0
  110. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  111. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  112. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/mixins/logger_mixin.py +0 -0
  113. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/mixins/storage_mixin.py +0 -0
  114. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/__init__.py +0 -0
  115. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/core/__init__.py +0 -0
  116. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/core/job_manager_models.py +0 -0
  117. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/core/redis.py +0 -0
  118. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/core/task_monitor.py +0 -0
  119. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/events/__init__.py +0 -0
  120. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/events/agent_events.py +0 -0
  121. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  122. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/grpc_servers/circuit_breaker.py +0 -0
  123. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/grpc_servers/m2m.py +0 -0
  124. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/grpc_servers/models.py +0 -0
  125. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/grpc_servers/stream_error_codes.py +0 -0
  126. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/grpc_servers/types.py +0 -0
  127. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/__init__.py +0 -0
  128. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/ag_ui.py +0 -0
  129. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/base_types.py +0 -0
  130. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/module.py +0 -0
  131. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/module_context.py +0 -0
  132. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/module_types.py +0 -0
  133. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/request_metadata.py +0 -0
  134. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/select_schema.py +0 -0
  135. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/setup_types.py +0 -0
  136. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/tool_cache.py +0 -0
  137. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/tool_reference.py +0 -0
  138. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/module/utility.py +0 -0
  139. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/services/__init__.py +0 -0
  140. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/services/cost.py +0 -0
  141. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/services/registry.py +0 -0
  142. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/services/services.py +0 -0
  143. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/services/storage.py +0 -0
  144. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/__init__.py +0 -0
  145. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/gateway.py +0 -0
  146. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/grpc_client.py +0 -0
  147. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/log.py +0 -0
  148. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/module.py +0 -0
  149. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/profiling.py +0 -0
  150. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/queue.py +0 -0
  151. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/redis.py +0 -0
  152. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/resilience.py +0 -0
  153. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/server/__init__.py +0 -0
  154. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/server/channel.py +0 -0
  155. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/server/grpc.py +0 -0
  156. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/server/server.py +0 -0
  157. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/server/servicer.py +0 -0
  158. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/task_manager.py +0 -0
  159. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/utils/__init__.py +0 -0
  160. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/settings/utils/channel.py +0 -0
  161. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/utils/__init__.py +0 -0
  162. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/models/utils/dynamic_schema.py +0 -0
  163. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/__init__.py +0 -0
  164. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/_base_module.py +0 -0
  165. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/archetype_module.py +0 -0
  166. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/tool_module.py +0 -0
  167. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/trigger_handler.py +0 -0
  168. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/triggers/__init__.py +0 -0
  169. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  170. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  171. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  172. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/py.typed +0 -0
  173. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/__init__.py +0 -0
  174. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/base_strategy.py +0 -0
  175. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/communication/__init__.py +0 -0
  176. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  177. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/communication/default_communication.py +0 -0
  178. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/communication/exceptions.py +0 -0
  179. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/cost/__init__.py +0 -0
  180. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  181. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/cost/default_cost.py +0 -0
  182. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/cost/exceptions.py +0 -0
  183. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  184. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/filesystem/__init__.py +0 -0
  185. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  186. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/filesystem/exceptions.py +0 -0
  187. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  188. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  189. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/identity/__init__.py +0 -0
  190. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/identity/default_identity.py +0 -0
  191. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  192. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/registry/__init__.py +0 -0
  193. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/registry/default_registry.py +0 -0
  194. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/registry/exceptions.py +0 -0
  195. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  196. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/registry/registry_models.py +0 -0
  197. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  198. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/secret/__init__.py +0 -0
  199. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/secret/default_secret.py +0 -0
  200. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/secret/exceptions.py +0 -0
  201. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/secret/grpc_secret.py +0 -0
  202. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/secret/secret_strategy.py +0 -0
  203. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/services_models.py +0 -0
  204. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/setup/__init__.py +0 -0
  205. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/setup/default_setup.py +0 -0
  206. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/setup/exceptions.py +0 -0
  207. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  208. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  209. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/storage/__init__.py +0 -0
  210. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/storage/default_storage.py +0 -0
  211. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/storage/exceptions.py +0 -0
  212. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  213. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  214. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/task_manager/__init__.py +0 -0
  215. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/task_manager/default_task_manager.py +0 -0
  216. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/task_manager/exceptions.py +0 -0
  217. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/task_manager/redis_task_manager.py +0 -0
  218. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/task_manager/task_manager_strategy.py +0 -0
  219. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/user_profile/__init__.py +0 -0
  220. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  221. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/user_profile/exceptions.py +0 -0
  222. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  223. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  224. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/__init__.py +0 -0
  225. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/arg_parser.py +0 -0
  226. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/conditional_schema.py +0 -0
  227. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/development_mode_action.py +0 -0
  228. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/dynamic_schema.py +0 -0
  229. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/exceptions.py +0 -0
  230. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  231. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/package_discover.py +0 -0
  232. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/proto_utils.py +0 -0
  233. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin/utils/schema_splitter.py +0 -0
  234. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin.egg-info/SOURCES.txt +0 -0
  235. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  236. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/src/digitalkin.egg-info/top_level.txt +0 -0
  237. {digitalkin-1.0.0.dev22 → digitalkin-1.0.0.dev23}/tests/test_exceptions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 1.0.0.dev22
3
+ Version: 1.0.0.dev23
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
@@ -453,7 +453,7 @@ Requires-Python: >=3.10
453
453
  Description-Content-Type: text/markdown
454
454
  License-File: LICENSE
455
455
  Requires-Dist: ag-ui-protocol>=0.1.18
456
- Requires-Dist: agentic-mesh-protocol==1.0.0a1
456
+ Requires-Dist: agentic-mesh-protocol==1.0.0a2
457
457
  Requires-Dist: anyio>=4.13.0
458
458
  Requires-Dist: grpcio-health-checking==1.81.0
459
459
  Requires-Dist: grpcio-reflection==1.81.0
@@ -28,7 +28,7 @@
28
28
 
29
29
  dependencies = [
30
30
  "ag-ui-protocol>=0.1.18",
31
- "agentic-mesh-protocol==1.0.0a1",
31
+ "agentic-mesh-protocol==1.0.0a2",
32
32
  "anyio>=4.13.0",
33
33
  "grpcio-health-checking==1.81.0",
34
34
  "grpcio-reflection==1.81.0",
@@ -37,7 +37,7 @@
37
37
  "pydantic-settings>=2.14.1",
38
38
  "redis[hiredis]>=7.4.0,<9",
39
39
  ]
40
- version = "1.0.0.dev22"
40
+ version = "1.0.0.dev23"
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.dev22"
8
+ __version__ = "1.0.0.dev23"
@@ -7,6 +7,7 @@ import contextlib
7
7
  import json
8
8
  import random
9
9
  import time
10
+ import uuid
10
11
  from datetime import datetime, timezone
11
12
  from typing import TYPE_CHECKING, Any
12
13
 
@@ -158,6 +159,43 @@ class GatewayServicer:
158
159
  await self._m2m.stop()
159
160
  await self._registry.shutdown()
160
161
 
162
+ async def AssociateTask(
163
+ self,
164
+ request: Any,
165
+ context: grpc.aio.ServicerContext, # noqa: ARG002
166
+ ) -> Any:
167
+ """Mint a sub-task id linked to a running parent task.
168
+
169
+ Args:
170
+ request: AssociateTaskRequest proto.
171
+ context: gRPC service context.
172
+
173
+ Returns:
174
+ AssociateTaskResponse(task_id, parent_task_id); empty ``task_id`` on rejection.
175
+ """
176
+ parent_task_id = request.parent_task_id
177
+ err = GatewayValidator.validate_id(parent_task_id, "parent_task_id")
178
+ if err is not None:
179
+ logger.warning("AssociateTask rejected: %s", err)
180
+ return gateway_pb2.AssociateTaskResponse(task_id="", parent_task_id=parent_task_id)
181
+
182
+ child_task_id = str(uuid.uuid4())
183
+ ttl = get_gateway_settings().stream.redis_stream_initial_ttl
184
+ try:
185
+ await self._redis_client.sadd(f"task:{parent_task_id}:children", child_task_id)
186
+ await self._redis_client.expire(f"task:{parent_task_id}:children", ttl)
187
+ await self._redis_client.set(f"task:{child_task_id}:parent", parent_task_id, ex=ttl)
188
+ except RedisError:
189
+ logger.warning(
190
+ "[VALIDATE AT1] AssociateTask persist failed parent=%s → task_id=''",
191
+ parent_task_id,
192
+ exc_info=True,
193
+ ) # TODO(validate): remove after prod validation
194
+ return gateway_pb2.AssociateTaskResponse(task_id="", parent_task_id=parent_task_id)
195
+
196
+ logger.info("AssociateTask: parent=%s child=%s", parent_task_id, child_task_id)
197
+ return gateway_pb2.AssociateTaskResponse(task_id=child_task_id, parent_task_id=parent_task_id)
198
+
161
199
  async def StartStream( # noqa: PLR0911, PLR0915
162
200
  self,
163
201
  request: Any,
@@ -4,7 +4,6 @@ from __future__ import annotations
4
4
 
5
5
  import asyncio
6
6
  import time
7
- import uuid
8
7
  from typing import TYPE_CHECKING, Any
9
8
 
10
9
  import grpc.aio
@@ -16,6 +15,7 @@ from agentic_mesh_protocol.module.v1 import (
16
15
  from google.protobuf import json_format, struct_pb2
17
16
 
18
17
  from digitalkin.core.profiling.step_timer import StepTimer
18
+ from digitalkin.grpc_servers.interceptors.request_ids import RequestContext
19
19
  from digitalkin.grpc_servers.utils.grpc_client_wrapper import GrpcClientWrapper
20
20
  from digitalkin.grpc_servers.utils.validators import GatewayValidator
21
21
  from digitalkin.logger import logger
@@ -315,8 +315,7 @@ class GrpcCommunication(CommunicationStrategy, GrpcClientWrapper):
315
315
  "target_key": target_key,
316
316
  }
317
317
 
318
- task_id = str(uuid.uuid4())
319
- log_extra["task_id"] = task_id
318
+ task_id = ""
320
319
  breaker = m2m.breaker_for(target_key)
321
320
 
322
321
  last_mark = "init"
@@ -342,6 +341,38 @@ class GrpcCommunication(CommunicationStrategy, GrpcClientWrapper):
342
341
  timer.mark("acquire_slot")
343
342
  last_mark = "acquire_slot"
344
343
 
344
+ self._get_or_create_channel(module_address, module_port)
345
+ timer.mark("channel_create")
346
+ last_mark = "channel_create"
347
+ stub = self._get_or_create_stub(gateway_service_pb2_grpc.GatewayServiceStub)
348
+ timer.mark("stub_create")
349
+ last_mark = "stub_create"
350
+
351
+ # The gateway mints the sub-task id and links it to the running parent task.
352
+ try:
353
+ assoc = await stub.AssociateTask(
354
+ gateway_pb2.AssociateTaskRequest(
355
+ parent_task_id=RequestContext.current().get("task_id", ""),
356
+ ),
357
+ )
358
+ except grpc.aio.AioRpcError as exc:
359
+ breaker.record_failure()
360
+ logger.warning(
361
+ "[m2m] AssociateTask failed: [%s] %s",
362
+ exc.code().name,
363
+ exc.details() or "",
364
+ extra=log_extra,
365
+ )
366
+ raise
367
+ task_id = assoc.task_id
368
+ if not task_id:
369
+ breaker.record_failure()
370
+ msg = f"target {target_key} returned no task_id from AssociateTask"
371
+ raise RuntimeError(msg) # noqa: TRY301
372
+ log_extra["task_id"] = task_id
373
+ timer.mark("associate_task")
374
+ last_mark = "associate_task"
375
+
345
376
  output_queue: asyncio.Queue[struct_pb2.Struct | None] = asyncio.Queue(
346
377
  maxsize=m2m_settings.call_queue_maxsize,
347
378
  )
@@ -361,13 +392,6 @@ class GrpcCommunication(CommunicationStrategy, GrpcClientWrapper):
361
392
  timer.mark("register")
362
393
  last_mark = "register"
363
394
 
364
- self._get_or_create_channel(module_address, module_port)
365
- timer.mark("channel_create")
366
- last_mark = "channel_create"
367
- stub = self._get_or_create_stub(gateway_service_pb2_grpc.GatewayServiceStub)
368
- timer.mark("stub_create")
369
- last_mark = "stub_create"
370
-
371
395
  try: # noqa: PLW0717
372
396
  grpc_metadata: list[tuple[str, str]] = []
373
397
  if metadata:
@@ -467,7 +491,7 @@ class GrpcCommunication(CommunicationStrategy, GrpcClientWrapper):
467
491
  cancelled = True
468
492
  raise
469
493
  finally:
470
- if cancelled and stub is not None:
494
+ if cancelled and stub is not None and task_id:
471
495
  sig_t0 = time.perf_counter_ns()
472
496
  sig_failure = ""
473
497
  try:
@@ -78,6 +78,12 @@ class ServicesConfig(BaseModel):
78
78
  self._strategies[name] = override if override is not None else defaults[name]
79
79
  self._configs[name] = services_config_params.get(name) or {}
80
80
 
81
+ # The secret service is backed by the UserProfileService — reuse the
82
+ # user_profile client_config (same host/port) when no dedicated secret
83
+ # config is registered, so GrpcSecret can build its channel.
84
+ if not self._configs.get("secret"):
85
+ self._configs["secret"] = self._configs.get("user_profile") or {}
86
+
81
87
  @classmethod
82
88
  def valid_strategy_names(cls) -> set[str]:
83
89
  """Get the list of valid strategy names.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 1.0.0.dev22
3
+ Version: 1.0.0.dev23
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
@@ -453,7 +453,7 @@ Requires-Python: >=3.10
453
453
  Description-Content-Type: text/markdown
454
454
  License-File: LICENSE
455
455
  Requires-Dist: ag-ui-protocol>=0.1.18
456
- Requires-Dist: agentic-mesh-protocol==1.0.0a1
456
+ Requires-Dist: agentic-mesh-protocol==1.0.0a2
457
457
  Requires-Dist: anyio>=4.13.0
458
458
  Requires-Dist: grpcio-health-checking==1.81.0
459
459
  Requires-Dist: grpcio-reflection==1.81.0
@@ -1,5 +1,5 @@
1
1
  ag-ui-protocol>=0.1.18
2
- agentic-mesh-protocol==1.0.0a1
2
+ agentic-mesh-protocol==1.0.0a2
3
3
  anyio>=4.13.0
4
4
  grpcio-health-checking==1.81.0
5
5
  grpcio-reflection==1.81.0