codemie-sdk-python 0.1.528__tar.gz → 0.1.530__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 (67) hide show
  1. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/PKG-INFO +1 -1
  2. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/pyproject.toml +1 -1
  3. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/client/client.py +4 -0
  4. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/assistant.py +1 -0
  5. codemie_sdk_python-0.1.530/src/codemie_sdk/models/mcp_config.py +72 -0
  6. codemie_sdk_python-0.1.530/src/codemie_sdk/services/mcp_configs.py +86 -0
  7. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/README.md +0 -0
  8. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/__init__.py +0 -0
  9. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/auth/__init__.py +0 -0
  10. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/auth/credentials.py +0 -0
  11. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/client/__init__.py +0 -0
  12. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/exceptions.py +0 -0
  13. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/__init__.py +0 -0
  14. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/activity_event.py +0 -0
  15. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/admin.py +0 -0
  16. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/analytics.py +0 -0
  17. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/categories.py +0 -0
  18. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/common.py +0 -0
  19. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/conversation.py +0 -0
  20. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/datasource.py +0 -0
  21. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/errors.py +0 -0
  22. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/file_operation.py +0 -0
  23. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/guardrails.py +0 -0
  24. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/integration.py +0 -0
  25. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/llm.py +0 -0
  26. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/mermaid.py +0 -0
  27. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/project.py +0 -0
  28. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/skill.py +0 -0
  29. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/task.py +0 -0
  30. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/user.py +0 -0
  31. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/vendor_assistant.py +0 -0
  32. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/vendor_guardrail.py +0 -0
  33. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/vendor_knowledgebase.py +0 -0
  34. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/vendor_runtime.py +0 -0
  35. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/vendor_workflow.py +0 -0
  36. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/workflow.py +0 -0
  37. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/workflow_execution_payload.py +0 -0
  38. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/workflow_state.py +0 -0
  39. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/workflow_thoughts.py +0 -0
  40. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/models/workflow_transition.py +0 -0
  41. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/activity_event.py +0 -0
  42. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/admin.py +0 -0
  43. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/analytics.py +0 -0
  44. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/assistant.py +0 -0
  45. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/categories.py +0 -0
  46. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/codemie_guardrails.py +0 -0
  47. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/conversation.py +0 -0
  48. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/datasource.py +0 -0
  49. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/files.py +0 -0
  50. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/integration.py +0 -0
  51. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/llm.py +0 -0
  52. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/mermaid.py +0 -0
  53. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/project.py +0 -0
  54. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/skill.py +0 -0
  55. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/task.py +0 -0
  56. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/user.py +0 -0
  57. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/vendor_assistant.py +0 -0
  58. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/vendor_guardrail.py +0 -0
  59. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/vendor_knowledgebase.py +0 -0
  60. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/vendor_runtime.py +0 -0
  61. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/vendor_workflow.py +0 -0
  62. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/webhook.py +0 -0
  63. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/workflow.py +0 -0
  64. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/workflow_execution.py +0 -0
  65. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/services/workflow_execution_state.py +0 -0
  66. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/utils/__init__.py +0 -0
  67. {codemie_sdk_python-0.1.528 → codemie_sdk_python-0.1.530}/src/codemie_sdk/utils/http.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codemie-sdk-python
3
- Version: 0.1.528
3
+ Version: 0.1.530
4
4
  Summary: CodeMie SDK for Python
5
5
  Author: Vadym Vlasenko
6
6
  Author-email: vadym_vlasenko@epam.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemie-sdk-python"
3
- version = "0.1.528"
3
+ version = "0.1.530"
4
4
  description = "CodeMie SDK for Python"
