digitalkin 0.4.1.dev2__tar.gz → 0.4.1.dev4__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 (174) hide show
  1. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/PKG-INFO +1 -1
  2. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/pyproject.toml +1 -1
  3. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/__version__.py +1 -1
  4. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/community/agno/agno_adapter.py +57 -7
  5. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/community/agno/hitl.py +14 -5
  6. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin.egg-info/PKG-INFO +1 -1
  7. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/LICENSE +0 -0
  8. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/README.md +0 -0
  9. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/base_server/__init__.py +0 -0
  10. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/base_server/mock/__init__.py +0 -0
  11. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/base_server/mock/mock_pb2.py +0 -0
  12. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  13. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/base_server/server_async_insecure.py +0 -0
  14. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/base_server/server_async_secure.py +0 -0
  15. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/base_server/server_sync_insecure.py +0 -0
  16. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/base_server/server_sync_secure.py +0 -0
  17. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/modules/__init__.py +0 -0
  18. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/modules/archetype_with_tools_module.py +0 -0
  19. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/modules/cpu_intensive_module.py +0 -0
  20. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/modules/dynamic_setup_module.py +0 -0
  21. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/modules/minimal_llm_module.py +0 -0
  22. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/modules/text_transform_module.py +0 -0
  23. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  24. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  25. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  26. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  27. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  28. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/monitoring/tests/test_metrics.py +0 -0
  29. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/services/filesystem_module.py +0 -0
  30. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/examples/services/storage_module.py +0 -0
  31. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/setup.cfg +0 -0
  32. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/__init__.py +0 -0
  33. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/community/__init__.py +0 -0
  34. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/community/agno/__init__.py +0 -0
  35. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/community/agno/agui_tools.py +0 -0
  36. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/__init__.py +0 -0
  37. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/common/__init__.py +0 -0
  38. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/common/factories.py +0 -0
  39. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/job_manager/__init__.py +0 -0
  40. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
  41. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
  42. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/job_manager/taskiq_broker.py +0 -0
  43. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/job_manager/taskiq_job_manager.py +0 -0
  44. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/profiling/__init__.py +0 -0
  45. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/profiling/asyncio_monitor.py +0 -0
  46. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/profiling/task_profiler.py +0 -0
  47. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/task_manager/__init__.py +0 -0
  48. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  49. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  50. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  51. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  52. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/core/task_manager/task_session.py +0 -0
  53. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/__init__.py +0 -0
  54. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  55. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/module_server.py +0 -0
  56. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
  57. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  58. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/utils/exceptions.py +0 -0
  59. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  60. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  61. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  62. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/logger.py +0 -0
  63. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/__init__.py +0 -0
  64. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/agui_mixin.py +0 -0
  65. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/base_mixin.py +0 -0
  66. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/callback_mixin.py +0 -0
  67. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/chat_history_mixin.py +0 -0
  68. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/cost_mixin.py +0 -0
  69. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  70. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  71. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/logger_mixin.py +0 -0
  72. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/mixins/storage_mixin.py +0 -0
  73. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/__init__.py +0 -0
  74. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/core/__init__.py +0 -0
  75. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/core/job_manager_models.py +0 -0
  76. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/core/task_monitor.py +0 -0
  77. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/events/__init__.py +0 -0
  78. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/events/agent_events.py +0 -0
  79. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  80. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/grpc_servers/models.py +0 -0
  81. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/grpc_servers/types.py +0 -0
  82. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/__init__.py +0 -0
  83. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/ag_ui.py +0 -0
  84. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/base_types.py +0 -0
  85. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/module.py +0 -0
  86. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/module_context.py +0 -0
  87. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/module_types.py +0 -0
  88. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/request_metadata.py +0 -0
  89. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/select_schema.py +0 -0
  90. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/setup_types.py +0 -0
  91. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/tool_cache.py +0 -0
  92. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/tool_reference.py +0 -0
  93. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/module/utility.py +0 -0
  94. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/services/__init__.py +0 -0
  95. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/services/cost.py +0 -0
  96. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/services/registry.py +0 -0
  97. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/services/storage.py +0 -0
  98. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/settings/__init__.py +0 -0
  99. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/settings/server/__init__.py +0 -0
  100. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/settings/server/channel.py +0 -0
  101. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/settings/server/grpc.py +0 -0
  102. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/settings/server/server.py +0 -0
  103. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/settings/utils/__init__.py +0 -0
  104. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/models/settings/utils/channel.py +0 -0
  105. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/__init__.py +0 -0
  106. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/_base_module.py +0 -0
  107. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/archetype_module.py +0 -0
  108. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/tool_module.py +0 -0
  109. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/trigger_handler.py +0 -0
  110. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/triggers/__init__.py +0 -0
  111. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  112. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  113. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  114. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/py.typed +0 -0
  115. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/__init__.py +0 -0
  116. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/agent/__init__.py +0 -0
  117. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/agent/agent_strategy.py +0 -0
  118. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/agent/default_agent.py +0 -0
  119. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/base_strategy.py +0 -0
  120. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/communication/__init__.py +0 -0
  121. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  122. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/communication/default_communication.py +0 -0
  123. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/communication/grpc_communication.py +0 -0
  124. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/cost/__init__.py +0 -0
  125. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  126. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/cost/default_cost.py +0 -0
  127. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  128. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/filesystem/__init__.py +0 -0
  129. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  130. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  131. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  132. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/identity/__init__.py +0 -0
  133. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/identity/default_identity.py +0 -0
  134. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  135. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/registry/__init__.py +0 -0
  136. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/registry/default_registry.py +0 -0
  137. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/registry/exceptions.py +0 -0
  138. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  139. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/registry/registry_models.py +0 -0
  140. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  141. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/services_config.py +0 -0
  142. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/services_models.py +0 -0
  143. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/setup/__init__.py +0 -0
  144. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/setup/default_setup.py +0 -0
  145. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  146. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  147. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/snapshot/__init__.py +0 -0
  148. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/snapshot/default_snapshot.py +0 -0
  149. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/snapshot/snapshot_strategy.py +0 -0
  150. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/storage/__init__.py +0 -0
  151. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/storage/default_storage.py +0 -0
  152. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  153. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  154. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/task_manager/__init__.py +0 -0
  155. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/task_manager/default_task_manager.py +0 -0
  156. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/task_manager/grpc_task_manager.py +0 -0
  157. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/task_manager/task_manager_strategy.py +0 -0
  158. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/user_profile/__init__.py +0 -0
  159. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  160. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  161. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  162. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/__init__.py +0 -0
  163. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/arg_parser.py +0 -0
  164. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/conditional_schema.py +0 -0
  165. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/development_mode_action.py +0 -0
  166. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/dynamic_schema.py +0 -0
  167. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  168. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/package_discover.py +0 -0
  169. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/proto_utils.py +0 -0
  170. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin/utils/schema_splitter.py +0 -0
  171. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin.egg-info/SOURCES.txt +0 -0
  172. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  173. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/src/digitalkin.egg-info/requires.txt +0 -0
  174. {digitalkin-0.4.1.dev2 → digitalkin-0.4.1.dev4}/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: 0.4.1.dev2
