digitalkin 0.3.2.dev23__tar.gz → 0.3.2.dev25__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 (150) hide show
  1. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/PKG-INFO +2 -2
  2. digitalkin-0.3.2.dev25/pyproject.toml +279 -0
  3. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/__version__.py +1 -1
  4. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/tool_reference.py +34 -46
  5. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin.egg-info/PKG-INFO +2 -2
  6. digitalkin-0.3.2.dev23/pyproject.toml +0 -279
  7. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/LICENSE +0 -0
  8. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/README.md +0 -0
  9. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/base_server/__init__.py +0 -0
  10. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/base_server/mock/__init__.py +0 -0
  11. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/base_server/mock/mock_pb2.py +0 -0
  12. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  13. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/base_server/server_async_insecure.py +0 -0
  14. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/base_server/server_async_secure.py +0 -0
  15. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/base_server/server_sync_insecure.py +0 -0
  16. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/base_server/server_sync_secure.py +0 -0
  17. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/modules/__init__.py +0 -0
  18. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/modules/archetype_with_tools_module.py +0 -0
  19. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/modules/cpu_intensive_module.py +0 -0
  20. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/modules/dynamic_setup_module.py +0 -0
  21. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/modules/minimal_llm_module.py +0 -0
  22. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/modules/text_transform_module.py +0 -0
  23. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  24. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  25. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  26. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  27. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  28. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/monitoring/tests/test_metrics.py +0 -0
  29. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/services/filesystem_module.py +0 -0
  30. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/examples/services/storage_module.py +0 -0
  31. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/setup.cfg +0 -0
  32. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/__init__.py +0 -0
  33. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/__init__.py +0 -0
  34. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/common/__init__.py +0 -0
  35. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/common/factories.py +0 -0
  36. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/job_manager/__init__.py +0 -0
  37. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
  38. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
  39. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/job_manager/taskiq_broker.py +0 -0
  40. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/job_manager/taskiq_job_manager.py +0 -0
  41. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/task_manager/__init__.py +0 -0
  42. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  43. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  44. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  45. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/task_manager/surrealdb_repository.py +0 -0
  46. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  47. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/core/task_manager/task_session.py +0 -0
  48. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/__init__.py +0 -0
  49. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  50. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/module_server.py +0 -0
  51. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
  52. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  53. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/utils/exceptions.py +0 -0
  54. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  55. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  56. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  57. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/logger.py +0 -0
  58. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/__init__.py +0 -0
  59. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/base_mixin.py +0 -0
  60. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/callback_mixin.py +0 -0
  61. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/chat_history_mixin.py +0 -0
  62. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/cost_mixin.py +0 -0
  63. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  64. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  65. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/logger_mixin.py +0 -0
  66. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/mixins/storage_mixin.py +0 -0
  67. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/__init__.py +0 -0
  68. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/core/__init__.py +0 -0
  69. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/core/job_manager_models.py +0 -0
  70. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/core/task_monitor.py +0 -0
  71. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  72. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/grpc_servers/models.py +0 -0
  73. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/grpc_servers/types.py +0 -0
  74. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/__init__.py +0 -0
  75. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/base_types.py +0 -0
  76. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/module.py +0 -0
  77. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/module_context.py +0 -0
  78. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/module_types.py +0 -0
  79. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/setup_types.py +0 -0
  80. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/tool_cache.py +0 -0
  81. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/module/utility.py +0 -0
  82. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/services/__init__.py +0 -0
  83. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/services/cost.py +0 -0
  84. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/services/registry.py +0 -0
  85. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/models/services/storage.py +0 -0
  86. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/__init__.py +0 -0
  87. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/_base_module.py +0 -0
  88. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/archetype_module.py +0 -0
  89. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/tool_module.py +0 -0
  90. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/trigger_handler.py +0 -0
  91. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/triggers/__init__.py +0 -0
  92. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  93. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  94. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  95. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/py.typed +0 -0
  96. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/__init__.py +0 -0
  97. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/agent/__init__.py +0 -0
  98. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/agent/agent_strategy.py +0 -0
  99. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/agent/default_agent.py +0 -0
  100. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/base_strategy.py +0 -0
  101. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/communication/__init__.py +0 -0
  102. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  103. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/communication/default_communication.py +0 -0
  104. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/communication/grpc_communication.py +0 -0
  105. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/cost/__init__.py +0 -0
  106. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  107. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/cost/default_cost.py +0 -0
  108. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  109. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/filesystem/__init__.py +0 -0
  110. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  111. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  112. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  113. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/identity/__init__.py +0 -0
  114. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/identity/default_identity.py +0 -0
  115. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  116. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/registry/__init__.py +0 -0
  117. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/registry/default_registry.py +0 -0
  118. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/registry/exceptions.py +0 -0
  119. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  120. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/registry/registry_models.py +0 -0
  121. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  122. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/services_config.py +0 -0
  123. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/services_models.py +0 -0
  124. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/setup/__init__.py +0 -0
  125. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/setup/default_setup.py +0 -0
  126. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  127. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  128. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/snapshot/__init__.py +0 -0
  129. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/snapshot/default_snapshot.py +0 -0
  130. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/snapshot/snapshot_strategy.py +0 -0
  131. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/storage/__init__.py +0 -0
  132. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/storage/default_storage.py +0 -0
  133. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  134. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  135. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/user_profile/__init__.py +0 -0
  136. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  137. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  138. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  139. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/utils/__init__.py +0 -0
  140. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/utils/arg_parser.py +0 -0
  141. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/utils/conditional_schema.py +0 -0
  142. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/utils/development_mode_action.py +0 -0
  143. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/utils/dynamic_schema.py +0 -0
  144. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  145. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/utils/package_discover.py +0 -0
  146. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin/utils/schema_splitter.py +0 -0
  147. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin.egg-info/SOURCES.txt +0 -0
  148. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  149. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/src/digitalkin.egg-info/requires.txt +0 -0
  150. {digitalkin-0.3.2.dev23 → digitalkin-0.3.2.dev25}/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.2.dev23
