digitalkin 0.3.5.dev5__tar.gz → 0.3.5.dev7__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 (166) hide show
  1. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/PKG-INFO +1 -1
  2. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/pyproject.toml +1 -1
  3. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/__version__.py +1 -1
  4. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/community/agno/__init__.py +2 -2
  5. digitalkin-0.3.5.dev7/src/digitalkin/community/agno/agno_adapter.py +330 -0
  6. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/agui_mixin.py +1 -1
  7. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin.egg-info/PKG-INFO +1 -1
  8. digitalkin-0.3.5.dev5/src/digitalkin/community/agno/agno_adapter.py +0 -188
  9. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/LICENSE +0 -0
  10. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/README.md +0 -0
  11. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/base_server/__init__.py +0 -0
  12. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/base_server/mock/__init__.py +0 -0
  13. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/base_server/mock/mock_pb2.py +0 -0
  14. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  15. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/base_server/server_async_insecure.py +0 -0
  16. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/base_server/server_async_secure.py +0 -0
  17. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/base_server/server_sync_insecure.py +0 -0
  18. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/base_server/server_sync_secure.py +0 -0
  19. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/modules/__init__.py +0 -0
  20. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/modules/archetype_with_tools_module.py +0 -0
  21. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/modules/cpu_intensive_module.py +0 -0
  22. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/modules/dynamic_setup_module.py +0 -0
  23. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/modules/minimal_llm_module.py +0 -0
  24. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/modules/text_transform_module.py +0 -0
  25. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  26. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  27. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  28. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  29. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  30. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/monitoring/tests/test_metrics.py +0 -0
  31. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/services/filesystem_module.py +0 -0
  32. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/examples/services/storage_module.py +0 -0
  33. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/setup.cfg +0 -0
  34. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/__init__.py +0 -0
  35. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/community/__init__.py +0 -0
  36. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/__init__.py +0 -0
  37. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/common/__init__.py +0 -0
  38. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/common/factories.py +0 -0
  39. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/job_manager/__init__.py +0 -0
  40. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
  41. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
  42. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/job_manager/taskiq_broker.py +0 -0
  43. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/job_manager/taskiq_job_manager.py +0 -0
  44. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/profiling/__init__.py +0 -0
  45. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/profiling/asyncio_monitor.py +0 -0
  46. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/profiling/task_profiler.py +0 -0
  47. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/task_manager/__init__.py +0 -0
  48. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  49. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  50. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  51. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  52. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/core/task_manager/task_session.py +0 -0
  53. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/__init__.py +0 -0
  54. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  55. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/module_server.py +0 -0
  56. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
  57. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  58. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/utils/exceptions.py +0 -0
  59. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  60. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  61. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  62. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/logger.py +0 -0
  63. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/__init__.py +0 -0
  64. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/base_mixin.py +0 -0
  65. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/callback_mixin.py +0 -0
  66. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/chat_history_mixin.py +0 -0
  67. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/cost_mixin.py +0 -0
  68. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  69. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  70. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/logger_mixin.py +0 -0
  71. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/mixins/storage_mixin.py +0 -0
  72. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/__init__.py +0 -0
  73. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/core/__init__.py +0 -0
  74. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/core/job_manager_models.py +0 -0
  75. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/core/task_monitor.py +0 -0
  76. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/events/__init__.py +0 -0
  77. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/events/agent_events.py +0 -0
  78. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  79. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/grpc_servers/models.py +0 -0
  80. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/grpc_servers/types.py +0 -0
  81. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/__init__.py +0 -0
  82. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/ag_ui.py +0 -0
  83. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/base_types.py +0 -0
  84. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/module.py +0 -0
  85. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/module_context.py +0 -0
  86. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/module_types.py +0 -0
  87. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/request_metadata.py +0 -0
  88. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/select_schema.py +0 -0
  89. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/setup_types.py +0 -0
  90. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/tool_cache.py +0 -0
  91. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/tool_reference.py +0 -0
  92. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/module/utility.py +0 -0
  93. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/services/__init__.py +0 -0
  94. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/services/cost.py +0 -0
  95. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/services/registry.py +0 -0
  96. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/models/services/storage.py +0 -0
  97. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/__init__.py +0 -0
  98. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/_base_module.py +0 -0
  99. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/archetype_module.py +0 -0
  100. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/tool_module.py +0 -0
  101. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/trigger_handler.py +0 -0
  102. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/triggers/__init__.py +0 -0
  103. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  104. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  105. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  106. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/py.typed +0 -0
  107. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/__init__.py +0 -0
  108. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/agent/__init__.py +0 -0
  109. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/agent/agent_strategy.py +0 -0
  110. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/agent/default_agent.py +0 -0
  111. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/base_strategy.py +0 -0
  112. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/communication/__init__.py +0 -0
  113. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  114. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/communication/default_communication.py +0 -0
  115. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/communication/grpc_communication.py +0 -0
  116. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/cost/__init__.py +0 -0
  117. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  118. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/cost/default_cost.py +0 -0
  119. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  120. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/filesystem/__init__.py +0 -0
  121. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  122. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  123. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  124. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/identity/__init__.py +0 -0
  125. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/identity/default_identity.py +0 -0
  126. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  127. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/registry/__init__.py +0 -0
  128. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/registry/default_registry.py +0 -0
  129. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/registry/exceptions.py +0 -0
  130. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  131. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/registry/registry_models.py +0 -0
  132. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  133. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/services_config.py +0 -0
  134. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/services_models.py +0 -0
  135. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/setup/__init__.py +0 -0
  136. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/setup/default_setup.py +0 -0
  137. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  138. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  139. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/snapshot/__init__.py +0 -0
  140. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/snapshot/default_snapshot.py +0 -0
  141. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/snapshot/snapshot_strategy.py +0 -0
  142. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/storage/__init__.py +0 -0
  143. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/storage/default_storage.py +0 -0
  144. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  145. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  146. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/task_manager/__init__.py +0 -0
  147. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/task_manager/default_task_manager.py +0 -0
  148. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/task_manager/grpc_task_manager.py +0 -0
  149. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/task_manager/task_manager_strategy.py +0 -0
  150. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/user_profile/__init__.py +0 -0
  151. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  152. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  153. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  154. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/__init__.py +0 -0
  155. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/arg_parser.py +0 -0
  156. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/conditional_schema.py +0 -0
  157. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/development_mode_action.py +0 -0
  158. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/dynamic_schema.py +0 -0
  159. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  160. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/package_discover.py +0 -0
  161. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/proto_utils.py +0 -0
  162. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin/utils/schema_splitter.py +0 -0
  163. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin.egg-info/SOURCES.txt +0 -0
  164. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  165. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/src/digitalkin.egg-info/requires.txt +0 -0
  166. {digitalkin-0.3.5.dev5 → digitalkin-0.3.5.dev7}/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.dev5
