codemie-sdk-python 0.1.226__py3-none-any.whl → 0.1.273__py3-none-any.whl
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/__init__.py +27 -1
- codemie_sdk/client/client.py +14 -0
- codemie_sdk/models/assistant.py +54 -0
- codemie_sdk/models/datasource.py +79 -0
- codemie_sdk/models/integration.py +1 -1
- codemie_sdk/models/vendor_guardrail.py +152 -0
- codemie_sdk/models/workflow_execution_payload.py +4 -0
- codemie_sdk/services/assistant.py +214 -0
- codemie_sdk/services/datasource.py +67 -0
- codemie_sdk/services/files.py +21 -0
- codemie_sdk/services/vendor_guardrail.py +375 -0
- codemie_sdk/services/workflow.py +10 -1
- codemie_sdk/services/workflow_execution.py +26 -4
- codemie_sdk/utils/http.py +21 -7
- {codemie_sdk_python-0.1.226.dist-info → codemie_sdk_python-0.1.273.dist-info}/METADATA +636 -171
- {codemie_sdk_python-0.1.226.dist-info → codemie_sdk_python-0.1.273.dist-info}/RECORD +17 -15
- {codemie_sdk_python-0.1.226.dist-info → codemie_sdk_python-0.1.273.dist-info}/WHEEL +0 -0
codemie_sdk/__init__.py
CHANGED
|
@@ -60,11 +60,25 @@ from .models.vendor_knowledgebase import (
|
|
|
60
60
|
VendorKnowledgeBaseInstallResponse,
|
|
61
61
|
VendorKnowledgeBaseUninstallResponse,
|
|
62
62
|
)
|
|
63
|
+
from .models.vendor_guardrail import (
|
|
64
|
+
VendorGuardrailSetting,
|
|
65
|
+
VendorGuardrailSettingsResponse,
|
|
66
|
+
VendorGuardrail,
|
|
67
|
+
VendorGuardrailStatus,
|
|
68
|
+
VendorGuardrailsResponse,
|
|
69
|
+
VendorGuardrailVersion,
|
|
70
|
+
VendorGuardrailVersionsResponse,
|
|
71
|
+
VendorGuardrailInstallRequest,
|
|
72
|
+
VendorGuardrailInstallSummary,
|
|
73
|
+
VendorGuardrailInstallResponse,
|
|
74
|
+
VendorGuardrailUninstallResponse,
|
|
75
|
+
)
|
|
63
76
|
from .services.vendor_assistant import VendorAssistantService
|
|
64
77
|
from .services.vendor_workflow import VendorWorkflowService
|
|
65
78
|
from .services.vendor_knowledgebase import VendorKnowledgeBaseService
|
|
79
|
+
from .services.vendor_guardrail import VendorGuardrailService
|
|
66
80
|
|
|
67
|
-
__version__ = "0.2.
|
|
81
|
+
__version__ = "0.2.12"
|
|
68
82
|
__all__ = [
|
|
69
83
|
"CodeMieClient",
|
|
70
84
|
"VendorType",
|
|
@@ -106,4 +120,16 @@ __all__ = [
|
|
|
106
120
|
"VendorKnowledgeBaseInstallResponse",
|
|
107
121
|
"VendorKnowledgeBaseUninstallResponse",
|
|
108
122
|
"VendorKnowledgeBaseService",
|
|
123
|
+
"VendorGuardrailSetting",
|
|
124
|
+
"VendorGuardrailSettingsResponse",
|
|
125
|
+
"VendorGuardrail",
|
|
126
|
+
"VendorGuardrailStatus",
|
|
127
|
+
"VendorGuardrailsResponse",
|
|
128
|
+
"VendorGuardrailVersion",
|
|
129
|
+
"VendorGuardrailVersionsResponse",
|
|
130
|
+
"VendorGuardrailInstallRequest",
|
|
131
|
+
"VendorGuardrailInstallSummary",
|
|
132
|
+
"VendorGuardrailInstallResponse",
|
|
133
|
+
"VendorGuardrailUninstallResponse",
|
|
134
|
+
"VendorGuardrailService",
|
|
109
135
|
]
|
codemie_sdk/client/client.py
CHANGED
|
@@ -16,6 +16,7 @@ from ..services.webhook import WebhookService
|
|
|
16
16
|
from ..services.vendor_assistant import VendorAssistantService
|
|
17
17
|
from ..services.vendor_workflow import VendorWorkflowService
|
|
18
18
|
from ..services.vendor_knowledgebase import VendorKnowledgeBaseService
|
|
19
|
+
from ..services.vendor_guardrail import VendorGuardrailService
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
class CodeMieClient:
|
|
@@ -101,6 +102,9 @@ class CodeMieClient:
|
|
|
101
102
|
self.vendor_knowledgebases = VendorKnowledgeBaseService(
|
|
102
103
|
self._api_domain, self._token, verify_ssl=self._verify_ssl
|
|
103
104
|
)
|
|
105
|
+
self.vendor_guardrails = VendorGuardrailService(
|
|
106
|
+
self._api_domain, self._token, verify_ssl=self._verify_ssl
|
|
107
|
+
)
|
|
104
108
|
|
|
105
109
|
@property
|
|
106
110
|
def token(self) -> str:
|
|
@@ -116,6 +120,7 @@ class CodeMieClient:
|
|
|
116
120
|
"localhost",
|
|
117
121
|
"127.0.0.1",
|
|
118
122
|
"0.0.0.0",
|
|
123
|
+
"192.168",
|
|
119
124
|
]
|
|
120
125
|
return any(pattern in domain_lower for pattern in localhost_patterns)
|
|
121
126
|
|
|
@@ -147,6 +152,12 @@ class CodeMieClient:
|
|
|
147
152
|
self.conversations = ConversationService(
|
|
148
153
|
self._api_domain, self._token, verify_ssl=self._verify_ssl
|
|
149
154
|
)
|
|
155
|
+
self.files = FileOperationService(
|
|
156
|
+
self._api_domain, self._token, verify_ssl=self._verify_ssl
|
|
157
|
+
)
|
|
158
|
+
self.webhook = WebhookService(
|
|
159
|
+
self._api_domain, self._token, verify_ssl=self._verify_ssl
|
|
160
|
+
)
|
|
150
161
|
self.vendor_assistants = VendorAssistantService(
|
|
151
162
|
self._api_domain, self._token, verify_ssl=self._verify_ssl
|
|
152
163
|
)
|
|
@@ -156,4 +167,7 @@ class CodeMieClient:
|
|
|
156
167
|
self.vendor_knowledgebases = VendorKnowledgeBaseService(
|
|
157
168
|
self._api_domain, self._token, verify_ssl=self._verify_ssl
|
|
158
169
|
)
|
|
170
|
+
self.vendor_guardrails = VendorGuardrailService(
|
|
171
|
+
self._api_domain, self._token, verify_ssl=self._verify_ssl
|
|
172
|
+
)
|
|
159
173
|
return self._token
|
codemie_sdk/models/assistant.py
CHANGED
|
@@ -53,6 +53,16 @@ class Context(BaseModel):
|
|
|
53
53
|
name: str
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
class PromptVariable(BaseModel):
|
|
57
|
+
"""Model for assistant prompt variables."""
|
|
58
|
+
|
|
59
|
+
model_config = ConfigDict(extra="ignore")
|
|
60
|
+
|
|
61
|
+
key: str
|
|
62
|
+
description: Optional[str] = None
|
|
63
|
+
default_value: str
|
|
64
|
+
|
|
65
|
+
|
|
56
66
|
class MCPServerConfig(BaseModel):
|
|
57
67
|
"""
|
|
58
68
|
Configuration for an MCP server.
|
|
@@ -110,6 +120,7 @@ class MCPServerDetails(BaseModel):
|
|
|
110
120
|
arguments: Optional[str] = None
|
|
111
121
|
settings: Optional[Integration] = None
|
|
112
122
|
mcp_connect_auth_token: Optional[Integration] = None
|
|
123
|
+
integration_alias: Optional[str] = None
|
|
113
124
|
|
|
114
125
|
|
|
115
126
|
class SystemPromptHistory(BaseModel):
|
|
@@ -137,6 +148,17 @@ class AssistantBase(BaseModel):
|
|
|
137
148
|
icon_url: Optional[str] = None
|
|
138
149
|
|
|
139
150
|
|
|
151
|
+
class AssistantListResponse(BaseModel):
|
|
152
|
+
"""Model for assistant list response."""
|
|
153
|
+
|
|
154
|
+
model_config = ConfigDict(extra="ignore")
|
|
155
|
+
|
|
156
|
+
id: str
|
|
157
|
+
name: str
|
|
158
|
+
slug: Optional[str] = None
|
|
159
|
+
created_by: Optional[User] = None
|
|
160
|
+
|
|
161
|
+
|
|
140
162
|
class Assistant(AssistantBase):
|
|
141
163
|
"""Full assistant model with additional fields."""
|
|
142
164
|
|
|
@@ -164,6 +186,8 @@ class Assistant(AssistantBase):
|
|
|
164
186
|
user_abilities: Optional[List[Any]] = None
|
|
165
187
|
mcp_servers: List[MCPServerDetails] = Field(default_factory=list)
|
|
166
188
|
assistant_ids: List[str] = Field(default_factory=list)
|
|
189
|
+
version_count: Optional[int] = None
|
|
190
|
+
prompt_variables: Optional[List[PromptVariable]] = Field(default=None)
|
|
167
191
|
|
|
168
192
|
|
|
169
193
|
class AssistantRequestBase(AssistantBase):
|
|
@@ -191,6 +215,7 @@ class AssistantRequestBase(AssistantBase):
|
|
|
191
215
|
top_p: Optional[float] = None
|
|
192
216
|
mcp_servers: List[MCPServerDetails] = Field(default_factory=list)
|
|
193
217
|
assistant_ids: List[str] = Field(default_factory=list)
|
|
218
|
+
prompt_variables: List[PromptVariable] = Field(default_factory=list)
|
|
194
219
|
|
|
195
220
|
|
|
196
221
|
class AssistantCreateRequest(AssistantRequestBase):
|
|
@@ -205,6 +230,27 @@ class AssistantUpdateRequest(AssistantRequestBase):
|
|
|
205
230
|
pass
|
|
206
231
|
|
|
207
232
|
|
|
233
|
+
class AssistantVersion(BaseModel):
|
|
234
|
+
"""Immutable snapshot of assistant configuration for a specific version."""
|
|
235
|
+
|
|
236
|
+
model_config = ConfigDict(extra="ignore", use_enum_values=True)
|
|
237
|
+
|
|
238
|
+
version_number: int
|
|
239
|
+
created_date: datetime
|
|
240
|
+
created_by: Optional[User] = None
|
|
241
|
+
change_notes: Optional[str] = None
|
|
242
|
+
description: Optional[str] = None
|
|
243
|
+
system_prompt: str
|
|
244
|
+
llm_model_type: Optional[str] = None
|
|
245
|
+
temperature: Optional[float] = None
|
|
246
|
+
top_p: Optional[float] = None
|
|
247
|
+
context: List[Context] = Field(default_factory=list)
|
|
248
|
+
toolkits: List[ToolKitDetails] = Field(default_factory=list)
|
|
249
|
+
mcp_servers: List[MCPServerDetails] = Field(default_factory=list)
|
|
250
|
+
assistant_ids: List[str] = Field(default_factory=list)
|
|
251
|
+
prompt_variables: List[PromptVariable] = Field(default_factory=list)
|
|
252
|
+
|
|
253
|
+
|
|
208
254
|
class ChatRole(str, Enum):
|
|
209
255
|
"""Enum for chat message roles."""
|
|
210
256
|
|
|
@@ -263,6 +309,14 @@ class AssistantChatRequest(BaseModel):
|
|
|
263
309
|
default=None, description="DataSource in conversation history"
|
|
264
310
|
)
|
|
265
311
|
stream: bool = Field(default=False, description="Enable streaming response")
|
|
312
|
+
propagate_headers: bool = Field(
|
|
313
|
+
default=False,
|
|
314
|
+
description="Enable propagation of X-* HTTP headers to MCP servers during tool execution",
|
|
315
|
+
)
|
|
316
|
+
custom_metadata: Optional[dict[str, Any]] = Field(
|
|
317
|
+
default=None,
|
|
318
|
+
description="Custom metadata for the AI Assistant",
|
|
319
|
+
)
|
|
266
320
|
top_k: int = Field(default=10, description="Top K results to consider")
|
|
267
321
|
system_prompt: str = Field(default="", description="Override system prompt")
|
|
268
322
|
background_task: bool = Field(default=False, description="Run as background task")
|
codemie_sdk/models/datasource.py
CHANGED
|
@@ -25,6 +25,8 @@ class DataSourceType(str, Enum):
|
|
|
25
25
|
CHUNK_SUMMARY = "chunk-summary"
|
|
26
26
|
JSON = "knowledge_base_json"
|
|
27
27
|
BEDROCK = "knowledge_base_bedrock"
|
|
28
|
+
PLATFORM = "platform_marketplace_assistant"
|
|
29
|
+
AZURE_DEVOPS_WIKI = "knowledge_base_azure_devops_wiki"
|
|
28
30
|
|
|
29
31
|
|
|
30
32
|
class DataSourceStatus(str, Enum):
|
|
@@ -46,6 +48,15 @@ class DataSourceProcessingInfo(BaseModel):
|
|
|
46
48
|
processed_documents_count: Optional[int] = Field(None, alias="documents_count_key")
|
|
47
49
|
|
|
48
50
|
|
|
51
|
+
class ElasticsearchStatsResponse(BaseModel):
|
|
52
|
+
"""Response model for Elasticsearch index statistics."""
|
|
53
|
+
|
|
54
|
+
model_config = ConfigDict(extra="ignore")
|
|
55
|
+
|
|
56
|
+
index_name: str = Field(..., description="Name of the index in Elasticsearch")
|
|
57
|
+
size_in_bytes: int = Field(..., ge=0, description="Size of the index in bytes")
|
|
58
|
+
|
|
59
|
+
|
|
49
60
|
# Base request models
|
|
50
61
|
class Confluence(BaseModel):
|
|
51
62
|
"""Model for Confluence-specific response fields"""
|
|
@@ -89,6 +100,17 @@ class File(BaseModel):
|
|
|
89
100
|
model_config = ConfigDict(extra="ignore")
|
|
90
101
|
|
|
91
102
|
|
|
103
|
+
class AzureDevOpsWiki(BaseModel):
|
|
104
|
+
"""Model for Azure DevOps Wiki-specific response fields"""
|
|
105
|
+
|
|
106
|
+
wiki_query: Optional[str] = None
|
|
107
|
+
organization: Optional[str] = None
|
|
108
|
+
project: Optional[str] = None
|
|
109
|
+
wiki_name: Optional[str] = None
|
|
110
|
+
|
|
111
|
+
model_config = ConfigDict(extra="ignore")
|
|
112
|
+
|
|
113
|
+
|
|
92
114
|
class Code(BaseModel):
|
|
93
115
|
"""Model for code repository datasource creation"""
|
|
94
116
|
|
|
@@ -189,6 +211,17 @@ class FileDataSourceRequest(BaseDataSourceRequest):
|
|
|
189
211
|
super().__init__(type=DataSourceType.FILE, **data)
|
|
190
212
|
|
|
191
213
|
|
|
214
|
+
class AzureDevOpsWikiDataSourceRequest(BaseDataSourceRequest, AzureDevOpsWiki):
|
|
215
|
+
"""Model for Azure DevOps Wiki datasource creation requests"""
|
|
216
|
+
|
|
217
|
+
def __init__(self, **data):
|
|
218
|
+
super().__init__(type=DataSourceType.AZURE_DEVOPS_WIKI, **data)
|
|
219
|
+
|
|
220
|
+
@classmethod
|
|
221
|
+
def required_fields(cls) -> List[str]:
|
|
222
|
+
return ["wiki_query"]
|
|
223
|
+
|
|
224
|
+
|
|
192
225
|
class BaseUpdateDataSourceRequest(BaseDataSourceRequest):
|
|
193
226
|
"""Mixin update-specific reindex fields"""
|
|
194
227
|
|
|
@@ -259,6 +292,49 @@ class UpdateFileDataSourceRequest(BaseUpdateDataSourceRequest):
|
|
|
259
292
|
super().__init__(type=DataSourceType.FILE, **data)
|
|
260
293
|
|
|
261
294
|
|
|
295
|
+
class UpdateAzureDevOpsWikiDataSourceRequest(
|
|
296
|
+
BaseUpdateDataSourceRequest, AzureDevOpsWiki
|
|
297
|
+
):
|
|
298
|
+
"""Model for Azure DevOps Wiki datasource updates"""
|
|
299
|
+
|
|
300
|
+
def __init__(self, **data):
|
|
301
|
+
super().__init__(type=DataSourceType.AZURE_DEVOPS_WIKI, **data)
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
class CodeAnalysisDataSourceRequest(BaseModel):
|
|
305
|
+
"""Model for provider-based datasource creation requests"""
|
|
306
|
+
|
|
307
|
+
model_config = ConfigDict(extra="ignore", populate_by_name=True)
|
|
308
|
+
|
|
309
|
+
name: str = Field(..., description="Datasource name")
|
|
310
|
+
description: Optional[str] = Field(None, description="Datasource description")
|
|
311
|
+
project_name: str = Field(..., description="Project name")
|
|
312
|
+
project_space_visible: bool = Field(False, alias="projectSpaceVisible")
|
|
313
|
+
branch: Optional[str] = Field(None, description="Git branch")
|
|
314
|
+
api_url: str = Field(..., description="Repository URL")
|
|
315
|
+
access_token: str = Field(..., description="Access token for repository")
|
|
316
|
+
analyzer: Optional[str] = Field(
|
|
317
|
+
None, description="Code analyzer type (e.g., Java, Python)"
|
|
318
|
+
)
|
|
319
|
+
datasource_root: str = Field("/", description="Root directory to analyze")
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
class CodeExplorationDataSourceRequest(BaseModel):
|
|
323
|
+
"""Model for CodeExplorationToolkit datasource creation requests"""
|
|
324
|
+
|
|
325
|
+
model_config = ConfigDict(extra="ignore", populate_by_name=True)
|
|
326
|
+
|
|
327
|
+
name: str = Field(..., description="Datasource name")
|
|
328
|
+
description: Optional[str] = Field(None, description="Datasource description")
|
|
329
|
+
project_name: str = Field(..., description="Project name")
|
|
330
|
+
project_space_visible: bool = Field(False, alias="projectSpaceVisible")
|
|
331
|
+
code_analysis_datasource_ids: List[str] = Field(
|
|
332
|
+
...,
|
|
333
|
+
alias="code_analysis_datasource_ids",
|
|
334
|
+
description="List of CodeAnalysisToolkit datasource IDs",
|
|
335
|
+
)
|
|
336
|
+
|
|
337
|
+
|
|
262
338
|
class DataSource(BaseModel):
|
|
263
339
|
model_config = ConfigDict(
|
|
264
340
|
extra="ignore",
|
|
@@ -293,6 +369,8 @@ class DataSource(BaseModel):
|
|
|
293
369
|
confluence: Optional[Confluence] = None
|
|
294
370
|
# Google doc specific fields
|
|
295
371
|
google_doc_link: Optional[str] = None
|
|
372
|
+
# Azure DevOps Wiki specific fields
|
|
373
|
+
azure_devops_wiki: Optional[AzureDevOpsWiki] = None
|
|
296
374
|
|
|
297
375
|
@model_validator(mode="before")
|
|
298
376
|
def before_init(cls, values):
|
|
@@ -309,6 +387,7 @@ class DataSource(BaseModel):
|
|
|
309
387
|
DataSourceType.CONFLUENCE,
|
|
310
388
|
DataSourceType.JIRA,
|
|
311
389
|
DataSourceType.GOOGLE,
|
|
390
|
+
DataSourceType.AZURE_DEVOPS_WIKI,
|
|
312
391
|
]:
|
|
313
392
|
complete_state = values.get("complete_state", 0)
|
|
314
393
|
if complete_state is not None:
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"""Models for vendor guardrail settings."""
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from enum import Enum
|
|
5
|
+
from typing import Optional, List
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
8
|
+
|
|
9
|
+
from .vendor_assistant import PaginationInfo, TokenPagination
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class VendorGuardrailSetting(BaseModel):
|
|
13
|
+
"""Model representing a vendor guardrail setting."""
|
|
14
|
+
|
|
15
|
+
model_config = ConfigDict(extra="ignore")
|
|
16
|
+
|
|
17
|
+
setting_id: str = Field(..., description="Unique identifier for the setting")
|
|
18
|
+
setting_name: str = Field(..., description="Name of the setting")
|
|
19
|
+
project: str = Field(..., description="Project associated with the setting")
|
|
20
|
+
entities: List[str] = Field(
|
|
21
|
+
default_factory=list, description="List of entities associated with the setting"
|
|
22
|
+
)
|
|
23
|
+
invalid: Optional[bool] = Field(None, description="Whether the setting is invalid")
|
|
24
|
+
error: Optional[str] = Field(
|
|
25
|
+
None, description="Error message if the setting is invalid"
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class VendorGuardrailSettingsResponse(BaseModel):
|
|
30
|
+
"""Response model for vendor guardrail settings list."""
|
|
31
|
+
|
|
32
|
+
model_config = ConfigDict(extra="ignore")
|
|
33
|
+
|
|
34
|
+
data: List[VendorGuardrailSetting] = Field(
|
|
35
|
+
..., description="List of vendor guardrail settings"
|
|
36
|
+
)
|
|
37
|
+
pagination: PaginationInfo = Field(..., description="Pagination information")
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class VendorGuardrailStatus(str, Enum):
|
|
41
|
+
"""Status of vendor guardrail."""
|
|
42
|
+
|
|
43
|
+
PREPARED = "PREPARED"
|
|
44
|
+
NOT_PREPARED = "NOT_PREPARED"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class VendorGuardrail(BaseModel):
|
|
48
|
+
"""Model representing a vendor guardrail."""
|
|
49
|
+
|
|
50
|
+
model_config = ConfigDict(extra="ignore")
|
|
51
|
+
|
|
52
|
+
id: str = Field(..., description="Unique identifier for the guardrail")
|
|
53
|
+
name: str = Field(..., description="Name of the guardrail")
|
|
54
|
+
status: VendorGuardrailStatus = Field(..., description="Status of the guardrail")
|
|
55
|
+
description: Optional[str] = Field(None, description="Description of the guardrail")
|
|
56
|
+
version: str = Field(..., description="Version of the guardrail")
|
|
57
|
+
createdAt: datetime = Field(
|
|
58
|
+
..., description="Creation timestamp", alias="createdAt"
|
|
59
|
+
)
|
|
60
|
+
updatedAt: datetime = Field(
|
|
61
|
+
..., description="Last update timestamp", alias="updatedAt"
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class VendorGuardrailsResponse(BaseModel):
|
|
66
|
+
"""Response model for vendor guardrails list."""
|
|
67
|
+
|
|
68
|
+
model_config = ConfigDict(extra="ignore")
|
|
69
|
+
|
|
70
|
+
data: List[VendorGuardrail] = Field(..., description="List of vendor guardrails")
|
|
71
|
+
pagination: TokenPagination = Field(
|
|
72
|
+
..., description="Token-based pagination information"
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class VendorGuardrailVersion(BaseModel):
|
|
77
|
+
"""Model representing a vendor guardrail version."""
|
|
78
|
+
|
|
79
|
+
model_config = ConfigDict(extra="ignore")
|
|
80
|
+
|
|
81
|
+
id: str = Field(..., description="Unique identifier for the guardrail")
|
|
82
|
+
version: str = Field(..., description="Version of the guardrail")
|
|
83
|
+
name: str = Field(..., description="Name of the guardrail")
|
|
84
|
+
status: VendorGuardrailStatus = Field(..., description="Status of the version")
|
|
85
|
+
description: Optional[str] = Field(None, description="Description of the version")
|
|
86
|
+
blockedInputMessaging: Optional[str] = Field(
|
|
87
|
+
None,
|
|
88
|
+
description="Message to display when input is blocked by guardrail",
|
|
89
|
+
alias="blockedInputMessaging",
|
|
90
|
+
)
|
|
91
|
+
blockedOutputsMessaging: Optional[str] = Field(
|
|
92
|
+
None,
|
|
93
|
+
description="Message to display when output is blocked by guardrail",
|
|
94
|
+
alias="blockedOutputsMessaging",
|
|
95
|
+
)
|
|
96
|
+
createdAt: datetime = Field(
|
|
97
|
+
..., description="Creation timestamp", alias="createdAt"
|
|
98
|
+
)
|
|
99
|
+
updatedAt: datetime = Field(
|
|
100
|
+
..., description="Last update timestamp", alias="updatedAt"
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
class VendorGuardrailVersionsResponse(BaseModel):
|
|
105
|
+
"""Response model for vendor guardrail versions list."""
|
|
106
|
+
|
|
107
|
+
model_config = ConfigDict(extra="ignore")
|
|
108
|
+
|
|
109
|
+
data: List[VendorGuardrailVersion] = Field(
|
|
110
|
+
..., description="List of vendor guardrail versions"
|
|
111
|
+
)
|
|
112
|
+
pagination: TokenPagination = Field(
|
|
113
|
+
..., description="Token-based pagination information"
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
class VendorGuardrailInstallRequest(BaseModel):
|
|
118
|
+
"""Model for a single guardrail installation request."""
|
|
119
|
+
|
|
120
|
+
model_config = ConfigDict(extra="ignore")
|
|
121
|
+
|
|
122
|
+
id: str = Field(..., description="Guardrail ID to install")
|
|
123
|
+
version: str = Field(..., description="Version to use for the guardrail")
|
|
124
|
+
setting_id: str = Field(..., description="Vendor setting ID")
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class VendorGuardrailInstallSummary(BaseModel):
|
|
128
|
+
"""Model for guardrail installation summary."""
|
|
129
|
+
|
|
130
|
+
model_config = ConfigDict(extra="ignore")
|
|
131
|
+
|
|
132
|
+
guardrailId: str = Field(..., description="Installed guardrail ID")
|
|
133
|
+
version: str = Field(..., description="Version used for installation")
|
|
134
|
+
aiRunId: str = Field(..., description="AI run ID for the installation")
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class VendorGuardrailInstallResponse(BaseModel):
|
|
138
|
+
"""Response model for guardrail installation."""
|
|
139
|
+
|
|
140
|
+
model_config = ConfigDict(extra="ignore")
|
|
141
|
+
|
|
142
|
+
summary: List[VendorGuardrailInstallSummary] = Field(
|
|
143
|
+
..., description="List of installation summaries"
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class VendorGuardrailUninstallResponse(BaseModel):
|
|
148
|
+
"""Response model for guardrail uninstallation."""
|
|
149
|
+
|
|
150
|
+
model_config = ConfigDict(extra="ignore")
|
|
151
|
+
|
|
152
|
+
success: bool = Field(..., description="Whether the uninstallation was successful")
|
|
@@ -15,3 +15,7 @@ class WorkflowExecutionCreateRequest(BaseModel):
|
|
|
15
15
|
file_name: Optional[str] = Field(
|
|
16
16
|
None, description="File name associated with the workflow execution"
|
|
17
17
|
)
|
|
18
|
+
propagate_headers: bool = Field(
|
|
19
|
+
default=False,
|
|
20
|
+
description="Enable propagation of X-* HTTP headers to MCP servers during tool execution",
|
|
21
|
+
)
|