3
+ Version: 0.3.2.dev25
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
@@ -434,8 +434,8 @@ License: Attribution-NonCommercial-ShareAlike 4.0 International
434
434
  Creative Commons may be contacted at creativecommons.org.
435
435
  https://creativecommons.org/licenses/by-nc-sa/4.0/
436
436
 
437
- Project-URL: Homepage, https://github.com/DigitalKin-ai/digitalkin
438
437
  Project-URL: Documentation, https://github.com/DigitalKin-ai/digitalkin
438
+ Project-URL: Homepage, https://github.com/DigitalKin-ai/digitalkin
439
439
  Project-URL: Issues, https://github.com/DigitalKin-ai/digitalkin/issues
440
440
  Keywords: agent,digitalkin,gprc,kin,sdk
441
441
  Classifier: Development Status :: 3 - Alpha
@@ -0,0 +1,279 @@
1
+ [build-system]
2
+ build-backend = "setuptools.build_meta"
3
+ requires = ["setuptools >= 75.8.2", "wheel"]
4
+
5
+ [project]
6
+
7
+ description = "SDK to build kin used in DigitalKin"
8
+ license = { file = "LICENSE" }
9
+ name = "digitalkin"
10
+ readme = "README.md"
11
+ requires-python = ">=3.10"
12
+
13
+ keywords = ["agent", "digitalkin", "gprc", "kin", "sdk"]
14
+
15
+ classifiers = [
16
+ "Development Status :: 3 - Alpha",
17
+ "Intended Audience :: Developers",
18
+ "License :: Other/Proprietary License",
19
+ "Operating System :: OS Independent",
20
+ "Programming Language :: Python :: 3 :: Only",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Programming Language :: Python",
26
+ "Topic :: Software Development :: Libraries",
27
+ ]
28
+ version = "0.3.2.dev25"
29
+
30
+ dependencies = [
31
+ "agentic-mesh-protocol==0.2.1.dev0",
32
+ "grpcio-health-checking>=1.76.0",
33
+ "grpcio-reflection>=1.76.0",
34
+ "grpcio-status>=1.76.0",
35
+ "pydantic>=2.12.5",
36
+ "surrealdb>=1.0.7",
37
+ ]
38
+
39
+ [project.optional-dependencies]
40
+ taskiq = [
41
+ "rstream>=0.40.0",
42
+ "taskiq-aio-pika>=0.5.0",
43
+ "taskiq-redis>=1.2.0",
44
+ "taskiq[reload]>=0.12.1",
45
+ ]
46
+
47
+ [project.urls]
48
+ Documentation = "https://github.com/DigitalKin-ai/digitalkin"
49
+ Homepage = "https://github.com/DigitalKin-ai/digitalkin"
50
+ Issues = "https://github.com/DigitalKin-ai/digitalkin/issues"
51
+
52
+ [[project.authors]]
53
+ email = "contact@digitalkin.ai"
54
+ name = "DigitalKin.ai"
55
+
56
+ [dependency-groups]
57
+ dev = [
58
+ "build>=1.3.0",
59
+ "bump-my-version>=1.2.5",
60
+ "cryptography>=46.0.3",
61
+ "mypy>=1.19.1",
62
+ "pre-commit>=4.5.1",
63
+ "pyright>=1.1.407",
64
+ "ruff>=0.14.9",
65
+ "twine>=6.2.0",
66
+ "typos>=1.40.0",
67
+ ]
68
+ docs = [
69
+ "griffe-inherited-docstrings>=1.1.2",
70
+ "markdown-callouts>=0.4.0",
71
+ "markdown-exec>=1.12.1",
72
+ "mike>=2.1.3",
73
+ "mkdocs-autorefs>=1.4.3",
74
+ "mkdocs-awesome-pages-plugin>=2.10.1",
75
+ "mkdocs-coverage>=2.0.0",
76
+ "mkdocs-git-committers-plugin-2>=2.5.0",
77
+ "mkdocs-git-revision-date-localized-plugin>=1.5.0",
78
+ "mkdocs-glightbox>=0.5.2",
79
+ "mkdocs-include-markdown-plugin>=7.2.0",
80
+ "mkdocs-literate-nav>=0.6.2",
81
+ "mkdocs-llmstxt>=0.5.0",
82
+ "mkdocs-material[imaging]>=9.7.0",
83
+ "mkdocs-minify-plugin>=0.8.0",
84
+ "mkdocs-open-in-new-tab>=1.0.8",
85
+ "mkdocs-redirects>=1.2.2",
86
+ "mkdocs-section-index>=0.3.10",
87
+ "mkdocs>=1.6.1",
88
+ "mkdocstrings-python>=2.0.1",
89
+ "mkdocstrings>=1.0.0",
90
+ "tomli>=2.3.0",
91
+ ]
92
+ tests = [
93
+ "freezegun>=1.5.5",
94
+ "grpcio-testing>=1.76.0",
95
+ "hdrhistogram>=0.10.3",
96
+ "psutil>=7.1.3",
97
+ "pytest-asyncio>=1.3.0",
98
+ "pytest-cov>=7.0.0",
99
+ "pytest-html==4.1.1",
100
+ "pytest-json-report==1.5.0",
101
+ "pytest-timeout>=2.4.0",
102
+ "pytest>=9.0.2",
103
+ ]
104
+ [tool.setuptools]
105
+ package-dir = { "" = "src" }
106
+
107
+ [tool.setuptools.packages.find]
108
+ where = ["examples", "src"]
109
+
110
+ [tool.ruff]
111
+ indent-width = 4
112
+ line-length = 120
113
+ show-fixes = true
114
+ src = ["src"]
115
+ target-version = "py310"
116
+ unsafe-fixes = true
117
+ # Enable preview features.
118
+ exclude = [
119
+ ".bzr",
120
+ ".direnv",
121
+ ".eggs",
122
+ ".git",
123
+ ".git-rewrite",
124
+ ".hg",
125
+ ".mypy_cache",
126
+ ".nox",
127
+ ".pants.d",
128
+ ".pytype",
129
+ ".ruff_cache",
130
+ ".svn",
131
+ ".tox",
132
+ ".venv",
133
+ "__pypackages__",
134
+ "_build",
135
+ "buck-out",
136
+ "build",
137
+ "dist",
138
+ "docs/*",
139
+ "examples/*",
140
+ "factory.py",
141
+ "generate_certificates.py",
142
+ "node_modules",
143
+ "tests/*",
144
+ "venv",
145
+ ]
146
+ preview = true
147
+
148
+ [tool.ruff.lint]
149
+ select = [
150
+ "A", # flake8-builtins
151
+ "ANN", # flake8-annotations
152
+ "ARG", # flake8-unused-arguments
153
+ "ASYNC", # flake8-async
154
+ "C4", # flake8-comprehensions
155
+ "C90", # mccabe (complex-structure)
156
+ "COM", # flake8-commas
157
+ "D", # pydocstyle
158
+ "DOC", # pydoclint
159
+ "DTZ", # flake8-datetimez
160
+ "E", # pycodestyle-errors
161
+ "EM", # flake8-errmsg
162
+ "ERA", # eradicate
163
+ "F", # pyflakes
164
+ "FBT", # flake8-boolean-trap
165
+ "FLY", # flynt
166
+ "FURB", # Refurb
167
+ "G", # flake8-logging-format
168
+ "I", # isort
169
+ "ICN", # flake8-import-conventions
170
+ "ISC", # flake8-implicit-str-concat
171
+ "LOG", # flake8-logging
172
+ "N", # pep8-naming
173
+ "PERF", # Perflint
174
+ "PIE", # flake8-pie
175
+ "PL", # Pylint
176
+ "PL", # Pylint
177
+ "PT", # flake8-pytest-style
178
+ "PYI", # flake8-pyi
179
+ "Q", # flake8-quotes
180
+ "RET", # flake8-return
181
+ "RSE", # flake8-raise
182
+ "RUF", # Ruff-specific rules
183
+ "S", # flake8-bandit
184
+ "SIM", # flake8-simplify
185
+ "SLF", # flake8-self
186
+ "T20", # flake8-print
187
+ "TC", # flake8-type-checking
188
+ "TRY", # tryceratops
189
+ "UP", # pyupgrade
190
+ "W", # pycodestyle-warnings
191
+ ]
192
+
193
+ ignore = [
194
+ "COM812", # Disable because of formatter incompatibility
195
+ "DOC502", # Allow extraneous-exception in docstring
196
+ "S105", # Hardcoded-password
197
+ ]
198
+
199
+ fixable = ["ALL"]
200
+
201
+ [tool.ruff.lint.pydocstyle]
202
+ convention = "google"
203
+
204
+ [tool.ruff.lint.per-file-ignores]
205
+ "tests/**/*.py" = [
206
+ "ANN001",
207
+ "ANN002",
208
+ "ANN003",
209
+ "ANN201",
210
+ "ANN401",
211
+ "ARG001",
212
+ "ARG002",
213
+ "C901",
214
+ "D100",
215
+ "D101",
216
+ "D102",
217
+ "D103",
218
+ "D107",
219
+ "D417",
220
+ "DOC201",
221
+ "DOC501",
222
+ "E501",
223
+ "ERA001",
224
+ "FBT001",
225
+ "FBT002",
226
+ "G004",
227
+ "N802",
228
+ "PERF203",
229
+ "PLC2701",
230
+ "PLR0911",
231
+ "PLR0912",
232
+ "PLR0914",
233
+ "PLR0915",
234
+ "PLR1702",
235
+ "PLR2004",
236
+ "PLR6301",
237
+ "S101",
238
+ "SLF001",
239
+ "TRY002",
240
+ ]
241
+
242
+ [tool.ruff.lint.pylint]
243
+ max-args = 10
244
+
245
+ [tool.ruff.format]
246
+ docstring-code-format = true
247
+ indent-style = "space"
248
+ line-ending = "auto"
249
+ quote-style = "double"
250
+ skip-magic-trailing-comma = false
251
+
252
+ [tool.pyright]
253
+ exclude = ["**/.venv", "**/__pycache__"]
254
+ include = ["src"]
255
+
256
+ [tool.mypy]
257
+ exclude = ["examples", "tests"]
258
+
259
+ [tool.pytest.ini_options]
260
+ asyncio_mode = "auto"
261
+ python_files = "test_*.py"
262
+ testpaths = ["tests"]
263
+
264
+ log_cli = false
265
+ log_level = "ERROR"
266
+
267
+ # Default timeout for tests (in seconds)
268
+ timeout = 10
269
+ timeout_method = "signal" # More reliable for asyncio tests on Linux
270
+
271
+ # Custom markers
272
+ markers = [
273
+ "edge_case: marks tests for boundary conditions and edge cases",
274
+ "grpc: marks tests for gRPC service functionality",
275
+ "integration: marks tests that require real SurrealDB connection (deselect with '-m \"not integration\"')",
276
+ "regression: marks tests for previously fixed bugs",
277
+ "smoke: marks critical path tests that should always pass",
278
+ "validation: marks tests for input validation and schema checking",
279
+ ]
@@ -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.2.dev23"
8
+ __version__ = "0.3.2.dev25"
@@ -2,7 +2,7 @@
2
2
 
