digitalkin 0.3.4.dev1__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 (167) hide show
  1. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/PKG-INFO +4 -3
  2. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/pyproject.toml +11 -10
  3. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/__version__.py +1 -1
  4. digitalkin-0.3.5.dev1/src/digitalkin/community/__init__.py +5 -0
  5. digitalkin-0.3.5.dev1/src/digitalkin/community/agno/__init__.py +5 -0
  6. digitalkin-0.3.5.dev1/src/digitalkin/community/agno/agno_adapter.py +183 -0
  7. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/job_manager/base_job_manager.py +0 -6
  8. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/job_manager/single_job_manager.py +4 -1
  9. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/job_manager/taskiq_broker.py +13 -211
  10. digitalkin-0.3.5.dev1/src/digitalkin/core/job_manager/taskiq_job_manager.py +477 -0
  11. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/task_session.py +0 -2
  12. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/module_server.py +0 -10
  13. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/module_servicer.py +3 -42
  14. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/__init__.py +2 -0
  15. digitalkin-0.3.5.dev1/src/digitalkin/mixins/agui_mixin.py +470 -0
  16. digitalkin-0.3.5.dev1/src/digitalkin/models/__init__.py +40 -0
  17. digitalkin-0.3.5.dev1/src/digitalkin/models/events/__init__.py +39 -0
  18. digitalkin-0.3.5.dev1/src/digitalkin/models/events/agent_events.py +136 -0
  19. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/grpc_servers/models.py +2 -18
  20. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/__init__.py +5 -0
  21. digitalkin-0.3.5.dev1/src/digitalkin/models/module/ag_ui.py +377 -0
  22. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/module_context.py +18 -2
  23. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/setup_types.py +13 -124
  24. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/tool_cache.py +45 -51
  25. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/tool_reference.py +9 -17
  26. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/_base_module.py +13 -38
  27. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin.egg-info/PKG-INFO +4 -3
  28. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin.egg-info/SOURCES.txt +7 -0
  29. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin.egg-info/requires.txt +3 -2
  30. digitalkin-0.3.4.dev1/src/digitalkin/core/job_manager/taskiq_job_manager.py +0 -659
  31. digitalkin-0.3.4.dev1/src/digitalkin/models/__init__.py +0 -8
  32. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/LICENSE +0 -0
  33. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/README.md +0 -0
  34. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/base_server/__init__.py +0 -0
  35. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/base_server/mock/__init__.py +0 -0
  36. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/base_server/mock/mock_pb2.py +0 -0
  37. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  38. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/base_server/server_async_insecure.py +0 -0
  39. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/base_server/server_async_secure.py +0 -0
  40. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/base_server/server_sync_insecure.py +0 -0
  41. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/base_server/server_sync_secure.py +0 -0
  42. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/modules/__init__.py +0 -0
  43. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/modules/archetype_with_tools_module.py +0 -0
  44. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/modules/cpu_intensive_module.py +0 -0
  45. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/modules/dynamic_setup_module.py +0 -0
  46. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/modules/minimal_llm_module.py +0 -0
  47. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/modules/text_transform_module.py +0 -0
  48. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  49. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  50. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  51. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  52. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  53. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/monitoring/tests/test_metrics.py +0 -0
  54. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/services/filesystem_module.py +0 -0
  55. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/examples/services/storage_module.py +0 -0
  56. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/setup.cfg +0 -0
  57. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/__init__.py +0 -0
  58. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/__init__.py +0 -0
  59. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/common/__init__.py +0 -0
  60. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/common/factories.py +0 -0
  61. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/job_manager/__init__.py +0 -0
  62. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/profiling/__init__.py +0 -0
  63. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/profiling/asyncio_monitor.py +0 -0
  64. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/profiling/task_profiler.py +0 -0
  65. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/__init__.py +0 -0
  66. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  67. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  68. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  69. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  70. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/__init__.py +0 -0
  71. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  72. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  73. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/exceptions.py +0 -0
  74. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  75. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  76. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  77. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/logger.py +0 -0
  78. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/base_mixin.py +0 -0
  79. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/callback_mixin.py +0 -0
  80. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/chat_history_mixin.py +0 -0
  81. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/cost_mixin.py +0 -0
  82. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  83. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  84. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/logger_mixin.py +0 -0
  85. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/mixins/storage_mixin.py +0 -0
  86. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/core/__init__.py +0 -0
  87. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/core/job_manager_models.py +0 -0
  88. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/core/task_monitor.py +0 -0
  89. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  90. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/grpc_servers/types.py +0 -0
  91. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/base_types.py +0 -0
  92. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/module.py +0 -0
  93. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/module_types.py +0 -0
  94. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/request_metadata.py +0 -0
  95. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/select_schema.py +0 -0
  96. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/module/utility.py +0 -0
  97. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/services/__init__.py +0 -0
  98. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/services/cost.py +0 -0
  99. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/services/registry.py +0 -0
  100. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/models/services/storage.py +0 -0
  101. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/__init__.py +0 -0
  102. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/archetype_module.py +0 -0
  103. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/tool_module.py +0 -0
  104. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/trigger_handler.py +0 -0
  105. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/triggers/__init__.py +0 -0
  106. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  107. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  108. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  109. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/py.typed +0 -0
  110. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/__init__.py +0 -0
  111. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/agent/__init__.py +0 -0
  112. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/agent/agent_strategy.py +0 -0
  113. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/agent/default_agent.py +0 -0
  114. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/base_strategy.py +0 -0
  115. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/communication/__init__.py +0 -0
  116. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  117. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/communication/default_communication.py +0 -0
  118. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/communication/grpc_communication.py +0 -0
  119. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/cost/__init__.py +0 -0
  120. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  121. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/cost/default_cost.py +0 -0
  122. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  123. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/filesystem/__init__.py +0 -0
  124. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  125. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  126. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  127. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/identity/__init__.py +0 -0
  128. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/identity/default_identity.py +0 -0
  129. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  130. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/__init__.py +0 -0
  131. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/default_registry.py +0 -0
  132. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/exceptions.py +0 -0
  133. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  134. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/registry_models.py +0 -0
  135. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  136. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/services_config.py +0 -0
  137. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/services_models.py +0 -0
  138. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/setup/__init__.py +0 -0
  139. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/setup/default_setup.py +0 -0
  140. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  141. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  142. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/snapshot/__init__.py +0 -0
  143. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/snapshot/default_snapshot.py +0 -0
  144. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/snapshot/snapshot_strategy.py +0 -0
  145. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/storage/__init__.py +0 -0
  146. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/storage/default_storage.py +0 -0
  147. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  148. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  149. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/task_manager/__init__.py +0 -0
  150. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/task_manager/default_task_manager.py +0 -0
  151. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/task_manager/grpc_task_manager.py +0 -0
  152. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/task_manager/task_manager_strategy.py +0 -0
  153. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/user_profile/__init__.py +0 -0
  154. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  155. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  156. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  157. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/__init__.py +0 -0
  158. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/arg_parser.py +0 -0
  159. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/conditional_schema.py +0 -0
  160. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/development_mode_action.py +0 -0
  161. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/dynamic_schema.py +0 -0
  162. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  163. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/package_discover.py +0 -0
  164. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/proto_utils.py +0 -0
  165. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin/utils/schema_splitter.py +0 -0
  166. {digitalkin-0.3.4.dev1 → digitalkin-0.3.5.dev1}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  167. {digitalkin-0.3.4.dev1 → 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.4.dev1
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"
@@ -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.4.dev1"
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.4.dev1"
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,