metorial 1.0.0__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 (359) hide show
  1. metorial-1.0.0/LICENSE +21 -0
  2. metorial-1.0.0/MANIFEST.in +10 -0
  3. metorial-1.0.0/PKG-INFO +356 -0
  4. metorial-1.0.0/README.md +308 -0
  5. metorial-1.0.0/VERSION +1 -0
  6. metorial-1.0.0/mcp/__init__.py +1 -0
  7. metorial-1.0.0/mcp/anthropic/__init__.py +5 -0
  8. metorial-1.0.0/mcp/anthropic/metorial_anthropic.py +93 -0
  9. metorial-1.0.0/mcp/mcp_session/__init__.py +13 -0
  10. metorial-1.0.0/mcp/mcp_session/mcp_client.py +72 -0
  11. metorial-1.0.0/mcp/mcp_session/mcp_session.py +89 -0
  12. metorial-1.0.0/mcp/mcp_session/mcp_tool.py +101 -0
  13. metorial-1.0.0/mcp/mcp_session/mcp_tool_manager.py +53 -0
  14. metorial-1.0.0/mcp/openai/__init__.py +5 -0
  15. metorial-1.0.0/mcp/openai/metorial_openai.py +81 -0
  16. metorial-1.0.0/metorial/__init__.py +20 -0
  17. metorial-1.0.0/metorial/ai_sdk.py +67 -0
  18. metorial-1.0.0/metorial/anthropic.py +103 -0
  19. metorial-1.0.0/metorial/client.py +604 -0
  20. metorial-1.0.0/metorial/google.py +115 -0
  21. metorial-1.0.0/metorial/mistral.py +128 -0
  22. metorial-1.0.0/metorial/openai.py +42 -0
  23. metorial-1.0.0/metorial/openai_compatible.py +138 -0
  24. metorial-1.0.0/metorial/schema_utils.py +182 -0
  25. metorial-1.0.0/metorial/uri_template.py +105 -0
  26. metorial-1.0.0/metorial.egg-info/PKG-INFO +356 -0
  27. metorial-1.0.0/metorial.egg-info/SOURCES.txt +357 -0
  28. metorial-1.0.0/metorial.egg-info/dependency_links.txt +1 -0
  29. metorial-1.0.0/metorial.egg-info/not-zip-safe +1 -0
  30. metorial-1.0.0/metorial.egg-info/requires.txt +22 -0
  31. metorial-1.0.0/metorial.egg-info/top_level.txt +2 -0
  32. metorial-1.0.0/packages/core/__init__.py +2 -0
  33. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/__init__.py +2 -0
  34. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/api-keys.py +105 -0
  35. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-files.py +67 -0
  36. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-links.py +85 -0
  37. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-secrets.py +37 -0
  38. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-server-run-error-groups.py +37 -0
  39. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-server-run-errors.py +37 -0
  40. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-server-runs.py +37 -0
  41. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers-deployments.py +82 -0
  42. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers-implementations.py +82 -0
  43. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers-variants.py +39 -0
  44. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers-versions.py +39 -0
  45. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers.py +22 -0
  46. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-sessions-events.py +39 -0
  47. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-sessions-messages.py +39 -0
  48. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-sessions-server-sessions.py +39 -0
  49. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-sessions.py +66 -0
  50. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-instances.py +82 -0
  51. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-invites.py +95 -0
  52. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-join.py +50 -0
  53. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-members.py +67 -0
  54. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-projects.py +82 -0
  55. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations.py +90 -0
  56. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-usage.py +23 -0
  57. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard.py +22 -0
  58. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/files.py +63 -0
  59. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/links.py +80 -0
  60. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-files.py +67 -0
  61. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-links.py +85 -0
  62. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-secrets.py +37 -0
  63. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-server-run-error-groups.py +37 -0
  64. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-server-run-errors.py +37 -0
  65. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-server-runs.py +37 -0
  66. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers-deployments.py +82 -0
  67. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers-implementations.py +82 -0
  68. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers-variants.py +39 -0
  69. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers-versions.py +39 -0
  70. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers.py +22 -0
  71. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-sessions-events.py +39 -0
  72. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-sessions-messages.py +39 -0
  73. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-sessions-server-sessions.py +39 -0
  74. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-sessions.py +66 -0
  75. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization-instances.py +77 -0
  76. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization-invites.py +90 -0
  77. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization-members.py +63 -0
  78. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization-projects.py +77 -0
  79. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization.py +35 -0
  80. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-user.py +49 -0
  81. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/secrets.py +35 -0
  82. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/server-run-error-groups.py +35 -0
  83. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/server-run-errors.py +35 -0
  84. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/server-runs.py +35 -0
  85. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-deployments.py +77 -0
  86. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-implementations.py +77 -0
  87. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-listings-categories.py +35 -0
  88. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-listings-collections.py +35 -0
  89. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-listings.py +35 -0
  90. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-variants.py +37 -0
  91. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-versions.py +37 -0
  92. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers.py +21 -0
  93. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/sessions-events.py +37 -0
  94. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/sessions-messages.py +37 -0
  95. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/sessions-server-sessions.py +37 -0
  96. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/sessions.py +62 -0
  97. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/__init__.py +11 -0
  98. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/__init__.py +7 -0
  99. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/create.py +132 -0
  100. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/get.py +119 -0
  101. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/list.py +124 -0
  102. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/reveal.py +119 -0
  103. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/revoke.py +119 -0
  104. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/rotate.py +137 -0
  105. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/update.py +141 -0
  106. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/__init__.py +4 -0
  107. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/boot.py +56 -0
  108. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/__init__.py +11 -0
  109. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/create.py +54 -0
  110. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/delete.py +36 -0
  111. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/get-membership.py +51 -0
  112. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/get.py +36 -0
  113. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/__init__.py +5 -0
  114. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/create.py +67 -0
  115. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/delete.py +45 -0
  116. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/get.py +45 -0
  117. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/list.py +56 -0
  118. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/update.py +63 -0
  119. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/__init__.py +6 -0
  120. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/create.py +88 -0
  121. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/delete.py +75 -0
  122. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/ensure-link.py +75 -0
  123. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/get.py +75 -0
  124. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/list.py +81 -0
  125. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/update.py +93 -0
  126. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/join/__init__.py +3 -0
  127. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/join/accept.py +93 -0
  128. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/join/get.py +93 -0
  129. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/join/reject.py +93 -0
  130. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/list.py +47 -0
  131. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/__init__.py +4 -0
  132. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/delete.py +51 -0
  133. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/get.py +51 -0
  134. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/list.py +60 -0
  135. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/update.py +69 -0
  136. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/__init__.py +5 -0
  137. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/create.py +50 -0
  138. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/delete.py +32 -0
  139. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/get.py +32 -0
  140. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/list.py +45 -0
  141. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/update.py +50 -0
  142. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/update.py +54 -0
  143. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/usage/__init__.py +1 -0
  144. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/usage/timeline.py +58 -0
  145. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/__init__.py +4 -0
  146. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/delete.py +39 -0
  147. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/get.py +39 -0
  148. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/list.py +50 -0
  149. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/update.py +57 -0
  150. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/__init__.py +5 -0
  151. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/create.py +46 -0
  152. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/delete.py +28 -0
  153. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/get.py +28 -0
  154. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/list.py +37 -0
  155. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/update.py +46 -0
  156. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/__init__.py +3 -0
  157. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/__init__.py +6 -0
  158. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/get.py +36 -0
  159. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/__init__.py +5 -0
  160. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/create.py +67 -0
  161. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/delete.py +45 -0
  162. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/get.py +45 -0
  163. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/list.py +56 -0
  164. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/update.py +63 -0
  165. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/__init__.py +6 -0
  166. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/create.py +88 -0
  167. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/delete.py +75 -0
  168. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/ensure-link.py +75 -0
  169. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/get.py +75 -0
  170. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/list.py +81 -0
  171. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/update.py +93 -0
  172. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/__init__.py +4 -0
  173. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/delete.py +51 -0
  174. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/get.py +51 -0
  175. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/list.py +60 -0
  176. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/update.py +69 -0
  177. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/__init__.py +5 -0
  178. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/create.py +50 -0
  179. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/delete.py +32 -0
  180. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/get.py +32 -0
  181. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/list.py +45 -0
  182. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/update.py +50 -0
  183. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/update.py +54 -0
  184. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/user/__init__.py +3 -0
  185. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/user/delete.py +58 -0
  186. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/user/get.py +38 -0
  187. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/user/update.py +58 -0
  188. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/secrets/__init__.py +2 -0
  189. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/secrets/get.py +41 -0
  190. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/secrets/list.py +51 -0
  191. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_error_groups/__init__.py +2 -0
  192. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_error_groups/get.py +51 -0
  193. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_error_groups/list.py +65 -0
  194. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_errors/__init__.py +2 -0
  195. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_errors/get.py +43 -0
  196. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_errors/list.py +57 -0
  197. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_runs/__init__.py +2 -0
  198. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_runs/get.py +40 -0
  199. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_runs/list.py +49 -0
  200. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/__init__.py +6 -0
  201. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/__init__.py +5 -0
  202. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/create.py +91 -0
  203. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/delete.py +78 -0
  204. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/get.py +78 -0
  205. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/list.py +87 -0
  206. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/update.py +102 -0
  207. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/get.py +62 -0
  208. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/__init__.py +5 -0
  209. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/create.py +63 -0
  210. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/delete.py +50 -0
  211. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/get.py +50 -0
  212. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/list.py +60 -0
  213. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/update.py +74 -0
  214. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/__init__.py +4 -0
  215. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/categories/__init__.py +2 -0
  216. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/categories/get.py +30 -0
  217. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/categories/list.py +44 -0
  218. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/collections/__init__.py +2 -0
  219. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/collections/get.py +30 -0
  220. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/collections/list.py +44 -0
  221. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/get.py +94 -0
  222. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/list.py +98 -0
  223. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/variants/__init__.py +2 -0
  224. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/variants/get.py +48 -0
  225. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/variants/list.py +62 -0
  226. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/versions/__init__.py +2 -0
  227. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/versions/get.py +42 -0
  228. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/versions/list.py +54 -0
  229. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/__init__.py +7 -0
  230. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/create.py +114 -0
  231. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/delete.py +96 -0
  232. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/events/__init__.py +2 -0
  233. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/events/get.py +41 -0
  234. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/events/list.py +56 -0
  235. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/get.py +96 -0
  236. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/list.py +106 -0
  237. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/messages/__init__.py +2 -0
  238. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/messages/get.py +41 -0
  239. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/messages/list.py +54 -0
  240. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/server_sessions/__init__.py +2 -0
  241. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/server_sessions/get.py +52 -0
  242. metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/server_sessions/list.py +65 -0
  243. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/__init__.py +2 -0
  244. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-files.py +67 -0
  245. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-instance.py +21 -0
  246. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-links.py +85 -0
  247. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-secrets.py +37 -0
  248. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-server-run-errors.py +37 -0
  249. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-server-runs.py +37 -0
  250. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers-deployments.py +82 -0
  251. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers-implementations.py +82 -0
  252. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers-variants.py +39 -0
  253. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers-versions.py +39 -0
  254. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers.py +22 -0
  255. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-sessions-events.py +39 -0
  256. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-sessions-messages.py +39 -0
  257. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-sessions-server-sessions.py +39 -0
  258. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-sessions.py +66 -0
  259. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/files.py +63 -0
  260. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/instance.py +21 -0
  261. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/links.py +80 -0
  262. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-files.py +67 -0
  263. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-instance.py +21 -0
  264. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-links.py +85 -0
  265. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-secrets.py +37 -0
  266. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-server-run-errors.py +37 -0
  267. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-server-runs.py +37 -0
  268. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers-deployments.py +82 -0
  269. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers-implementations.py +82 -0
  270. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers-variants.py +39 -0
  271. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers-versions.py +39 -0
  272. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers.py +22 -0
  273. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-sessions-events.py +39 -0
  274. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-sessions-messages.py +39 -0
  275. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-sessions-server-sessions.py +39 -0
  276. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-sessions.py +66 -0
  277. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/secrets.py +35 -0
  278. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/server-run-errors.py +35 -0
  279. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/server-runs.py +35 -0
  280. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers-deployments.py +77 -0
  281. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers-implementations.py +77 -0
  282. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers-variants.py +37 -0
  283. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers-versions.py +37 -0
  284. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers.py +21 -0
  285. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/sessions-events.py +37 -0
  286. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/sessions-messages.py +37 -0
  287. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/sessions-server-sessions.py +37 -0
  288. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/sessions.py +62 -0
  289. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/__init__.py +10 -0
  290. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/dashboard/__init__.py +1 -0
  291. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/__init__.py +4 -0
  292. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/delete.py +39 -0
  293. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/get.py +39 -0
  294. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/list.py +50 -0
  295. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/update.py +57 -0
  296. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/__init__.py +5 -0
  297. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/create.py +46 -0
  298. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/delete.py +28 -0
  299. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/get.py +28 -0
  300. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/list.py +37 -0
  301. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/update.py +46 -0
  302. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/management/__init__.py +1 -0
  303. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/secrets/__init__.py +2 -0
  304. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/secrets/get.py +41 -0
  305. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/secrets/list.py +51 -0
  306. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_run_errors/__init__.py +2 -0
  307. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_run_errors/get.py +43 -0
  308. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_run_errors/list.py +57 -0
  309. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_runs/__init__.py +2 -0
  310. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_runs/get.py +40 -0
  311. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_runs/list.py +49 -0
  312. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/__init__.py +5 -0
  313. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/__init__.py +5 -0
  314. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/create.py +91 -0
  315. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/delete.py +78 -0
  316. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/get.py +78 -0
  317. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/list.py +87 -0
  318. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/update.py +102 -0
  319. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/get.py +62 -0
  320. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/__init__.py +5 -0
  321. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/create.py +63 -0
  322. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/delete.py +50 -0
  323. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/get.py +50 -0
  324. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/list.py +60 -0
  325. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/update.py +74 -0
  326. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/variants/__init__.py +2 -0
  327. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/variants/get.py +48 -0
  328. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/variants/list.py +62 -0
  329. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/versions/__init__.py +2 -0
  330. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/versions/get.py +42 -0
  331. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/versions/list.py +54 -0
  332. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/__init__.py +7 -0
  333. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/create.py +114 -0
  334. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/delete.py +96 -0
  335. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/events/__init__.py +2 -0
  336. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/events/get.py +41 -0
  337. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/events/list.py +56 -0
  338. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/get.py +96 -0
  339. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/list.py +106 -0
  340. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/messages/__init__.py +2 -0
  341. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/messages/get.py +41 -0
  342. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/messages/list.py +54 -0
  343. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/server_sessions/__init__.py +2 -0
  344. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/server_sessions/get.py +52 -0
  345. metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/server_sessions/list.py +65 -0
  346. metorial-1.0.0/packages/core/setup.py +25 -0
  347. metorial-1.0.0/packages/mcp_sdk_utils/__init__.py +5 -0
  348. metorial-1.0.0/packages/mcp_sdk_utils/create_mcp_sdk.py +53 -0
  349. metorial-1.0.0/packages/sdk/__init__.py +2 -0
  350. metorial-1.0.0/packages/sdk/sdk.py +78 -0
  351. metorial-1.0.0/packages/sdk/setup.py +26 -0
  352. metorial-1.0.0/packages/util_endpoint/__init__.py +2 -0
  353. metorial-1.0.0/packages/util_endpoint/error.py +61 -0
  354. metorial-1.0.0/packages/util_endpoint/metorial_util_endpoint.py +159 -0
  355. metorial-1.0.0/packages/util_endpoint/sdk_builder.py +48 -0
  356. metorial-1.0.0/packages/util_endpoint/setup.py +23 -0
  357. metorial-1.0.0/pyproject.toml +138 -0
  358. metorial-1.0.0/setup.cfg +4 -0
  359. metorial-1.0.0/setup.py +88 -0
