pygeai 0.2.7b37__py3-none-any.whl → 0.2.7b39__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.
@@ -351,13 +351,22 @@ class ModelMapper:
351
351
  @classmethod
352
352
  def map_to_item(cls, data: dict) -> RequestItem:
353
353
  return RequestItem(
354
+ api_token=data.get('apiToken'),
354
355
  assistant=data.get('assistant'),
356
+ cost=data.get('cost'),
357
+ elapsed_time_ms=data.get('elapsedTimeMs'),
358
+ end_timestamp=data.get('endTimestamp'),
359
+ feedback=data.get('feedback'),
355
360
  intent=data.get('intent'),
356
- timestamp=data.get('timestamp'),
361
+ module=data.get('module'),
357
362
  prompt=data.get('prompt'),
358
363
  output=data.get('output'),
359
364
  input_text=data.get('inputText'),
360
- status=data.get('status')
365
+ rag_sources_consulted=data.get('ragSourcesConsulted'),
366
+ session_id=data.get('sessionId'),
367
+ start_timestamp=data.get('startTimestamp'),
368
+ status=data.get('status'),
369
+ timestamp=data.get('timestamp')
361
370
  )
362
371
 
363
372
  @classmethod
@@ -1,4 +1,5 @@
1
1
  from pygeai import logger
2
+ from pygeai.admin.clients import AdminClient
2
3
  from pygeai.core.base.mappers import ErrorMapper, ResponseMapper
3
4
  from pygeai.core.base.responses import EmptyResponse
4
5
  from pygeai.core.files.clients import FileClient
@@ -28,8 +29,26 @@ class FileManager:
28
29
  base_url,
29
30
  alias
30
31
  )
31
- self.__organization_id = organization_id
32
- self.__project_id = project_id
32
+ self.organization_id = self.__get_organization_id() if not organization_id else organization_id
33
+ self.project_id = self.__get_project_id() if not project_id else project_id
34
+
35
+ def __get_organization_id(self):
36
+ response = None
37
+ try:
38
+ response = AdminClient().validate_api_token()
39
+ return response.get("organizationId")
40
+ except Exception as e:
41
+ logger.error(f"Error retrieving organization_id from GEAI. Response: {response}: {e}")
42
+ raise APIError(f"Error retrieving organization_id from GEAI: {e}")
43
+
44
+ def __get_project_id(self):
45
+ response = None
46
+ try:
47
+ response = AdminClient().validate_api_token()
48
+ return response.get("projectId")
49
+ except Exception as e:
50
+ logger.error(f"Error retrieving project_id from GEAI. Response: {response}: {e}")
51
+ raise APIError(f"Error retrieving project_id from GEAI: {e}")
33
52
 
