digitalkin 0.3.5.dev0__tar.gz → 0.3.5.dev1__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.3.5.dev0 → digitalkin-0.3.5.dev1}/PKG-INFO +4 -3
  2. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/modules/archetype_with_tools_module.py +2 -3
  3. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/pyproject.toml +11 -10
  4. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/__version__.py +1 -1
  5. digitalkin-0.3.5.dev1/src/digitalkin/community/__init__.py +5 -0
  6. digitalkin-0.3.5.dev1/src/digitalkin/community/agno/__init__.py +5 -0
  7. digitalkin-0.3.5.dev1/src/digitalkin/community/agno/agno_adapter.py +183 -0
  8. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/job_manager/base_job_manager.py +0 -6
  9. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/job_manager/single_job_manager.py +4 -1
  10. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/job_manager/taskiq_broker.py +13 -211
  11. digitalkin-0.3.5.dev1/src/digitalkin/core/job_manager/taskiq_job_manager.py +477 -0
  12. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/task_session.py +0 -2
  13. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/_base_server.py +48 -56
  14. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/module_server.py +11 -17
  15. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/module_servicer.py +3 -42
  16. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +9 -9
  17. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/__init__.py +2 -0
  18. digitalkin-0.3.5.dev1/src/digitalkin/mixins/agui_mixin.py +470 -0
  19. digitalkin-0.3.5.dev1/src/digitalkin/models/__init__.py +40 -0
  20. digitalkin-0.3.5.dev1/src/digitalkin/models/events/__init__.py +39 -0
  21. digitalkin-0.3.5.dev1/src/digitalkin/models/events/agent_events.py +136 -0
  22. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/grpc_servers/models.py +138 -2
  23. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/__init__.py +3 -0
  24. digitalkin-0.3.5.dev1/src/digitalkin/models/module/ag_ui.py +377 -0
  25. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/tool_reference.py +9 -17
  26. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/_base_module.py +8 -27
  27. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin.egg-info/PKG-INFO +4 -3
  28. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin.egg-info/SOURCES.txt +7 -7
  29. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin.egg-info/requires.txt +3 -2
  30. digitalkin-0.3.5.dev0/src/digitalkin/core/job_manager/taskiq_job_manager.py +0 -659
  31. digitalkin-0.3.5.dev0/src/digitalkin/models/__init__.py +0 -8
  32. digitalkin-0.3.5.dev0/src/digitalkin/models/settings/__init__.py +0 -1
  33. digitalkin-0.3.5.dev0/src/digitalkin/models/settings/server/__init__.py +0 -1
  34. digitalkin-0.3.5.dev0/src/digitalkin/models/settings/server/channel.py +0 -36
  35. digitalkin-0.3.5.dev0/src/digitalkin/models/settings/server/grpc.py +0 -99
  36. digitalkin-0.3.5.dev0/src/digitalkin/models/settings/server/server.py +0 -47
  37. digitalkin-0.3.5.dev0/src/digitalkin/models/settings/utils/__init__.py +0 -1
  38. digitalkin-0.3.5.dev0/src/digitalkin/models/settings/utils/channel.py +0 -148
  39. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/LICENSE +0 -0
  40. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/README.md +0 -0
  41. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/base_server/__init__.py +0 -0
  42. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/base_server/mock/__init__.py +0 -0
  43. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/base_server/mock/mock_pb2.py +0 -0
  44. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  45. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/base_server/server_async_insecure.py +0 -0
  46. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/base_server/server_async_secure.py +0 -0
  47. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/base_server/server_sync_insecure.py +0 -0
  48. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/base_server/server_sync_secure.py +0 -0
  49. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/modules/__init__.py +0 -0
  50. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/modules/cpu_intensive_module.py +0 -0
  51. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/modules/dynamic_setup_module.py +0 -0
  52. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/modules/minimal_llm_module.py +0 -0
  53. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/modules/text_transform_module.py +0 -0
  54. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  55. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  56. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  57. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  58. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  59. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/monitoring/tests/test_metrics.py +0 -0
  60. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/services/filesystem_module.py +0 -0
  61. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/examples/services/storage_module.py +0 -0
  62. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/setup.cfg +0 -0
  63. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/__init__.py +0 -0
  64. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/__init__.py +0 -0
  65. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/common/__init__.py +0 -0
  66. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/common/factories.py +0 -0
  67. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/job_manager/__init__.py +0 -0
  68. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/profiling/__init__.py +0 -0
  69. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/profiling/asyncio_monitor.py +0 -0
  70. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/profiling/task_profiler.py +0 -0
  71. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/__init__.py +0 -0
  72. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  73. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  74. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  75. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  76. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/__init__.py +0 -0
  77. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  78. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/exceptions.py +0 -0
  79. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  80. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  81. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/logger.py +0 -0
  82. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/base_mixin.py +0 -0
  83. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/callback_mixin.py +0 -0
  84. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/chat_history_mixin.py +0 -0
  85. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/cost_mixin.py +0 -0
  86. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  87. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  88. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/logger_mixin.py +0 -0
  89. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/storage_mixin.py +0 -0
  90. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/core/__init__.py +0 -0
  91. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/core/job_manager_models.py +0 -0
  92. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/core/task_monitor.py +0 -0
  93. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  94. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/grpc_servers/types.py +0 -0
  95. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/base_types.py +0 -0
  96. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/module.py +0 -0
  97. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/module_context.py +0 -0
  98. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/module_types.py +0 -0
  99. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/request_metadata.py +0 -0
  100. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/select_schema.py +0 -0
  101. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/setup_types.py +0 -0
  102. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/tool_cache.py +0 -0
  103. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/utility.py +0 -0
  104. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/services/__init__.py +0 -0
  105. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/services/cost.py +0 -0
  106. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/services/registry.py +0 -0
  107. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/models/services/storage.py +0 -0
  108. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/__init__.py +0 -0
  109. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/archetype_module.py +0 -0
  110. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/tool_module.py +0 -0
  111. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/trigger_handler.py +0 -0
  112. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/triggers/__init__.py +0 -0
  113. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  114. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  115. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  116. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/py.typed +0 -0
  117. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/__init__.py +0 -0
  118. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/agent/__init__.py +0 -0
  119. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/agent/agent_strategy.py +0 -0
  120. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/agent/default_agent.py +0 -0
  121. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/base_strategy.py +0 -0
  122. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/communication/__init__.py +0 -0
  123. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  124. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/communication/default_communication.py +0 -0
  125. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/communication/grpc_communication.py +0 -0
  126. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/cost/__init__.py +0 -0
  127. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  128. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/cost/default_cost.py +0 -0
  129. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  130. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/filesystem/__init__.py +0 -0
  131. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  132. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  133. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  134. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/identity/__init__.py +0 -0
  135. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/identity/default_identity.py +0 -0
  136. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  137. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/__init__.py +0 -0
  138. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/default_registry.py +0 -0
  139. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/exceptions.py +0 -0
  140. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  141. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/registry_models.py +0 -0
  142. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  143. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/services_config.py +0 -0
  144. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/services_models.py +0 -0
  145. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/setup/__init__.py +0 -0
  146. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/setup/default_setup.py +0 -0
  147. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  148. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  149. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/snapshot/__init__.py +0 -0
  150. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/snapshot/default_snapshot.py +0 -0
  151. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/snapshot/snapshot_strategy.py +0 -0
  152. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/storage/__init__.py +0 -0
  153. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/storage/default_storage.py +0 -0
  154. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  155. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  156. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/task_manager/__init__.py +0 -0
  157. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/task_manager/default_task_manager.py +0 -0
  158. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/task_manager/grpc_task_manager.py +0 -0
  159. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/task_manager/task_manager_strategy.py +0 -0
  160. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/user_profile/__init__.py +0 -0
  161. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  162. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  163. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  164. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/__init__.py +0 -0
  165. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/arg_parser.py +0 -0
  166. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/conditional_schema.py +0 -0
  167. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/development_mode_action.py +0 -0
  168. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/dynamic_schema.py +0 -0
  169. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  170. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/package_discover.py +0 -0
  171. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/proto_utils.py +0 -0
  172. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/schema_splitter.py +0 -0
  173. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  174. {digitalkin-0.3.5.dev0 → digitalkin-0.3.5.dev1}/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.3.5.dev0