3
+ Version: 0.4.1.dev4
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
@@ -35,7 +35,7 @@
35
35
  "grpcio-status==1.78.0",
36
36
  "pydantic==2.12.5",
37
37
  ]
38
- version = "0.4.1.dev2"
38
+ version = "0.4.1.dev4"
39
39
 
40
40
  [project.optional-dependencies]
41
41
  profiling = [
@@ -5,4 +5,4 @@ from importlib.metadata import PackageNotFoundError, version
5
5
  try:
6
6
  __version__ = version("digitalkin")
7
7
  except PackageNotFoundError:
8
- __version__ = "0.4.1.dev2"
8
+ __version__ = "0.4.1.dev4"
@@ -263,20 +263,60 @@ class AgnoStreamAdapter:
263
263
  ]
264
264
 
265
265
  def _handle_reasoning_step(self, agno_event: Any, timestamp: Any) -> list[BaseAgentRunEvent]:
266
- """Handle RunEvent.reasoning_step.
266
+ """Handle ``RunEvent.reasoning_step`` — emitted by Agno's ``ReasoningTools``.
267
+
268
+ Unlike the native reasoning events (``reasoning_started`` /
269
+ ``reasoning_content_delta`` / ``reasoning_completed``), a
270
+ ``reasoning_step`` may arrive without a preceding
271
+ ``reasoning_started``. This happens when the LLM calls tool-based
272
+ reasoning (``think`` / ``analyze`` from ``ReasoningTools``) rather
273
+ than using the model's built-in extended thinking.
274
+
275
+ To comply with the AG-UI protocol — which requires every
276
+ ``REASONING_MESSAGE_CONTENT`` to be wrapped in a
277
+ ``REASONING_START`` … ``REASONING_END`` lifecycle — we auto-open
278
+ a reasoning sequence here if none is active. The sequence is
279
+ auto-closed by the next non-reasoning event (``_handle_run_content``,
280
+ ``_handle_tool_call_started``, etc.) or by ``flush()``.
267
281
 
268
282
  Returns:
