digitalkin 0.3.2.dev27__tar.gz → 0.3.2.dev29__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 (149) hide show
  1. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/PKG-INFO +1 -1
  2. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/pyproject.toml +1 -1
  3. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/__version__.py +1 -1
  4. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/tool_reference.py +10 -1
  5. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/utils/schema_splitter.py +41 -8
  6. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin.egg-info/PKG-INFO +1 -1
  7. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/LICENSE +0 -0
  8. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/README.md +0 -0
  9. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/base_server/__init__.py +0 -0
  10. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/base_server/mock/__init__.py +0 -0
  11. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/base_server/mock/mock_pb2.py +0 -0
  12. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  13. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/base_server/server_async_insecure.py +0 -0
  14. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/base_server/server_async_secure.py +0 -0
  15. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/base_server/server_sync_insecure.py +0 -0
  16. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/base_server/server_sync_secure.py +0 -0
  17. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/modules/__init__.py +0 -0
  18. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/modules/archetype_with_tools_module.py +0 -0
  19. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/modules/cpu_intensive_module.py +0 -0
  20. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/modules/dynamic_setup_module.py +0 -0
  21. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/modules/minimal_llm_module.py +0 -0
  22. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/modules/text_transform_module.py +0 -0
  23. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/monitoring/digitalkin_observability/__init__.py +0 -0
  24. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/monitoring/digitalkin_observability/http_server.py +0 -0
  25. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/monitoring/digitalkin_observability/interceptors.py +0 -0
  26. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/monitoring/digitalkin_observability/metrics.py +0 -0
  27. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/monitoring/digitalkin_observability/prometheus.py +0 -0
  28. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/monitoring/tests/test_metrics.py +0 -0
  29. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/services/filesystem_module.py +0 -0
  30. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/examples/services/storage_module.py +0 -0
  31. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/setup.cfg +0 -0
  32. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/__init__.py +0 -0
  33. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/__init__.py +0 -0
  34. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/common/__init__.py +0 -0
  35. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/common/factories.py +0 -0
  36. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/job_manager/__init__.py +0 -0
  37. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
  38. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
  39. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/job_manager/taskiq_broker.py +0 -0
  40. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/job_manager/taskiq_job_manager.py +0 -0
  41. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/task_manager/__init__.py +0 -0
  42. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/task_manager/base_task_manager.py +0 -0
  43. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/task_manager/local_task_manager.py +0 -0
  44. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/task_manager/remote_task_manager.py +0 -0
  45. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/task_manager/surrealdb_repository.py +0 -0
  46. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/task_manager/task_executor.py +0 -0
  47. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/core/task_manager/task_session.py +0 -0
  48. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/__init__.py +0 -0
  49. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  50. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/module_server.py +0 -0
  51. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
  52. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  53. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/utils/exceptions.py +0 -0
  54. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  55. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/utils/grpc_error_handler.py +0 -0
  56. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/grpc_servers/utils/utility_schema_extender.py +0 -0
  57. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/logger.py +0 -0
  58. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/__init__.py +0 -0
  59. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/base_mixin.py +0 -0
  60. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/callback_mixin.py +0 -0
  61. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/chat_history_mixin.py +0 -0
  62. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/cost_mixin.py +0 -0
  63. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  64. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  65. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/logger_mixin.py +0 -0
  66. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/mixins/storage_mixin.py +0 -0
  67. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/__init__.py +0 -0
  68. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/core/__init__.py +0 -0
  69. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/core/job_manager_models.py +0 -0
  70. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/core/task_monitor.py +0 -0
  71. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  72. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/grpc_servers/models.py +0 -0
  73. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/grpc_servers/types.py +0 -0
  74. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/__init__.py +0 -0
  75. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/base_types.py +0 -0
  76. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/module.py +0 -0
  77. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/module_context.py +0 -0
  78. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/module_types.py +0 -0
  79. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/setup_types.py +0 -0
  80. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/tool_cache.py +0 -0
  81. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/module/utility.py +0 -0
  82. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/services/__init__.py +0 -0
  83. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/services/cost.py +0 -0
  84. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/services/registry.py +0 -0
  85. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/models/services/storage.py +0 -0
  86. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/__init__.py +0 -0
  87. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/_base_module.py +0 -0
  88. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/archetype_module.py +0 -0
  89. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/tool_module.py +0 -0
  90. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/trigger_handler.py +0 -0
  91. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/triggers/__init__.py +0 -0
  92. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/triggers/healthcheck_ping_trigger.py +0 -0
  93. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/triggers/healthcheck_services_trigger.py +0 -0
  94. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/modules/triggers/healthcheck_status_trigger.py +0 -0
  95. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/py.typed +0 -0
  96. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/__init__.py +0 -0
  97. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/agent/__init__.py +0 -0
  98. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/agent/agent_strategy.py +0 -0
  99. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/agent/default_agent.py +0 -0
  100. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/base_strategy.py +0 -0
  101. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/communication/__init__.py +0 -0
  102. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/communication/communication_strategy.py +0 -0
  103. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/communication/default_communication.py +0 -0
  104. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/communication/grpc_communication.py +0 -0
  105. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/cost/__init__.py +0 -0
  106. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  107. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/cost/default_cost.py +0 -0
  108. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  109. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/filesystem/__init__.py +0 -0
  110. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  111. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  112. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  113. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/identity/__init__.py +0 -0
  114. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/identity/default_identity.py +0 -0
  115. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  116. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/registry/__init__.py +0 -0
  117. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/registry/default_registry.py +0 -0
  118. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/registry/exceptions.py +0 -0
  119. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/registry/grpc_registry.py +0 -0
  120. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/registry/registry_models.py +0 -0
  121. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  122. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/services_config.py +0 -0
  123. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/services_models.py +0 -0
  124. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/setup/__init__.py +0 -0
  125. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/setup/default_setup.py +0 -0
  126. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  127. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  128. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/snapshot/__init__.py +0 -0
  129. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/snapshot/default_snapshot.py +0 -0
  130. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/snapshot/snapshot_strategy.py +0 -0
  131. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/storage/__init__.py +0 -0
  132. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/storage/default_storage.py +0 -0
  133. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  134. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  135. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/user_profile/__init__.py +0 -0
  136. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/user_profile/default_user_profile.py +0 -0
  137. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/user_profile/grpc_user_profile.py +0 -0
  138. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/services/user_profile/user_profile_strategy.py +0 -0
  139. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/utils/__init__.py +0 -0
  140. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/utils/arg_parser.py +0 -0
  141. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/utils/conditional_schema.py +0 -0
  142. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/utils/development_mode_action.py +0 -0
  143. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/utils/dynamic_schema.py +0 -0
  144. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  145. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin/utils/package_discover.py +0 -0
  146. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin.egg-info/SOURCES.txt +0 -0
  147. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  148. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/src/digitalkin.egg-info/requires.txt +0 -0
  149. {digitalkin-0.3.2.dev27 → digitalkin-0.3.2.dev29}/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.dev27
