codemie-sdk-python 0.1.503__tar.gz → 0.1.505__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 (62) hide show
  1. codemie_sdk_python-0.1.503/README.md → codemie_sdk_python-0.1.505/PKG-INFO +56 -1
  2. codemie_sdk_python-0.1.503/PKG-INFO → codemie_sdk_python-0.1.505/README.md +43 -14
  3. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/pyproject.toml +1 -1
  4. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/__init__.py +9 -1
  5. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/assistant.py +23 -0
  6. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/assistant.py +81 -0
  7. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/auth/__init__.py +0 -0
  8. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/auth/credentials.py +0 -0
  9. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/client/__init__.py +0 -0
  10. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/client/client.py +0 -0
  11. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/exceptions.py +0 -0
  12. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/__init__.py +0 -0
  13. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/admin.py +0 -0
  14. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/analytics.py +0 -0
  15. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/categories.py +0 -0
  16. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/common.py +0 -0
  17. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/conversation.py +0 -0
  18. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/datasource.py +0 -0
  19. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/errors.py +0 -0
  20. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/file_operation.py +0 -0
  21. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/guardrails.py +0 -0
  22. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/integration.py +0 -0
  23. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/llm.py +0 -0
  24. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/mermaid.py +0 -0
  25. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/project.py +0 -0
  26. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/skill.py +0 -0
  27. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/task.py +0 -0
  28. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/user.py +0 -0
  29. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/vendor_assistant.py +0 -0
  30. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/vendor_guardrail.py +0 -0
  31. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/vendor_knowledgebase.py +0 -0
  32. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/vendor_runtime.py +0 -0
  33. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/vendor_workflow.py +0 -0
  34. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/workflow.py +0 -0
  35. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/workflow_execution_payload.py +0 -0
  36. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/workflow_state.py +0 -0
  37. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/models/workflow_thoughts.py +0 -0
  38. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/admin.py +0 -0
  39. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/analytics.py +0 -0
  40. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/categories.py +0 -0
  41. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/codemie_guardrails.py +0 -0
  42. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/conversation.py +0 -0
  43. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/datasource.py +0 -0
  44. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/files.py +0 -0
  45. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/integration.py +0 -0
  46. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/llm.py +0 -0
  47. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/mermaid.py +0 -0
  48. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/project.py +0 -0
  49. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/skill.py +0 -0
  50. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/task.py +0 -0
  51. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/user.py +0 -0
  52. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/vendor_assistant.py +0 -0
  53. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/vendor_guardrail.py +0 -0
  54. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/vendor_knowledgebase.py +0 -0
  55. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/vendor_runtime.py +0 -0
  56. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/vendor_workflow.py +0 -0
  57. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/webhook.py +0 -0
  58. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/workflow.py +0 -0
  59. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/workflow_execution.py +0 -0
  60. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/services/workflow_execution_state.py +0 -0
  61. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/src/codemie_sdk/utils/__init__.py +0 -0
  62. {codemie_sdk_python-0.1.503 → codemie_sdk_python-0.1.505}/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.505
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,6 +353,48 @@ response = client.assistants.chat_with_version("assistant-id", version_number=2,
340
353
  print(response.generated)
341
354
  ```
342
355
 
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
+
343
398
  ### Datasource Service
344
399
 
345
400
  The Datasource service enables managing various types of data sources in CodeMie, including code repositories, Confluence spaces, Jira projects, files, and Google documents.
@@ -1388,4 +1443,4 @@ poetry build
1388
1443
 
1389
1444
  # Publish to PyPI
1390
1445
  make publish
1391
- ```
1446
+ ```
@@ -1,16 +1,3 @@
1
- Metadata-Version: 2.1
2
- Name: codemie-sdk-python
3
- Version: 0.1.503
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,6 +340,48 @@ response = client.assistants.chat_with_version("assistant-id", version_number=2,
353
340
  print(response.generated)
354
341
  ```
355
342
 
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
+
356
385
  ### Datasource Service
357
386
 
358
387
  The Datasource service enables managing various types of data sources in CodeMie, including code repositories, Confluence spaces, Jira projects, files, and Google documents.
@@ -1401,4 +1430,4 @@ poetry build
1401
1430
 
1402
1431
  # Publish to PyPI
1403
1432
  make publish
1404
- ```
1433
+ ```
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemie-sdk-python"
3
- version = "0.1.503"
3
+ version = "0.1.505"
4
4
  description = "CodeMie SDK for Python"
5
5
  authors = [
6
6
  "Vadym Vlasenko <vadym_vlasenko@epam.com>",
@@ -148,7 +148,12 @@ from .models.skill import (
148
148
  SkillPagination,
149
149
  )
150
150
  from .services.skill import SkillService
151
- from .models.assistant import BuiltinSubagent
151
+ from .models.assistant import (
152
+ BuiltinSubagent,
153
+ AssistantProjectFeature,
154
+ AssistantProjectMappingRequest,
155
+ AssistantProjectMappingResponse,
156
+ )
152
157
 
153
158
  __version__ = "0.2.12"
154
159
  __all__ = [
@@ -264,4 +269,7 @@ __all__ = [
264
269
  "SkillPagination",
265
270
  "SkillService",
266
271
  "BuiltinSubagent",
272
+ "AssistantProjectFeature",
273
+ "AssistantProjectMappingRequest",
274
+ "AssistantProjectMappingResponse",
267
275
  ]
@@ -607,3 +607,26 @@ class ReactionRequest(BaseModel):
607
607
  model_config = ConfigDict(extra="ignore", use_enum_values=True)
608
608
 
609
609
  reaction: ReactionType = Field(description="Reaction type: 'like' or 'dislike'")
610
+
611
+
612
+ class AssistantProjectFeature(str, Enum):
613
+ """Enum for assistant project feature discriminators."""
614
+
615
+ teams = "teams"
616
+
617
+
618
+ class AssistantProjectMappingRequest(BaseModel):
619
+ """Request body for enabling an assistant for a project feature."""
620
+
621
+ model_config = ConfigDict(extra="ignore", use_enum_values=True)
622
+
623
+ project_name: str = Field(description="Project identifier")
624
+ feature: AssistantProjectFeature = Field(description="Feature discriminator")
625
+
626
+
627
+ class AssistantProjectMappingResponse(BaseModel):
628
+ """Response for assistant project mapping operations."""
629
+
630
+ model_config = ConfigDict(extra="ignore")
631
+
632
+ message: str = Field(description="Operation result message")
@@ -28,6 +28,9 @@ from ..models.assistant import (
28
28
  ExportAssistantPayload,
29
29
  AssistantEvaluationRequest,
30
30
  ReactionRequest,
31
+ AssistantProjectFeature,
32
+ AssistantProjectMappingRequest,
33
+ AssistantProjectMappingResponse,
31
34
  )
32
35
  from ..models.common import PaginationParams
33
36
  from ..utils import ApiRequestHandler, TokenSource
@@ -607,3 +610,81 @@ class AssistantService:
607
610
  Response from the API
608
611
  """
609
612
  return self._api.delete(f"/v1/assistants/{assistant_id}/reactions", dict)
613
+
614
+ def list_project_mapping(
615
+ self,
616
+ feature: Union[AssistantProjectFeature, str],
617
+ project: str,
618
+ page: int = 0,
619
+ per_page: int = 12,
620
+ ) -> list[Assistant]:
621
+ """List assistants enabled for a project feature.
622
+
623
+ Args:
624
+ feature: Feature discriminator (e.g. "teams")
625
+ project: Project name (application name)
626
+ page: 0-indexed page number
627
+ per_page: Items per page (max 100)
628
+
629
+ Returns:
630
+ List of assistants mapped to the project feature
631
+ """
632
+ params = {
633
+ "feature": feature if isinstance(feature, str) else feature.value,
634
+ "project": project,
635
+ "page": page,
636
+ "per_page": per_page,
637
+ }
638
+ return self._api.get(
639
+ "/v1/assistants/projects/mapping", list[Assistant], params=params
640
+ )
641
+
642
+ def enable_project_mapping(
643
+ self,
644
+ assistant_id: str,
645
+ request: AssistantProjectMappingRequest,
646
+ ) -> AssistantProjectMappingResponse:
647
+ """Enable an assistant for a project feature.
648
+
649
+ Idempotent: returns 200 whether the mapping already existed or not.
650
+
651
+ Args:
652
+ assistant_id: UUID of the assistant
653
+ request: Mapping request with project_name and feature
654
+
655
+ Returns:
656
+ AssistantProjectMappingResponse with confirmation message
657
+ """
658
+ return self._api.post(
659
+ f"/v1/assistants/{assistant_id}/projects/mapping",
660
+ AssistantProjectMappingResponse,
661
+ json_data=request.model_dump(exclude_none=True),
662
+ wrap_response=False,
663
+ )
664
+
665
+ def disable_project_mapping(
666
+ self,
667
+ assistant_id: str,
668
+ project: str,
669
+ feature: Union[AssistantProjectFeature, str],
670
+ ) -> AssistantProjectMappingResponse:
671
+ """Disable an assistant for a project feature.
672
+
673
+ Args:
674
+ assistant_id: UUID of the assistant
675
+ project: Project name
676
+ feature: Feature discriminator (e.g. "teams")
677
+
678
+ Returns:
679
+ AssistantProjectMappingResponse with confirmation message
680
+ """
681
+ params = {
682
+ "project": project,
683
+ "feature": feature if isinstance(feature, str) else feature.value,
684
+ }
685
+ return self._api.delete(
686
+ f"/v1/assistants/{assistant_id}/projects/mapping",
687
+ AssistantProjectMappingResponse,
688
+ params=params,
689
+ wrap_response=False,
690
+ )