3
+ Version: 0.3.5.dev1
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
@@ -452,8 +452,9 @@ Classifier: Topic :: Software Development :: Libraries
452
452
  Requires-Python: >=3.10
453
453
  Description-Content-Type: text/markdown
454
454
  License-File: LICENSE
455
+ Requires-Dist: ag-ui-protocol>=0.1.14
455
456
  Requires-Dist: agentic-mesh-protocol==0.2.3
456
- Requires-Dist: anyio==4.13.0
457
+ Requires-Dist: anyio==4.12.1
457
458
  Requires-Dist: grpcio-health-checking==1.78.0
458
459
  Requires-Dist: grpcio-reflection==1.78.0
459
460
  Requires-Dist: grpcio-status==1.78.0
@@ -462,7 +463,7 @@ Provides-Extra: profiling
462
463
  Requires-Dist: asyncio-inspector==0.1.0; extra == "profiling"
463
464
  Requires-Dist: pyinstrument==5.1.2; extra == "profiling"
464
465
  Requires-Dist: viztracer==1.1.1; extra == "profiling"
465
- Requires-Dist: yappi==1.7.6; extra == "profiling"
466
+ Requires-Dist: yappi==1.7.3; extra == "profiling"
466
467
  Provides-Extra: taskiq
467
468
  Requires-Dist: rstream==1.0.0; extra == "taskiq"