34
53
  def upload_file(
35
54
  self,
@@ -47,8 +66,8 @@ class FileManager:
47
66
  """
48
67
  response_data = self.__client.upload_file(
49
68
  file_path=file.path,
50
- organization_id=self.__organization_id,
51
- project_id=self.__project_id,
69
+ organization_id=self.organization_id,
70
+ project_id=self.project_id,
52
71
  folder=file.folder,
53
72
  file_name=file.name,
54
73
  )
@@ -75,8 +94,8 @@ class FileManager:
75
94
  :raises APIError: If the API returns errors.
76
95
  """
77
96
  response_data = self.__client.get_file(
78
- organization=self.__organization_id,
79
- project=self.__project_id,
97
+ organization=self.organization_id,
98
+ project=self.project_id,
80
99
  file_id=file_id
81
100
  )
82
101
  if ErrorHandler.has_errors(response_data):
@@ -101,8 +120,8 @@ class FileManager:
101
120
  :raises APIError: If the API returns errors.
102
121
  """
103
122
  response_data = self.__client.delete_file(
104
- organization=self.__organization_id,
105
- project=self.__project_id,
123
+ organization=self.organization_id,
124
+ project=self.project_id,
106
125
  file_id=file_id
107
126
  )
108
127
  if ErrorHandler.has_errors(response_data):
@@ -128,8 +147,8 @@ class FileManager:
128
147
  :raises APIError: If the API returns errors.
129
148
  """
130
149
  response_data = self.__client.get_file_content(
131
- organization=self.__organization_id,
132
- project=self.__project_id,
150
+ organization=self.organization_id,
151
+ project=self.project_id,
133
152
  file_id=file_id
134
153
  )
135
154
  if isinstance(response_data, dict) and "errors" in response_data:
@@ -151,8 +170,8 @@ class FileManager:
151
170
  :raises APIError: If the API returns errors.
152
171
  """
153
172
  response_data = self.__client.get_file_list(
154
- organization=self.__organization_id,
155
- project=self.__project_id
173
+ organization=self.organization_id,
174
+ project=self.project_id
156
175
  )
157
176
  if ErrorHandler.has_errors(response_data):
158
177
  error = ErrorHandler.extract_error(response_data)
pygeai/core/models.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from datetime import datetime
2
2
 
3
- from pydantic import Field, field_validator
3
+ from pydantic import Field, field_validator, model_validator
4
4
  from typing import Optional, Literal, Any, List, Union, Iterator
5
5
 
6
6
  from pygeai.core import CustomBaseModel
@@ -247,23 +247,32 @@ class Project(CustomBaseModel):
247
247
 
248
248
  class RequestItem(CustomBaseModel):
249
249
  """
250
- {
251
- "assistant": "string",
252
- "intent": "string",
253
- "timestamp": "string",
254
- "prompt": "string",
255
- "output": "string",
256
- "inputText": "string",
257
- "status": "string"
258
- }
250
+ Represents a request item with metadata about an API interaction.
251
+ Follows a JSON schema with camelCase aliases for external compatibility.
259
252
  """
253
+ api_token: str = Field(..., alias="apiToken")
260
254
  assistant: str = Field(..., alias="assistant")
255
+ cost: float = Field(..., alias="cost")
256
+ elapsed_time_ms: int = Field(..., alias="elapsedTimeMs")
257
+ end_timestamp: datetime = Field(..., alias="endTimestamp")
258
+ feedback: Optional[str] = Field(None, alias="feedback")
261
259
  intent: Optional[str] = Field(None, alias="intent")
262
- timestamp: str = Field(..., alias="timestamp")
260
+ module: str = Field(..., alias="module")
263
261
  prompt: Optional[str] = Field(None, alias="prompt")
264
262
  output: Optional[str] = Field(None, alias="output")
265
263
  input_text: Optional[str] = Field(None, alias="inputText")
264
+ rag_sources_consulted: Optional[str] = Field(None, alias="ragSourcesConsulted")
265
+ session_id: str = Field(..., alias="sessionId")
266
+ start_timestamp: datetime = Field(..., alias="startTimestamp")
266
267
  status: str = Field(..., alias="status")
268
+ timestamp: datetime = Field(..., alias="timestamp")
269
+
270
+ @model_validator(mode="after")
271
+ def validate_status(self):
272
+ valid_statuses = {"succeeded", "failed", "pending"}
273
+ if self.status not in valid_statuses:
274
+ raise ValueError(f"Status must be one of {valid_statuses}")
275
+ return self
267
276
 
268
277
  def to_dict(self):
269
278
  return self.model_dump(by_alias=True, exclude_none=True)
pygeai/lab/managers.py CHANGED
@@ -22,12 +22,12 @@ from pygeai.lab.tools.mappers import ToolMapper
22
22
 
23
23
  class AILabManager:
24
24
 
25
- def __init__(self, api_key: str = None, base_url: str = None, alias: str = "default"):
25
+ def __init__(self, api_key: str = None, base_url: str = None, alias: str = "default", project_id: str = None):
26
26
  self.__agent_client = AgentClient(api_key=api_key, base_url=base_url, alias=alias)
27
27
  self.__tool_client = ToolClient(api_key=api_key, base_url=base_url, alias=alias)
28
28
  self.__reasoning_strategy_client = ReasoningStrategyClient(api_key=api_key, base_url=base_url, alias=alias)
29
29
  self.__process_client = AgenticProcessClient(api_key=api_key, base_url=base_url, alias=alias)
30
- self.project_id = self.__get_project_id()
30
+ self.project_id = self.__get_project_id() if not project_id else project_id
31
31
 
32
32
  def __get_project_id(self):
33
33
  response = None
@@ -22,3 +22,26 @@ class ProjectTokensResponse(BaseModel):
22
22
 
23
23
  class ProjectItemListResponse(BaseModel):
24
24
  items: list[RequestItem]
25
+
26
+ def to_list(self):
27
+ return [item.to_dict() for item in self.items] if self.items else []
28
+
29
+ def __getitem__(self, index: int) -> RequestItem:
30
+ if self.items is None:
31
+ raise IndexError("ProjectItemListResponse is empty")
32
+ return self.items[index]
33
+
34
+ def __len__(self) -> int:
35
+ return len(self.items) if self.items else 0
36
+
37
+ def __iter__(self):
38
+ """Make ProjectItemListResponse iterable over its items."""
39
+ if self.items is None:
40
+ return iter([])
41
+ return iter(self.items)
42
+
43
+ def append(self, item: RequestItem) -> None:
44
+ """Append an Agent instance to the items list."""
45
+ if self.items is None:
46
+ self.items = []
47
+ self.items.append(item)
@@ -13,9 +13,9 @@ class TestAILabManager(unittest.TestCase):
13
13
  """
14
14
  python -m unittest pygeai.tests.lab.test_managers.TestAILabManager
15
15
  """
16
+
16
17
  def setUp(self):
17
- self.manager = AILabManager(api_key="test_key", base_url="test_url", alias="test_alias")
18
- self.project_id = "test_project"
18
+ self.manager = AILabManager(api_key="test_key", base_url="test_url", alias="test_alias", project_id="test_project")
19
19
  self.agent_id = "test_agent"
20
20
  self.tool_id = "test_tool"
21
21
  self.process_id = "test_process"
@@ -31,7 +31,7 @@ class TestAILabManager(unittest.TestCase):
31
31
  mock_list_agents.return_value = {"data": "test_data"}
32
32
  mock_map_to_agent_list.return_value = AgentList(agents=[])
33
33
 
34
- result = self.manager.get_agent_list(self.project_id, self.filter_settings)
34
+ result = self.manager.get_agent_list(self.filter_settings)
35
35
 
36
36
  mock_list_agents.assert_called_once()
37
37
  mock_map_to_agent_list.assert_called_once_with({"data": "test_data"})
@@ -42,7 +42,7 @@ class TestAILabManager(unittest.TestCase):
42
42
  mock_list_agents.return_value = {"error": {"id": 1, "message": "API error"}}
43
43
 
44
44
  with self.assertRaises(APIError):
45
- self.manager.get_agent_list(self.project_id, self.filter_settings)
45
+ self.manager.get_agent_list(self.filter_settings)
46
46
 
47
47
  @patch('pygeai.lab.agents.clients.AgentClient.create_agent')
48
48
  @patch('pygeai.lab.agents.mappers.AgentMapper.map_to_agent')
@@ -51,7 +51,7 @@ class TestAILabManager(unittest.TestCase):
51
51
  mock_map_to_agent.return_value = Agent(id=self.agent_id, name="test_agent")
52
52
  agent = Agent(name="test_agent")
53
53
 
54
- result = self.manager.create_agent(self.project_id, agent, automatic_publish=False)
54
+ result = self.manager.create_agent(agent, automatic_publish=False)
55
55
 
56
56
  mock_create_agent.assert_called_once()
57
57
  mock_map_to_agent.assert_called_once_with({"data": "test_data"})
@@ -64,7 +64,7 @@ class TestAILabManager(unittest.TestCase):
64
64
  mock_map_to_agent.return_value = Agent(id=self.agent_id, name="test_agent")
65
65
  agent = Agent(id=self.agent_id, name="test_agent")
66
66
 
67
- result = self.manager.update_agent(self.project_id, agent, automatic_publish=False, upsert=False)
67
+ result = self.manager.update_agent(agent, automatic_publish=False, upsert=False)
68
68
 
69
69
  mock_update_agent.assert_called_once()
70
70
  mock_map_to_agent.assert_called_once_with({"data": "test_data"})
@@ -76,7 +76,7 @@ class TestAILabManager(unittest.TestCase):
76
76
  mock_get_agent.return_value = {"data": "test_data"}
77
77
  mock_map_to_agent.return_value = Agent(id=self.agent_id, name="test_agent")
78
78
 
79
- result = self.manager.get_agent(self.project_id, self.agent_id, self.filter_settings)
79
+ result = self.manager.get_agent(self.agent_id, self.filter_settings)
80
80
 
81
81
  mock_get_agent.assert_called_once()
82
82
  mock_map_to_agent.assert_called_once_with({"data": "test_data"})
@@ -88,7 +88,7 @@ class TestAILabManager(unittest.TestCase):
88
88
  mock_create_sharing_link.return_value = {"data": "test_data"}
89
89
  mock_map_to_sharing_link.return_value = SharingLink(agent_id="test_agent", api_token="test_token", shared_link="test_link")
90
90
 
91
- result = self.manager.create_sharing_link(self.project_id, self.agent_id)
91
+ result = self.manager.create_sharing_link(self.agent_id)
92
92
 
93
93
  mock_create_sharing_link.assert_called_once()
94
94
  mock_map_to_sharing_link.assert_called_once_with({"data": "test_data"})
@@ -100,7 +100,7 @@ class TestAILabManager(unittest.TestCase):
100
100
  mock_publish_agent_revision.return_value = {"data": "test_data"}
101
101
  mock_map_to_agent.return_value = Agent(id=self.agent_id, name="test_agent")
102
102
 
103
- result = self.manager.publish_agent_revision(self.project_id, self.agent_id, self.revision)
103
+ result = self.manager.publish_agent_revision(self.agent_id, self.revision)
104
104
 
105
105
  mock_publish_agent_revision.assert_called_once()
106
106
  mock_map_to_agent.assert_called_once_with({"data": "test_data"})
@@ -112,7 +112,7 @@ class TestAILabManager(unittest.TestCase):
112
112
  mock_delete_agent.return_value = {"data": "test_data"}
113
113
  mock_map_to_empty_response.return_value = {"status": "success"}
114
114
 
115
- result = self.manager.delete_agent(self.project_id, self.agent_id)
115
+ result = self.manager.delete_agent(self.agent_id)
116
116
 
117
117
  mock_delete_agent.assert_called_once()
118
118
  mock_map_to_empty_response.assert_called_once()
@@ -125,7 +125,7 @@ class TestAILabManager(unittest.TestCase):
125
125
  mock_map_to_tool.return_value = Tool(id=self.tool_id, name="test_tool", description="test_desc")
126
126
  tool = Tool(name="test_tool", description="test_desc")
127
127
 
128
- result = self.manager.create_tool(self.project_id, tool, automatic_publish=False)
128
+ result = self.manager.create_tool(tool, automatic_publish=False)
129
129
 
130
130
  mock_create_tool.assert_called_once()
131
131
  mock_map_to_tool.assert_called_once_with({"data": "test_data"})
@@ -138,7 +138,7 @@ class TestAILabManager(unittest.TestCase):
138
138
  mock_map_to_tool.return_value = Tool(id=self.tool_id, name="test_tool", description="test_desc")
139
139
  tool = Tool(id=self.tool_id, name="test_tool", description="test_desc")
140
140
 
141
- result = self.manager.update_tool(self.project_id, tool, automatic_publish=False, upsert=False)
141
+ result = self.manager.update_tool(tool, automatic_publish=False, upsert=False)
142
142
 
143
143
  mock_update_tool.assert_called_once()
144
144
  mock_map_to_tool.assert_called_once_with({"data": "test_data"})
@@ -150,7 +150,7 @@ class TestAILabManager(unittest.TestCase):
150
150
  mock_get_tool.return_value = {"data": "test_data"}
151
151
  mock_map_to_tool.return_value = Tool(id=self.tool_id, name="test_tool", description="test_desc")
152
152
 
153
- result = self.manager.get_tool(self.project_id, self.tool_id, self.filter_settings)
153
+ result = self.manager.get_tool(self.tool_id, self.filter_settings)
154
154
 
155
155
  mock_get_tool.assert_called_once()
156
156
  mock_map_to_tool.assert_called_once_with({"data": "test_data"})
@@ -162,7 +162,7 @@ class TestAILabManager(unittest.TestCase):
162
162
  mock_delete_tool.return_value = {"data": "test_data"}
163
163
  mock_map_to_empty_response.return_value = {"status": "success"}
164
164
 
165
- result = self.manager.delete_tool(self.project_id, tool_id=self.tool_id)
165
+ result = self.manager.delete_tool(tool_id=self.tool_id)
166
166
 
167
167
  mock_delete_tool.assert_called_once()
168
168
  mock_map_to_empty_response.assert_called_once()
@@ -174,7 +174,7 @@ class TestAILabManager(unittest.TestCase):
174
174
  mock_list_tools.return_value = {"data": "test_data"}
175
175
  mock_map_to_tool_list.return_value = ToolList(tools=[])
176
176
 
177
- result = self.manager.list_tools(self.project_id, self.filter_settings)
177
+ result = self.manager.list_tools(self.filter_settings)
178
178
 
179
179
  mock_list_tools.assert_called_once()
180
180
  mock_map_to_tool_list.assert_called_once_with({"data": "test_data"})
@@ -186,7 +186,7 @@ class TestAILabManager(unittest.TestCase):
186
186
  mock_publish_tool_revision.return_value = {"data": "test_data"}
187
187
  mock_map_to_tool.return_value = Tool(id=self.tool_id, name="test_tool", description="test_desc")
188
188
 
189
- result = self.manager.publish_tool_revision(self.project_id, self.tool_id, self.revision)
189
+ result = self.manager.publish_tool_revision(self.tool_id, self.revision)
190
190
 
191
191
  mock_publish_tool_revision.assert_called_once()
192
192
  mock_map_to_tool.assert_called_once_with({"data": "test_data"})
@@ -198,7 +198,7 @@ class TestAILabManager(unittest.TestCase):
198
198
  mock_get_parameter.return_value = {"data": "test_data"}
199
199
  mock_map_to_parameter_list.return_value = [ToolParameter(key="test_key", data_type="String", description="test_desc", is_required=True)]
200
200
 
201
- result = self.manager.get_parameter(self.project_id, tool_id=self.tool_id, filter_settings=self.filter_settings)
201
+ result = self.manager.get_parameter(tool_id=self.tool_id, filter_settings=self.filter_settings)
202
202
 
203
203
  mock_get_parameter.assert_called_once()
204
204
  mock_map_to_parameter_list.assert_called_once_with({"data": "test_data"})
@@ -211,7 +211,7 @@ class TestAILabManager(unittest.TestCase):
211
211
  mock_map_to_tool.return_value = Tool(id=self.tool_id, name="test_tool", description="test_desc")
212
212
  parameters = [ToolParameter(key="test_key", data_type="String", description="test_desc", is_required=True)]
213
213
 
214
- result = self.manager.set_parameter(self.project_id, tool_id=self.tool_id, parameters=parameters)
214
+ result = self.manager.set_parameter(tool_id=self.tool_id, parameters=parameters)
215
215
 
216
216
  mock_set_parameter.assert_called_once()
217
217
  mock_map_to_tool.assert_called_once_with({"data": "test_data"})
@@ -236,7 +236,7 @@ class TestAILabManager(unittest.TestCase):
236
236
  mock_map_to_strategy.return_value = ReasoningStrategy(id="test_strategy", name="test_strategy", access_scope="private", type="addendum")
237
237
  strategy = ReasoningStrategy(name="test_strategy", access_scope="private", type="addendum", localized_descriptions=[])
238
238
 
239
- result = self.manager.create_reasoning_strategy(self.project_id, strategy, automatic_publish=False)
239
+ result = self.manager.create_reasoning_strategy(strategy, automatic_publish=False)
240
240
 
241
241
  mock_create_strategy.assert_called_once()
242
242
  mock_map_to_strategy.assert_called_once_with({"data": "test_data"})
@@ -249,7 +249,7 @@ class TestAILabManager(unittest.TestCase):
249
249
  mock_map_to_strategy.return_value = ReasoningStrategy(id="test_strategy", name="test_strategy", access_scope="private", type="addendum")
250
250
  strategy = ReasoningStrategy(id="test_strategy", name="test_strategy", access_scope="private", type="addendum", localized_descriptions=[])
251
251
 
252
- result = self.manager.update_reasoning_strategy(self.project_id, strategy, automatic_publish=False, upsert=False)
252
+ result = self.manager.update_reasoning_strategy(strategy, automatic_publish=False, upsert=False)
253
253
 
254
254
  mock_update_strategy.assert_called_once()
255
255
  mock_map_to_strategy.assert_called_once_with({"data": "test_data"})
@@ -261,7 +261,7 @@ class TestAILabManager(unittest.TestCase):
261
261
  mock_get_strategy.return_value = {"data": "test_data"}
262
262
  mock_map_to_strategy.return_value = ReasoningStrategy(id="test_strategy", name="test_strategy", access_scope="private", type="addendum")
263
263
 
264
- result = self.manager.get_reasoning_strategy(self.project_id, reasoning_strategy_id="test_strategy")
264
+ result = self.manager.get_reasoning_strategy(reasoning_strategy_id="test_strategy")
265
265
 
266
266
  mock_get_strategy.assert_called_once()
267
267
  mock_map_to_strategy.assert_called_once_with({"data": "test_data"})
@@ -274,7 +274,7 @@ class TestAILabManager(unittest.TestCase):
274
274
  mock_map_to_process.return_value = AgenticProcess(id=self.process_id, name="test_process")
275
275
  process = AgenticProcess(name="test_process", key="test_key")
276
276
 
277
- result = self.manager.create_process(self.project_id, process, automatic_publish=False)
277
+ result = self.manager.create_process(process, automatic_publish=False)
278
278
 
279
279
  mock_create_process.assert_called_once()
280
280
  mock_map_to_process.assert_called_once_with({"data": "test_data"})
@@ -287,7 +287,7 @@ class TestAILabManager(unittest.TestCase):
287
287
  mock_map_to_process.return_value = AgenticProcess(id=self.process_id, name="test_process")
288
288
  process = AgenticProcess(id=self.process_id, name="test_process", key="test_key")
289
289
 
290
- result = self.manager.update_process(self.project_id, process, automatic_publish=False, upsert=False)
290
+ result = self.manager.update_process(process, automatic_publish=False, upsert=False)
291
291
 
292
292
  mock_update_process.assert_called_once()
293
293
  mock_map_to_process.assert_called_once_with({"data": "test_data"})
@@ -299,7 +299,7 @@ class TestAILabManager(unittest.TestCase):
299
299
  mock_get_process.return_value = {"data": "test_data"}
300
300
  mock_map_to_process.return_value = AgenticProcess(id=self.process_id, name="test_process")
301
301
 
302
- result = self.manager.get_process(self.project_id, process_id=self.process_id, filter_settings=self.filter_settings)
302
+ result = self.manager.get_process(process_id=self.process_id, filter_settings=self.filter_settings)
303
303
 
304
304
  mock_get_process.assert_called_once()
305
305
  mock_map_to_process.assert_called_once_with({"data": "test_data"})
@@ -311,7 +311,7 @@ class TestAILabManager(unittest.TestCase):
311
311
  mock_list_processes.return_value = {"data": "test_data"}
312
312
  mock_map_to_process_list.return_value = AgenticProcessList(processes=[])
313
313
 
314
- result = self.manager.list_processes(self.project_id, self.filter_settings)
314
+ result = self.manager.list_processes(self.filter_settings)
315
315
 
316
316
  mock_list_processes.assert_called_once()
317
317
  mock_map_to_process_list.assert_called_once_with({"data": "test_data"})
@@ -323,7 +323,7 @@ class TestAILabManager(unittest.TestCase):
323
323
  mock_list_instances.return_value = {"data": "test_data"}
324
324
  mock_map_to_instance_list.return_value = ProcessInstanceList(instances=[])
325
325
 
326
- result = self.manager.list_process_instances(self.project_id, self.process_id, self.filter_settings)
326
+ result = self.manager.list_process_instances(self.process_id, self.filter_settings)
327
327
 
328
328
  mock_list_instances.assert_called_once()
329
329
  mock_map_to_instance_list.assert_called_once_with({"data": "test_data"})
@@ -335,7 +335,7 @@ class TestAILabManager(unittest.TestCase):
335
335
  mock_delete_process.return_value = {"data": "test_data"}
336
336
  mock_map_to_empty_response.return_value = {"status": "success"}
337
337
 
338
- result = self.manager.delete_process(self.project_id, process_id=self.process_id)
338
+ result = self.manager.delete_process(process_id=self.process_id)
339
339
 
340
340
  mock_delete_process.assert_called_once()
341
341
  mock_map_to_empty_response.assert_called_once()
@@ -347,7 +347,7 @@ class TestAILabManager(unittest.TestCase):
347
347
  mock_publish_process_revision.return_value = {"data": "test_data"}
348
348
  mock_map_to_process.return_value = AgenticProcess(id=self.process_id, name="test_process")
349
349
 
350
- result = self.manager.publish_process_revision(self.project_id, process_id=self.process_id, revision=self.revision)
350
+ result = self.manager.publish_process_revision(process_id=self.process_id, revision=self.revision)
351
351
 
352
352
  mock_publish_process_revision.assert_called_once()
353
353
  mock_map_to_process.assert_called_once_with({"data": "test_data"})
@@ -360,7 +360,7 @@ class TestAILabManager(unittest.TestCase):
360
360
  mock_map_to_task.return_value = Task(id=self.task_id, name="test_task")
361
361
  task = Task(name="test_task")
362
362
 
363
- result = self.manager.create_task(self.project_id, task, automatic_publish=False)
363
+ result = self.manager.create_task(task, automatic_publish=False)
364
364
 
365
365
  mock_create_task.assert_called_once()
366
366
  mock_map_to_task.assert_called_once_with({"data": "test_data"})
@@ -372,7 +372,7 @@ class TestAILabManager(unittest.TestCase):
372
372
  mock_get_task.return_value = {"data": "test_data"}
373
373
  mock_map_to_task.return_value = Task(id=self.task_id, name="test_task")
374
374
 
375
- result = self.manager.get_task(self.project_id, task_id=self.task_id)
375
+ result = self.manager.get_task(task_id=self.task_id)
376
376
 
377
377
  mock_get_task.assert_called_once()
378
378
  mock_map_to_task.assert_called_once_with({"data": "test_data"})
@@ -384,7 +384,7 @@ class TestAILabManager(unittest.TestCase):
384
384
  mock_list_tasks.return_value = {"data": "test_data"}
385
385
  mock_map_to_task_list.return_value = TaskList(tasks=[])
386
386
 
387
- result = self.manager.list_tasks(self.project_id, self.filter_settings)
387
+ result = self.manager.list_tasks(self.filter_settings)
388
388
 
389
389
  mock_list_tasks.assert_called_once()
390
390
  mock_map_to_task_list.assert_called_once_with({"data": "test_data"})
@@ -397,7 +397,7 @@ class TestAILabManager(unittest.TestCase):
397
397
  mock_map_to_task.return_value = Task(id=self.task_id, name="test_task")
398
398
  task = Task(id=self.task_id, name="test_task")
399
399
 
400
- result = self.manager.update_task(self.project_id, task, automatic_publish=False, upsert=False)
400
+ result = self.manager.update_task(task, automatic_publish=False, upsert=False)
401
401
 
402
402
  mock_update_task.assert_called_once()
403
403
  mock_map_to_task.assert_called_once_with({"data": "test_data"})
@@ -409,7 +409,7 @@ class TestAILabManager(unittest.TestCase):
409
409
  mock_delete_task.return_value = {"data": "test_data"}
410
410
  mock_map_to_empty_response.return_value = {"status": "success"}
411
411
 
412
- result = self.manager.delete_task(self.project_id, task_id=self.task_id)
412
+ result = self.manager.delete_task(task_id=self.task_id)
413
413
 
414
414
  mock_delete_task.assert_called_once()
415
415
  mock_map_to_empty_response.assert_called_once()
@@ -421,7 +421,7 @@ class TestAILabManager(unittest.TestCase):
421
421
  mock_publish_task_revision.return_value = {"data": "test_data"}
422
422
  mock_map_to_task.return_value = Task(id=self.task_id, name="test_task")
423
423
 
424
- result = self.manager.publish_task_revision(self.project_id, task_id=self.task_id, revision=self.revision)
424
+ result = self.manager.publish_task_revision(task_id=self.task_id, revision=self.revision)
425
425
 
426
426
  mock_publish_task_revision.assert_called_once()
427
427
  mock_map_to_task.assert_called_once_with({"data": "test_data"})
@@ -433,7 +433,7 @@ class TestAILabManager(unittest.TestCase):
433
433
  mock_start_instance.return_value = {"data": "test_data"}
434
434
  mock_map_to_instance.return_value = ProcessInstance(id=self.instance_id, subject="test_subject", process=AgenticProcess(name="test_process"))
435
435
 
436
- result = self.manager.start_instance(self.project_id, "test_process", subject="test_subject", variables=VariableList())
436
+ result = self.manager.start_instance("test_process", subject="test_subject", variables=VariableList())
437
437
 
438
438
  mock_start_instance.assert_called_once()
439
439
  mock_map_to_instance.assert_called_once_with({"data": "test_data"})
@@ -445,7 +445,7 @@ class TestAILabManager(unittest.TestCase):
445
445
  mock_abort_instance.return_value = {"data": "test_data"}
446
446
  mock_map_to_empty_response.return_value = {"status": "success"}
447
447
 
448
- result = self.manager.abort_instance(self.project_id, self.instance_id)
448
+ result = self.manager.abort_instance(self.instance_id)
449
449
 
450
450
  mock_abort_instance.assert_called_once()
451
451
  mock_map_to_empty_response.assert_called_once()
@@ -457,7 +457,7 @@ class TestAILabManager(unittest.TestCase):
457
457
  mock_get_instance.return_value = {"data": "test_data"}
458
458
  mock_map_to_instance.return_value = ProcessInstance(id=self.instance_id, subject="test_subject", process=AgenticProcess(name="test_process"))
459
459
 
460
- result = self.manager.get_instance(self.project_id, self.instance_id)
460
+ result = self.manager.get_instance(self.instance_id)
461
461
 
462
462
  mock_get_instance.assert_called_once()
463
463
  mock_map_to_instance.assert_called_once_with({"data": "test_data"})
@@ -467,7 +467,7 @@ class TestAILabManager(unittest.TestCase):
467
467
  def test_get_instance_history_success(self, mock_get_instance_history):
468
468
  mock_get_instance_history.return_value = {"history": "test_history"}
469
469
 
470
- result = self.manager.get_instance_history(self.project_id, self.instance_id)
470
+ result = self.manager.get_instance_history(self.instance_id)
471
471
 
472
472
  mock_get_instance_history.assert_called_once()
473
473
  self.assertIsInstance(result, dict)
@@ -476,7 +476,7 @@ class TestAILabManager(unittest.TestCase):
476
476
  def test_get_thread_information_success(self, mock_get_thread_information):
477
477
  mock_get_thread_information.return_value = {"info": "test_info"}
478
478
 
479
- result = self.manager.get_thread_information(self.project_id, "test_thread")
479
+ result = self.manager.get_thread_information("test_thread")
480
480
 
481
481
  mock_get_thread_information.assert_called_once()
482
482
  self.assertIsInstance(result, dict)
@@ -487,7 +487,7 @@ class TestAILabManager(unittest.TestCase):
487
487
  mock_send_user_signal.return_value = {"data": "test_data"}
488
488
  mock_map_to_empty_response.return_value = {"status": "success"}
489
489
 
490
- result = self.manager.send_user_signal(self.project_id, self.instance_id, "test_signal")
490
+ result = self.manager.send_user_signal(self.instance_id, "test_signal")
491
491
 
492
492
  mock_send_user_signal.assert_called_once()
493
493
  mock_map_to_empty_response.assert_called_once()
@@ -500,7 +500,7 @@ class TestAILabManager(unittest.TestCase):
500
500
  mock_map_to_kb.return_value = KnowledgeBase(id=self.kb_id, name="test_kb")
501
501
  kb = KnowledgeBase(name="test_kb")
502
502
 
503
- result = self.manager.create_knowledge_base(self.project_id, kb)
503
+ result = self.manager.create_knowledge_base(kb)
504
504
 
505
505
  mock_create_kb.assert_called_once()
506
506
  mock_map_to_kb.assert_called_once_with({"data": "test_data"})
@@ -512,7 +512,7 @@ class TestAILabManager(unittest.TestCase):
512
512
  mock_list_kbs.return_value = {"data": "test_data"}
513
513
  mock_map_to_kb_list.return_value = KnowledgeBaseList(knowledge_bases=[])
514
514
 
515
- result = self.manager.list_knowledge_bases(self.project_id, start=0, count=10)
515
+ result = self.manager.list_knowledge_bases(start=0, count=10)
516
516
 
517
517
  mock_list_kbs.assert_called_once()
518
518
  mock_map_to_kb_list.assert_called_once_with({"data": "test_data"})
@@ -524,7 +524,7 @@ class TestAILabManager(unittest.TestCase):
524
524
  mock_get_kb.return_value = {"data": "test_data"}
525
525
  mock_map_to_kb.return_value = KnowledgeBase(id=self.kb_id, name="test_kb")
526
526
 
527
- result = self.manager.get_knowledge_base(self.project_id, kb_id=self.kb_id)
527
+ result = self.manager.get_knowledge_base(kb_id=self.kb_id)
528
528
 
529
529
  mock_get_kb.assert_called_once()
530
530
  mock_map_to_kb.assert_called_once_with({"data": "test_data"})
@@ -536,7 +536,7 @@ class TestAILabManager(unittest.TestCase):
536
536
  mock_delete_kb.return_value = {"data": "test_data"}
537
537
  mock_map_to_empty_response.return_value = {"status": "success"}
538
538
 
539
- result = self.manager.delete_knowledge_base(self.project_id, kb_id=self.kb_id)
539
+ result = self.manager.delete_knowledge_base(kb_id=self.kb_id)
540
540
 
541
541
  mock_delete_kb.assert_called_once()
542
542
  mock_map_to_empty_response.assert_called_once()
@@ -548,7 +548,7 @@ class TestAILabManager(unittest.TestCase):
548
548
  mock_list_jobs.return_value = {"data": "test_data"}
549
549
  mock_map_to_job_list.return_value = JobList(jobs=[])
550
550
 
551
- result = self.manager.list_jobs(self.project_id, self.filter_settings)
551
+ result = self.manager.list_jobs(self.filter_settings)
552
552
 
553
553
  mock_list_jobs.assert_called_once()
554
554
  mock_map_to_job_list.assert_called_once_with({"data": "test_data"})
@@ -1,12 +1,9 @@
1
- from pygeai.core.models import Organization, Project
2
1
  from pygeai.core.files.managers import FileManager
3
2
  from pygeai.core.files.models import File
4
3
 
5
- organization = Organization(id="4aa15b61-d3c7-4a5c-99b8-052d18a04ff2")
6
- project = Project(id="1956c032-3c66-4435-acb8-6a06e52f819f")
7
4
  file = File(id="7fe2393d-8f86-4020-a51f-bc14ab957e1e")
8
5
 
9
- file_manager = FileManager(organization_id=organization.id, project_id=project.id)
6
+ file_manager = FileManager()
10
7
 
11
8
  response = file_manager.delete_file(file_id=file.id)
12
9
  print(response)
@@ -1,12 +1,10 @@
1
- from pygeai.core.models import Organization, Project
2
1
  from pygeai.core.files.managers import FileManager
3
2
  from pygeai.core.files.models import File
4
3
 
5
- organization = Organization(id="4aa15b61-d3c7-4a5c-99b8-052d18a04ff2")
6
- project = Project(id="1956c032-3c66-4435-acb8-6a06e52f819f")
4
+
7
5
  file = File(id="7fe2393d-8f86-4020-a51f-bc14ab957e1e")
8
6
 
9
- file_manager = FileManager(organization_id=organization.id, project_id=project.id)
7
+ file_manager = FileManager()
10
8
 
11
9
  response = file_manager.get_file_content(file_id=file.id)
12
10
  print(response)
@@ -1,12 +1,9 @@
1
- from pygeai.core.models import Organization, Project
2
1
  from pygeai.core.files.managers import FileManager
3
2
  from pygeai.core.files.models import File
4
3
 
5
- organization = Organization(id="4aa15b61-d3c7-4a5c-99b8-052d18a04ff2")
6
- project = Project(id="1956c032-3c66-4435-acb8-6a06e52f819f")
7
4
  file = File(id="9984b837-fe88-4014-ad14-91e1596c8ead")
8
5
 
9
- file_manager = FileManager(organization_id=organization.id, project_id=project.id)
6
+ file_manager = FileManager()
10
7
 
11
8
  response = file_manager.get_file_data(file_id=file.id)
12
9
  print(response)
@@ -1,11 +1,6 @@
1
- from pygeai.core.models import Organization, Project
2
1
  from pygeai.core.files.managers import FileManager
3
2
 
4
- organization = Organization(id="4aa15b61-d3c7-4a5c-99b8-052d18a04ff2")
5
- project = Project(id="1956c032-3c66-4435-acb8-6a06e52f819f")
6
-
7
-
8
- file_manager = FileManager(organization_id=organization.id, project_id=project.id)
3
+ file_manager = FileManager()
9
4
 
10
5
  response = file_manager.get_file_list()
11
6
  print(response)
@@ -1,17 +1,13 @@
1
- from pygeai.core.models import Organization, Project
2
1
  from pygeai.core.files.managers import FileManager
3
2
  from pygeai.core.files.models import UploadFile
4
3
 
5
- organization = Organization(id="4aa15b61-d3c7-4a5c-99b8-052d18a04ff2")
6
- project = Project(id="1956c032-3c66-4435-acb8-6a06e52f819f")
7
-
8
4
  file = UploadFile(
9
5
  path="test.txt",
10
6
  name="TestyFile",
11
7
  folder="TestyTestTemp"
12
8
  )
13
9
 
14
- file_manager = FileManager(organization_id=organization.id, project_id=project.id)
10
+ file_manager = FileManager()
15
11
 
16
12
  response = file_manager.upload_file(file)
17
13
  print(response)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.2.7b37
3
+ Version: 0.2.7b39
4
4
  Summary: Software Development Kit to interact with Globant Enterprise AI.
5
5
  Author-email: Globant <geai-sdk@globant.com>
6
6
  License-Expression: MIT
@@ -64,12 +64,12 @@ pygeai/cli/texts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
64
64
  pygeai/cli/texts/help.py,sha256=IgifNjO22kbRB5bsuckFrzRvg7Q14y96IfxRnlJAUcw,15516
65
65
  pygeai/core/__init__.py,sha256=bbNktFp7t2dOBIvWto-uGVBW8acaKIe8EKcfuLV-HmA,189
66
66
  pygeai/core/handlers.py,sha256=QGFZESd-s3eBxe_Zd5G5n-HMgPIZLYba914WLefWleQ,596
67
- pygeai/core/models.py,sha256=Js1xjDa3F6kJ10QNEMyYL3bUOMPqfuiHi85Jy3ikFoI,23472
67
+ pygeai/core/models.py,sha256=uIwrmlB6yuulScUcYIBSH3Sxm5YyzaicV7Dz2bYLi2I,24229
68
68
  pygeai/core/responses.py,sha256=wxlikhw1UAAB6Mib97xjq2eCFyZPWoosPwn9UhpKi7Y,2825
69
69
  pygeai/core/singleton.py,sha256=-U5kywQOBvbTtkWCczLZD_aoHBjDLRj07Q-UqQJpww0,242
70
70
  pygeai/core/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  pygeai/core/base/clients.py,sha256=umtT6WoecCivXAxFajF-lMI5EbTNLKJBthuIHHixdNY,1608
72
- pygeai/core/base/mappers.py,sha256=yrurvsnjWnnhS1HyI1eS9-eQdbKirGyTo5r4SIhRQZo,17356
72
+ pygeai/core/base/mappers.py,sha256=u5_UkRPPQ9vUQQANgmOHBbaaxtK77RNTTI2KoQafEDw,17793
73
73
  pygeai/core/base/models.py,sha256=_h62nnMhJXr1BLNoaldT4d9oqCTSistfF3D2LQ3bvlg,380
74
74
  pygeai/core/base/responses.py,sha256=k-mrzNO_AtEsGTUJnyRT76FJ7gfYxQ_SAhB8MBNqPZI,763
75
75
  pygeai/core/base/session.py,sha256=WVb4MmptwdgK7paHOSvfEle_HPXRRXO8CHgi0qbgtOg,2990
@@ -91,7 +91,7 @@ pygeai/core/feedback/models.py,sha256=VdeVVWTQ8qc4TEPbL2XbYI4-UP2m2eh1pkBptw_do1
91
91
  pygeai/core/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  pygeai/core/files/clients.py,sha256=gjmm5H_BOEK_QRNb55s4CBGMA_IRV-xvkwf9YCjdEAY,6564
93
93
  pygeai/core/files/endpoints.py,sha256=hAUC28hYVcHyEyEfoLaLae76TpuVSLexPVjLJYjSWYQ,337
94
- pygeai/core/files/managers.py,sha256=rzkJr9pOJYV4_y_3SRhd7gAZ4n3ziH_4TLN9gwIs_EY,6269
94
+ pygeai/core/files/managers.py,sha256=Hzq-XMEJnnNrh3pG5PViQqSt1WrbO-z5wHXsoGrSQxA,7158
95
95
  pygeai/core/files/mappers.py,sha256=8PXXsQJZEH45yLISn_xsOZmcRUEe_F6ELkUeR1lzc-M,1462
96
96
  pygeai/core/files/models.py,sha256=QOLV5kUrHOvhJXzkoFqNQX4qmVPLy6KKBk6u7oE5ttU,438
97
97
  pygeai/core/files/responses.py,sha256=fnNLK-stnXGnB9d38szWrZMu7JLTtXghAoRZnFTFJCE,356
@@ -143,7 +143,7 @@ pygeai/health/clients.py,sha256=U2eb1tkXt1Rf_KdV0ZFQS2k4wGnJTXHHd9-Er0eWQuw,1011
143
143
  pygeai/health/endpoints.py,sha256=UAzMcqSXZtMj4r8M8B7a_a5LT6X_jMFNsCTvcsjNTYA,71
144
144
  pygeai/lab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
145
  pygeai/lab/constants.py,sha256=ddgDnXP4GD0woi-FUJaJXzaWS3H6zmDN0B-v8utM95Q,170
146
- pygeai/lab/managers.py,sha256=TAMXALORbbBmxBE0JSo90ek8IFwaafkw047gxPxCcOo,72434
146
+ pygeai/lab/managers.py,sha256=AF2CDT24NOc0xuCo52YrLNkNWElmAHfoqQBYns_axgk,72492
147
147
  pygeai/lab/models.py,sha256=7VMQBwL57hal0TIUG-dcsBJO6kRgdeCVq3GeRQGbnD0,70733
148
148
  pygeai/lab/runners.py,sha256=-uaCPHpFyiKtVOxlEjPjAc9h-onSdGAcYJ5IAZPqlb0,4147
149
149
  pygeai/lab/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -177,7 +177,7 @@ pygeai/organization/clients.py,sha256=O9RMeFm8gm5e6OoJl2y3JTS_MUZEp2Twc8AOpsUTj4
177
177
  pygeai/organization/endpoints.py,sha256=LOjwCMjx7wWBIimCzWhNt7cL1WP2IoU9Jtg1tKzRElo,794
178
178
  pygeai/organization/managers.py,sha256=KVPgmKIUGv71HkqOiW4LvUqWnuRpCu5OcxkewKbpa68,11726
179
179
  pygeai/organization/mappers.py,sha256=02-xTSE-Tmlhugh2vDIJDpixKI_4UdljcSgmwJIfJp0,2564
180
- pygeai/organization/responses.py,sha256=d9qJgVU1jcqMIAltXS9P8HY6ib6Qf6jH5qYEweymh0I,469
180
+ pygeai/organization/responses.py,sha256=VetphuyPHeXlB4uNn97kwI4x4XT6-0Eede-eQ_eMXtw,1220
181
181
  pygeai/organization/limits/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
182
  pygeai/organization/limits/clients.py,sha256=g-2Fov4ArS_g0xDRaaJ2hFn-4JLW1tdbI1PE21dA-vc,19943
183
183
  pygeai/organization/limits/endpoints.py,sha256=mtca6U6l47jbbbmGc8KoXCDMnyNHtaPo8dxWVuHuUE0,2578
@@ -278,7 +278,7 @@ pygeai/tests/integration/lab/agents/test_get_agent.py,sha256=IM61b1jJG0M1fa1iffc
278
278
  pygeai/tests/integration/lab/agents/test_publish_agent_revision.py,sha256=djo-cFd4hfxmZBcto3zgxCfDqxw9a83dvvwx8jfYVyo,5916
279
279
  pygeai/tests/integration/lab/agents/test_update_agent.py,sha256=kARVT5BsKiRZXpCLhY-23Njv0q1KNLuGxxSFycCrEJo,12079
280
280
  pygeai/tests/lab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
- pygeai/tests/lab/test_managers.py,sha256=wzOkrhb1iG6Apoedtm8ppaM5g6L5DYYIL5DBQhkGDs8,30522
281
+ pygeai/tests/lab/test_managers.py,sha256=AsOAvyCkRpbskEy214aV2TwrqilWH6bxOiTWDOb1twQ,29778
282
282
  pygeai/tests/lab/test_mappers.py,sha256=2cLSggf168XWFpeZeBR7uJ-8C32TKb7qA91i_9fr_b0,11409
283
283
  pygeai/tests/lab/test_models.py,sha256=MyOPqPb18w0yQj8tEf1zLhY_qBsRy_Cm5kYArB0I8es,54325
284
284
  pygeai/tests/lab/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -343,11 +343,11 @@ pygeai/tests/snippets/embeddings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
343
343
  pygeai/tests/snippets/embeddings/generate_embeddings.py,sha256=IyIlO6UDGMjT-E9uK91NdYsuWI4fCRGwqlaFr0iUzSc,785
344
344
  pygeai/tests/snippets/evaluation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
345
345
  pygeai/tests/snippets/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
- pygeai/tests/snippets/files/delete_file.py,sha256=7GvC_aKPUExTt7-AApe9LnTRxo3CriWYn6vLZlk4Q24,488
347
- pygeai/tests/snippets/files/get_file_content.py,sha256=o1o81A3_3UrHFjBtNUyVYUJgPmRKgmylR5tfNWEhRpU,493
348
- pygeai/tests/snippets/files/get_file_data.py,sha256=Tnki6VpnRAMXAFQEEsRYXTqWhT2AfH-Gpyu3c5rXG00,490
349
- pygeai/tests/snippets/files/get_file_list.py,sha256=nlPsdEFTAYtIMx7N4CnrWhkkzt-vdzGw4ZmfxkU2ITY,379
350
- pygeai/tests/snippets/files/upload_file.py,sha256=SOgnkFg6FRsBfQSspHdx7oRgcth2b7-H05krs9Sb8H4,520
346
+ pygeai/tests/snippets/files/delete_file.py,sha256=ORpPkrL9FllDonCHfoqf6LJUGyPHBoTdm1zpopzqbqU,249
347
+ pygeai/tests/snippets/files/get_file_content.py,sha256=LM8DEmtE4MebEptcR_SUrbMfKuR9zfKfxsY9JspLVvc,255
348
+ pygeai/tests/snippets/files/get_file_data.py,sha256=DGxbH155IcquE0t2uOifJRI6o5JQ8-DT5zQJ9MubIG4,251
349
+ pygeai/tests/snippets/files/get_file_list.py,sha256=NItZBEqzHsS8HQEpAI2yoI5URhZB0F5eAys5Okbled8,138
350
+ pygeai/tests/snippets/files/upload_file.py,sha256=In6XIvIFSbctrqOD8r_WMmGlXYGju4syNrBAZULjFow,280
351
351
  pygeai/tests/snippets/gam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
352
  pygeai/tests/snippets/gam/gam_access_token.py,sha256=168cZwF3IcAZ3neCdvh1jRxi1acpIDXHuyBZnuWwHQY,3122
353
353
  pygeai/tests/snippets/lab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -475,9 +475,9 @@ pygeai/vendor/a2a/utils/helpers.py,sha256=6Tbd8SVfXvdNEk6WYmLOjrAxkzFf1aIg8dkFfB
475
475
  pygeai/vendor/a2a/utils/message.py,sha256=gc_EKO69CJ4HkR76IFgsy-kENJz1dn7CfSgWJWvt-gs,2197
476
476
  pygeai/vendor/a2a/utils/task.py,sha256=BYRA_L1HpoUGJAVlyHML0lCM9Awhf2Ovjj7oPFXKbh0,1647
477
477
  pygeai/vendor/a2a/utils/telemetry.py,sha256=VvSp1Ztqaobkmq9-3sNhhPEilJS32-JTSfKzegkj6FU,10861
478
- pygeai-0.2.7b37.dist-info/licenses/LICENSE,sha256=eHfqo7-AWS8cMq0cg03lq7owsLeCmZA-xS5L0kuHnl8,1474
479
- pygeai-0.2.7b37.dist-info/METADATA,sha256=ZdC5hBxCKcoLr_ECX0EtEmaksswHEo587kiWToSgUzs,6883
480
- pygeai-0.2.7b37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
481
- pygeai-0.2.7b37.dist-info/entry_points.txt,sha256=OAmwuXVCQBTCE3HeVegVd37hbhCcp9TPahvdrCuMYWw,178
482
- pygeai-0.2.7b37.dist-info/top_level.txt,sha256=bJFwp2tURmCfB94yXDF7ylvdSJXFDDJsyUOb-7PJgwc,7
483
- pygeai-0.2.7b37.dist-info/RECORD,,
478
+ pygeai-0.2.7b39.dist-info/licenses/LICENSE,sha256=eHfqo7-AWS8cMq0cg03lq7owsLeCmZA-xS5L0kuHnl8,1474
479
+ pygeai-0.2.7b39.dist-info/METADATA,sha256=Rs88NXHwjCB6i5OIyNq7FChpuoFUxR3TFIdn3X8DNEY,6883
480
+ pygeai-0.2.7b39.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
481
+ pygeai-0.2.7b39.dist-info/entry_points.txt,sha256=OAmwuXVCQBTCE3HeVegVd37hbhCcp9TPahvdrCuMYWw,178
482
+ pygeai-0.2.7b39.dist-info/top_level.txt,sha256=bJFwp2tURmCfB94yXDF7ylvdSJXFDDJsyUOb-7PJgwc,7
483
+ pygeai-0.2.7b39.dist-info/RECORD,,