digitalkin 1.0.4.dev0__tar.gz → 1.0.4.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 (262) hide show
  1. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/PKG-INFO +1 -1
  2. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/pyproject.toml +1 -1
  3. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/__version__.py +1 -1
  4. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/setup/default_setup.py +3 -0
  5. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/setup/grpc_setup.py +7 -2
  6. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/setup_content_validator.py +41 -0
  7. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin.egg-info/PKG-INFO +1 -1
  8. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/LICENSE +0 -0
  9. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/README.md +0 -0
  10. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/base_server/__init__.py +0 -0
  11. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/base_server/mock/__init__.py +0 -0
  12. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/base_server/mock/mock_pb2.py +0 -0
  13. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  14. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/base_server/server_async_insecure.py +0 -0
  15. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/base_server/server_async_secure.py +0 -0
  16. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/base_server/server_sync_insecure.py +0 -0
  17. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/base_server/server_sync_secure.py +0 -0
  18. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/__init__.py +0 -0
  19. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/echo_module.py +0 -0
  20. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/models/__init__.py +0 -0
  21. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/models/input.py +0 -0
  22. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/models/output.py +0 -0
  23. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/models/secret.py +0 -0
  24. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/models/setup.py +0 -0
  25. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/server.py +0 -0
  26. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/triggers/__init__.py +0 -0
  27. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/bench_module/triggers/message_trigger.py +0 -0
  28. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/modules/__init__.py +0 -0
  29. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/modules/archetype_with_tools_module.py +0 -0
  30. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/modules/cpu_intensive_module.py +0 -0
  31. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/modules/dynamic_setup_module.py +0 -0
  32. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/modules/minimal_llm_module.py +0 -0
  33. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/modules/text_transform_module.py +0 -0
  34. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  35. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  36. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  37. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  38. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  39. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/monitoring/tests/test_metrics.py +0 -0
  40. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/client.py +0 -0
  41. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/echo_module.py +0 -0
  42. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/models/__init__.py +0 -0
  43. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/models/input.py +0 -0
  44. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/models/output.py +0 -0
  45. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/models/secret.py +0 -0
  46. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/models/setup.py +0 -0
  47. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/server.py +0 -0
  48. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/triggers/__init__.py +0 -0
  49. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/redis_demo/triggers/message_trigger.py +0 -0
  50. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/services/filesystem_module.py +0 -0
  51. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/examples/services/storage_module.py +0 -0
  52. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/setup.cfg +0 -0
  53. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/__init__.py +0 -0
  54. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/__init__.py +0 -0
  55. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/__init__.py +0 -0
  56. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/agno_adapter.py +0 -0
  57. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/agui_tools.py +0 -0
  58. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/hitl.py +0 -0
  59. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/models.py +0 -0
  60. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/module_toolkit.py +0 -0
  61. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/__init__.py +0 -0
  62. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/base.py +0 -0
  63. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/chat_history.py +0 -0
  64. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/defaults.py +0 -0
  65. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/__init__.py +0 -0
  66. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/action.py +0 -0
  67. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/base.py +0 -0
  68. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/kins/__init__.py +0 -0
  69. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/kins/action.py +0 -0
  70. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/kins/kit.py +0 -0
  71. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/loader/__init__.py +0 -0
  72. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/loader/action.py +0 -0
  73. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/loader/kit.py +0 -0
  74. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/services/__init__.py +0 -0
  75. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/services/action.py +0 -0
  76. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/services/kit.py +0 -0
  77. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/tools/__init__.py +0 -0
  78. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/tools/action.py +0 -0
  79. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/registry/tools/kit.py +0 -0
  80. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/community/agno/toolkits/user_profile.py +0 -0
  81. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/__init__.py +0 -0
  82. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/common/__init__.py +0 -0
  83. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/common/factories.py +0 -0
  84. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/exceptions.py +0 -0
  85. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/job_manager/__init__.py +0 -0
  86. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
  87. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
  88. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/profiling/__init__.py +0 -0
  89. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/profiling/step_timer.py +0 -0
  90. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/profiling/task_profiler.py +0 -0
  91. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/resilience/__init__.py +0 -0
  92. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/resilience/bulkhead.py +0 -0
  93. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/resilience/task_supervisor.py +0 -0
  94. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/__init__.py +0 -0
  95. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  96. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  97. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/module_runner.py +0 -0
  98. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/redis/__init__.py +0 -0
  99. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/redis/proto_streams.py +0 -0
  100. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/redis/redis_client.py +0 -0
  101. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/redis/redis_idempotency.py +0 -0
  102. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/redis/redis_signal.py +0 -0
  103. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/redis/redis_state.py +0 -0
  104. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  105. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  106. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/core/task_manager/task_session.py +0 -0
  107. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/exceptions.py +0 -0
  108. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/__init__.py +0 -0
  109. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  110. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/exceptions.py +0 -0
  111. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/gateway_servicer.py +0 -0
  112. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/interceptors/__init__.py +0 -0
  113. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/interceptors/permission.py +0 -0
  114. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/interceptors/request_ids.py +0 -0
  115. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/m2m_call_registry.py +0 -0
  116. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/module_server.py +0 -0
  117. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
  118. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/stream_registry.py +0 -0
  119. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/stream_session.py +0 -0
  120. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  121. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/utils/circuit_breaker.py +0 -0
  122. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  123. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  124. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  125. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/grpc_servers/utils/validators.py +0 -0
  126. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/logger.py +0 -0
  127. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/mixins/__init__.py +0 -0
  128. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/mixins/agui_mixin.py +0 -0
  129. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/mixins/base_mixin.py +0 -0
  130. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/mixins/cost_mixin.py +0 -0
  131. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  132. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  133. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/mixins/logger_mixin.py +0 -0
  134. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/mixins/storage_mixin.py +0 -0
  135. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/__init__.py +0 -0
  136. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/core/__init__.py +0 -0
  137. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/core/job_manager_models.py +0 -0
  138. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/core/redis.py +0 -0
  139. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/core/task_monitor.py +0 -0
  140. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/events/__init__.py +0 -0
  141. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/events/agent_events.py +0 -0
  142. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  143. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/grpc_servers/circuit_breaker.py +0 -0
  144. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/grpc_servers/m2m.py +0 -0
  145. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/grpc_servers/models.py +0 -0
  146. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/grpc_servers/stream_error_codes.py +0 -0
  147. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/grpc_servers/types.py +0 -0
  148. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/__init__.py +0 -0
  149. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/ag_ui.py +0 -0
  150. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/base_types.py +0 -0
  151. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/loaded_tools.py +0 -0
  152. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/module.py +0 -0
  153. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/module_context.py +0 -0
  154. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/module_types.py +0 -0
  155. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/request_metadata.py +0 -0
  156. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/select_schema.py +0 -0
  157. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/setup_types.py +0 -0
  158. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/tool_cache.py +0 -0
  159. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/tool_reference.py +0 -0
  160. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/module/utility.py +0 -0
  161. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/services/__init__.py +0 -0
  162. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/services/cost.py +0 -0
  163. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/services/registry.py +0 -0
  164. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/services/services.py +0 -0
  165. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/services/storage.py +0 -0
  166. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/__init__.py +0 -0
  167. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/gateway.py +0 -0
  168. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/grpc_client.py +0 -0
  169. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/log.py +0 -0
  170. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/module.py +0 -0
  171. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/profiling.py +0 -0
  172. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/queue.py +0 -0
  173. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/redis.py +0 -0
  174. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/registry.py +0 -0
  175. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/resilience.py +0 -0
  176. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/server/__init__.py +0 -0
  177. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/server/channel.py +0 -0
  178. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/server/grpc.py +0 -0
  179. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/server/server.py +0 -0
  180. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/server/servicer.py +0 -0
  181. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/task_manager.py +0 -0
  182. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/utils/__init__.py +0 -0
  183. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/settings/utils/channel.py +0 -0
  184. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/utils/__init__.py +0 -0
  185. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/models/utils/dynamic_schema.py +0 -0
  186. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/__init__.py +0 -0
  187. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/_base_module.py +0 -0
  188. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/archetype_module.py +0 -0
  189. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/tool_module.py +0 -0
  190. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/trigger_handler.py +0 -0
  191. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/triggers/__init__.py +0 -0
  192. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  193. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  194. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  195. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/py.typed +0 -0
  196. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/__init__.py +0 -0
  197. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/base_strategy.py +0 -0
  198. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/communication/__init__.py +0 -0
  199. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  200. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/communication/default_communication.py +0 -0
  201. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/communication/exceptions.py +0 -0
  202. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/communication/grpc_communication.py +0 -0
  203. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/cost/__init__.py +0 -0
  204. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  205. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/cost/default_cost.py +0 -0
  206. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/cost/exceptions.py +0 -0
  207. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  208. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/filesystem/__init__.py +0 -0
  209. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  210. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/filesystem/exceptions.py +0 -0
  211. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  212. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  213. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/identity/__init__.py +0 -0
  214. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/identity/default_identity.py +0 -0
  215. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  216. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/registry/__init__.py +0 -0
  217. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/registry/default_registry.py +0 -0
  218. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/registry/exceptions.py +0 -0
  219. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  220. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/registry/registry_models.py +0 -0
  221. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  222. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/secret/__init__.py +0 -0
  223. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/secret/default_secret.py +0 -0
  224. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/secret/exceptions.py +0 -0
  225. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/secret/grpc_secret.py +0 -0
  226. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/secret/secret_strategy.py +0 -0
  227. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/services_config.py +0 -0
  228. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/services_models.py +0 -0
  229. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/setup/__init__.py +0 -0
  230. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/setup/exceptions.py +0 -0
  231. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  232. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/storage/__init__.py +0 -0
  233. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/storage/default_storage.py +0 -0
  234. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/storage/exceptions.py +0 -0
  235. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  236. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  237. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/task_manager/__init__.py +0 -0
  238. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/task_manager/default_task_manager.py +0 -0
  239. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/task_manager/exceptions.py +0 -0
  240. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/task_manager/redis_task_manager.py +0 -0
  241. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/task_manager/task_manager_strategy.py +0 -0
  242. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/user_profile/__init__.py +0 -0
  243. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  244. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/user_profile/exceptions.py +0 -0
  245. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  246. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  247. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/__init__.py +0 -0
  248. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/arg_parser.py +0 -0
  249. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/conditional_schema.py +0 -0
  250. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/development_mode_action.py +0 -0
  251. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/dynamic_schema.py +0 -0
  252. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/exceptions.py +0 -0
  253. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/json_structure.py +0 -0
  254. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  255. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/package_discover.py +0 -0
  256. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/proto_utils.py +0 -0
  257. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin/utils/schema_splitter.py +0 -0
  258. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin.egg-info/SOURCES.txt +0 -0
  259. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  260. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin.egg-info/requires.txt +0 -0
  261. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/src/digitalkin.egg-info/top_level.txt +0 -0
  262. {digitalkin-1.0.4.dev0 → digitalkin-1.0.4.dev1}/tests/test_exceptions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 1.0.4.dev0