3
+ Version: 0.3.2.dev29
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
@@ -25,7 +25,7 @@
25
25
  "Programming Language :: Python",
26
26
  "Topic :: Software Development :: Libraries",
27
27
  ]
28
- version = "0.3.2.dev27"
28
+ version = "0.3.2.dev29"
29
29
 
30
30
  dependencies = [
31
31
  "agentic-mesh-protocol==0.2.1.dev0",
@@ -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.dev27"
8
+ __version__ = "0.3.2.dev29"
@@ -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, BeforeValidator, Field, PlainSerializer
6
6
  from pydantic.annotated_handlers import GetJsonSchemaHandler
7
7
  from pydantic.json_schema import JsonSchemaValue
8
8
  from pydantic_core import CoreSchema
@@ -134,10 +134,19 @@ def tool_reference_input(
134
134
  raise ValueError(msg)
135
135
  return v
136
136
 
137
+ def serialize_to_list(v: ToolReference) -> list[str]:
138
+ """Serialize ToolReference as plain list for frontend compatibility.
139
+
140
+ Returns:
141
+ List of setup IDs.
142
+ """
143
+ return v.selected_tools
144
+
137
145
  return Annotated[ # type: ignore[return-value]
138
146
  ToolReference,
139
147
  BeforeValidator(convert_to_tool_reference),
140
148
  AfterValidator(validate_tools_count),
149
+ PlainSerializer(serialize_to_list, return_type=list[str]),
141
150
  _ToolReferenceInputSchema(
142
151
  setup_ids=setup_ids,
143
152
  module_ids=module_ids,
@@ -58,7 +58,7 @@ class SchemaSplitter:
58
58
  cls._extract_ui_properties(value, items_ui, defs)
59
59
  if items_ui:
60
60
  ui_target["items"] = items_ui
61
- elif key == "allOf" and isinstance(value, list):
61
+ elif key in {"allOf", "oneOf", "anyOf"} and isinstance(value, list):
62
62
  for item in value:
63
63
  if isinstance(item, dict):
64
64
  cls._extract_ui_properties(item, ui_target, defs)
@@ -71,7 +71,7 @@ class SchemaSplitter:
71
71
  cls._extract_ui_properties(defs[def_name], ui_target, defs)
72
72
 
73
73
  @classmethod
74
- def _process_object( # noqa: C901, PLR0912
74
+ def _process_object( # noqa: C901, PLR0912, PLR0915
75
75
  cls,
76
76
  source: dict[str, Any],
77
77
  json_target: dict[str, Any],
@@ -123,13 +123,24 @@ class SchemaSplitter:
123
123
  json_target["allOf"] = []
124
124
  for item in value:
125
125
  if isinstance(item, dict):
126
- item_json: dict[str, Any] = {}
127
- cls._strip_ui_properties(item, item_json)
128
- json_target["allOf"].append(item_json)
126
+ item_json_all_of: dict[str, Any] = {}
127
+ cls._strip_ui_properties(item, item_json_all_of)
128
+ json_target["allOf"].append(item_json_all_of)
129
129
  # Extract UI properties from allOf item
130
130
  cls._extract_ui_properties(item, ui_target, schema_defs)
131
131
  else:
132
132
  json_target["allOf"].append(item)
133
+ elif key in {"oneOf", "anyOf"} and isinstance(value, list):
134
+ json_target[key] = []
135
+ for item in value:
136
+ if isinstance(item, dict):
137
+ item_json_oneof_anyof: dict[str, Any] = {}
138
+ cls._strip_ui_properties(item, item_json_oneof_anyof)
139
+ json_target[key].append(item_json_oneof_anyof)
140
+ # Extract UI properties from oneOf/anyOf item (resolves $ref)
141
+ cls._extract_ui_properties(item, ui_target, schema_defs)
142
+ else:
143
+ json_target[key].append(item)
133
144
  elif key in {"if", "then", "else"} and isinstance(value, dict):
134
145
  json_target[key] = {}
135
146
  cls._strip_ui_properties(value, json_target[key])
@@ -187,6 +198,19 @@ class SchemaSplitter:
187
198
  cls._process_property(value, json_target["items"], items_ui, defs_ui)
188
199
  if items_ui:
189
200
  ui_target["items"] = items_ui
201
+ elif key in {"oneOf", "anyOf"} and isinstance(value, list):
202
+ json_target[key] = []
203
+ for item in value:
204
+ if isinstance(item, dict):
205
+ item_json_oneof_anyof: dict[str, Any] = {}
206
+ cls._strip_ui_properties(item, item_json_oneof_anyof)
207
+ json_target[key].append(item_json_oneof_anyof)
208
+ # Extract UI properties from $ref in oneOf/anyOf items
209
+ ref_path = item.get("$ref", "")
210
+ if ref_path.startswith("#/$defs/") and ref_path[8:] in defs_ui:
211
+ ui_target.update(defs_ui[ref_path[8:]])
212
+ else:
213
+ json_target[key].append(item)
190
214
  elif key == "hidden":
191
215
  # Strip hidden key from json schema
192
216
  continue
@@ -230,11 +254,20 @@ class SchemaSplitter:
230
254
  json_target["allOf"] = []
231
255
  for item in value:
232
256
  if isinstance(item, dict):
233
- item_json: dict[str, Any] = {}
234
- cls._strip_ui_properties(item, item_json)
235
- json_target["allOf"].append(item_json)
257
+ item_json_all_of: dict[str, Any] = {}
258
+ cls._strip_ui_properties(item, item_json_all_of)
259
+ json_target["allOf"].append(item_json_all_of)
236
260
  else:
237
261
  json_target["allOf"].append(item)
262
+ elif key in {"oneOf", "anyOf"} and isinstance(value, list):
263
+ json_target[key] = []
264
+ for item in value:
265
+ if isinstance(item, dict):
266
+ item_json_oneof_anyof: dict[str, Any] = {}
267
+ cls._strip_ui_properties(item, item_json_oneof_anyof)
268
+ json_target[key].append(item_json_oneof_anyof)
269
+ else:
270
+ json_target[key].append(item)
238
271
  elif key in {"if", "then", "else"} and isinstance(value, dict):
239
272
  json_target[key] = {}
240
273
  cls._strip_ui_properties(value, json_target[key])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 0.3.2.dev27
3
+ Version: 0.3.2.dev29
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