3
3
  from typing import Annotated
4
4
 
5
- from pydantic import AfterValidator, BaseModel, BeforeValidator, Field
5
+ from pydantic import AfterValidator, BaseModel, Field
6
6
  from pydantic.annotated_handlers import GetJsonSchemaHandler
7
7
  from pydantic.json_schema import JsonSchemaValue
8
8
  from pydantic_core import CoreSchema
@@ -22,7 +22,8 @@ class ToolReference(BaseModel):
22
22
  selected_tools: list[SelectedTool] = Field(default=[], description="Tools selected by the user.")
23
23
  setup_ids: list[str] = Field(default=[], description="Setup IDs for the user to choose from.")
24
24
  module_ids: list[str] = Field(default=[], description="Module IDs for the user to choose from.")
25
- tags: list[str] = Field(default=[], description="Tags for the user to choose from.")
25
+ tag_ids: list[str] = Field(default=[], description="Tag IDs for the user to choose from.")
26
+ categories: list[str] = Field(default=[], description="Categories for the user to choose from.")
26
27
  max_tools: int = Field(default=0, description="Maximum tools to select. 0 for unlimited.")
27
28
  min_tools: int = Field(default=0, description="Minimum tools to select. 0 for no minimum.")
28
29
 
@@ -57,57 +58,60 @@ class _ToolReferenceInputSchema:
57
58
  self,
