codemie-sdk-python 0.1.592__tar.gz → 0.1.613__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.592/README.md → codemie_sdk_python-0.1.613/PKG-INFO +14 -43
- codemie_sdk_python-0.1.592/PKG-INFO → codemie_sdk_python-0.1.613/README.md +1 -56
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/pyproject.toml +1 -1
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/__init__.py +0 -8
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/client/client.py +8 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/assistant.py +40 -50
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/conversation.py +60 -1
- codemie_sdk_python-0.1.613/src/codemie_sdk/models/cost_center.py +42 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/datasource.py +30 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/integration.py +1 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/project.py +4 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/assistant.py +30 -96
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/conversation.py +88 -2
- codemie_sdk_python-0.1.613/src/codemie_sdk/services/cost_center.py +76 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/datasource.py +9 -1
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/project.py +4 -1
- codemie_sdk_python-0.1.613/src/codemie_sdk/services/project_budget_groups.py +158 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/workflow_execution.py +13 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/auth/__init__.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/auth/credentials.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/client/__init__.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/exceptions.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/__init__.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/activity_event.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/admin.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/analytics.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/categories.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/common.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/errors.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/file_operation.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/guardrails.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/llm.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/mcp_config.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/mermaid.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/skill.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/task.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/user.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/vendor_assistant.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/vendor_guardrail.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/vendor_knowledgebase.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/vendor_runtime.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/vendor_workflow.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/workflow.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/workflow_execution_payload.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/workflow_state.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/workflow_thoughts.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/workflow_transition.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/activity_event.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/admin.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/analytics.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/categories.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/codemie_guardrails.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/customer_config_service.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/dynamic_config.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/files.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/integration.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/llm.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/mcp_configs.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/mermaid.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/skill.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/task.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/user.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/vendor_assistant.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/vendor_guardrail.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/vendor_knowledgebase.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/vendor_runtime.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/vendor_workflow.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/webhook.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/workflow.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/services/workflow_execution_state.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/utils/__init__.py +0 -0
- {codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/utils/http.py +0 -0
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: codemie-sdk-python
|
|
3
|
+
Version: 0.1.613
|
|
4
|
+
Summary: CodeMie SDK for Python
|
|
5
|
+
Author: Vadym Vlasenko
|
|
6
|
+
Author-email: vadym_vlasenko@epam.com
|
|
7
|
+
Requires-Python: >=3.12,<4.0
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
+
Requires-Dist: pydantic (>=2.12.2,<3.0.0)
|
|
11
|
+
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
|
|
1
14
|
# CodeMie Python SDK
|
|
2
15
|
|
|
3
16
|
Python SDK for CodeMie services. This SDK provides a comprehensive interface to interact with CodeMie services, including LLM (Large Language Models), assistants, workflows, and tools.
|
|
@@ -340,48 +353,6 @@ response = client.assistants.chat_with_version("assistant-id", version_number=2,
|
|
|
340
353
|
print(response.generated)
|
|
341
354
|
```
|
|
342
355
|
|
|
343
|
-
#### Project Feature Mapping
|
|
344
|
-
|
|
345
|
-
Control which assistants have a feature enabled per project. Currently the only supported feature is `teams`.
|
|
346
|
-
|
|
347
|
-
1. **List assistants with a feature enabled for a project**
|
|
348
|
-
```python
|
|
349
|
-
from codemie_sdk import AssistantProjectFeature
|
|
350
|
-
|
|
351
|
-
assistants = client.assistants.list_project_mapping(
|
|
352
|
-
feature=AssistantProjectFeature.teams,
|
|
353
|
-
project="my-project",
|
|
354
|
-
page=0,
|
|
355
|
-
per_page=12,
|
|
356
|
-
)
|
|
357
|
-
for a in assistants:
|
|
358
|
-
print(a.name)
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
2. **Enable a feature for an assistant on a project**
|
|
362
|
-
```python
|
|
363
|
-
from codemie_sdk import AssistantProjectFeature, AssistantProjectMappingRequest
|
|
364
|
-
|
|
365
|
-
request = AssistantProjectMappingRequest(
|
|
366
|
-
project_name="my-project",
|
|
367
|
-
feature=AssistantProjectFeature.teams,
|
|
368
|
-
)
|
|
369
|
-
response = client.assistants.enable_project_mapping("assistant-id", request)
|
|
370
|
-
print(response.message)
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
3. **Disable a feature for an assistant on a project**
|
|
374
|
-
```python
|
|
375
|
-
from codemie_sdk import AssistantProjectFeature
|
|
376
|
-
|
|
377
|
-
response = client.assistants.disable_project_mapping(
|
|
378
|
-
"assistant-id",
|
|
379
|
-
project="my-project",
|
|
380
|
-
feature=AssistantProjectFeature.teams,
|
|
381
|
-
)
|
|
382
|
-
print(response.message)
|
|
383
|
-
```
|
|
384
|
-
|
|
385
356
|
### Datasource Service
|
|
386
357
|
|
|
387
358
|
The Datasource service enables managing various types of data sources in CodeMie, including code repositories, Confluence spaces, Jira projects, files, and Google documents.
|
|
@@ -1430,4 +1401,4 @@ poetry build
|
|
|
1430
1401
|
|
|
1431
1402
|
# Publish to PyPI
|
|
1432
1403
|
make publish
|
|
1433
|
-
```
|
|
1404
|
+
```
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: codemie-sdk-python
|
|
3
|
-
Version: 0.1.592
|
|
4
|
-
Summary: CodeMie SDK for Python
|
|
5
|
-
Author: Vadym Vlasenko
|
|
6
|
-
Author-email: vadym_vlasenko@epam.com
|
|
7
|
-
Requires-Python: >=3.12,<4.0
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
-
Requires-Dist: pydantic (>=2.12.2,<3.0.0)
|
|
11
|
-
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
|
|
14
1
|
# CodeMie Python SDK
|
|
15
2
|
|
|
16
3
|
Python SDK for CodeMie services. This SDK provides a comprehensive interface to interact with CodeMie services, including LLM (Large Language Models), assistants, workflows, and tools.
|
|
@@ -353,48 +340,6 @@ response = client.assistants.chat_with_version("assistant-id", version_number=2,
|
|
|
353
340
|
print(response.generated)
|
|
354
341
|
```
|
|
355
342
|
|
|
356
|
-
#### Project Feature Mapping
|
|
357
|
-
|
|
358
|
-
Control which assistants have a feature enabled per project. Currently the only supported feature is `teams`.
|
|
359
|
-
|
|
360
|
-
1. **List assistants with a feature enabled for a project**
|
|
361
|
-
```python
|
|
362
|
-
from codemie_sdk import AssistantProjectFeature
|
|
363
|
-
|
|
364
|
-
assistants = client.assistants.list_project_mapping(
|
|
365
|
-
feature=AssistantProjectFeature.teams,
|
|
366
|
-
project="my-project",
|
|
367
|
-
page=0,
|
|
368
|
-
per_page=12,
|
|
369
|
-
)
|
|
370
|
-
for a in assistants:
|
|
371
|
-
print(a.name)
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
2. **Enable a feature for an assistant on a project**
|
|
375
|
-
```python
|
|
376
|
-
from codemie_sdk import AssistantProjectFeature, AssistantProjectMappingRequest
|
|
377
|
-
|
|
378
|
-
request = AssistantProjectMappingRequest(
|
|
379
|
-
project_name="my-project",
|
|
380
|
-
feature=AssistantProjectFeature.teams,
|
|
381
|
-
)
|
|
382
|
-
response = client.assistants.enable_project_mapping("assistant-id", request)
|
|
383
|
-
print(response.message)
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
3. **Disable a feature for an assistant on a project**
|
|
387
|
-
```python
|
|
388
|
-
from codemie_sdk import AssistantProjectFeature
|
|
389
|
-
|
|
390
|
-
response = client.assistants.disable_project_mapping(
|
|
391
|
-
"assistant-id",
|
|
392
|
-
project="my-project",
|
|
393
|
-
feature=AssistantProjectFeature.teams,
|
|
394
|
-
)
|
|
395
|
-
print(response.message)
|
|
396
|
-
```
|
|
397
|
-
|
|
398
343
|
### Datasource Service
|
|
399
344
|
|
|
400
345
|
The Datasource service enables managing various types of data sources in CodeMie, including code repositories, Confluence spaces, Jira projects, files, and Google documents.
|
|
@@ -1443,4 +1388,4 @@ poetry build
|
|
|
1443
1388
|
|
|
1444
1389
|
# Publish to PyPI
|
|
1445
1390
|
make publish
|
|
1446
|
-
```
|
|
1391
|
+
```
|
|
@@ -151,10 +151,6 @@ from .models.skill import (
|
|
|
151
151
|
from .services.skill import SkillService
|
|
152
152
|
from .models.assistant import (
|
|
153
153
|
BuiltinSubagent,
|
|
154
|
-
AssistantProjectFeature,
|
|
155
|
-
AssistantProjectMappingRequest,
|
|
156
|
-
AssistantProjectMappingPagination,
|
|
157
|
-
AssistantProjectMappingListResponse,
|
|
158
154
|
)
|
|
159
155
|
from .models.integration import (
|
|
160
156
|
TransferMode,
|
|
@@ -165,10 +161,6 @@ from .models.integration import (
|
|
|
165
161
|
__version__ = "0.2.12"
|
|
166
162
|
__all__ = [
|
|
167
163
|
"CodeMieClient",
|
|
168
|
-
"AssistantProjectFeature",
|
|
169
|
-
"AssistantProjectMappingRequest",
|
|
170
|
-
"AssistantProjectMappingPagination",
|
|
171
|
-
"AssistantProjectMappingListResponse",
|
|
172
164
|
"VendorType",
|
|
173
165
|
"VendorAssistantSetting",
|
|
174
166
|
"VendorAssistantSettingsResponse",
|
|
@@ -28,7 +28,9 @@ from ..services.activity_event import ActivityEventService
|
|
|
28
28
|
from ..services.codemie_guardrails import CodemieGuardrailService
|
|
29
29
|
from ..services.dynamic_config import DynamicConfigService
|
|
30
30
|
from ..services.mcp_configs import MCPConfigsService
|
|
31
|
+
from ..services.cost_center import CostCenterService
|
|
31
32
|
from ..services.customer_config_service import CustomerConfigService
|
|
33
|
+
from ..services.project_budget_groups import ProjectBudgetGroupsService
|
|
32
34
|
|
|
33
35
|
|
|
34
36
|
class CodeMieClient:
|
|
@@ -173,6 +175,12 @@ class CodeMieClient:
|
|
|
173
175
|
self.customer_config = CustomerConfigService(
|
|
174
176
|
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
175
177
|
)
|
|
178
|
+
self.cost_centers = CostCenterService(
|
|
179
|
+
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
180
|
+
)
|
|
181
|
+
self.project_budget_groups = ProjectBudgetGroupsService(
|
|
182
|
+
self._api_domain, _token_source, verify_ssl=self._verify_ssl
|
|
183
|
+
)
|
|
176
184
|
|
|
177
185
|
@property
|
|
178
186
|
def token(self) -> str:
|
{codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/assistant.py
RENAMED
|
@@ -181,6 +181,44 @@ class AssistantListResponse(BaseModel):
|
|
|
181
181
|
created_by: User | None = None
|
|
182
182
|
|
|
183
183
|
|
|
184
|
+
class ToolCallPolicy(str, Enum):
|
|
185
|
+
"""Policy governing when tool calls require user approval."""
|
|
186
|
+
|
|
187
|
+
AUTO_APPROVE = "auto_approve"
|
|
188
|
+
APPROVE_FOR_ME = "approve_for_me"
|
|
189
|
+
ASK_FOR_APPROVAL = "ask_for_approval"
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
class ToolCallAction(str, Enum):
|
|
193
|
+
"""User action on a pending tool-call confirmation."""
|
|
194
|
+
|
|
195
|
+
ALLOW = "allow"
|
|
196
|
+
DENY = "deny"
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
class ToolPermissionsConfig(BaseModel):
|
|
200
|
+
"""Configuration for tool-call approval policy on an assistant."""
|
|
201
|
+
|
|
202
|
+
model_config = ConfigDict(extra="ignore")
|
|
203
|
+
|
|
204
|
+
tool_call_policy: ToolCallPolicy = ToolCallPolicy.AUTO_APPROVE
|
|
205
|
+
allow_override: bool = True
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
class ToolCallResumeRequest(BaseModel):
|
|
209
|
+
"""Request body for POST /v1/assistants/{id}/model/tool-call/resume."""
|
|
210
|
+
|
|
211
|
+
model_config = ConfigDict(extra="ignore", use_enum_values=True)
|
|
212
|
+
|
|
213
|
+
conversation_id: str = Field(
|
|
214
|
+
description="Conversation ID that has a pending tool-call checkpoint"
|
|
215
|
+
)
|
|
216
|
+
action: ToolCallAction = Field(
|
|
217
|
+
description="User decision: 'allow' executes the tool, 'deny' rejects it"
|
|
218
|
+
)
|
|
219
|
+
stream: bool = Field(default=True, description="Enable streaming NDJSON response")
|
|
220
|
+
|
|
221
|
+
|
|
184
222
|
class Assistant(AssistantBase):
|
|
185
223
|
"""Full assistant model with additional fields."""
|
|
186
224
|
|
|
@@ -233,6 +271,7 @@ class Assistant(AssistantBase):
|
|
|
233
271
|
default=None,
|
|
234
272
|
description="Number of times this assistant has been cloned in the Marketplace",
|
|
235
273
|
)
|
|
274
|
+
tool_permissions: ToolPermissionsConfig | None = None
|
|
236
275
|
|
|
237
276
|
|
|
238
277
|
class AssistantRequestBase(AssistantBase):
|
|
@@ -268,6 +307,7 @@ class AssistantRequestBase(AssistantBase):
|
|
|
268
307
|
enabled_builtin_subagents: list[str] | None = None
|
|
269
308
|
prompt_variables: list[PromptVariable] = Field(default_factory=list)
|
|
270
309
|
skip_integration_validation: bool | None = Field(default=False)
|
|
310
|
+
tool_permissions: ToolPermissionsConfig | None = None
|
|
271
311
|
|
|
272
312
|
|
|
273
313
|
class AssistantCreateRequest(AssistantRequestBase):
|
|
@@ -612,53 +652,3 @@ class ReactionRequest(BaseModel):
|
|
|
612
652
|
model_config = ConfigDict(extra="ignore", use_enum_values=True)
|
|
613
653
|
|
|
614
654
|
reaction: ReactionType = Field(description="Reaction type: 'like' or 'dislike'")
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
class AssistantProjectFeature(str, Enum):
|
|
618
|
-
"""Feature discriminator for assistant/project mappings (e.g. Teams bot).
|
|
619
|
-
|
|
620
|
-
This enum is expected to grow over time on the backend; treat unrecognized
|
|
621
|
-
wire values defensively rather than assuming this is the complete set.
|
|
622
|
-
"""
|
|
623
|
-
|
|
624
|
-
TEAMS = "teams"
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
class AssistantProjectMappingRequest(BaseModel):
|
|
628
|
-
"""Request body for POST /v1/assistants/{assistant_id}/projects/mapping."""
|
|
629
|
-
|
|
630
|
-
model_config = ConfigDict(extra="ignore", use_enum_values=True)
|
|
631
|
-
|
|
632
|
-
project_name: str = Field(description="Project (application) name")
|
|
633
|
-
feature: AssistantProjectFeature = Field(
|
|
634
|
-
description="Feature discriminator this mapping is for, e.g. 'teams'"
|
|
635
|
-
)
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
class AssistantProjectMappingPagination(BaseModel):
|
|
639
|
-
"""Pagination metadata returned by GET /v1/assistants/projects/mapping."""
|
|
640
|
-
|
|
641
|
-
model_config = ConfigDict(extra="ignore")
|
|
642
|
-
|
|
643
|
-
page: int = Field(description="Current page, 0-indexed")
|
|
644
|
-
per_page: int = Field(description="Items per page")
|
|
645
|
-
total: int = Field(description="Total matching assistants across all pages")
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
class AssistantProjectMappingListResponse(BaseModel):
|
|
649
|
-
"""Response for GET /v1/assistants/projects/mapping.
|
|
650
|
-
|
|
651
|
-
List items are intentionally typed as ``dict[str, Any]`` rather than
|
|
652
|
-
``Assistant``/``AssistantBase``. The backend contract documents this
|
|
653
|
-
endpoint as returning "the same shape as GET /v1/assistants", but that
|
|
654
|
-
endpoint's own shape is parameterized by a ``minimal_response`` flag that
|
|
655
|
-
this new endpoint does not expose, and the exact per-item fields returned
|
|
656
|
-
here are not otherwise confirmed. Rather than guess the wire format,
|
|
657
|
-
callers get the raw dict and can assert on whichever fields they need
|
|
658
|
-
(e.g. ``item["id"]``).
|
|
659
|
-
"""
|
|
660
|
-
|
|
661
|
-
model_config = ConfigDict(extra="ignore")
|
|
662
|
-
|
|
663
|
-
data: list[dict[str, Any]] = Field(default_factory=list)
|
|
664
|
-
pagination: AssistantProjectMappingPagination
|
{codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/conversation.py
RENAMED
|
@@ -4,7 +4,7 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
from datetime import datetime
|
|
6
6
|
|
|
7
|
-
from pydantic import BaseModel, Field
|
|
7
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
8
8
|
|
|
9
9
|
from codemie_sdk.models.assistant import ContextType
|
|
10
10
|
|
|
@@ -14,6 +14,8 @@ class Conversation(BaseModel):
|
|
|
14
14
|
Model for conversation summary data as returned from the list endpoint.
|
|
15
15
|
"""
|
|
16
16
|
|
|
17
|
+
model_config = ConfigDict(extra="ignore")
|
|
18
|
+
|
|
17
19
|
id: str
|
|
18
20
|
name: str
|
|
19
21
|
folder: str | None
|
|
@@ -21,6 +23,7 @@ class Conversation(BaseModel):
|
|
|
21
23
|
date: str
|
|
22
24
|
assistant_ids: list[str]
|
|
23
25
|
initial_assistant_id: str | None
|
|
26
|
+
finished_at: datetime | None = None
|
|
24
27
|
|
|
25
28
|
|
|
26
29
|
class Mark(BaseModel):
|
|
@@ -177,6 +180,7 @@ class ConversationDetails(BaseModel):
|
|
|
177
180
|
is_workflow_conversation: bool | None = None
|
|
178
181
|
category: str | None
|
|
179
182
|
mcp_server_single_usage: bool | None = False
|
|
183
|
+
finished_at: datetime | None = None
|
|
180
184
|
|
|
181
185
|
|
|
182
186
|
class ConversationShareRequest(BaseModel):
|
|
@@ -256,3 +260,58 @@ class UpsertHistoryResponse(BaseModel):
|
|
|
256
260
|
new_messages: int
|
|
257
261
|
total_messages: int
|
|
258
262
|
created: bool
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
class ConversationFinishResponse(BaseModel):
|
|
266
|
+
"""Response for POST /conversations/{conversation_id}/finish (owner-only, not idempotent).
|
|
267
|
+
|
|
268
|
+
Already-finished conversations cause the server to raise HTTP 409 rather
|
|
269
|
+
than return this response again.
|
|
270
|
+
"""
|
|
271
|
+
|
|
272
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
273
|
+
|
|
274
|
+
conversation_id: str = Field(alias="conversationId")
|
|
275
|
+
finished_at: datetime = Field(alias="finishedAt")
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
class ConversationFinishResult(BaseModel):
|
|
279
|
+
"""Per-conversation-ID result entry within a bulk-finish response."""
|
|
280
|
+
|
|
281
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
282
|
+
|
|
283
|
+
conversation_id: str = Field(alias="conversationId")
|
|
284
|
+
already_finished: bool = Field(default=False, alias="alreadyFinished")
|
|
285
|
+
finished_at: datetime | None = Field(default=None, alias="finishedAt")
|
|
286
|
+
error: str | None = None
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
class ConversationFinishBulkRequest(BaseModel):
|
|
290
|
+
"""Request body for POST /admin/conversations/finish-bulk."""
|
|
291
|
+
|
|
292
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
293
|
+
|
|
294
|
+
conversation_ids: list[str] = Field(alias="conversationIds")
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
class ConversationFinishBulkResponse(BaseModel):
|
|
298
|
+
"""Response for POST /admin/conversations/finish-bulk (admin-only, idempotent per ID)."""
|
|
299
|
+
|
|
300
|
+
total: int
|
|
301
|
+
results: list[ConversationFinishResult]
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
class ConversationPagination(BaseModel):
|
|
305
|
+
"""Pagination metadata for the admin conversation list endpoint."""
|
|
306
|
+
|
|
307
|
+
page: int
|
|
308
|
+
per_page: int
|
|
309
|
+
total: int
|
|
310
|
+
pages: int
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
class AdminConversationListResponse(BaseModel):
|
|
314
|
+
"""Paginated response for GET /admin/conversations (admin-only, cross-user)."""
|
|
315
|
+
|
|
316
|
+
data: list[Conversation]
|
|
317
|
+
pagination: ConversationPagination
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Copyright 2026 EPAM Systems, Inc. ("EPAM")
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
"""Cost center management models for the CodeMie SDK."""
|
|
16
|
+
|
|
17
|
+
from datetime import datetime
|
|
18
|
+
from uuid import UUID
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class CostCenterResponse(BaseModel):
|
|
24
|
+
"""Response model for a cost center."""
|
|
25
|
+
|
|
26
|
+
model_config = ConfigDict(extra="ignore")
|
|
27
|
+
|
|
28
|
+
id: UUID
|
|
29
|
+
name: str
|
|
30
|
+
description: str | None = None
|
|
31
|
+
created_by: str
|
|
32
|
+
created_at: datetime
|
|
33
|
+
project_count: int = 0
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class CreateCostCenterRequest(BaseModel):
|
|
37
|
+
"""Request model for creating a cost center."""
|
|
38
|
+
|
|
39
|
+
model_config = ConfigDict(extra="ignore")
|
|
40
|
+
|
|
41
|
+
name: str
|
|
42
|
+
description: str | None = None
|
{codemie_sdk_python-0.1.592 → codemie_sdk_python-0.1.613}/src/codemie_sdk/models/datasource.py
RENAMED
|
@@ -123,6 +123,15 @@ class AzureDevOpsWorkItem(BaseModel):
|
|
|
123
123
|
model_config = ConfigDict(extra="ignore")
|
|
124
124
|
|
|
125
125
|
|
|
126
|
+
class XWiki(BaseModel):
|
|
127
|
+
"""Model for xWiki-specific response fields"""
|
|
128
|
+
|
|
129
|
+
space: str | None = None
|
|
130
|
+
wiki: str | None = None
|
|
131
|
+
|
|
132
|
+
model_config = ConfigDict(extra="ignore")
|
|
133
|
+
|
|
134
|
+
|
|
126
135
|
class Code(BaseModel):
|
|
127
136
|
"""Model for code repository datasource creation"""
|
|
128
137
|
|
|
@@ -239,6 +248,17 @@ class AzureDevOpsWorkItemDataSourceRequest(BaseDataSourceRequest, AzureDevOpsWor
|
|
|
239
248
|
super().__init__(type=DataSourceType.AZURE_DEVOPS_WORK_ITEM, **data)
|
|
240
249
|
|
|
241
250
|
|
|
251
|
+
class XWikiDataSourceRequest(BaseDataSourceRequest, XWiki):
|
|
252
|
+
"""Model for xWiki datasource creation requests"""
|
|
253
|
+
|
|
254
|
+
def __init__(self, **data):
|
|
255
|
+
super().__init__(type=DataSourceType.XWIKI, **data)
|
|
256
|
+
|
|
257
|
+
@classmethod
|
|
258
|
+
def required_fields(cls) -> list[str]:
|
|
259
|
+
return ["space"]
|
|
260
|
+
|
|
261
|
+
|
|
242
262
|
class BaseUpdateDataSourceRequest(BaseDataSourceRequest):
|
|
243
263
|
"""Mixin update-specific reindex fields"""
|
|
244
264
|
|
|
@@ -327,6 +347,13 @@ class UpdateAzureDevOpsWorkItemDataSourceRequest(
|
|
|
327
347
|
super().__init__(type=DataSourceType.AZURE_DEVOPS_WORK_ITEM, **data)
|
|
328
348
|
|
|
329
349
|
|
|
350
|
+
class UpdateXWikiDataSourceRequest(BaseUpdateDataSourceRequest, XWiki):
|
|
351
|
+
"""Model for xWiki datasource updates"""
|
|
352
|
+
|
|
353
|
+
def __init__(self, **data):
|
|
354
|
+
super().__init__(type=DataSourceType.XWIKI, **data)
|
|
355
|
+
|
|
356
|
+
|
|
330
357
|
class CodeAnalysisDataSourceRequest(BaseModel):
|
|
331
358
|
"""Model for provider-based datasource creation requests"""
|
|
332
359
|
|
|
@@ -399,6 +426,8 @@ class DataSource(BaseModel):
|
|
|
399
426
|
azure_devops_wiki: AzureDevOpsWiki | None = None
|
|
400
427
|
# Azure DevOps Work Item specific fields
|
|
401
428
|
azure_devops_work_item: AzureDevOpsWorkItem | None = None
|
|
429
|
+
# xWiki specific fields
|
|
430
|
+
xwiki: XWiki | None = None
|
|
402
431
|
|
|
403
432
|
@model_validator(mode="before")
|
|
404
433
|
def before_init(cls, values):
|
|
@@ -417,6 +446,7 @@ class DataSource(BaseModel):
|
|
|
417
446
|
DataSourceType.GOOGLE,
|
|
418
447
|
DataSourceType.AZURE_DEVOPS_WIKI,
|
|
419
448
|
DataSourceType.AZURE_DEVOPS_WORK_ITEM,
|
|
449
|
+
DataSourceType.XWIKI,
|
|
420
450
|
]:
|
|
421
451
|
complete_state = values.get("complete_state", 0)
|
|
422
452
|
if complete_state is not None:
|
|
@@ -79,6 +79,7 @@ class ProjectListItem(BaseModel):
|
|
|
79
79
|
cost_center_name: str | None = None
|
|
80
80
|
spending: float | None = None
|
|
81
81
|
budgets: list[ProjectBudgetItem] | None = []
|
|
82
|
+
chargeback_attribution: str = "project"
|
|
82
83
|
|
|
83
84
|
|
|
84
85
|
class PaginationInfo(BaseModel):
|
|
@@ -116,6 +117,7 @@ class ProjectDetailResponse(BaseModel):
|
|
|
116
117
|
cost_center_id: UUID | None = None
|
|
117
118
|
cost_center_name: str | None = None
|
|
118
119
|
members: list[ProjectMember]
|
|
120
|
+
chargeback_attribution: str = "project"
|
|
119
121
|
|
|
120
122
|
|
|
121
123
|
class ProjectCreateRequest(BaseModel):
|
|
@@ -147,6 +149,7 @@ class ProjectCreateResponse(BaseModel):
|
|
|
147
149
|
cost_center_id: UUID | None = None
|
|
148
150
|
cost_center_name: str | None = None
|
|
149
151
|
enforce_member_spend_limits: bool = False
|
|
152
|
+
chargeback_attribution: str = "project"
|
|
150
153
|
|
|
151
154
|
|
|
152
155
|
# PATCH /v1/projects/{name} returns the same shape as the create response
|
|
@@ -168,6 +171,7 @@ class ProjectUpdateRequest(BaseModel):
|
|
|
168
171
|
cost_center_id: UUID | None = None
|
|
169
172
|
clear_cost_center: bool = False
|
|
170
173
|
enforce_member_spend_limits: bool | None = None
|
|
174
|
+
chargeback_attribution: str | None = None
|
|
171
175
|
|
|
172
176
|
|
|
173
177
|
class ProjectDeleteResponse(BaseModel):
|