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.
- metorial-1.0.0/LICENSE +21 -0
- metorial-1.0.0/MANIFEST.in +10 -0
- metorial-1.0.0/PKG-INFO +356 -0
- metorial-1.0.0/README.md +308 -0
- metorial-1.0.0/VERSION +1 -0
- metorial-1.0.0/mcp/__init__.py +1 -0
- metorial-1.0.0/mcp/anthropic/__init__.py +5 -0
- metorial-1.0.0/mcp/anthropic/metorial_anthropic.py +93 -0
- metorial-1.0.0/mcp/mcp_session/__init__.py +13 -0
- metorial-1.0.0/mcp/mcp_session/mcp_client.py +72 -0
- metorial-1.0.0/mcp/mcp_session/mcp_session.py +89 -0
- metorial-1.0.0/mcp/mcp_session/mcp_tool.py +101 -0
- metorial-1.0.0/mcp/mcp_session/mcp_tool_manager.py +53 -0
- metorial-1.0.0/mcp/openai/__init__.py +5 -0
- metorial-1.0.0/mcp/openai/metorial_openai.py +81 -0
- metorial-1.0.0/metorial/__init__.py +20 -0
- metorial-1.0.0/metorial/ai_sdk.py +67 -0
- metorial-1.0.0/metorial/anthropic.py +103 -0
- metorial-1.0.0/metorial/client.py +604 -0
- metorial-1.0.0/metorial/google.py +115 -0
- metorial-1.0.0/metorial/mistral.py +128 -0
- metorial-1.0.0/metorial/openai.py +42 -0
- metorial-1.0.0/metorial/openai_compatible.py +138 -0
- metorial-1.0.0/metorial/schema_utils.py +182 -0
- metorial-1.0.0/metorial/uri_template.py +105 -0
- metorial-1.0.0/metorial.egg-info/PKG-INFO +356 -0
- metorial-1.0.0/metorial.egg-info/SOURCES.txt +357 -0
- metorial-1.0.0/metorial.egg-info/dependency_links.txt +1 -0
- metorial-1.0.0/metorial.egg-info/not-zip-safe +1 -0
- metorial-1.0.0/metorial.egg-info/requires.txt +22 -0
- metorial-1.0.0/metorial.egg-info/top_level.txt +2 -0
- metorial-1.0.0/packages/core/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/api-keys.py +105 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-files.py +67 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-links.py +85 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-secrets.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-server-run-error-groups.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-server-run-errors.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-server-runs.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers-deployments.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers-implementations.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers-variants.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers-versions.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-servers.py +22 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-sessions-events.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-sessions-messages.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-sessions-server-sessions.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-instance-sessions.py +66 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-instances.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-invites.py +95 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-join.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-members.py +67 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations-projects.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-organizations.py +90 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard-usage.py +23 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/dashboard.py +22 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/files.py +63 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/links.py +80 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-files.py +67 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-links.py +85 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-secrets.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-server-run-error-groups.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-server-run-errors.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-server-runs.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers-deployments.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers-implementations.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers-variants.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers-versions.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-servers.py +22 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-sessions-events.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-sessions-messages.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-sessions-server-sessions.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-instance-sessions.py +66 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization-instances.py +77 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization-invites.py +90 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization-members.py +63 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization-projects.py +77 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-organization.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/management-user.py +49 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/secrets.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/server-run-error-groups.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/server-run-errors.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/server-runs.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-deployments.py +77 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-implementations.py +77 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-listings-categories.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-listings-collections.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-listings.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-variants.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers-versions.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/servers.py +21 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/sessions-events.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/sessions-messages.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/sessions-server-sessions.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/endpoints/sessions.py +62 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/__init__.py +11 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/__init__.py +7 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/create.py +132 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/get.py +119 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/list.py +124 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/reveal.py +119 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/revoke.py +119 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/rotate.py +137 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/api_keys/update.py +141 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/__init__.py +4 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/boot.py +56 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/__init__.py +11 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/create.py +54 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/delete.py +36 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/get-membership.py +51 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/get.py +36 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/create.py +67 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/delete.py +45 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/get.py +45 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/list.py +56 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/instances/update.py +63 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/__init__.py +6 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/create.py +88 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/delete.py +75 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/ensure-link.py +75 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/get.py +75 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/list.py +81 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/invites/update.py +93 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/join/__init__.py +3 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/join/accept.py +93 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/join/get.py +93 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/join/reject.py +93 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/list.py +47 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/__init__.py +4 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/delete.py +51 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/get.py +51 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/list.py +60 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/members/update.py +69 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/create.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/delete.py +32 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/get.py +32 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/list.py +45 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/projects/update.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/organizations/update.py +54 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/usage/__init__.py +1 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/dashboard/usage/timeline.py +58 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/__init__.py +4 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/delete.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/get.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/list.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/files/update.py +57 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/create.py +46 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/delete.py +28 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/get.py +28 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/list.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/links/update.py +46 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/__init__.py +3 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/__init__.py +6 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/get.py +36 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/create.py +67 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/delete.py +45 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/get.py +45 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/list.py +56 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/instances/update.py +63 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/__init__.py +6 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/create.py +88 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/delete.py +75 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/ensure-link.py +75 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/get.py +75 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/list.py +81 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/invites/update.py +93 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/__init__.py +4 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/delete.py +51 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/get.py +51 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/list.py +60 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/members/update.py +69 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/create.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/delete.py +32 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/get.py +32 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/list.py +45 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/projects/update.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/organization/update.py +54 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/user/__init__.py +3 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/user/delete.py +58 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/user/get.py +38 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/management/user/update.py +58 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/secrets/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/secrets/get.py +41 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/secrets/list.py +51 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_error_groups/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_error_groups/get.py +51 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_error_groups/list.py +65 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_errors/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_errors/get.py +43 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_run_errors/list.py +57 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_runs/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_runs/get.py +40 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/server_runs/list.py +49 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/__init__.py +6 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/create.py +91 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/delete.py +78 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/get.py +78 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/list.py +87 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/deployments/update.py +102 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/get.py +62 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/create.py +63 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/delete.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/get.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/list.py +60 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/implementations/update.py +74 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/__init__.py +4 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/categories/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/categories/get.py +30 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/categories/list.py +44 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/collections/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/collections/get.py +30 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/collections/list.py +44 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/get.py +94 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/listings/list.py +98 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/variants/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/variants/get.py +48 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/variants/list.py +62 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/versions/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/versions/get.py +42 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/servers/versions/list.py +54 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/__init__.py +7 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/create.py +114 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/delete.py +96 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/events/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/events/get.py +41 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/events/list.py +56 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/get.py +96 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/list.py +106 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/messages/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/messages/get.py +41 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/messages/list.py +54 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/server_sessions/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/server_sessions/get.py +52 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_dashboard/resources/sessions/server_sessions/list.py +65 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-files.py +67 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-instance.py +21 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-links.py +85 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-secrets.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-server-run-errors.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-server-runs.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers-deployments.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers-implementations.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers-variants.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers-versions.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-servers.py +22 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-sessions-events.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-sessions-messages.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-sessions-server-sessions.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/dashboard-instance-sessions.py +66 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/files.py +63 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/instance.py +21 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/links.py +80 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-files.py +67 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-instance.py +21 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-links.py +85 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-secrets.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-server-run-errors.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-server-runs.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers-deployments.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers-implementations.py +82 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers-variants.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers-versions.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-servers.py +22 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-sessions-events.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-sessions-messages.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-sessions-server-sessions.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/management-instance-sessions.py +66 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/secrets.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/server-run-errors.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/server-runs.py +35 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers-deployments.py +77 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers-implementations.py +77 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers-variants.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers-versions.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/servers.py +21 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/sessions-events.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/sessions-messages.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/sessions-server-sessions.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/endpoints/sessions.py +62 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/__init__.py +10 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/dashboard/__init__.py +1 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/__init__.py +4 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/delete.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/get.py +39 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/list.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/files/update.py +57 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/create.py +46 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/delete.py +28 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/get.py +28 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/list.py +37 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/links/update.py +46 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/management/__init__.py +1 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/secrets/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/secrets/get.py +41 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/secrets/list.py +51 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_run_errors/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_run_errors/get.py +43 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_run_errors/list.py +57 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_runs/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_runs/get.py +40 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/server_runs/list.py +49 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/create.py +91 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/delete.py +78 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/get.py +78 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/list.py +87 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/deployments/update.py +102 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/get.py +62 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/__init__.py +5 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/create.py +63 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/delete.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/get.py +50 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/list.py +60 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/implementations/update.py +74 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/variants/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/variants/get.py +48 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/variants/list.py +62 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/versions/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/versions/get.py +42 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/servers/versions/list.py +54 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/__init__.py +7 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/create.py +114 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/delete.py +96 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/events/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/events/get.py +41 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/events/list.py +56 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/get.py +96 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/list.py +106 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/messages/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/messages/get.py +41 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/messages/list.py +54 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/server_sessions/__init__.py +2 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/server_sessions/get.py +52 -0
- metorial-1.0.0/packages/core/mt_2025_01_01_pulsar/resources/sessions/server_sessions/list.py +65 -0
- metorial-1.0.0/packages/core/setup.py +25 -0
- metorial-1.0.0/packages/mcp_sdk_utils/__init__.py +5 -0
- metorial-1.0.0/packages/mcp_sdk_utils/create_mcp_sdk.py +53 -0
- metorial-1.0.0/packages/sdk/__init__.py +2 -0
- metorial-1.0.0/packages/sdk/sdk.py +78 -0
- metorial-1.0.0/packages/sdk/setup.py +26 -0
- metorial-1.0.0/packages/util_endpoint/__init__.py +2 -0
- metorial-1.0.0/packages/util_endpoint/error.py +61 -0
- metorial-1.0.0/packages/util_endpoint/metorial_util_endpoint.py +159 -0
- metorial-1.0.0/packages/util_endpoint/sdk_builder.py +48 -0
- metorial-1.0.0/packages/util_endpoint/setup.py +23 -0
- metorial-1.0.0/pyproject.toml +138 -0
- metorial-1.0.0/setup.cfg +4 -0
- 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
|
metorial-1.0.0/PKG-INFO
ADDED
|
@@ -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)
|
metorial-1.0.0/README.md
ADDED
|
@@ -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
|