58
59
  setup_ids: list[str],
59
60
  module_ids: list[str],
60
- tags: list[str],
61
+ tag_ids: list[str],
62
+ categories: list[str],
61
63
  max_tools: int = 0,
62
64
  min_tools: int = 0,
63
65
  ) -> None:
64
66
  self.setup_ids = setup_ids
65
67
  self.module_ids = module_ids
66
- self.tags = tags
68
+ self.tag_ids = tag_ids
67
69
  self.max_tools = max_tools
68
70
  self.min_tools = min_tools
71
+ self.categories = categories
69
72
 
70
73
  def __get_pydantic_json_schema__( # noqa: PLW3201
71
74
  self,
72
75
  schema: CoreSchema,
73
76
  handler: GetJsonSchemaHandler,
74
77
  ) -> JsonSchemaValue:
75
- """Generate JSON schema accepting both list[str] and ToolReference.
78
+ """Generate JSON schema for ToolReference with ui:options.
76
79
 
77
80
  Args:
78
81
  schema: The core schema from Pydantic.
79
82
  handler: Handler to generate JSON schema from core schema.
80
83
 
81
84
  Returns:
82
- JSON schema with anyOf accepting array or ToolReference, plus ui:options.
85
+ JSON schema for ToolReference with ui:options.
83
86
  """
84
87
  json_schema = handler(schema)
85
-
86
- array_option: dict[str, object] = {"type": "array", "items": {"type": "string"}}
87
- if self.max_tools > 0 and self.max_tools >= self.min_tools:
88
- array_option["maxItems"] = self.max_tools
89
- if self.min_tools > 0 and self.min_tools <= self.max_tools:
90
- array_option["minItems"] = self.min_tools
91
-
92
- return {
93
- "anyOf": [
94
- array_option,
95
- json_schema,
96
- ],
97
- "ui:options": {
98
- "setup_ids": self.setup_ids,
99
- "module_ids": self.module_ids,
100
- "tags": self.tags,
101
- "max_tools": self.max_tools,
102
- "min_tools": self.min_tools,
103
- },
88
+ ui_options: dict[str, object] = {
89
+ "setupIds": self.setup_ids,
90
+ "moduleIds": self.module_ids,
91
+ "tagIds": self.tag_ids,
92
+ "categories": self.categories,
104
93
  }
94
+ if self.max_tools > 0:
95
+ ui_options["maxTools"] = self.max_tools
96
+ if self.min_tools > 0:
97
+ ui_options["minTools"] = self.min_tools
98
+ json_schema["ui:options"] = ui_options
99
+ json_schema["ui:widget"] = "toolSelect"
100
+ if self.max_tools > 0 or self.min_tools > 0:
101
+ resolved = handler.resolve_ref_schema(json_schema)
102
+ selected_tools_schema = resolved["properties"]["selected_tools"]
103
+ if self.max_tools > 0:
104
+ selected_tools_schema["maxItems"] = self.max_tools
105
+ if self.min_tools > 0:
106
+ selected_tools_schema["minItems"] = self.min_tools
107
+ return json_schema
105
108
 
106
109
 
107
110
  def tool_reference_input(
108
111
  setup_ids: list[str] = [],
109
112
  module_ids: list[str] = [],
110
- tags: list[str] = [],
113
+ tag_ids: list[str] = [],
114
+ categories: list[str] = [],
111
115
  max_tools: int = 0,
112
116
  min_tools: int = 0,
113
117
  ) -> type[ToolReference]:
@@ -116,7 +120,8 @@ def tool_reference_input(
116
120
  Args:
117
121
  setup_ids: Setup IDs for the user to choose from.
118
122
  module_ids: Module IDs for the user to choose from.
119
- tags: Tags for the user to choose from.
123
+ tag_ids: Tag IDs for the user to choose from.
124
+ categories: Categories for the user to choose from.
120
125
  max_tools: Maximum tools allowed. 0 for unlimited.
121
126
  min_tools: Minimum tools required. 0 for no minimum.
122
127
 
@@ -124,23 +129,6 @@ def tool_reference_input(
124
129
  Annotated type for use in Pydantic models.
125
130
  """
