codemie-sdk-python 0.1.569__tar.gz → 0.1.570__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.
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/PKG-INFO +1 -1
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/pyproject.toml +1 -1
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/client/client.py +4 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/skill.py +9 -0
- codemie_sdk_python-0.1.570/src/codemie_sdk/services/dynamic_config.py +81 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/skill.py +9 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/README.md +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/__init__.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/auth/__init__.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/auth/credentials.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/client/__init__.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/exceptions.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/__init__.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/activity_event.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/admin.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/analytics.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/assistant.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/categories.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/common.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/conversation.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/datasource.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/errors.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/file_operation.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/guardrails.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/integration.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/llm.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/mcp_config.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/mermaid.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/project.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/task.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/user.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_assistant.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_guardrail.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_knowledgebase.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_runtime.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_workflow.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/workflow.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/workflow_execution_payload.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/workflow_state.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/workflow_thoughts.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/workflow_transition.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/activity_event.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/admin.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/analytics.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/assistant.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/categories.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/codemie_guardrails.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/conversation.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/datasource.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/files.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/integration.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/llm.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/mcp_configs.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/mermaid.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/project.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/task.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/user.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/vendor_assistant.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/vendor_guardrail.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/vendor_knowledgebase.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/vendor_runtime.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/vendor_workflow.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/webhook.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/workflow.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/workflow_execution.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/workflow_execution_state.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/utils/__init__.py +0 -0
- {codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/utils/http.py +0 -0
|
@@ -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.dynamic_config import DynamicConfigService
|
|
29
30
|
from ..services.mcp_configs import MCPConfigsService
|
|
30
31
|
|
|
31
32
|
|
|
@@ -165,6 +166,9 @@ class CodeMieClient:
|
|
|
165
166
|
self.mcp_configs = MCPConfigsService(
|
|
166
167
|
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
167
168
|
)
|
|
169
|
+
self.dynamic_config = DynamicConfigService(
|
|
170
|
+
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
171
|
+
)
|
|
168
172
|
|
|
169
173
|
@property
|
|
170
174
|
def token(self) -> str:
|
|
@@ -214,3 +214,12 @@ class SingleSkillStatsResponse(BaseModel):
|
|
|
214
214
|
installs: int
|
|
215
215
|
removals: int
|
|
216
216
|
by_agent: dict[str, int] = Field(default_factory=dict)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
class SkillConfigResponse(BaseModel):
|
|
220
|
+
"""Response model for GET /v1/skills/config."""
|
|
221
|
+
|
|
222
|
+
model_config = ConfigDict(extra="ignore")
|
|
223
|
+
|
|
224
|
+
max_content_length: int
|
|
225
|
+
min_content_length: int
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"""Dynamic config service implementation."""
|
|
2
|
+
|
|
3
|
+
import requests
|
|
4
|
+
from requests.exceptions import HTTPError
|
|
5
|
+
|
|
6
|
+
from ..utils.http import ApiRequestHandler, TokenSource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DynamicConfigService:
|
|
10
|
+
"""Service for managing dynamic configuration values via the admin endpoint."""
|
|
11
|
+
|
|
12
|
+
def __init__(self, api_domain: str, token: TokenSource, verify_ssl: bool = True):
|
|
13
|
+
"""Initialize the dynamic config service.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
api_domain: Base URL for the CodeMie API
|
|
17
|
+
token: Authentication token
|
|
18
|
+
verify_ssl: Whether to verify SSL certificates. Default: True
|
|
19
|
+
"""
|
|
20
|
+
self._api = ApiRequestHandler(api_domain, token, verify_ssl)
|
|
21
|
+
|
|
22
|
+
def set(self, key: str, value: int) -> dict:
|
|
23
|
+
"""Upsert a dynamic config integer value.
|
|
24
|
+
|
|
25
|
+
Tries POST /v1/dynamic-config/ to create the key. If the key already
|
|
26
|
+
exists (HTTP 409), falls back to PUT /v1/dynamic-config/{key} to update.
|
|
27
|
+
The value is serialised as a string with value_type 'int' as required by
|
|
28
|
+
the API.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
key: Config key name (e.g. "SKILL_MAX_CONTENT_LENGTH")
|
|
32
|
+
value: Integer value to set
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
Response dict from the admin endpoint
|
|
36
|
+
|
|
37
|
+
Raises:
|
|
38
|
+
ValueError: If key is empty or contains a path separator
|
|
39
|
+
"""
|
|
40
|
+
if not key or "/" in key:
|
|
41
|
+
raise ValueError(f"Invalid config key: {key!r}")
|
|
42
|
+
# Try to create first; use raw Response so we can inspect the status code
|
|
43
|
+
response = self._api.post(
|
|
44
|
+
"/v1/dynamic-config/",
|
|
45
|
+
requests.Response,
|
|
46
|
+
json_data={"key": key, "value": str(value), "value_type": "int"},
|
|
47
|
+
wrap_response=False,
|
|
48
|
+
raise_on_error=False,
|
|
49
|
+
)
|
|
50
|
+
if response.status_code == 409:
|
|
51
|
+
# Key already exists — update it via PUT
|
|
52
|
+
return self._api.put(
|
|
53
|
+
f"/v1/dynamic-config/{key}",
|
|
54
|
+
dict,
|
|
55
|
+
json_data={"value": str(value)},
|
|
56
|
+
wrap_response=False,
|
|
57
|
+
)
|
|
58
|
+
response.raise_for_status()
|
|
59
|
+
return response.json()
|
|
60
|
+
|
|
61
|
+
def delete(self, key: str) -> None:
|
|
62
|
+
"""Delete a dynamic config key, restoring the system to its built-in default.
|
|
63
|
+
|
|
64
|
+
Silently succeeds when the key does not exist (404 is treated as already
|
|
65
|
+
absent — the operation is idempotent).
|
|
66
|
+
|
|
67
|
+
Args:
|
|
68
|
+
key: Config key name (e.g. "SKILL_MAX_CONTENT_LENGTH")
|
|
69
|
+
|
|
70
|
+
Raises:
|
|
71
|
+
ValueError: If key is empty or contains a path separator
|
|
72
|
+
requests.HTTPError: On non-2xx / non-404 response
|
|
73
|
+
"""
|
|
74
|
+
if not key or "/" in key:
|
|
75
|
+
raise ValueError(f"Invalid config key: {key!r}")
|
|
76
|
+
try:
|
|
77
|
+
self._api.delete(f"/v1/dynamic-config/{key}", dict, wrap_response=False)
|
|
78
|
+
except HTTPError as exc:
|
|
79
|
+
if exc.response is not None and exc.response.status_code == 404:
|
|
80
|
+
return # Key did not exist — already at default state
|
|
81
|
+
raise
|
|
@@ -9,6 +9,7 @@ from ..models.skill import (
|
|
|
9
9
|
SkillAttachRequest,
|
|
10
10
|
SkillBulkAttachRequest,
|
|
11
11
|
SkillCategory,
|
|
12
|
+
SkillConfigResponse,
|
|
12
13
|
SkillCreateRequest,
|
|
13
14
|
SkillDetailResponse,
|
|
14
15
|
SkillEventItem,
|
|
@@ -388,3 +389,11 @@ class SkillService:
|
|
|
388
389
|
return self._api.get(
|
|
389
390
|
f"/v1/skills/events/{slug}/stats", SingleSkillStatsResponse
|
|
390
391
|
)
|
|
392
|
+
|
|
393
|
+
def get_config(self) -> SkillConfigResponse:
|
|
394
|
+
"""Get effective skill content-length limits.
|
|
395
|
+
|
|
396
|
+
Returns:
|
|
397
|
+
Skill config with max_content_length and min_content_length
|
|
398
|
+
"""
|
|
399
|
+
return self._api.get("/v1/skills/config", SkillConfigResponse)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/auth/credentials.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/__init__.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/activity_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/analytics.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/conversation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/datasource.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/file_operation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/guardrails.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/mcp_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_guardrail.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_runtime.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/vendor_workflow.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/models/workflow_state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/activity_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/analytics.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/assistant.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/conversation.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/datasource.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/mcp_configs.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/mermaid.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/project.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/vendor_runtime.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/webhook.py
RENAMED
|
File without changes
|
{codemie_sdk_python-0.1.569 → codemie_sdk_python-0.1.570}/src/codemie_sdk/services/workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|