5
5
  authors = [
6
6
  "Vadym Vlasenko <vadym_vlasenko@epam.com>",
@@ -26,6 +26,7 @@ from ..services.vendor_guardrail import VendorGuardrailService
26
26
  from ..services.vendor_runtime import VendorRuntimeService
27
27
  from ..services.activity_event import ActivityEventService
28
28
  from ..services.codemie_guardrails import CodemieGuardrailService
29
+ from ..services.mcp_configs import MCPConfigsService
29
30
 
30
31
 
31
32
  class CodeMieClient:
@@ -161,6 +162,9 @@ class CodeMieClient:
161
162
  self.activity_events = ActivityEventService(
162
163
  self._api_domain, _token_source, verify_ssl=self._verify_ssl
163
164
  )
165
+ self.mcp_configs = MCPConfigsService(
166
+ self._api_domain, _token_source, verify_ssl=self._verify_ssl
167
+ )
164
168
 
165
169
  @property
166
170
  def token(self) -> str:
@@ -123,6 +123,7 @@ class MCPServerDetails(BaseModel):
123
123
  description: str | None
124
124
  enabled: bool
125
125
  mcp_config_id: str | None = None
126
+ use_custom_config: bool = False
126
127
  config: MCPServerConfig | None = None
127
128
  mcp_connect_url: str | None = None
128
129
  tools_tokens_size_limit: int | None = None
@@ -0,0 +1,72 @@
1
+ """MCP Configuration models for Settings > MCPs management."""
2
+
3
+ from datetime import datetime
4
+ from typing import Any
5
+ from pydantic import BaseModel, ConfigDict, Field
6
+
7
+
8
+ class MCPServerConfigData(BaseModel):
9
+ """MCP server configuration data (mirrors the catalog config format)."""
10
+
11
+ model_config = ConfigDict(extra="ignore")
12
+
13
+ command: str | None = None
14
+ url: str | None = None
15
+ args: list[str] = Field(default_factory=list)
16
+ headers: dict[str, str] = Field(default_factory=dict)
17
+ env: dict[str, Any] = Field(default_factory=dict)
18
+ type: str | None = None
19
+ auth_token: str | None = None
20
+ single_usage: bool = False
21
+ tools: list[str] | None = None
22
+ audience: str | None = None
23
+ auth_config: dict[str, Any] | None = None
24
+ allow_issuer_prefix_match: bool = False
25
+
26
+
27
+ class MCPConfigCreateRequest(BaseModel):
28
+ """Request model for creating a global MCP configuration entry."""
29
+
30
+ model_config = ConfigDict(extra="ignore")
31
+
32
+ name: str = Field(..., min_length=1, max_length=255)
33
+ description: str | None = None
34
+ server_home_url: str | None = None
35
+ source_url: str | None = None
36
+ logo_url: str | None = None
37
+ categories: list[str] = Field(default_factory=list)
38
+ config: MCPServerConfigData
39
+ is_public: bool = False
40
+
41
+
42
+ class MCPConfigResponse(BaseModel):
43
+ """Response model for a global MCP configuration entry."""
44
+
45
+ model_config = ConfigDict(extra="ignore")
46
+
47
+ id: str
48
+ name: str
49
+ description: str | None = None
50
+ server_home_url: str | None = None
51
+ source_url: str | None = None
52
+ logo_url: str | None = None
53
+ categories: list[str] = Field(default_factory=list)
54
+ config: MCPServerConfigData | None = None
55
+ user_id: str | None = None
56
+ is_public: bool = False
57
+ is_system: bool = False
58
+ usage_count: int = 0
59
+ is_active: bool = True
60
+ date: datetime | None = None
61
+ update_date: datetime | None = None
62
+
63
+
64
+ class MCPConfigListResponse(BaseModel):
65
+ """Response model for listing global MCP configurations."""
66
+
67
+ model_config = ConfigDict(extra="ignore")
68
+
69
+ data: list[MCPConfigResponse] = Field(default_factory=list)
70
+ total: int = 0
71
+ page: int = 0
72
+ per_page: int = 20
@@ -0,0 +1,86 @@
1
+ """MCPConfigs service — Settings > MCPs management (global catalog entries)."""
2
+
3
+ from ..models.mcp_config import (
4
+ MCPConfigCreateRequest,
5
+ MCPConfigListResponse,
6
+ MCPConfigResponse,
7
+ )
8
+ from ..utils import ApiRequestHandler, TokenSource
9
+
10
+
11
+ class MCPConfigsService:
12
+ """Service for managing global MCP server configurations (Settings > MCPs management)."""
13
+
14
+ def __init__(self, api_domain: str, token: TokenSource, verify_ssl: bool = True):
15
+ self._api = ApiRequestHandler(api_domain, token, verify_ssl)
16
+
17
+ def create(self, request: MCPConfigCreateRequest) -> MCPConfigResponse:
18
+ """Create a new global MCP configuration entry.
19
+
20
+ Args:
21
+ request: MCPConfigCreateRequest with name, config, etc.
22
+
23
+ Returns:
24
+ Created MCPConfigResponse with id and metadata.
25
+ """
26
+ return self._api.post(
27
+ "/v1/mcp-configs",
28
+ MCPConfigResponse,
29
+ json_data=request.model_dump(exclude_none=True),
30
+ wrap_response=False,
31
+ )
32
+
33
+ def get(self, config_id: str) -> MCPConfigResponse:
34
+ """Retrieve a single global MCP configuration by ID.
35
+
36
+ Args:
37
+ config_id: The MCP config entry ID.
38
+
39
+ Returns:
40
+ MCPConfigResponse.
41
+ """
42
+ return self._api.get(
43
+ f"/v1/mcp-configs/{config_id}",
44
+ MCPConfigResponse,
45
+ wrap_response=False,
46
+ )
47
+
48
+ def list(
49
+ self,
50
+ page: int = 0,
51
+ per_page: int = 20,
52
+ search: str | None = None,
53
+ ) -> list[MCPConfigResponse]:
54
+ """List global MCP configuration entries.
55
+
56
+ Args:
57
+ page: 0-indexed page number.
58
+ per_page: Items per page (max 100).
59
+ search: Optional search string.
60
+
61
+ Returns:
62
+ List of MCPConfigResponse.
63
+ """
64
+ params: dict = {"page": page, "per_page": per_page}
65
+ if search:
66
+ params["search"] = search
67
+
68
+ response = self._api.get(
69
+ "/v1/mcp-configs",
70
+ MCPConfigListResponse,
71
+ params=params,
72
+ wrap_response=False,
73
+ )
74
+ return response.data
75
+
76
+ def delete(self, config_id: str) -> None:
77
+ """Delete a global MCP configuration entry.
78
+
79
+ Args:
80
+ config_id: The MCP config entry ID to delete.
81
+ """
82
+ self._api.delete(
83
+ f"/v1/mcp-configs/{config_id}",
84
+ dict,
85
+ wrap_response=False,
86
+ )