126
131
 
127
- def convert_to_tool_reference(v: object) -> ToolReference | object:
128
- """Convert list of setup IDs to ToolReference with config preserved.
129
-
130
- Returns:
131
- ToolReference if input is list, otherwise original value.
132
- """
133
- if isinstance(v, list):
134
- return ToolReference(
135
- selected_tools=[SelectedTool(setup_id=sid, slug=sid) for sid in v],
136
- setup_ids=setup_ids,
137
- module_ids=module_ids,
138
- tags=tags,
139
- max_tools=max_tools,
140
- min_tools=min_tools,
141
- )
142
- return v
143
-
144
132
  def validate_tools_count(v: ToolReference) -> ToolReference:
145
133
  """Validate selected_tools count against min/max constraints.
146
134
 
@@ -161,12 +149,12 @@ def tool_reference_input(
161
149
 
162
150
  return Annotated[ # type: ignore[return-value]
163
151
  ToolReference,
164
- BeforeValidator(convert_to_tool_reference),
165
152
  AfterValidator(validate_tools_count),
166
153
  _ToolReferenceInputSchema(
167
154
  setup_ids=setup_ids,
168
155
  module_ids=module_ids,
169
- tags=tags,
156
+ tag_ids=tag_ids,
157
+ categories=categories,
170
158
  max_tools=max_tools,
171
159
  min_tools=min_tools,
172
160
  ),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 0.3.2.dev23
3
+ Version: 0.3.2.dev25
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
@@ -434,8 +434,8 @@ License: Attribution-NonCommercial-ShareAlike 4.0 International
434
434
  Creative Commons may be contacted at creativecommons.org.
435
435
  https://creativecommons.org/licenses/by-nc-sa/4.0/
436
436
 
437
- Project-URL: Homepage, https://github.com/DigitalKin-ai/digitalkin
438
437
  Project-URL: Documentation, https://github.com/DigitalKin-ai/digitalkin
438
+ Project-URL: Homepage, https://github.com/DigitalKin-ai/digitalkin
439
439
  Project-URL: Issues, https://github.com/DigitalKin-ai/digitalkin/issues
440
440
  Keywords: agent,digitalkin,gprc,kin,sdk
441
441
  Classifier: Development Status :: 3 - Alpha