3
+ Version: 1.0.4.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
@@ -41,7 +41,7 @@
41
41
  "pydantic>=2.12.4",
42
42
  "redis[hiredis]>=7.4.0,<9",
43
43
  ]
44
- version = "1.0.4.dev0"
44
+ version = "1.0.4.dev1"
45
45
 
46
46
  [project.optional-dependencies]
47
47
  agno = [ "agno>=2.6" ]
@@ -5,4 +5,4 @@ from importlib.metadata import PackageNotFoundError, version
5
5
  try:
6
6
  __version__ = version("digitalkin")
7
7
  except PackageNotFoundError:
8
- __version__ = "1.0.4.dev0"
8
+ __version__ = "1.0.4.dev1"
@@ -18,6 +18,7 @@ from digitalkin.services.setup.setup_strategy import (
18
18
  SetupVersionPage,
19
19
  )
20
20
  from digitalkin.utils.json_structure import JsonStructure
21
+ from digitalkin.utils.setup_content_validator import SetupContentValidator
21
22
 
22
23
 
23
24
  class DefaultSetup(SetupStrategy):
@@ -101,6 +102,7 @@ class DefaultSetup(SetupStrategy):
101
102
  Raises:
102
103
  ValueError: If name or content is invalid.
103
104
  """
105
+ SetupContentValidator.reject_oversized_output_format_spec(setup_dict.get("content") or {})
104
106
  setup_id = self._new_id()
105
107
  try:
106
108
  setup = SetupData(
@@ -158,6 +160,7 @@ class DefaultSetup(SetupStrategy):
158
160
  if not name or not isinstance(content, dict):
159
161
  msg = "setup_id, name and content (object) are required"
160
162
  raise ValueError(msg)
163
+ SetupContentValidator.reject_oversized_output_format_spec(content)
161
164
  setup.name = name
162
165
  # A new revision rather than an in-place edit, matching UpdateSetup on the wire.
163
166
  history = self.versions.setdefault(setup.id, [setup.current_setup_version])
@@ -20,6 +20,7 @@ from digitalkin.services.setup.exceptions import SetupServiceError
20
20
  from digitalkin.services.setup.setup_strategy import SetupData, SetupStrategy, SetupVersionData, SetupVersionPage
21
21
  from digitalkin.utils.json_structure import JsonStructure
22
22
  from digitalkin.utils.proto_utils import ProtoUtils
23
+ from digitalkin.utils.setup_content_validator import SetupContentValidator
23
24
 
24
25
 
25
26
  class GrpcSetup(SetupStrategy, GrpcClientWrapper):
@@ -191,13 +192,16 @@ class GrpcSetup(SetupStrategy, GrpcClientWrapper):
191
192
  The created setup with its initial version and structure.
192
193
 
193
194
  Raises:
194
- ValueError: If name or content is missing.
195
+ ValueError: If name or content is missing, or output_format_spec is oversized.
195
196
  ServerError: If gRPC operation fails.
196
197
  SetupServiceError: If the server reports failure or an unexpected error occurs.
197
198
  """