3
+ Version: 0.3.5.dev7
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.3.5.dev5"
38
+ version = "0.3.5.dev7"
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.3.5.dev5"
8
+ __version__ = "0.3.5.dev7"
@@ -4,6 +4,6 @@ This module provides utilities and adapters for integrating Agno agents
4
4
  with the DigitalKin SDK.
5
5
  """
6
6
 
7
- from digitalkin.community.agno.agno_adapter import to_digitalkin_event
7
+ from digitalkin.community.agno.agno_adapter import AgnoStreamAdapter
8
8
 
9
- __all__ = ["to_digitalkin_event"]
9
+ __all__ = ["AgnoStreamAdapter"]
@@ -0,0 +1,330 @@
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
+ import logging
10
+ from typing import Any
11
+
12
+ from digitalkin.models.events import (
13
+ AgentRunEvent,
14
+ BaseAgentRunEvent,
15
+ ReasoningCompletedEvent,
16
+ ReasoningContentDeltaEvent,
17
+ ReasoningStartedEvent,
18
+ ReasoningStepEvent,
19
+ RunCompletedEvent,
20
+ RunContentEvent,
21
+ RunErrorEvent,
22
+ RunStartedEvent,
23
+ ToolCallCompletedEvent,
24
+ ToolCallErrorEvent,
25
+ ToolCallStartedEvent,
26
+ ToolInfo,
27
+ )
28
+
29
+ logger = logging.getLogger(__name__)
30
+
31
+
32
+ class AgnoStreamAdapter:
33
+ """Stateful converter: Agno streaming events -> DigitalKin events.
34
+
35
+ Tracks reasoning state so that ``reasoning_content`` arriving on
36
+ ``RunEvent.run_content`` events is automatically wrapped in proper
37
+ ReasoningStarted / ReasoningContentDelta / ReasoningCompleted events.
38
+
39
+ Usage::
40
+
41
+ adapter = AgnoStreamAdapter()
42
+ async for raw_event in agent.arun(..., stream=True, stream_events=True):
43
+ for event in adapter.to_digitalkin_events(raw_event):
44
+ await send(event)
45
+ for event in adapter.flush():
46
+ await send(event)
47
+ """
48
+
49
+ def __init__(self) -> None:
50
+ """Initialize the AgnoStreamAdapter.
51
+
52
+ This adapter tracks reasoning state to properly handle reasoning_content
53
+ that arrives on RunEvent.run_content events.
54
+ """
55
+ self._reasoning_active: bool = False
56
+
57
+ def to_digitalkin_events(self, agno_event: Any) -> list[BaseAgentRunEvent]: # noqa: C901, PLR0911, PLR0912
58
+ """Convert one Agno event into one or more DigitalKin events.
59
+
60
+ Args:
61
+ agno_event: Event from Agno's streaming API.
62
+
63
+ Returns:
64
+ List of corresponding DigitalKin events (may be empty).
65
+
66
+ Raises:
67
+ ImportError: If the optional 'agno' dependency is not installed.
68
+ """
69
+ try:
70
+ from agno.run.agent import RunEvent # pylint: disable=C0415 # pyright: ignore[reportMissingImports]
71
+ except ImportError as exc:
72
+ message = "The 'agno' package is required to use AgnoStreamAdapter. Install it with: pip install agno"
73
+ raise ImportError(message) from exc
74
+
75
+ event_type = agno_event.event
76
+ event_types = agno_event.events
77
+
78
+ logger.info("[DK STREAM-DEBUG => agno_adapter] Converting Agno event type: %s", event_type)
79
+ logger.info("[DK STREAM-DEBUG => agno_adapter event_types] Converting Agno event types: %s", event_types)
80
+
81
+ timestamp = getattr(agno_event, "timestamp", None)
82
+
83
+ # ── Run Lifecycle ────────────────────────────────────────────────
84
+
85
+ if event_type == RunEvent.run_started:
86
+ return [
87
+ RunStartedEvent(
88
+ event=AgentRunEvent.RUN_STARTED,
89
+ run_id=getattr(agno_event, "run_id", None),
90
+ thread_id=getattr(agno_event, "thread_id", None),
91
+ timestamp=timestamp,
92
+ metadata=None,
93
+ )
94
+ ]
95
+
96
+ if event_type == RunEvent.run_content:
97
+ return self._handle_run_content(agno_event, timestamp)
98
+
99
+ if event_type == RunEvent.run_completed:
100
+ return [
101
+ RunCompletedEvent(
102
+ event=AgentRunEvent.RUN_COMPLETED,
103
+ run_id=getattr(agno_event, "run_id", None),
104
+ final_content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
105
+ usage=None,
106
+ timestamp=timestamp,
107
+ metadata=None,
108
+ )
109
+ ]
110
+
111
+ if event_type == RunEvent.run_error:
112
+ return [
113
+ RunErrorEvent(
114
+ event=AgentRunEvent.RUN_ERROR,
115
+ error_type=getattr(agno_event, "error_type", None),
116
+ content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
117
+ error_details=None,
118
+ timestamp=timestamp,
119
+ metadata=None,
120
+ )
121
+ ]
122
+
123
+ # ── Explicit Reasoning Events (native Agno reasoning models) ────
124
+
125
+ if event_type == RunEvent.reasoning_started:
126
+ self._reasoning_active = True
127
+ logger.info("[DK STREAM-DEBUG => agno_adapter] Reasoning started (explicit)")
128
+ return [
129
+ ReasoningStartedEvent(
130
+ event=AgentRunEvent.REASONING_STARTED,
131
+ timestamp=timestamp,
132
+ metadata=None,
133
+ )
134
+ ]
135
+
136
+ if event_type == RunEvent.reasoning_content_delta:
137
+ reasoning_content = getattr(agno_event, "reasoning_content", "")
138
+ return [
139
+ ReasoningContentDeltaEvent(
140
+ event=AgentRunEvent.REASONING_CONTENT_DELTA,
141
+ delta=reasoning_content,
142
+ timestamp=timestamp,
143
+ metadata=None,
144
+ )
145
+ ]
146
+
147
+ if event_type == RunEvent.reasoning_step:
148
+ reasoning_content = getattr(agno_event, "reasoning_content", "")
149
+ return [
150
+ ReasoningStepEvent(
151
+ event=AgentRunEvent.REASONING_STEP,
152
+ delta=reasoning_content,
153
+ timestamp=timestamp,
154
+ metadata=None,
155
+ )
156
+ ]
157
+
158
+ if event_type == RunEvent.reasoning_completed:
159
+ self._reasoning_active = False
160
+ logger.info("[DK STREAM-DEBUG => agno_adapter] Reasoning completed (explicit)")
161
+ return [
162
+ ReasoningCompletedEvent(
163
+ event=AgentRunEvent.REASONING_COMPLETED,
164
+ timestamp=timestamp,
165
+ metadata=None,
166
+ )
167
+ ]
168
+
169
+ # ── Tool Call Events ─────────────────────────────────────────────
170
+
171
+ if event_type == RunEvent.tool_call_started:
172
+ tool = getattr(agno_event, "tool", None)
173
+ tool_info = None
174
+ if tool:
175
+ tool_info = ToolInfo(
176
+ tool_call_id=getattr(tool, "tool_call_id", None),
177
+ tool_name=getattr(tool, "tool_name", None),
178
+ tool_args=getattr(tool, "tool_args", None),
179
+ result=None,
180
+ )
181
+ return [
182
+ ToolCallStartedEvent(
183
+ event=AgentRunEvent.TOOL_CALL_STARTED,
184
+ tool=tool_info,
185
+ timestamp=timestamp,
186
+ metadata=None,
187
+ )
188
+ ]
189
+
190
+ if event_type == RunEvent.tool_call_completed:
191
+ tool = getattr(agno_event, "tool", None)
192
+ tool_info = None
193
+ if tool:
194
+ tool_info = ToolInfo(
195
+ tool_call_id=getattr(tool, "tool_call_id", None),
196
+ tool_name=getattr(tool, "tool_name", None),
197
+ tool_args=getattr(tool, "tool_args", None),
198
+ result=getattr(tool, "result", None),
199
+ )
200
+ return [
201
+ ToolCallCompletedEvent(
202
+ event=AgentRunEvent.TOOL_CALL_COMPLETED,
203
+ tool=tool_info,
204
+ content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
205
+ timestamp=timestamp,
206
+ metadata=None,
207
+ )
208
+ ]
209
+
210
+ if event_type == RunEvent.tool_call_error:
211
+ tool = getattr(agno_event, "tool", None)
212
+ tool_info = None
213
+ if tool:
214
+ tool_info = ToolInfo(
215
+ tool_call_id=getattr(tool, "tool_call_id", None),
216
+ tool_name=getattr(tool, "tool_name", None),
217
+ tool_args=None,
218
+ result=None,
219
+ )
220
+ return [
221
+ ToolCallErrorEvent(
222
+ event=AgentRunEvent.TOOL_CALL_ERROR,
223
+ tool=tool_info,
224
+ error_message=str(agno_event.content) if getattr(agno_event, "content", None) else None,
225
+ timestamp=timestamp,
226
+ metadata=None,
227
+ )
228
+ ]
229
+
230
+ # Unknown event - skip
231
+ logger.debug("Skipping unhandled Agno event type: %s", event_type)
232
+ return []
233
+
234
+ def flush(self) -> list[BaseAgentRunEvent]:
235
+ """Emit closing events if reasoning is still active at end of stream.
236
+
237
+ Returns:
238
+ List of closing events (empty if no active reasoning).
239
+ """
240
+ events: list[BaseAgentRunEvent] = []
241
+ if self._reasoning_active:
242
+ logger.info("[DK STREAM-DEBUG => agno_adapter] Flushing: closing active reasoning")
243
+ events.append(
244
+ ReasoningCompletedEvent(
245
+ event=AgentRunEvent.REASONING_COMPLETED,
246
+ timestamp=None,
247
+ metadata=None,
248
+ )
249
+ )
250
+ self._reasoning_active = False
251
+ return events
252
+
253
+ # ── Private Helpers ──────────────────────────────────────────────────
254
+
255
+ def _handle_run_content(self, agno_event: Any, timestamp: Any) -> list[BaseAgentRunEvent]:
256
+ """Handle RunEvent.run_content with reasoning_content awareness.
257
+
258
+ When reasoning_content is present on a run_content event (native model
259
+ reasoning via LiteLLM/proxy), this method emits proper reasoning
260
+ lifecycle events instead of plain RunContentEvent.
261
+
262
+ Args:
263
+ agno_event: The Agno run_content event.
264
+ timestamp: The timestamp for the event.
265
+
266
+ Returns:
267
+ List of DigitalKin events (reasoning events or run content event).
268
+ """
269
+ events: list[BaseAgentRunEvent] = []
270
+
271
+ reasoning_content = getattr(agno_event, "reasoning_content", None)
272
+ content = agno_event.content
273
+
274
+ # ── Reasoning content present ────────────────────────────────
275
+ if reasoning_content:
276
+ # Auto-open reasoning sequence on first reasoning chunk
277
+ if not self._reasoning_active:
278
+ logger.info("[DK STREAM-DEBUG => agno_adapter] Reasoning auto-started from run_content")
279
+ events.append(
280
+ ReasoningStartedEvent(
281
+ event=AgentRunEvent.REASONING_STARTED,
282
+ timestamp=timestamp,
283
+ metadata=None,
284
+ )
285
+ )
286
+ self._reasoning_active = True
287
+
288
+ logger.info(
289
+ "[DK STREAM-DEBUG => agno_adapter] Reasoning content delta (len=%d)",
290
+ len(reasoning_content),
291
+ )
292
+ events.append(
293
+ ReasoningContentDeltaEvent(
294
+ event=AgentRunEvent.REASONING_CONTENT_DELTA,
295
+ delta=reasoning_content,
296
+ timestamp=timestamp,
297
+ metadata=None,
298
+ )
299
+ )
300
+
301
+ # ── Text content present ─────────────────────────────────────
302
+ if content:
303
+ # Auto-close reasoning when text content starts
304
+ if self._reasoning_active:
305
+ logger.info("[DK STREAM-DEBUG => agno_adapter] Reasoning auto-completed (text content arrived)")
306
+ events.append(
307
+ ReasoningCompletedEvent(
308
+ event=AgentRunEvent.REASONING_COMPLETED,
309
+ timestamp=timestamp,
310
+ metadata=None,
311
+ )
312
+ )
313
+ self._reasoning_active = False
314
+
315
+ events.append(
316
+ RunContentEvent(
317
+ event=AgentRunEvent.RUN_CONTENT,
318
+ content=str(content),
319
+ reasoning_content=None,
320
+ content_type=None,
321
+ timestamp=timestamp,
322
+ metadata=None,
323
+ )
324
+ )
325
+
326
+ # Edge case: neither reasoning_content nor content
327
+ if not reasoning_content and not content:
328
+ logger.debug("[DK STREAM-DEBUG => agno_adapter] run_content with no content, skipping")
329
+
330
+ return events
@@ -93,7 +93,7 @@ class AgUiMixin:
93
93
  """