metorial-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Metorial
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,10 @@
1
+ include README.md
2
+ include LICENSE
3
+ include VERSION
4
+ include INSTALLATION_SUCCESS.md
5
+ recursive-include metorial *.py
6
+ recursive-include packages *.py
7
+ recursive-include mcp *.py
8
+ recursive-exclude * __pycache__
9
+ recursive-exclude * *.py[co]
10
+ recursive-exclude * .DS_Store
@@ -0,0 +1,356 @@
1
+ Metadata-Version: 2.4
2
+ Name: metorial
3
+ Version: 1.0.0
4
+ Summary: Python SDK for Metorial - AI-powered tool calling and session management
5
+ Home-page: https://github.com/metorial/metorial-enterprise
6
+ Author: Metorial Team
7
+ Author-email: Metorial Team <support@metorial.com>
8
+ License: MIT
9
+ Project-URL: Homepage, https://metorial.com
10
+ Project-URL: Documentation, https://metorial.com/docs
11
+ Project-URL: Repository, https://github.com/metorial/metorial/clients/metorial-py
12
+ Project-URL: Changelog, https://github.com/metorial/metorial/blob/main/clients/metorial-py/CHANGELOG.md
13
+ Keywords: metorial,ai,llm,openai,anthropic,tools,mcp,model-context-protocol,chat,completions,sessions
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
24
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
25
+ Requires-Python: >=3.8
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: aiohttp>=3.8.0
29
+ Requires-Dist: typing-extensions>=4.0.0
30
+ Requires-Dist: dataclasses; python_version < "3.7"
31
+ Provides-Extra: openai
32
+ Requires-Dist: openai>=1.0.0; extra == "openai"
33
+ Provides-Extra: anthropic
34
+ Requires-Dist: anthropic>=0.3.0; extra == "anthropic"
35
+ Provides-Extra: dev
36
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
37
+ Requires-Dist: pytest-asyncio>=0.20.0; extra == "dev"
38
+ Requires-Dist: black>=22.0.0; extra == "dev"
39
+ Requires-Dist: flake8>=4.0.0; extra == "dev"
40
+ Requires-Dist: mypy>=0.910; extra == "dev"
41
+ Provides-Extra: all
42
+ Requires-Dist: openai>=1.0.0; extra == "all"
43
+ Requires-Dist: anthropic>=0.3.0; extra == "all"
44
+ Dynamic: author
45
+ Dynamic: home-page
46
+ Dynamic: license-file
47
+ Dynamic: requires-python
48
+
49
+ # Metorial Python SDK
50
+
51
+ The official Python SDK for [Metorial](https://metorial.com) - AI-powered tool calling and session management.
52
+
53
+ ## Features
54
+
55
+ 🔧 **Multi-Provider Support**: Use the same tools across different AI providers
56
+
57
+ - ✅ OpenAI (GPT-4, GPT-3.5)
58
+ - ✅ Anthropic (Claude)
59
+ - ✅ Google (Gemini)
60
+ - ✅ Mistral AI
61
+ - ✅ DeepSeek
62
+ - ✅ Together AI
63
+ - ✅ XAI (Grok)
64
+ - ✅ AI SDK frameworks
65
+
66
+ 🚀 **Easy Integration**: Simple async/await interface
67
+ 📡 **Session Management**: Automatic session lifecycle handling
68
+ 🛠️ **Tool Discovery**: Automatic tool detection and formatting
69
+ 🔄 **Format Conversion**: Provider-specific tool format conversion
70
+ ⚡ **High Performance**: Built with aiohttp for fast async operations
71
+
72
+ ## Installation
73
+
74
+ ```bash
75
+ pip install metorial
76
+ ```
77
+
78
+ ## Quick Start
79
+
80
+ ### OpenAI Example
81
+
82
+ ```python
83
+ import asyncio
84
+ from metorial import Metorial, metorial_openai
85
+ from openai import OpenAI
86
+
87
+ async def main():
88
+ # Initialize clients
89
+ metorial = Metorial(
90
+ api_key="your-metorial-api-key"
91
+ )
92
+
93
+ openai_client = OpenAI(api_key="your-openai-api-key")
94
+
95
+ # Use Metorial tools with OpenAI
96
+ async def session_callback(session):
97
+ messages = [{"role": "user", "content": "What are the latest commits?"}]
98
+
99
+ for i in range(10):
100
+ # Call OpenAI with Metorial tools
101
+ response = openai_client.chat.completions.create(
102
+ model="gpt-4o",
103
+ messages=messages,
104
+ tools=session.tools
105
+ )
106
+
107
+ choice = response.choices[0]
108
+ tool_calls = choice.message.tool_calls
109
+
110
+ if not tool_calls:
111
+ print(choice.message.content)
112
+ return
113
+
114
+ # Execute tools through Metorial
115
+ tool_responses = await session.call_tools(tool_calls)
116
+
117
+ # Add to conversation
118
+ messages.append({
119
+ "role": "assistant",
120
+ "tool_calls": [
121
+ {
122
+ "id": tc.id,
123
+ "type": tc.type,
124
+ "function": {
125
+ "name": tc.function.name,
126
+ "arguments": tc.function.arguments
127
+ }
128
+ } for tc in tool_calls
129
+ ]
130
+ })
131
+ messages.extend(tool_responses)
132
+
133
+ await metorial.with_provider_session(
134
+ metorial_openai.chat_completions,
135
+ {"server_deployments": ["your-server-deployment-id"]},
136
+ session_callback
137
+ )
138
+
139
+ asyncio.run(main())
140
+ ```
141
+
142
+ ## Provider Examples
143
+
144
+ ### Anthropic (Claude)
145
+
146
+ ```python
147
+ from metorial import metorial_anthropic
148
+ import anthropic
149
+
150
+ # Format tools for Anthropic
151
+ anthropic_tools = metorial_anthropic.format_tools(tool_data)
152
+
153
+ # Use with Anthropic client
154
+ client = anthropic.Anthropic(api_key="your-key")
155
+ response = client.messages.create(
156
+ model="claude-3-sonnet-20240229",
157
+ tools=anthropic_tools,
158
+ messages=[{"role": "user", "content": "Help me with GitHub"}]
159
+ )
160
+
161
+ # Handle tool calls
162
+ if response.tool_calls:
163
+ tool_result = await metorial_anthropic.call_tools(
164
+ tool_manager, response.tool_calls
165
+ )
166
+ ```
167
+
168
+ ### Google (Gemini)
169
+
170
+ ```python
171
+ from metorial import metorial_google
172
+ import google.generativeai as genai
173
+
174
+ # Format tools for Google
175
+ google_tools = metorial_google.format_tools(tool_data)
176
+
177
+ # Use with Google client
178
+ model = genai.GenerativeModel('gemini-pro', tools=google_tools)
179
+ response = model.generate_content("What can you help me with?")
180
+
181
+ # Handle function calls
182
+ if response.function_calls:
183
+ function_result = await metorial_google.call_tools(
184
+ tool_manager, response.function_calls
185
+ )
186
+ ```
187
+
188
+ ### OpenAI-Compatible (DeepSeek, TogetherAI, XAI)
189
+
190
+ ```python
191
+ from metorial import metorial_deepseek, metorial_xai
192
+ from openai import OpenAI
193
+
194
+ # Works with any OpenAI-compatible API
195
+ deepseek_client = OpenAI(
196
+ api_key="your-deepseek-key",
197
+ base_url="https://api.deepseek.com"
198
+ )
199
+
200
+ # Format tools (same as OpenAI format)
201
+ tools = metorial_deepseek.format_tools(tool_data)
202
+
203
+ response = deepseek_client.chat.completions.create(
204
+ model="deepseek-chat",
205
+ messages=messages,
206
+ tools=tools
207
+ )
208
+ ```
209
+
210
+ ## Available Providers
211
+
212
+ | Provider | Import | Format | Description |
213
+ | ---------- | --------------------- | ---------------------------- | ----------------------------- |
214
+ | OpenAI | `metorial_openai` | OpenAI function calling | GPT-4, GPT-3.5, etc. |
215
+ | Anthropic | `metorial_anthropic` | Claude tool format | Claude 3.5, Claude 3, etc. |
216
+ | Google | `metorial_google` | Gemini function declarations | Gemini Pro, Gemini Flash |
217
+ | Mistral | `metorial_mistral` | Mistral function calling | Mistral Large, Codestral |
218
+ | DeepSeek | `metorial_deepseek` | OpenAI-compatible | DeepSeek Chat, DeepSeek Coder |
219
+ | TogetherAI | `metorial_togetherai` | OpenAI-compatible | Llama, Mixtral, etc. |
220
+ | XAI | `metorial_xai` | OpenAI-compatible | Grok models |
221
+ | AI SDK | `metorial_ai_sdk` | Framework tools | Vercel AI SDK, etc. |
222
+
223
+ ## Core API
224
+
225
+ ### Metorial Class
226
+
227
+ ```python
228
+ from metorial import Metorial
229
+
230
+ metorial = Metorial(
231
+ api_key="your-api-key"
232
+ )
233
+ ```
234
+
235
+ ### Session Management
236
+
237
+ ```python
238
+ # Provider session (recommended)
239
+ await metorial.with_provider_session(
240
+ provider.chat_completions,
241
+ {"server_deployments": ["deployment-id"]},
242
+ session_callback
243
+ )
244
+
245
+ # Direct session management
246
+ await metorial.with_session(
247
+ ["deployment-id"],
248
+ session_callback
249
+ )
250
+ ```
251
+
252
+ ### Session Object
253
+
254
+ The session object passed to your callback provides:
255
+
256
+ ```python
257
+ async def session_callback(session):
258
+ # OpenAI-compatible interface
259
+ tools = session.tools # List of tool definitions
260
+ responses = await session.call_tools(tool_calls) # Execute tools
261
+
262
+ # Advanced access
263
+ tool_manager = session.tool_manager # Direct tool management
264
+ mcp_session = session.session # Raw MCP session
265
+ ```
266
+
267
+ ## Error Handling
268
+
269
+ ```python
270
+ from metorial.client import MetorialAPIError
271
+
272
+ try:
273
+ await metorial.with_provider_session(...)
274
+ except MetorialAPIError as e:
275
+ print(f"API Error: {e.message} (Status: {e.status_code})")
276
+ except Exception as e:
277
+ print(f"Unexpected error: {e}")
278
+ ```
279
+
280
+ ## Examples
281
+
282
+ Check out the `examples/` directory for more comprehensive examples:
283
+
284
+ - [`examples/python-openai.py`](examples/anthropic_example.py) - OpenAi integration
285
+
286
+ ## Requirements
287
+
288
+ - Python 3.8+
289
+ - `aiohttp` for async HTTP requests
290
+ - Provider-specific SDKs (optional):
291
+ - `openai` for OpenAI integration
292
+ - `anthropic` for Anthropic integration
293
+ - `google-generativeai` for Google integration
294
+ - `mistralai` for Mistral integration
295
+
296
+ ## Development
297
+
298
+ This project includes a `Makefile` to help with common development tasks:
299
+
300
+ ### Setup and Installation
301
+
302
+ ```bash
303
+ make install # Install dependencies
304
+ make install-dev # Install development dependencies
305
+ ```
306
+
307
+ ### Code Quality
308
+
309
+ ```bash
310
+ make lint # Run linting checks
311
+ make format # Format code with black
312
+ make type-check # Run type checking with mypy
313
+ make test # Run test suite
314
+ make test-cov # Run tests with coverage
315
+ ```
316
+
317
+ ### Build and Distribution
318
+
319
+ ```bash
320
+ make build # Build the package
321
+ make clean # Clean build artifacts
322
+ make publish # Publish to PyPI (requires credentials)
323
+ ```
324
+
325
+ ### Development Workflow
326
+
327
+ ```bash
328
+ make all-checks # Run all development checks (lint, format check, type-check)
329
+ make quick-check # Run complete pipeline (format, lint, type-check, test)
330
+ ```
331
+
332
+ ### Help
333
+
334
+ ```bash
335
+ make help # Show all available targets
336
+ ```
337
+
338
+ ## Contributing
339
+
340
+ 1. Fork the repository
341
+ 2. Create a feature branch
342
+ 3. Make your changes
343
+ 4. Run `make all-checks` to ensure code quality
344
+ 5. Add tests and run `make test`
345
+ 6. Submit a pull request
346
+
347
+ ## License
348
+
349
+ MIT License - see [LICENSE](LICENSE) file for details.
350
+
351
+ ## Support
352
+
353
+ - 📖 [Documentation](https://docs.metorial.com)
354
+ - 💬 [Discord Community](https://discord.gg/metorial)
355
+ - 🐛 [GitHub Issues](https://github.com/metorial/metorial-enterprise/issues)
356
+ - 📧 [Email Support](mailto:support@metorial.com)
@@ -0,0 +1,308 @@
1
+ # Metorial Python SDK
2
+
3
+ The official Python SDK for [Metorial](https://metorial.com) - AI-powered tool calling and session management.
4
+
5
+ ## Features
6
+
7
+ 🔧 **Multi-Provider Support**: Use the same tools across different AI providers
8
+
9
+ - ✅ OpenAI (GPT-4, GPT-3.5)
10
+ - ✅ Anthropic (Claude)
11
+ - ✅ Google (Gemini)
12
+ - ✅ Mistral AI
13
+ - ✅ DeepSeek
14
+ - ✅ Together AI
15
+ - ✅ XAI (Grok)
16
+ - ✅ AI SDK frameworks
17
+
18
+ 🚀 **Easy Integration**: Simple async/await interface
19
+ 📡 **Session Management**: Automatic session lifecycle handling
20
+ 🛠️ **Tool Discovery**: Automatic tool detection and formatting
21
+ 🔄 **Format Conversion**: Provider-specific tool format conversion
22
+ ⚡ **High Performance**: Built with aiohttp for fast async operations
23
+
24
+ ## Installation
25
+
26
+ ```bash
27
+ pip install metorial
28
+ ```
29
+
30
+ ## Quick Start
31
+
32
+ ### OpenAI Example
33
+
34
+ ```python
35
+ import asyncio
36
+ from metorial import Metorial, metorial_openai
37
+ from openai import OpenAI
38
+
39
+ async def main():
40
+ # Initialize clients
41
+ metorial = Metorial(
42
+ api_key="your-metorial-api-key"
43
+ )
44
+
45
+ openai_client = OpenAI(api_key="your-openai-api-key")
46
+
47
+ # Use Metorial tools with OpenAI
48
+ async def session_callback(session):
49
+ messages = [{"role": "user", "content": "What are the latest commits?"}]
50
+
51
+ for i in range(10):
52
+ # Call OpenAI with Metorial tools
53
+ response = openai_client.chat.completions.create(
54
+ model="gpt-4o",
55
+ messages=messages,
56
+ tools=session.tools
57
+ )
58
+
59
+ choice = response.choices[0]
60
+ tool_calls = choice.message.tool_calls
61
+
62
+ if not tool_calls:
63
+ print(choice.message.content)
64
+ return
65
+
66
+ # Execute tools through Metorial
67
+ tool_responses = await session.call_tools(tool_calls)
68
+
69
+ # Add to conversation
70
+ messages.append({
71
+ "role": "assistant",
72
+ "tool_calls": [
73
+ {
74
+ "id": tc.id,
75
+ "type": tc.type,
76
+ "function": {
77
+ "name": tc.function.name,
78
+ "arguments": tc.function.arguments
79
+ }
80
+ } for tc in tool_calls
81
+ ]
82
+ })
83
+ messages.extend(tool_responses)
84
+
85
+ await metorial.with_provider_session(
86
+ metorial_openai.chat_completions,
87
+ {"server_deployments": ["your-server-deployment-id"]},
88
+ session_callback
89
+ )
90
+
91
+ asyncio.run(main())
92
+ ```
93
+
94
+ ## Provider Examples
95
+
96
+ ### Anthropic (Claude)
97
+
98
+ ```python
99
+ from metorial import metorial_anthropic
100
+ import anthropic
101
+
102
+ # Format tools for Anthropic
103
+ anthropic_tools = metorial_anthropic.format_tools(tool_data)
104
+
105
+ # Use with Anthropic client
106
+ client = anthropic.Anthropic(api_key="your-key")
107
+ response = client.messages.create(
108
+ model="claude-3-sonnet-20240229",
109
+ tools=anthropic_tools,
110
+ messages=[{"role": "user", "content": "Help me with GitHub"}]
111
+ )
112
+
113
+ # Handle tool calls
114
+ if response.tool_calls:
115
+ tool_result = await metorial_anthropic.call_tools(
116
+ tool_manager, response.tool_calls
117
+ )
118
+ ```
119
+
120
+ ### Google (Gemini)
121
+
122
+ ```python
123
+ from metorial import metorial_google
124
+ import google.generativeai as genai
125
+
126
+ # Format tools for Google
127
+ google_tools = metorial_google.format_tools(tool_data)
128
+
129
+ # Use with Google client
130
+ model = genai.GenerativeModel('gemini-pro', tools=google_tools)
131
+ response = model.generate_content("What can you help me with?")
132
+
133
+ # Handle function calls
134
+ if response.function_calls:
135
+ function_result = await metorial_google.call_tools(
136
+ tool_manager, response.function_calls
137
+ )
138
+ ```
139
+
140
+ ### OpenAI-Compatible (DeepSeek, TogetherAI, XAI)
141
+
142
+ ```python
143
+ from metorial import metorial_deepseek, metorial_xai
144
+ from openai import OpenAI
145
+
146
+ # Works with any OpenAI-compatible API
147
+ deepseek_client = OpenAI(
148
+ api_key="your-deepseek-key",
149
+ base_url="https://api.deepseek.com"
150
+ )
151
+
152
+ # Format tools (same as OpenAI format)
153
+ tools = metorial_deepseek.format_tools(tool_data)
154
+
155
+ response = deepseek_client.chat.completions.create(
156
+ model="deepseek-chat",
157
+ messages=messages,
158
+ tools=tools
159
+ )
160
+ ```
161
+
162
+ ## Available Providers
163
+
164
+ | Provider | Import | Format | Description |
165
+ | ---------- | --------------------- | ---------------------------- | ----------------------------- |
166
+ | OpenAI | `metorial_openai` | OpenAI function calling | GPT-4, GPT-3.5, etc. |
167
+ | Anthropic | `metorial_anthropic` | Claude tool format | Claude 3.5, Claude 3, etc. |
168
+ | Google | `metorial_google` | Gemini function declarations | Gemini Pro, Gemini Flash |
169
+ | Mistral | `metorial_mistral` | Mistral function calling | Mistral Large, Codestral |
170
+ | DeepSeek | `metorial_deepseek` | OpenAI-compatible | DeepSeek Chat, DeepSeek Coder |
171
+ | TogetherAI | `metorial_togetherai` | OpenAI-compatible | Llama, Mixtral, etc. |
172
+ | XAI | `metorial_xai` | OpenAI-compatible | Grok models |
173
+ | AI SDK | `metorial_ai_sdk` | Framework tools | Vercel AI SDK, etc. |
174
+
175
+ ## Core API
176
+
177
+ ### Metorial Class
178
+
179
+ ```python
180
+ from metorial import Metorial
181
+
182
+ metorial = Metorial(
183
+ api_key="your-api-key"
184
+ )
185
+ ```
186
+
187
+ ### Session Management
188
+
189
+ ```python
190
+ # Provider session (recommended)
191
+ await metorial.with_provider_session(
192
+ provider.chat_completions,
193
+ {"server_deployments": ["deployment-id"]},
194
+ session_callback
195
+ )
196
+
197
+ # Direct session management
198
+ await metorial.with_session(
199
+ ["deployment-id"],
200
+ session_callback
201
+ )
202
+ ```
203
+
204
+ ### Session Object
205
+
206
+ The session object passed to your callback provides:
207
+
208
+ ```python
209
+ async def session_callback(session):
210
+ # OpenAI-compatible interface
211
+ tools = session.tools # List of tool definitions
212
+ responses = await session.call_tools(tool_calls) # Execute tools
213
+
214
+ # Advanced access
215
+ tool_manager = session.tool_manager # Direct tool management
216
+ mcp_session = session.session # Raw MCP session
217
+ ```
218
+
219
+ ## Error Handling
220
+
221
+ ```python
222
+ from metorial.client import MetorialAPIError
223
+
224
+ try:
225
+ await metorial.with_provider_session(...)
226
+ except MetorialAPIError as e:
227
+ print(f"API Error: {e.message} (Status: {e.status_code})")
228
+ except Exception as e:
229
+ print(f"Unexpected error: {e}")
230
+ ```
231
+
232
+ ## Examples
233
+
234
+ Check out the `examples/` directory for more comprehensive examples:
235
+
236
+ - [`examples/python-openai.py`](examples/anthropic_example.py) - OpenAi integration
237
+
238
+ ## Requirements
239
+
240
+ - Python 3.8+
241
+ - `aiohttp` for async HTTP requests
242
+ - Provider-specific SDKs (optional):
243
+ - `openai` for OpenAI integration
244
+ - `anthropic` for Anthropic integration
245
+ - `google-generativeai` for Google integration
246
+ - `mistralai` for Mistral integration
247
+
248
+ ## Development
249
+
250
+ This project includes a `Makefile` to help with common development tasks:
251
+
252
+ ### Setup and Installation
253
+
254
+ ```bash
255
+ make install # Install dependencies
256
+ make install-dev # Install development dependencies
257
+ ```
258
+
259
+ ### Code Quality
260
+
261
+ ```bash
262
+ make lint # Run linting checks
263
+ make format # Format code with black
264
+ make type-check # Run type checking with mypy
265
+ make test # Run test suite
266
+ make test-cov # Run tests with coverage
267
+ ```
268
+
269
+ ### Build and Distribution
270
+
271
+ ```bash
272
+ make build # Build the package
273
+ make clean # Clean build artifacts
274
+ make publish # Publish to PyPI (requires credentials)
275
+ ```
276
+
277
+ ### Development Workflow
278
+
279
+ ```bash
280
+ make all-checks # Run all development checks (lint, format check, type-check)
281
+ make quick-check # Run complete pipeline (format, lint, type-check, test)
282
+ ```
283
+
284
+ ### Help
285
+
286
+ ```bash
287
+ make help # Show all available targets
288
+ ```
289
+
290
+ ## Contributing
291
+
292
+ 1. Fork the repository
293
+ 2. Create a feature branch
294
+ 3. Make your changes
295
+ 4. Run `make all-checks` to ensure code quality
296
+ 5. Add tests and run `make test`
297
+ 6. Submit a pull request
298
+
299
+ ## License
300
+
301
+ MIT License - see [LICENSE](LICENSE) file for details.
302
+
303
+ ## Support
304
+
305
+ - 📖 [Documentation](https://docs.metorial.com)
306
+ - 💬 [Discord Community](https://discord.gg/metorial)
307
+ - 🐛 [GitHub Issues](https://github.com/metorial/metorial-enterprise/issues)
308
+ - 📧 [Email Support](mailto:support@metorial.com)
metorial-1.0.0/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
@@ -0,0 +1 @@
1
+ # MCP integrations for Metorial Python client
@@ -0,0 +1,5 @@
1
+ """Anthropic integration for Metorial Python client."""
2
+
3
+ from .metorial_anthropic import metorial_anthropic
4
+
5
+ __all__ = ["metorial_anthropic"]