198
199
  if not setup_dict.get("name") or not isinstance(setup_dict.get("content"), dict):
199
200
  msg = "name and content (object) are required"
200
201
  raise ValueError(msg)
202
+ # Outside handle_grpc_errors: an input guard must stay a ValueError, not become a
203
+ # SetupServiceError via the catch-all.
204
+ SetupContentValidator.reject_oversized_output_format_spec(setup_dict["content"])
201
205
  async with self.handle_grpc_errors("Setup Creation"):
202
206
  content_struct = Struct()
203
207
  content_struct.update(setup_dict["content"])
@@ -235,7 +239,7 @@ class GrpcSetup(SetupStrategy, GrpcClientWrapper):
235
239
  The updated setup with its current version and structure.
236
240
 
237
241
  Raises:
238
- ValueError: If setup_id, name or content is missing.
242
+ ValueError: If setup_id, name or content is missing, or output_format_spec is oversized.
239
243
  ServerError: If gRPC operation fails.
240
244
  SetupServiceError: If the server reports failure or an unexpected error occurs.
241
245
  """
@@ -246,6 +250,7 @@ class GrpcSetup(SetupStrategy, GrpcClientWrapper):
246
250
  ):
247
251
  msg = "setup_id, name and content (object) are required"
248
252
  raise ValueError(msg)
253
+ SetupContentValidator.reject_oversized_output_format_spec(setup_dict["content"])
249
254
  async with self.handle_grpc_errors("Setup Update"):
250
255
  content_struct = Struct()
251
256
  content_struct.update(setup_dict["content"])
@@ -39,6 +39,8 @@ class SetupContentValidator:
39
39
  _STRICT_SCALARS: ClassVar[tuple[type, ...]] = (int, float, bool)
40
40
  _FIRST_PRINTABLE: ClassVar[int] = 0x20 # code points below this are C0 control characters.
41
41
  _LAST_BMP: ClassVar[int] = 0xFFFF # code points above this are astral (non-BMP, e.g. emoji).
42
+ _OUTPUT_FORMAT_SPEC_KEY: ClassVar[str] = "output_format_spec"
43
+ _OUTPUT_FORMAT_SPEC_MAX: ClassVar[int] = 4096 # at or past this the written setup is unusable.
42
44
  _NUMERIC_CONSTRAINTS: ClassVar[dict[str, str]] = {
43
45
  "minimum": "ge",
44
46
  "maximum": "le",
@@ -113,6 +115,45 @@ class SetupContentValidator:
113
115
  stack.extend((path, item) for item in node)
114
116
  return content
115
117
 
118
+ @classmethod
119
+ def reject_oversized_output_format_spec(cls, content: dict[str, Any]) -> dict[str, Any]:
120
+ """Refuse an ``output_format_spec`` that reaches the length the setup cannot carry.
121
+
122
+ The write itself succeeds, so the breakage surfaces later as an unusable setup with no
123
+ diagnostic pointing back at the field. Reject up front, naming the path and the actual
124
+ size. Recurses through nested objects and arrays; a non-string value is left to the
125
+ schema check, which owns typing.
126
+
127
+ Args:
128
+ content: The setup ``content`` about to be written.
129
+
130
+ Returns:
131
+ The content unchanged when every ``output_format_spec`` fits.
132
+
133
+ Raises:
134
+ ValueError: An ``output_format_spec`` string is at or over the limit.
135
+ """
136
+ stack: list[tuple[str, Any]] = [("", content)]
137
+ while stack:
138
+ path, node = stack.pop()
139
+ if isinstance(node, dict):
140
+ for key, value in node.items():
141
+ where = f"{path}.{key}" if path else key
142
+ if (
143
+ key == cls._OUTPUT_FORMAT_SPEC_KEY
144
+ and isinstance(value, str)
145
+ and len(value) >= cls._OUTPUT_FORMAT_SPEC_MAX
146
+ ):
147
+ msg = (
148
+ f"content field {where!r} is {len(value)} characters; it must stay under "
149
+ f"{cls._OUTPUT_FORMAT_SPEC_MAX} or the setup breaks"
150
+ )
151
+ raise ValueError(msg)
152
+ stack.append((where, value))
153
+ elif isinstance(node, list):
154
+ stack.extend((path, item) for item in node)
155
+ return content
156
+
116
157
  @classmethod
117
158
  def validate(cls, content: dict[str, Any], schema: dict[str, Any]) -> None:
118
159
  """Validate ``content`` against ``schema``.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 1.0.4.dev0
3
+ Version: 1.0.4.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
File without changes