468
469
  Requires-Dist: taskiq-aio-pika==0.6.0; extra == "taskiq"
@@ -5,11 +5,10 @@ from typing import Any, ClassVar, Literal
5
5
 
6
6
  from pydantic import BaseModel, Field
7
7
 
8
- from digitalkin.models.grpc_servers.models import ClientConfig
8
+ from digitalkin.models.grpc_servers.models import ClientConfig, SecurityMode, ServerMode
9
9
  from digitalkin.models.module.module_context import ModuleContext
10
10
  from digitalkin.models.module.setup_types import SetupModel
11
11
  from digitalkin.models.module.tool_reference import ToolReference
12
- from digitalkin.models.settings.utils.channel import ControlFlow, SecurityMode
13
12
  from digitalkin.modules._base_module import BaseModule # noqa: PLC2701
14
13
  from digitalkin.services.services_models import ServicesStrategy
15
14
 
@@ -99,7 +98,7 @@ class ArchetypeSecret(BaseModel):
99
98
  client_config = ClientConfig(
100
99
  host="[::]",
101
100
  port=50152,
102
- mode=ControlFlow.ASYNC,
101
+ mode=ServerMode.ASYNC,
103
102
  security=SecurityMode.INSECURE,
104
103
  credentials=None,
105
104
  )
@@ -27,21 +27,22 @@
27
27
  ]
28
28
 
29
29
  dependencies = [
30
+ "ag-ui-protocol>=0.1.14",
30
31
  "agentic-mesh-protocol==0.2.3",
31
- "anyio==4.13.0",
32
+ "anyio==4.12.1",
32
33
  "grpcio-health-checking==1.78.0",
33
34
  "grpcio-reflection==1.78.0",
34
35
  "grpcio-status==1.78.0",
35
36
  "pydantic==2.12.5",
36
- ]
37
- version = "0.3.5.dev0"
37
+ ]
38
+ version = "0.3.5.dev1"
38
39
 
39
40
  [project.optional-dependencies]
40
41
  profiling = [
41
42
  "asyncio-inspector==0.1.0",
42
43
  "pyinstrument==5.1.2",
43
44
  "viztracer==1.1.1",
44
- "yappi==1.7.6",
45
+ "yappi==1.7.3",
45
46
  ]