269
- List containing a ReasoningStepEvent.
283
+ List of events: optionally a ``ReasoningStartedEvent`` (if
284
+ auto-opened), followed by the ``ReasoningStepEvent``.
270
285
  """
271
- return [
286
+ events: list[BaseAgentRunEvent] = []
287
+
288
+ content = getattr(agno_event, "reasoning_content", "")
289
+ if not content:
290
+ return events
291
+
292
+ # Close active text message if transitioning to reasoning
293
+ if self._content_active:
294
+ events.extend(self._close_content(timestamp))
295
+
296
+ # Auto-open reasoning lifecycle if not already active
297
+ if not self._reasoning_active:
298
+ self._current_reasoning_id = str(uuid.uuid4())
299
+ self._reasoning_active = True
300
+ logger.debug("Reasoning auto-started (from reasoning_step), id=%s", self._current_reasoning_id)
301
+ events.append(
302
+ ReasoningStartedEvent(
303
+ event=AgentRunEvent.REASONING_STARTED,
304
+ reasoning_id=self._current_reasoning_id,
305
+ timestamp=timestamp,
306
+ metadata=None,
307
+ )
308
+ )
309
+
310
+ events.append(
272
311
  ReasoningStepEvent(
273
312
  event=AgentRunEvent.REASONING_STEP,
274
- delta=getattr(agno_event, "reasoning_content", ""),
313
+ delta=content,
275
314
  reasoning_id=self._current_reasoning_id,
276
315
  timestamp=timestamp,
277
316
  metadata=None,
278
317
  )
279
- ]
318
+ )
319
+ return events
280
320
 
281
321
  def _handle_reasoning_completed(self, agno_event: Any, timestamp: Any) -> list[BaseAgentRunEvent]:
282
322
  """Handle RunEvent.reasoning_completed.
@@ -397,8 +437,19 @@ class AgnoStreamAdapter:
397
437
  self._paused_tool_executions = list(tools)
398
438
  self._paused_requirements = list(requirements)
399
439
 
440
+ # RunPausedEvent.tools contains ALL tools from run_response.tools
441
+ # (both server-side tools already executed and external ones awaiting
442
+ # client execution). We must only synthesize events for external tools
443
+ # — the server-side ones (e.g. ReasoningTools' think/analyze) were
444
+ # already streamed via the normal tool_call_started/completed path.
445
+ seen_ids: set[str] = set()
400
446
  for tool_exec in tools:
447
+ if not getattr(tool_exec, "external_execution_required", False):
448
+ continue
401
449
  tool_call_id = getattr(tool_exec, "tool_call_id", None)
450
+ if not tool_call_id or tool_call_id in seen_ids:
451
+ continue
452
+ seen_ids.add(tool_call_id)
402
453
  tool_info = ToolInfo(
403
454
  tool_call_id=tool_call_id,
404
455
  tool_name=getattr(tool_exec, "tool_name", None),
@@ -425,8 +476,7 @@ class AgnoStreamAdapter:
425
476
  metadata=None,
426
477
  ),
427
478
  ))
428
- if tool_call_id:
429
- self._closed_tool_call_ids.add(tool_call_id)
479
+ self._closed_tool_call_ids.add(tool_call_id)
430
480
 
431
481
  return events
432
482
 
@@ -184,11 +184,20 @@ class PausedRunStore:
184
184
  Returns:
185
185
  A :class:`PauseInfo` describing what was persisted.
186
186
  """
187
- pending = [
188
- req.tool_execution.tool_call_id
189
- for req in (run_output.requirements or [])
190
- if getattr(req, "needs_external_execution", False) and req.tool_execution is not None
191
- ]
187
+ # Extract pending tool_call_ids from run_output.tools (not requirements).
188
+ # Agno's requirements list may be incomplete: it only appends a
189
+ # RunRequirement for the LAST tool in each paused batch
190
+ # (tool_executions_list[-1] in _response.py), so when N external tools
191
+ # pause in the same turn, only the last one gets a requirement.
192
+ # run_output.tools contains ALL tools (server-side + external), so we
193
+ # filter by external_execution_required and deduplicate.
194
+ seen: set[str] = set()
195
+ pending: list[str] = []
196
+ for tool in run_output.tools or []:
197
+ tid = getattr(tool, "tool_call_id", None)
198
+ if tid and tid not in seen and getattr(tool, "external_execution_required", False):
199
+ seen.add(tid)
200
+ pending.append(tid)
192
201
  record = PausedRunRecord(
193
202
  thread_id=thread_id,
194
203
  run_id=run_output.run_id or "",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 0.4.1.dev2
3
+ Version: 0.4.1.dev4
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
File without changes