94
94
  event_type = event.event
95
95
 
96
- context.callbacks.logger.error(
96
+ context.callbacks.logger.debug(
97
97
  "Processing event: %s, content: %s",
98
98
  event_type,
99
99
  event.model_dump_json(indent=2),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 0.3.5.dev5
3
+ Version: 0.3.5.dev7
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
@@ -1,188 +0,0 @@
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
- import logging
10
- from typing import Any
11
-
12
- from digitalkin.models.events import (
13
- AgentRunEvent,
14
- BaseAgentRunEvent,
15
- ReasoningCompletedEvent,
16
- ReasoningContentDeltaEvent,
17
- ReasoningStartedEvent,
18
- ReasoningStepEvent,
19
- RunCompletedEvent,
20
- RunContentEvent,
21
- RunErrorEvent,
22
- RunStartedEvent,
23
- ToolCallCompletedEvent,
24
- ToolCallErrorEvent,
25
- ToolCallStartedEvent,
26
- ToolInfo,
27
- )
28
-
29
- logger = logging.getLogger(__name__)
30
-
31
-
32
- def to_digitalkin_event(agno_event: Any) -> BaseAgentRunEvent: # noqa: PLR0911, C901, PLR0912
33
- """Convert an Agno event to a DigitalKin framework-agnostic event.
34
-
35
- Args:
36
- agno_event: Event from Agno's streaming API.
37
-
38
- Returns:
39
- Corresponding DigitalKin BaseAgentRunEvent.
40
-
41
- Raises:
42
- ImportError: If the optional 'agno' dependency is not installed.
43
- ValueError: If the event type is not recognized.
44
- """
45
- try:
46
- from agno.run.agent import RunEvent # pylint: disable=C0415 # pyright: ignore[reportMissingImports]
47
- except ImportError as exc:
48
- message = "The 'agno' package is required to use agno_to_digitalkin_event. \
49
- Install it with: pip install agno"
50
- raise ImportError(message) from exc
51
-
52
- event_type = agno_event.event
53
-
54
- logger.info("[DK STREAM-DEBUG => agno_adapter] Converting Agno event type: %s", event_type)
55
-
56
- # Import timestamp if available
57
- timestamp = getattr(agno_event, "timestamp", None)
58
-
59
- if event_type == RunEvent.run_started:
60
- return RunStartedEvent(
61
- event=AgentRunEvent.RUN_STARTED,
62
- run_id=getattr(agno_event, "run_id", None),
63
- thread_id=getattr(agno_event, "thread_id", None),
64
- timestamp=timestamp,
65
- metadata=None,
66
- )
67
-
68
- if event_type == RunEvent.run_content:
69
- return RunContentEvent(
70
- event=AgentRunEvent.RUN_CONTENT,
71
- content=str(agno_event.content) if agno_event.content else None,
72
- reasoning_content=getattr(agno_event, "reasoning_content", None),
73
- content_type=None,
74
- timestamp=timestamp,
75
- metadata=None,
76
- )
77
-
78
- if event_type == RunEvent.run_completed:
79
- return RunCompletedEvent(
80
- event=AgentRunEvent.RUN_COMPLETED,
81
- run_id=getattr(agno_event, "run_id", None),
82
- final_content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
83
- usage=None,
84
- timestamp=timestamp,
85
- metadata=None,
86
- )
87
-
88
- if event_type == RunEvent.run_error:
89
- return RunErrorEvent(
90
- event=AgentRunEvent.RUN_ERROR,
91
- error_type=getattr(agno_event, "error_type", None),
92
- content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
93
- error_details=None,
94
- timestamp=timestamp,
95
- metadata=None,
96
- )
97
-
98
- if event_type == RunEvent.reasoning_started:
99
- return ReasoningStartedEvent(
100
- event=AgentRunEvent.REASONING_STARTED,
101
- timestamp=timestamp,
102
- metadata=None,
103
- )
104
-
105
- if event_type == RunEvent.reasoning_content_delta:
106
- reasoning_content = getattr(agno_event, "reasoning_content", "")
107
- return ReasoningContentDeltaEvent(
108
- event=AgentRunEvent.REASONING_CONTENT_DELTA,
109
- delta=reasoning_content,
110
- timestamp=timestamp,
111
- metadata=None,
112
- )
113
-
114
- if event_type == RunEvent.reasoning_step:
115
- reasoning_content = getattr(agno_event, "reasoning_content", "")
116
- return ReasoningStepEvent(
117
- event=AgentRunEvent.REASONING_STEP,
118
- delta=reasoning_content,
119
- timestamp=timestamp,
120
- metadata=None,
121
- )
122
-
123
- if event_type == RunEvent.reasoning_completed:
124
- return ReasoningCompletedEvent(
125
- event=AgentRunEvent.REASONING_COMPLETED,
126
- timestamp=timestamp,
127
- metadata=None,
128
- )
129
-
130
- if event_type == RunEvent.tool_call_started:
131
- tool = getattr(agno_event, "tool", None)
132
- tool_info = None
133
- if tool:
134
- tool_info = ToolInfo(
135
- tool_call_id=getattr(tool, "tool_call_id", None),
136
- tool_name=getattr(tool, "tool_name", None),
137
- tool_args=getattr(tool, "tool_args", None),
138
- result=None,
139
- )
140
- return ToolCallStartedEvent(
141
- event=AgentRunEvent.TOOL_CALL_STARTED,
142
- tool=tool_info,
143
- timestamp=timestamp,
144
- metadata=None,
145
- )
146
-
147
- if event_type == RunEvent.tool_call_completed:
148
- tool = getattr(agno_event, "tool", None)
149
- tool_info = None
150
- if tool:
151
- tool_info = ToolInfo(
152
- tool_call_id=getattr(tool, "tool_call_id", None),
153
- tool_name=getattr(tool, "tool_name", None),
154
- tool_args=getattr(tool, "tool_args", None),
155
- result=getattr(tool, "result", None),
156
- )
157
- return ToolCallCompletedEvent(
158
- event=AgentRunEvent.TOOL_CALL_COMPLETED,
159
- tool=tool_info,
160
- content=str(agno_event.content) if getattr(agno_event, "content", None) else None,
161
- timestamp=timestamp,
162
- metadata=None,
163
- )
164
-
165
- if event_type == RunEvent.tool_call_error:
166
- tool = getattr(agno_event, "tool", None)
167
- tool_info = None
168
- if tool:
169
- tool_info = ToolInfo(
170
- tool_call_id=getattr(tool, "tool_call_id", None),
171
- tool_name=getattr(tool, "tool_name", None),
172
- tool_args=None,
173
- result=None,
174
- )
175
- return ToolCallErrorEvent(
176
- event=AgentRunEvent.TOOL_CALL_ERROR,
177
- tool=tool_info,
178
- error_message=str(agno_event.content) if getattr(agno_event, "content", None) else None,
179
- timestamp=timestamp,
180
- metadata=None,
181
- )
182
-
183
- # Unknown event - create a generic base event
184
- return BaseAgentRunEvent(
185
- event=AgentRunEvent.RUN_CONTENT, # Default fallback
186
- timestamp=timestamp,
187
- metadata={"original_event_type": str(event_type)},
188
- )
File without changes