46
47
  taskiq = [
47
48
  "rstream==1.0.0",
@@ -60,13 +61,13 @@
60
61
 
61
62
  [dependency-groups]
62
63
  dev = [
63
- "build==1.4.1",
64
+ "build==1.4.0",
64
65
  "bump-my-version==1.2.7",
65
66
  "cryptography==46.0.5",
66
67
  "mypy==1.19.1",
67
68
  "pre-commit==4.5.1",
68
69
  "pyright==1.1.408",
69
- "ruff==0.15.7",
70
+ "ruff==0.15.5",
70
71
  "twine==6.2.0",
71
72
  "types-grpcio-health-checking==1.0.0.20250506",
72
73
  "types-grpcio-reflection==1.0.0.20250506",
@@ -86,13 +87,13 @@
86
87
  "mkdocs-git-revision-date-localized-plugin==1.5.1",
87
88
  "mkdocs-glightbox==0.5.2",
88
89
  "mkdocs-include-markdown-plugin==7.2.1",
89
- "mkdocs-literate-nav==0.6.3",
90
+ "mkdocs-literate-nav==0.6.2",
90
91
  "mkdocs-llmstxt==0.5.0",
91
- "mkdocs-material[imaging]==9.7.6",
92
+ "mkdocs-material[imaging]==9.7.5",
92
93
  "mkdocs-minify-plugin==0.8.0",
93
94
  "mkdocs-open-in-new-tab==1.0.8",
94
95
  "mkdocs-redirects==1.2.2",
95
- "mkdocs-section-index==0.3.11",
96
+ "mkdocs-section-index==0.3.10",
96
97
  "mkdocs==1.6.1",
97
98
  "mkdocstrings-python==2.0.3",
98
99
  "mkdocstrings==1.0.3",
@@ -104,7 +105,7 @@
104
105
  "hdrhistogram==0.10.3",
105
106
  "psutil==7.2.2",
106
107
  "pytest-asyncio==1.3.0",
107
- "pytest-cov==7.1.0",
108
+ "pytest-cov==7.0.0",
108
109
  "pytest-html==4.2.0",
109
110
  "pytest-json-report==1.5.0",
110
111
  "pytest-timeout==2.4.0",
@@ -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.3.5.dev0"
8
+ __version__ = "0.3.5.dev1"
@@ -0,0 +1,5 @@
1
+ """Community integrations for DigitalKin.
2
+
3
+ This package contains community-contributed integrations with various AI frameworks
4
+ and tools (Agno, LangChain, etc.).
5
+ """
@@ -0,0 +1,5 @@
1
+ """Agno framework integration for DigitalKin.
2
+
3
+ This module provides utilities and adapters for integrating Agno agents
4
+ with the DigitalKin SDK.
5
+ """
@@ -0,0 +1,183 @@
1
+ """Adapter to convert Agno events to DigitalKin framework-agnostic events.
2
+
3
+ This adapter bridges Agno-specific events to the DigitalKin event model,
4
+ allowing the core DigitalKin SDK to remain independent of Agno.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ from typing import Any
10
+
11
+ from digitalkin.models.events import (
12
+ AgentRunEvent,
13
+ BaseAgentRunEvent,
14
+ ReasoningCompletedEvent,
15
+ ReasoningContentDeltaEvent,
16
+ ReasoningStartedEvent,
17
+ ReasoningStepEvent,
18
+ RunCompletedEvent,
19
+ RunContentEvent,
20
+ RunErrorEvent,
21
+ RunStartedEvent,
22
+ ToolCallCompletedEvent,
23
+ ToolCallErrorEvent,
24
+ ToolCallStartedEvent,
25
+ ToolInfo,
26
+ )
27
+
28
+
29
+ def to_digitalkin_event(agno_event: Any) -> BaseAgentRunEvent: # noqa: PLR0911, C901, PLR0912
30
+ """Convert an Agno event to a DigitalKin framework-agnostic event.
31
+
32
+ Args:
33
+ agno_event: Event from Agno's streaming API.
34
+
35
+ Returns:
36
+ Corresponding DigitalKin BaseAgentRunEvent.
37
+
38
+ Raises:
39
+ ImportError: If the optional 'agno' dependency is not installed.
40
+ ValueError: If the event type is not recognized.
41
+ """
42
+ try:
43
+ from agno.run.agent import RunEvent # pylint: disable=C0415 # pyright: ignore[reportMissingImports]
44
+ except ImportError as exc:
45
+ message = "The 'agno' package is required to use agno_to_digitalkin_event. \
46
+ Install it with: pip install agno"
47
+ raise ImportError(message) from exc
48
+
49
+ event_type = agno_event.event
50
+
51
+ # Import timestamp if available
52
+ timestamp = getattr(agno_event, "timestamp", None)
53
+
54
+ if event_type == RunEvent.run_started:
55
+ return RunStartedEvent(
56
+ event=AgentRunEvent.RUN_STARTED,
57
+ run_id=getattr(agno_event, "run_id", None),
58
+ thread_id=getattr(agno_event, "thread_id", None),
59
+ timestamp=timestamp,
60
+ metadata=None,
61
+ )
62
+
63
+ if event_type == RunEvent.run_content:
64
+ return RunContentEvent(
65
+ event=AgentRunEvent.RUN_CONTENT,
66
+ content=str(agno_event.content) if agno_event.content else None,
67
+ reasoning_content=getattr(agno_event, "reasoning_content", None),
68
+ content_type=None,
69
+ timestamp=timestamp,
70
+ metadata=None,
71
+ )
72
+
73
+ if event_type == RunEvent.run_completed:
74
+ return RunCompletedEvent(
75
+ event=AgentRunEvent.RUN_COMPLETED,
76
+ run_id=getattr(agno_event, "run_id", None),
77
+ final_content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
78
+ usage=None,
79
+ timestamp=timestamp,
80
+ metadata=None,
81
+ )
82
+
83
+ if event_type == RunEvent.run_error:
84
+ return RunErrorEvent(
85
+ event=AgentRunEvent.RUN_ERROR,
86
+ error_type=getattr(agno_event, "error_type", None),
87
+ content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
88
+ error_details=None,
89
+ timestamp=timestamp,
90
+ metadata=None,
91
+ )
92
+
93
+ if event_type == RunEvent.reasoning_started:
94
+ return ReasoningStartedEvent(
95
+ event=AgentRunEvent.REASONING_STARTED,
96
+ timestamp=timestamp,
97
+ metadata=None,
98
+ )
99
+
100
+ if event_type == RunEvent.reasoning_content_delta:
101
+ reasoning_content = getattr(agno_event, "reasoning_content", "")
102
+ return ReasoningContentDeltaEvent(
103
+ event=AgentRunEvent.REASONING_CONTENT_DELTA,
104
+ delta=reasoning_content,
105
+ timestamp=timestamp,
106
+ metadata=None,
107
+ )
108
+
109
+ if event_type == RunEvent.reasoning_step:
110
+ reasoning_content = getattr(agno_event, "reasoning_content", "")
111
+ return ReasoningStepEvent(
112
+ event=AgentRunEvent.REASONING_STEP,
113
+ delta=reasoning_content,
114
+ timestamp=timestamp,
115
+ metadata=None,
116
+ )
117
+
118
+ if event_type == RunEvent.reasoning_completed:
119
+ return ReasoningCompletedEvent(
120
+ event=AgentRunEvent.REASONING_COMPLETED,
121
+ timestamp=timestamp,
122
+ metadata=None,
123
+ )
124
+
125
+ if event_type == RunEvent.tool_call_started:
126
+ tool = getattr(agno_event, "tool", None)
127
+ tool_info = None
128
+ if tool:
129
+ tool_info = ToolInfo(
130
+ tool_call_id=getattr(tool, "tool_call_id", None),
131
+ tool_name=getattr(tool, "tool_name", None),
132
+ tool_args=getattr(tool, "tool_args", None),
133
+ result=None,
134
+ )
135
+ return ToolCallStartedEvent(
136
+ event=AgentRunEvent.TOOL_CALL_STARTED,
137
+ tool=tool_info,
138
+ timestamp=timestamp,
139
+ metadata=None,
140
+ )
141
+
142
+ if event_type == RunEvent.tool_call_completed:
143
+ tool = getattr(agno_event, "tool", None)
144
+ tool_info = None
145
+ if tool:
146
+ tool_info = ToolInfo(
147
+ tool_call_id=getattr(tool, "tool_call_id", None),
148
+ tool_name=getattr(tool, "tool_name", None),
149
+ tool_args=getattr(tool, "tool_args", None),
150
+ result=getattr(tool, "result", None),
151
+ )
152
+ return ToolCallCompletedEvent(
153
+ event=AgentRunEvent.TOOL_CALL_COMPLETED,
154
+ tool=tool_info,
155
+ content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
156
+ timestamp=timestamp,
157
+ metadata=None,
158
+ )
159
+
160
+ if event_type == RunEvent.tool_call_error:
161
+ tool = getattr(agno_event, "tool", None)
162
+ tool_info = None
163
+ if tool:
164
+ tool_info = ToolInfo(
165
+ tool_call_id=getattr(tool, "tool_call_id", None),
166
+ tool_name=getattr(tool, "tool_name", None),
167
+ tool_args=None,
168
+ result=None,
169
+ )
170
+ return ToolCallErrorEvent(
171
+ event=AgentRunEvent.TOOL_CALL_ERROR,
172
+ tool=tool_info,
173
+ error_message=str(agno_event.content) if getattr(agno_event, "content", None) else None,
174
+ timestamp=timestamp,
175
+ metadata=None,
176
+ )
177
+
178
+ # Unknown event - create a generic base event
179
+ return BaseAgentRunEvent(
180
+ event=AgentRunEvent.RUN_CONTENT, # Default fallback
181
+ timestamp=timestamp,
182
+ metadata={"original_event_type": str(event_type)},
183
+ )
@@ -130,12 +130,6 @@ class BaseJobManager(abc.ABC, Generic[InputModelT, OutputModelT, SetupModelT]):
130
130
  required for the job manager to function.
131
131
  """
132
132
 
133
- async def stop(self) -> None:
134
- """Stop the job manager and clean up resources.
135
-
136
- Default no-op. Subclasses with external connections override.
137
- """
138
-
139
133
  @staticmethod
140
134
  async def job_specific_callback(
141
135
  callback: Callable[[str, DataModel | ModuleCodeModel], Coroutine[Any, Any, None]],
@@ -285,7 +285,10 @@ class SingleJobManager(BaseJobManager[InputModelT, OutputModelT, SetupModelT]):
285
285
  if session.cancelled:
286
286
  break
287
287
 
288
- yield _stream()
288
+ try:
289
+ yield _stream()
290
+ finally:
291
+ session.close_stream()
289
292
 
290
293
  async def create_module_instance_job(
291
294
  self,