scalekit-sdk-python 2.4.5__tar.gz → 2.4.6__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 (179) hide show
  1. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/PKG-INFO +3 -3
  2. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/actions.py +38 -2
  3. scalekit_sdk_python-2.4.6/scalekit/actions/frameworks/google_adk.py +81 -0
  4. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/frameworks/langchain.py +3 -16
  5. scalekit_sdk_python-2.4.6/scalekit/actions/frameworks/types/__init__.py +7 -0
  6. scalekit_sdk_python-2.4.6/scalekit/actions/frameworks/types/google_adk_tool.py +77 -0
  7. scalekit_sdk_python-2.4.6/scalekit/actions/frameworks/util.py +73 -0
  8. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/core.py +1 -1
  9. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit_sdk_python.egg-info/PKG-INFO +3 -3
  10. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit_sdk_python.egg-info/SOURCES.txt +4 -0
  11. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit_sdk_python.egg-info/requires.txt +2 -2
  12. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/setup.py +3 -3
  13. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/LICENSE +0 -0
  14. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/README.md +0 -0
  15. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/__init__.py +0 -0
  16. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/__init__.py +0 -0
  17. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/expression_pb2.py +0 -0
  18. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/expression_pb2.pyi +0 -0
  19. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/expression_pb2_grpc.py +0 -0
  20. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/priv/__init__.py +0 -0
  21. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/priv/private_pb2.py +0 -0
  22. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/priv/private_pb2.pyi +0 -0
  23. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/priv/private_pb2_grpc.py +0 -0
  24. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/validate_pb2.py +0 -0
  25. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/validate_pb2.pyi +0 -0
  26. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/buf/validate/validate_pb2_grpc.py +0 -0
  27. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/__init__.py +0 -0
  28. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/__init__.py +0 -0
  29. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/frameworks/__init__.py +0 -0
  30. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/__init__.py +0 -0
  31. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/requests/__init__.py +0 -0
  32. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/requests/create_connected_account_request.py +0 -0
  33. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/requests/mcp_request.py +0 -0
  34. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/requests/tool_request.py +0 -0
  35. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/__init__.py +0 -0
  36. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/create_connected_account_response.py +0 -0
  37. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/create_mcp_response.py +0 -0
  38. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/delete_connected_account_response.py +0 -0
  39. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/execute_tool_response.py +0 -0
  40. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/get_connected_account_auth_response.py +0 -0
  41. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/get_mcp_response.py +0 -0
  42. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/list_connected_accounts_response.py +0 -0
  43. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/responses/magic_link_response.py +0 -0
  44. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/tool_input_output.py +0 -0
  45. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/models/tool_mapping.py +0 -0
  46. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/modifier.py +0 -0
  47. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/actions/types.py +0 -0
  48. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/client.py +0 -0
  49. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/common/__init__.py +0 -0
  50. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/common/exceptions.py +0 -0
  51. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/common/scalekit.py +0 -0
  52. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/common/user.py +0 -0
  53. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/connected_accounts.py +0 -0
  54. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/connection.py +0 -0
  55. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/constants/__init__.py +0 -0
  56. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/constants/user.py +0 -0
  57. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/directory.py +0 -0
  58. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/domain.py +0 -0
  59. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/m2m_client.py +0 -0
  60. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/mcp.py +0 -0
  61. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/organization.py +0 -0
  62. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/passwordless.py +0 -0
  63. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/permissions.py +0 -0
  64. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/role.py +0 -0
  65. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/sessions.py +0 -0
  66. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/tools.py +0 -0
  67. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/users.py +0 -0
  68. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/utils/__init__.py +0 -0
  69. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/utils/directory.py +0 -0
  70. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/__init__.py +0 -0
  71. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auditlogs/__init__.py +0 -0
  72. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auditlogs/auditlogs_pb2.py +0 -0
  73. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auditlogs/auditlogs_pb2.pyi +0 -0
  74. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auditlogs/auditlogs_pb2_grpc.py +0 -0
  75. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/__init__.py +0 -0
  76. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/auth_pb2.py +0 -0
  77. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/auth_pb2.pyi +0 -0
  78. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/auth_pb2_grpc.py +0 -0
  79. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/passwordless_pb2.py +0 -0
  80. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/passwordless_pb2.pyi +0 -0
  81. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/passwordless_pb2_grpc.py +0 -0
  82. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/totp_pb2.py +0 -0
  83. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/totp_pb2.pyi +0 -0
  84. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/auth/totp_pb2_grpc.py +0 -0
  85. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/clients/__init__.py +0 -0
  86. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/clients/clients_pb2.py +0 -0
  87. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/clients/clients_pb2.pyi +0 -0
  88. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/clients/clients_pb2_grpc.py +0 -0
  89. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/commons/__init__.py +0 -0
  90. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/commons/commons_pb2.py +0 -0
  91. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/commons/commons_pb2.pyi +0 -0
  92. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/commons/commons_pb2_grpc.py +0 -0
  93. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/connected_accounts/__init__.py +0 -0
  94. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/connected_accounts/connected_accounts_pb2.py +0 -0
  95. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/connected_accounts/connected_accounts_pb2.pyi +0 -0
  96. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/connected_accounts/connected_accounts_pb2_grpc.py +0 -0
  97. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/connections/__init__.py +0 -0
  98. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/connections/connections_pb2.py +0 -0
  99. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/connections/connections_pb2.pyi +0 -0
  100. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/connections/connections_pb2_grpc.py +0 -0
  101. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/directories/__init__.py +0 -0
  102. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/directories/directories_pb2.py +0 -0
  103. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/directories/directories_pb2.pyi +0 -0
  104. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/directories/directories_pb2_grpc.py +0 -0
  105. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/domains/__init__.py +0 -0
  106. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/domains/domains_pb2.py +0 -0
  107. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/domains/domains_pb2.pyi +0 -0
  108. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/domains/domains_pb2_grpc.py +0 -0
  109. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/emails/__init__.py +0 -0
  110. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/emails/emails_pb2.py +0 -0
  111. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/emails/emails_pb2.pyi +0 -0
  112. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/emails/emails_pb2_grpc.py +0 -0
  113. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/environments/__init__.py +0 -0
  114. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/environments/environments_pb2.py +0 -0
  115. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/environments/environments_pb2.pyi +0 -0
  116. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/environments/environments_pb2_grpc.py +0 -0
  117. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/errdetails/__init__.py +0 -0
  118. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/errdetails/errdetails_pb2.py +0 -0
  119. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/errdetails/errdetails_pb2.pyi +0 -0
  120. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/errdetails/errdetails_pb2_grpc.py +0 -0
  121. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/events/__init__.py +0 -0
  122. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/events/events_pb2.py +0 -0
  123. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/events/events_pb2.pyi +0 -0
  124. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/events/events_pb2_grpc.py +0 -0
  125. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/mcp/__init__.py +0 -0
  126. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/mcp/mcp_pb2.py +0 -0
  127. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/mcp/mcp_pb2.pyi +0 -0
  128. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/mcp/mcp_pb2_grpc.py +0 -0
  129. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/members/__init__.py +0 -0
  130. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/members/members_pb2.py +0 -0
  131. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/members/members_pb2.pyi +0 -0
  132. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/members/members_pb2_grpc.py +0 -0
  133. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/migrations/__init__.py +0 -0
  134. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/migrations/migrations_pb2.py +0 -0
  135. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/migrations/migrations_pb2.pyi +0 -0
  136. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/migrations/migrations_pb2_grpc.py +0 -0
  137. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/options/__init__.py +0 -0
  138. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/options/options_pb2.py +0 -0
  139. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/options/options_pb2.pyi +0 -0
  140. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/options/options_pb2_grpc.py +0 -0
  141. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/organizations/__init__.py +0 -0
  142. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/organizations/organizations_pb2.py +0 -0
  143. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/organizations/organizations_pb2.pyi +0 -0
  144. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/organizations/organizations_pb2_grpc.py +0 -0
  145. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/providers/__init__.py +0 -0
  146. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/providers/providers_pb2.py +0 -0
  147. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/providers/providers_pb2.pyi +0 -0
  148. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/providers/providers_pb2_grpc.py +0 -0
  149. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/roles/__init__.py +0 -0
  150. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/roles/roles_pb2.py +0 -0
  151. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/roles/roles_pb2.pyi +0 -0
  152. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/roles/roles_pb2_grpc.py +0 -0
  153. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/sessions/__init__.py +0 -0
  154. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/sessions/sessions_pb2.py +0 -0
  155. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/sessions/sessions_pb2.pyi +0 -0
  156. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/sessions/sessions_pb2_grpc.py +0 -0
  157. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/tools/__init__.py +0 -0
  158. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/tools/tools_pb2.py +0 -0
  159. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/tools/tools_pb2.pyi +0 -0
  160. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/tools/tools_pb2_grpc.py +0 -0
  161. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/user_attributes/__init__.py +0 -0
  162. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/user_attributes/user_attributes_pb2.py +0 -0
  163. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/user_attributes/user_attributes_pb2.pyi +0 -0
  164. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/user_attributes/user_attributes_pb2_grpc.py +0 -0
  165. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/users/__init__.py +0 -0
  166. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/users/users_pb2.py +0 -0
  167. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/users/users_pb2.pyi +0 -0
  168. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/users/users_pb2_grpc.py +0 -0
  169. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/webhooks/__init__.py +0 -0
  170. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/webhooks/webhooks_pb2.py +0 -0
  171. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/webhooks/webhooks_pb2.pyi +0 -0
  172. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/webhooks/webhooks_pb2_grpc.py +0 -0
  173. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/workspaces/__init__.py +0 -0
  174. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/workspaces/workspaces_pb2.py +0 -0
  175. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/workspaces/workspaces_pb2.pyi +0 -0
  176. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit/v1/workspaces/workspaces_pb2_grpc.py +0 -0
  177. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit_sdk_python.egg-info/dependency_links.txt +0 -0
  178. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/scalekit_sdk_python.egg-info/top_level.txt +0 -0
  179. {scalekit_sdk_python-2.4.5 → scalekit_sdk_python-2.4.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scalekit-sdk-python
3
- Version: 2.4.5
3
+ Version: 2.4.6
4
4
  Summary: Scalekit official Python SDK
5
5
  Home-page: https://github.com/scalekit-inc/scalekit-sdk-python
6
6
  Author: Team Scalekit
@@ -25,8 +25,8 @@ Requires-Dist: googleapis-common-protos<1.66.0,>=1.56.1
25
25
  Requires-Dist: deprecation>=2.1.0
26
26
  Requires-Dist: python-dotenv>=1.1.0
27
27
  Requires-Dist: Faker~=25.8.0
28
- Requires-Dist: pydantic~=2.11.2
29
- Requires-Dist: langchain-core<0.4,>=0.3.36
28
+ Requires-Dist: pydantic>=2.10.6
29
+ Requires-Dist: mcp>=1.15.0
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -11,7 +11,6 @@ from scalekit.actions.modifier import (
11
11
  Modifier, ModifierType, ToolNames,
12
12
  apply_pre_modifiers, apply_post_modifiers
13
13
  )
14
- from scalekit.actions.frameworks.langchain import LangChain
15
14
  from scalekit.common.exceptions import ScalekitNotFoundException
16
15
 
17
16
 
@@ -39,9 +38,46 @@ class ActionClient:
39
38
  self.connected_accounts = connected_accounts_client
40
39
  self.mcp = mcp_client
41
40
  self._modifiers: List[Modifier] = []
41
+ self._google = None
42
+ self._langchain = None
42
43
 
43
44
  # Initialize LangChain with tools client and execute callback
44
- self.langchain = LangChain(tools_client, execute_callback=self.execute_tool)
45
+
46
+
47
+ # Initialize Google ADK with tools client and execute callback
48
+ #self.google = GoogleADK(tools_client, execute_callback=self.execute_tool)
49
+
50
+ @property
51
+ def langchain(self):
52
+ """Get LangChain framework instance"""
53
+ if self._langchain is None:
54
+ try:
55
+ from scalekit.actions.frameworks.langchain import LangChain
56
+ self._langchain = LangChain(self.tools, execute_callback=self.execute_tool)
57
+ except ImportError as e:
58
+ raise ImportError(
59
+ "LangChain not found. To use LangChain integration, please install:\n"
60
+ "pip install langchain\n\n"
61
+ "For more information, see: https://python.langchain.com/docs/\n"
62
+ )
63
+ return self._langchain
64
+
65
+
66
+ @property
67
+ def google(self):
68
+ """Get Google ADK framework instance"""
69
+ if self._google is None:
70
+ try:
71
+ from scalekit.actions.frameworks.google_adk import GoogleADK
72
+ self._google = GoogleADK(self.tools, execute_callback=self.execute_tool)
73
+ except ImportError as e:
74
+ raise ImportError(
75
+ "Google ADK not found. To use Google ADK integration, please install:\n"
76
+ "pip install google-adk\n\n"
77
+ "For more information, see: https://google.github.io/adk-docs/\n"
78
+ )
79
+
80
+ return self._google
45
81
 
46
82
  def execute_tool(
47
83
  self,
@@ -0,0 +1,81 @@
1
+ from typing import Optional, Any, Dict, List, Callable
2
+ from scalekit.tools import ToolsClient
3
+ from scalekit.v1.tools.tools_pb2 import Filter, ScopedToolFilter
4
+ from scalekit.actions.frameworks.types.google_adk_tool import (
5
+ ScalekitGoogleAdkTool,
6
+ )
7
+ from scalekit.actions.frameworks.util import build_mcp_tool_from_spec, struct_to_dict
8
+
9
+
10
+ class GoogleADK:
11
+ def __init__(self, tools_client: ToolsClient, execute_callback: Callable):
12
+ if not execute_callback:
13
+ raise ValueError("execute_callback is required. GoogleADK must be initialized with ActionClient's execute_tool method.")
14
+
15
+ self.tools = tools_client
16
+ self.execute_callback = execute_callback
17
+
18
+
19
+ def get_tools(
20
+ self,
21
+ identifier: str,
22
+ providers: Optional[List[str]] = None,
23
+ tool_names: Optional[List[str]] = None,
24
+ connection_names: Optional[List[str]] = None,
25
+ page_size: Optional[int] = None,
26
+ page_token: Optional[str] = None
27
+ ) -> List[ScalekitGoogleAdkTool]:
28
+ """
29
+ Get scoped tools from Scalekit and convert them to Google ADK compatible tools
30
+
31
+ :param identifier: Identifier to scope the tools list
32
+ :param providers: List of provider names to filter by
33
+ :param tool_names: List of tool names to filter by
34
+ :param connection_names: List of connection names to filter by
35
+ :param page_size: Maximum number of tools to return per page
36
+ :param page_token: Token from a previous response for pagination
37
+ :returns: List of Google ADK compatible tools
38
+ :raises ImportError: If Google ADK dependencies are not installed
39
+ """
40
+ if identifier is None or identifier == "":
41
+ raise ValueError("Identifier must be provided to get tools")
42
+
43
+
44
+ # Create ScopedToolFilter if any filter parameters are provided
45
+ scoped_filter = None
46
+ if providers or tool_names or connection_names:
47
+ scoped_filter = ScopedToolFilter(
48
+ providers=providers or [],
49
+ tool_names=tool_names or [],
50
+ connection_names=connection_names or []
51
+ )
52
+
53
+ # Call list_scoped_tools which returns (response, metadata) tuple
54
+ result_tuple = self.tools.list_scoped_tools(identifier, scoped_filter, page_size, page_token)
55
+
56
+ # Extract the response[0] (the actual ListScopedToolsResponse proto object)
57
+ response = result_tuple[0]
58
+
59
+ google_adk_tools = []
60
+ for scoped_tool in response.tools:
61
+ google_adk_tool = self._convert_tool_to_google_adk_tool(
62
+ scoped_tool.tool,
63
+ scoped_tool.connected_account_id
64
+ )
65
+ google_adk_tools.append(google_adk_tool)
66
+
67
+ return google_adk_tools
68
+
69
+ def _convert_tool_to_google_adk_tool(self, tool, connected_account_id: str):
70
+ """Convert a Scalekit Tool to Google ADK compatible tool"""
71
+
72
+
73
+ spec = struct_to_dict(tool)
74
+ mcp_tool = build_mcp_tool_from_spec(spec)
75
+
76
+ return ScalekitGoogleAdkTool(
77
+ mcp_tool=mcp_tool,
78
+ connected_account_id=connected_account_id,
79
+ execute_callback=self.execute_callback
80
+ )
81
+
@@ -1,7 +1,8 @@
1
1
  from typing import Optional, Any, Dict, List, Callable
2
2
  from langchain_core.tools import StructuredTool
3
3
  from scalekit.tools import ToolsClient
4
- from scalekit.v1.tools.tools_pb2 import Filter, ScopedToolFilter
4
+ from scalekit.v1.tools.tools_pb2 import ScopedToolFilter
5
+ from scalekit.actions.frameworks.util import extract_tool_metadata
5
6
 
6
7
 
7
8
  class LangChain:
@@ -63,23 +64,13 @@ class LangChain:
63
64
  def _convert_tool_to_structured_tool(self, tool, connected_account_id: str) -> StructuredTool:
64
65
  """Convert a Scalekit Tool to LangChain StructuredTool"""
65
66
 
66
-
67
- definition_dict = self._struct_to_dict(tool.definition) if hasattr(tool, 'definition') and tool.definition else {}
68
-
69
-
70
- tool_name = definition_dict.get('name', getattr(tool, 'provider', 'unknown') + '_tool')
71
- tool_description = definition_dict.get('description', 'Scalekit tool')
72
-
67
+ tool_name, tool_description, definition_dict = extract_tool_metadata(tool)
73
68
 
74
69
  args_schema = definition_dict.get("input_schema", {})
75
70
 
76
71
 
77
72
  def _call(**arguments: Dict[str, Any]) -> str:
78
73
  try:
79
- # Import here to avoid circular imports
80
- from scalekit.actions.types import ToolInput
81
-
82
-
83
74
  # Call connect.execute_tool via callback (includes modifiers and enhanced handling)
84
75
  response = self.execute_callback(
85
76
  tool_input=arguments,
@@ -119,7 +110,3 @@ class LangChain:
119
110
  coroutine=call_tool_async,
120
111
  )
121
112
 
122
- def _struct_to_dict(self, struct) -> Dict[str, Any]:
123
- """Convert protobuf Struct to Python dict"""
124
- from google.protobuf.json_format import MessageToDict
125
- return MessageToDict(struct)
@@ -0,0 +1,7 @@
1
+ from .google_adk_tool import (
2
+ ScalekitGoogleAdkTool,
3
+ )
4
+
5
+ __all__ = [
6
+ 'ScalekitGoogleAdkTool',
7
+ ]
@@ -0,0 +1,77 @@
1
+ from typing import Callable
2
+ from mcp.types import Tool as McpBaseTool
3
+
4
+ # Dynamic imports with helpful error messages
5
+ def _import_google_adk():
6
+ """Import Google ADK with helpful error message if not available"""
7
+ try:
8
+ from google.adk.tools.mcp_tool.mcp_tool import McpTool
9
+ from google.adk.tools.tool_context import ToolContext
10
+ from google.adk.auth.auth_credential import AuthCredential
11
+ return McpTool, AuthCredential, ToolContext
12
+ except ImportError as e:
13
+ raise ImportError(
14
+ "Google ADK not found. To use Google ADK integration, please install:\n"
15
+ "pip install google-adk\n\n"
16
+ "For more information, see: https://google.github.io/adk-docs/\n"
17
+ f"Original error: {e}"
18
+ )
19
+
20
+ McpTool,AuthCredential,ToolContext = _import_google_adk()
21
+
22
+
23
+ class ScalekitGoogleAdkTool(McpTool):
24
+ """Google ADK Tool wrapper for Scalekit tools inheriting from Google BaseTool"""
25
+
26
+ def __init__(
27
+ self,
28
+ mcp_tool: McpBaseTool,
29
+ connected_account_id: str,
30
+ execute_callback: Callable
31
+ ):
32
+ """
33
+ Initialize ScalekitGoogleAdkTool
34
+ :param connected_account_id: Connected account ID for execution
35
+ :param execute_callback: Callback function for tool execution (ActionClient.execute_tool)
36
+ """
37
+
38
+ super().__init__(
39
+ mcp_tool=mcp_tool,
40
+ mcp_session_manager=None,
41
+ auth_scheme=None,
42
+ auth_credential=None,
43
+ )
44
+
45
+ self.connected_account_id = connected_account_id
46
+ self.execute_callback = execute_callback
47
+ self.name = mcp_tool.name
48
+ self.description = mcp_tool.description
49
+
50
+
51
+
52
+
53
+
54
+
55
+ async def _run_async_impl(self, *, args, **kwargs) -> str:
56
+
57
+ try:
58
+ # Call connect.execute_tool via callback (includes modifiers and enhanced handling)
59
+ response = self.execute_callback(
60
+ tool_input=args,
61
+ tool_name=self.name,
62
+ connected_account_id=self.connected_account_id
63
+ )
64
+
65
+ result_data = response.data if hasattr(response, 'data') else {}
66
+
67
+ execution_id = response.execution_id if hasattr(response, 'execution_id') else None
68
+
69
+ # Format the response
70
+ result_dict = dict(result_data) if result_data else {}
71
+ if execution_id:
72
+ result_dict['execution_id'] = execution_id
73
+
74
+ return str(result_dict) if result_dict else f"Tool {self.name} executed successfully"
75
+
76
+ except Exception as e:
77
+ return f"Error executing tool {self.name}: {str(e)}"
@@ -0,0 +1,73 @@
1
+ from typing import Dict, Any
2
+ from mcp.types import Tool as McpBaseTool, ToolAnnotations
3
+
4
+
5
+ def struct_to_dict(struct) -> Dict[str, Any]:
6
+ """
7
+ Convert protobuf Struct to Python dict
8
+
9
+ :param struct: Protobuf Struct object
10
+ :returns: Python dictionary representation
11
+ """
12
+ from google.protobuf.json_format import MessageToDict
13
+ return MessageToDict(struct)
14
+
15
+
16
+ def extract_tool_metadata(tool, default_provider: str = 'unknown'):
17
+ """
18
+ Extract common tool metadata from Scalekit tool definition
19
+
20
+ :param tool: Scalekit tool object
21
+ :param default_provider: Default provider name if not found
22
+ :returns: Tuple of (tool_name, tool_description, definition_dict)
23
+ """
24
+ definition_dict = struct_to_dict(tool.definition) if hasattr(tool, 'definition') and tool.definition else {}
25
+
26
+ tool_name = definition_dict.get('name', getattr(tool, 'provider', default_provider) + '_tool')
27
+ tool_description = definition_dict.get('description', 'Scalekit tool')
28
+
29
+ return tool_name, tool_description, definition_dict
30
+
31
+
32
+ def convert_to_mcp_input_schema(definition_dict: Dict[str, Any]) -> Dict[str, Any]:
33
+ """
34
+ Convert Scalekit tool definition to MCP input schema format
35
+
36
+ :param definition_dict: Scalekit tool definition dictionary
37
+ :returns: MCP-compatible input schema
38
+ """
39
+ input_schema = definition_dict.get("input_schema", {})
40
+
41
+ return {
42
+ "type": "object",
43
+ "properties": input_schema.get("properties", {}),
44
+ "required": input_schema.get("required", [])
45
+ }
46
+
47
+ def build_mcp_tool_from_spec(spec: Dict[str, Any]) -> McpBaseTool:
48
+ """Converts the raw spec dict into an MCP Tool instance.
49
+
50
+ Mapping performed:
51
+ definition.input_schema -> inputSchema
52
+ definition.annotations.* snake_case -> ToolAnnotations camelCase
53
+ """
54
+ definition = spec["definition"]
55
+ ann_raw = definition.get("annotations", {})
56
+ ann_map = {
57
+ "title": ann_raw.get("title"),
58
+ "readOnlyHint": ann_raw.get("read_only_hint"),
59
+ "destructiveHint": ann_raw.get("destructive_hint"),
60
+ "idempotentHint": ann_raw.get("idempotent_hint"),
61
+ "openWorldHint": ann_raw.get("open_world_hint"),
62
+ }
63
+ # Filter out None values
64
+ ann_clean = {k: v for k, v in ann_map.items() if v is not None}
65
+ annotations = ToolAnnotations(**ann_clean) if ann_clean else None
66
+
67
+ mcp_tool = McpBaseTool(
68
+ name=definition["name"],
69
+ description=definition.get("description"),
70
+ inputSchema=definition["input_schema"],
71
+ annotations=annotations,
72
+ )
73
+ return mcp_tool
@@ -26,7 +26,7 @@ class WithCall(Protocol):
26
26
  class CoreClient:
27
27
  """Class definition for Core Client"""
28
28
 
29
- sdk_version = "Scalekit-Python/2.4.5"
29
+ sdk_version = "Scalekit-Python/2.4.6"
30
30
  api_version = "20250917"
31
31
  user_agent = f"{sdk_version} Python/{platform.python_version()} ({platform.system()}; {platform.architecture()}"
32
32
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scalekit-sdk-python
3
- Version: 2.4.5
3
+ Version: 2.4.6
4
4
  Summary: Scalekit official Python SDK
5
5
  Home-page: https://github.com/scalekit-inc/scalekit-sdk-python
6
6
  Author: Team Scalekit
@@ -25,8 +25,8 @@ Requires-Dist: googleapis-common-protos<1.66.0,>=1.56.1
25
25
  Requires-Dist: deprecation>=2.1.0
26
26
  Requires-Dist: python-dotenv>=1.1.0
27
27
  Requires-Dist: Faker~=25.8.0
28
- Requires-Dist: pydantic~=2.11.2
29
- Requires-Dist: langchain-core<0.4,>=0.3.36
28
+ Requires-Dist: pydantic>=2.10.6
29
+ Requires-Dist: mcp>=1.15.0
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -34,7 +34,11 @@ scalekit/actions/actions.py
34
34
  scalekit/actions/modifier.py
35
35
  scalekit/actions/types.py
36
36
  scalekit/actions/frameworks/__init__.py
37
+ scalekit/actions/frameworks/google_adk.py
37
38
  scalekit/actions/frameworks/langchain.py
39
+ scalekit/actions/frameworks/util.py
40
+ scalekit/actions/frameworks/types/__init__.py
41
+ scalekit/actions/frameworks/types/google_adk_tool.py
38
42
  scalekit/actions/models/__init__.py
39
43
  scalekit/actions/models/tool_input_output.py
40
44
  scalekit/actions/models/tool_mapping.py
@@ -12,5 +12,5 @@ googleapis-common-protos<1.66.0,>=1.56.1
12
12
  deprecation>=2.1.0
13
13
  python-dotenv>=1.1.0
14
14
  Faker~=25.8.0
15
- pydantic~=2.11.2
16
- langchain-core<0.4,>=0.3.36
15
+ pydantic>=2.10.6
16
+ mcp>=1.15.0
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
3
3
  setup(
4
4
 
5
5
  name="scalekit-sdk-python",
6
- version="2.4.5",
6
+ version="2.4.6",
7
7
  packages=find_packages(),
8
8
  install_requires=[
9
9
  "grpcio>=1.64.1",
@@ -20,8 +20,8 @@ setup(
20
20
  "deprecation>=2.1.0",
21
21
  "python-dotenv>=1.1.0",
22
22
  "Faker~=25.8.0",
23
- "pydantic~=2.11.2",
24
- "langchain-core>=0.3.36,<0.4",
23
+ "pydantic>=2.10.6",
24
+ "mcp>= 1.15.0",
25
25
  ],
26
26
  url="https://github.com/scalekit-inc/scalekit-sdk-python",
27
27
  license="MIT",