amigo_sdk 0.101.0__py3-none-any.whl → 0.103.0__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.
amigo_sdk/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.101.0"
1
+ __version__ = "0.103.0"
2
2
  from .sdk_client import AmigoClient, AsyncAmigoClient
3
3
 
4
4
  __all__ = ["__version__", "AmigoClient", "AsyncAmigoClient"]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: <stdin>
3
- # timestamp: 2026-01-11T00:33:21+00:00
3
+ # timestamp: 2026-01-11T23:34:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1224,14 +1224,6 @@ class VersionComponent(RootModel[int | Literal['latest']]):
1224
1224
  root: int | Literal['latest']
1225
1225
 
1226
1226
 
1227
- class VoiceResponseMP3AudioFormat(MP3UserMessageAudioConfig):
1228
- pass
1229
-
1230
-
1231
- class VoiceResponsePCMAudioFormat(BaseModel):
1232
- type: Literal['pcm'] = Field('pcm', title='Type')
1233
-
1234
-
1235
1227
  class WebhookDeliveryStatus(Enum):
1236
1228
  success = 'success'
1237
1229
  failed = 'failed'
@@ -1803,20 +1795,6 @@ class DynamicBehaviorSetGetDynamicBehaviorInvocationsResponse(BaseModel):
1803
1795
  )
1804
1796
 
1805
1797
 
1806
- class DynamicBehaviorSetGetDynamicBehaviorSetsResponseDynamicBehaviorSetInstance(
1807
- BaseModel
1808
- ):
1809
- id: str = Field(..., title='Id')
1810
- name: str = Field(..., title='Name')
1811
- is_active: bool = Field(..., title='Is Active')
1812
- applied_to_services: list[str] = Field(..., title='Applied To Services')
1813
- tags: dict[str, str | None] = Field(..., title='Tags')
1814
- created_at: AwareDatetime = Field(..., title='Created At')
1815
- creator: MongoCollectionsDynamicBehaviorSetDynamicBehaviorSetUserInfo
1816
- updated_at: AwareDatetime = Field(..., title='Updated At')
1817
- updated_by: MongoCollectionsDynamicBehaviorSetDynamicBehaviorSetUserInfo
1818
-
1819
-
1820
1798
  class DynamicBehaviorSetGetDynamicBehaviorSetsResponseFilterValues(BaseModel):
1821
1799
  applied_to_services_ids: list[str] = Field(
1822
1800
  ...,
@@ -1837,14 +1815,18 @@ class DynamicBehaviorSetGetDynamicBehaviorSetsResponseFilterValues(BaseModel):
1837
1815
  )
1838
1816
 
1839
1817
 
1840
- class DynamicBehaviorSetSearchDynamicBehaviorSetsResponse(BaseModel):
1841
- dynamic_behavior_sets: list[
1842
- DynamicBehaviorSetGetDynamicBehaviorSetsResponseDynamicBehaviorSetInstance
1843
- ] = Field(
1844
- ...,
1845
- description='The retrieved dynamic behavior sets.',
1846
- title='Dynamic Behavior Sets',
1847
- )
1818
+ class DynamicBehaviorSetSearchDynamicBehaviorSetsResponseDynamicBehaviorSetInstance(
1819
+ BaseModel
1820
+ ):
1821
+ id: str = Field(..., title='Id')
1822
+ name: str = Field(..., title='Name')
1823
+ is_active: bool = Field(..., title='Is Active')
1824
+ applied_to_services: list[str] = Field(..., title='Applied To Services')
1825
+ tags: dict[str, str | None] = Field(..., title='Tags')
1826
+ created_at: AwareDatetime = Field(..., title='Created At')
1827
+ creator: MongoCollectionsDynamicBehaviorSetDynamicBehaviorSetUserInfo
1828
+ updated_at: AwareDatetime = Field(..., title='Updated At')
1829
+ updated_by: MongoCollectionsDynamicBehaviorSetDynamicBehaviorSetUserInfo
1848
1830
 
1849
1831
 
1850
1832
  class DynamicBehaviorSetUpdateDynamicBehaviorSetRequest(BaseModel):
@@ -10583,11 +10565,6 @@ class OrganizationCreateOrganizationRequestPreferences(BaseModel):
10583
10565
  )
10584
10566
 
10585
10567
 
10586
- class OrganizationCreateOrganizationRequestUserDimension(BaseModel):
10587
- description: str = Field(..., min_length=1)
10588
- tags: list[PydanticBaseModelStrippedNonemptyString1] = Field(..., title='Tags')
10589
-
10590
-
10591
10568
  class OrganizationCreateOrganizationResponse(BaseModel):
10592
10569
  org_id: str = Field(
10593
10570
  ...,
@@ -10762,23 +10739,17 @@ class OrganizationGetUserDimensionsResponse(BaseModel):
10762
10739
  )
10763
10740
 
10764
10741
 
10765
- class UserDimensions(
10766
- RootModel[list[OrganizationCreateOrganizationRequestUserDimension]]
10767
- ):
10768
- root: list[OrganizationCreateOrganizationRequestUserDimension] = Field(
10769
- ...,
10770
- description='User dimensions for the organization. If not set or `null`, this field is not updated.',
10771
- min_length=1,
10772
- title='User Dimensions',
10773
- )
10774
-
10775
-
10776
10742
  class OrganizationModifyOrganizationRequestPreferences(
10777
10743
  OrganizationCreateOrganizationRequestPreferences
10778
10744
  ):
10779
10745
  pass
10780
10746
 
10781
10747
 
10748
+ class OrganizationModifyOrganizationRequestUserDimension(BaseModel):
10749
+ description: str = Field(..., min_length=1)
10750
+ tags: list[PydanticBaseModelStrippedNonemptyString1] = Field(..., title='Tags')
10751
+
10752
+
10782
10753
  class RoleAssignRoleRequest(BaseModel):
10783
10754
  user_id: str = Field(
10784
10755
  ...,
@@ -10807,6 +10778,13 @@ class RoleModifyRoleResponse(BaseModel):
10807
10778
  )
10808
10779
 
10809
10780
 
10781
+ class ServiceCreateServiceRequestVersionSetLLMConfig(BaseModel):
10782
+ llm_name: LLMType
10783
+ params: dict[str, Any] | None = Field(
10784
+ {}, description='LLM-specific parameters to use.', title='Params'
10785
+ )
10786
+
10787
+
10810
10788
  class ServiceCreateServiceResponse(BaseModel):
10811
10789
  id: str = Field(..., description='The ID of the newly created service.', title='Id')
10812
10790
 
@@ -10882,10 +10860,19 @@ class ServiceUpdateServiceRequest(BaseModel):
10882
10860
  )
10883
10861
 
10884
10862
 
10885
- class ServiceUpsertServiceVersionSetRequestVersionSetLLMConfig(BaseModel):
10886
- llm_name: LLMType
10887
- params: dict[str, Any] | None = Field(
10888
- {}, description='LLM-specific parameters to use.', title='Params'
10863
+ class ServiceUpsertServiceVersionSetRequestVersionSet(BaseModel):
10864
+ agent_version_number: int | None = Field(
10865
+ ...,
10866
+ description='The version number of the agent to be used. If None, the latest agent version will be used.',
10867
+ title='Agent Version Number',
10868
+ )
10869
+ service_hierarchical_state_machine_version_number: int | None = Field(
10870
+ ...,
10871
+ description='The version number of the state machine to be used. If None, the latest state machine version will be used.',
10872
+ title='Service Hierarchical State Machine Version Number',
10873
+ )
10874
+ llm_model_preferences: dict[str, ServiceCreateServiceRequestVersionSetLLMConfig] = (
10875
+ Field(..., title='Llm Model Preferences')
10889
10876
  )
10890
10877
 
10891
10878
 
@@ -10994,16 +10981,6 @@ class SimulationCreateSimulationUnitTestResponse(BaseModel):
10994
10981
  )
10995
10982
 
10996
10983
 
10997
- class SimulationCreateSimulationUnitTestSetRequestUnitTestRunDescriptor(BaseModel):
10998
- unit_test_id: str = Field(..., pattern='^[a-f0-9]{24}$', title='Unit Test Id')
10999
- run_count: int = Field(
11000
- ...,
11001
- description='The number of times to run the unit test.',
11002
- gt=0,
11003
- title='Run Count',
11004
- )
11005
-
11006
-
11007
10984
  class SimulationCreateSimulationUnitTestSetResponse(BaseModel):
11008
10985
  simulation_unit_test_set_id: str = Field(
11009
10986
  ...,
@@ -11092,37 +11069,6 @@ class SimulationGetSimulationScenariosResponseFilterValues(BaseModel):
11092
11069
  )
11093
11070
 
11094
11071
 
11095
- class SimulationGetSimulationScenariosResponseSimulationScenarioInstance(BaseModel):
11096
- id: str = Field(..., description='The ID of the simulation scenario.', title='Id')
11097
- name: str = Field(
11098
- ..., description='The name of the simulation scenario.', title='Name'
11099
- )
11100
- tags: dict[str, str | None] = Field(
11101
- ..., description='The tags of the simulation scenario.', title='Tags'
11102
- )
11103
- is_deleted: bool = Field(
11104
- ...,
11105
- description='Whether the simulation scenario is deleted.',
11106
- title='Is Deleted',
11107
- )
11108
- created_at: AwareDatetime = Field(
11109
- ...,
11110
- description='The timestamp when the simulation scenario was created.',
11111
- title='Created At',
11112
- )
11113
- creator: MongoCollectionsSimulationScenarioSimulationScenarioUserInfo = Field(
11114
- ..., description='The user who created the simulation scenario.'
11115
- )
11116
- updated_at: AwareDatetime = Field(
11117
- ...,
11118
- description='The timestamp when the simulation scenario was last updated.',
11119
- title='Updated At',
11120
- )
11121
- updated_by: MongoCollectionsSimulationScenarioSimulationScenarioUserInfo = Field(
11122
- ..., description='The user who last updated the simulation scenario.'
11123
- )
11124
-
11125
-
11126
11072
  class SimulationGetSimulationUnitTestSetRunArtifactsResponse(BaseModel):
11127
11073
  presigned_url: str = Field(
11128
11074
  ...,
@@ -11245,13 +11191,34 @@ class SimulationSearchSimulationPersonasResponseSimulationPersonaInstance(BaseMo
11245
11191
  )
11246
11192
 
11247
11193
 
11248
- class SimulationSearchSimulationScenariosResponse(BaseModel):
11249
- simulation_scenarios: list[
11250
- SimulationGetSimulationScenariosResponseSimulationScenarioInstance
11251
- ] = Field(
11194
+ class SimulationSearchSimulationScenariosResponseSimulationScenarioInstance(BaseModel):
11195
+ id: str = Field(..., description='The ID of the simulation scenario.', title='Id')
11196
+ name: str = Field(
11197
+ ..., description='The name of the simulation scenario.', title='Name'
11198
+ )
11199
+ tags: dict[str, str | None] = Field(
11200
+ ..., description='The tags of the simulation scenario.', title='Tags'
11201
+ )
11202
+ is_deleted: bool = Field(
11252
11203
  ...,
11253
- description='The list of simulation scenarios.',
11254
- title='Simulation Scenarios',
11204
+ description='Whether the simulation scenario is deleted.',
11205
+ title='Is Deleted',
11206
+ )
11207
+ created_at: AwareDatetime = Field(
11208
+ ...,
11209
+ description='The timestamp when the simulation scenario was created.',
11210
+ title='Created At',
11211
+ )
11212
+ creator: MongoCollectionsSimulationScenarioSimulationScenarioUserInfo = Field(
11213
+ ..., description='The user who created the simulation scenario.'
11214
+ )
11215
+ updated_at: AwareDatetime = Field(
11216
+ ...,
11217
+ description='The timestamp when the simulation scenario was last updated.',
11218
+ title='Updated At',
11219
+ )
11220
+ updated_by: MongoCollectionsSimulationScenarioSimulationScenarioUserInfo = Field(
11221
+ ..., description='The user who last updated the simulation scenario.'
11255
11222
  )
11256
11223
 
11257
11224
 
@@ -11317,35 +11284,13 @@ class RunCount(RootModel[int]):
11317
11284
  )
11318
11285
 
11319
11286
 
11320
- class UnitTestRuns(
11321
- RootModel[list[SimulationCreateSimulationUnitTestSetRequestUnitTestRunDescriptor]]
11322
- ):
11323
- root: list[SimulationCreateSimulationUnitTestSetRequestUnitTestRunDescriptor] = (
11324
- Field(
11325
- ...,
11326
- description='The unit test runs that are part of this set.',
11327
- min_length=1,
11328
- title='Unit Test Runs',
11329
- )
11330
- )
11331
-
11332
-
11333
- class SimulationUpdateSimulationUnitTestSetRequest(BaseModel):
11334
- name: PydanticBaseModelStrippedNonemptyString1 | None = Field(
11335
- None, description='The name of the simulation unit test set.'
11336
- )
11337
- description: PydanticBaseModelStrippedNonemptyString1 | FieldNotSet | None = Field(
11338
- default_factory=lambda: PydanticBaseModelStrippedNonemptyString1({}),
11339
- description='The description of the simulation unit test set. If not specified or an empty object is provided, the description will not be updated.',
11340
- title='Description',
11341
- )
11342
- unit_test_runs: UnitTestRuns | None = Field(
11343
- None,
11344
- description='The unit test runs that are part of this set.',
11345
- title='Unit Test Runs',
11346
- )
11347
- tags: dict[str, str | None] | None = Field(
11348
- None, description='The tags of the simulation unit test set.', title='Tags'
11287
+ class SimulationUpdateSimulationUnitTestSetRequestUnitTestRunDescriptor(BaseModel):
11288
+ unit_test_id: str = Field(..., pattern='^[a-f0-9]{24}$', title='Unit Test Id')
11289
+ run_count: int = Field(
11290
+ ...,
11291
+ description='The number of times to run the unit test.',
11292
+ gt=0,
11293
+ title='Run Count',
11349
11294
  )
11350
11295
 
11351
11296
 
@@ -11382,22 +11327,6 @@ class ToolGetToolsResponseFilterValues(BaseModel):
11382
11327
  )
11383
11328
 
11384
11329
 
11385
- class InvocationMode(Enum):
11386
- regular = 'regular'
11387
- conversation_simulation = 'conversation-simulation'
11388
-
11389
-
11390
- class ToolInvokeToolVersionRequestInput(BaseModel):
11391
- input_parameters: dict[str, Any] = Field(
11392
- ...,
11393
- description='The input parameters for the tool invocation.',
11394
- title='Input Parameters',
11395
- )
11396
- invocation_mode: InvocationMode = Field(
11397
- ..., description='The mode of invocation.', title='Invocation Mode'
11398
- )
11399
-
11400
-
11401
11330
  class ToolModifyToolRequest(BaseModel):
11402
11331
  description: PydanticBaseModelStrippedNonemptyString1 | None = Field(
11403
11332
  None, description='A description of this tool. Only updates if not-null.'
@@ -11442,34 +11371,19 @@ class ToolPublishToolVersionResponse(BaseModel):
11442
11371
  )
11443
11372
 
11444
11373
 
11445
- class ToolTestToolRequest(BaseModel):
11446
- inputs: list[ToolInvokeToolVersionRequestInput] = Field(
11447
- ...,
11448
- description='The list of inputs for the tool invocation.',
11449
- max_length=10,
11450
- min_length=1,
11451
- title='Inputs',
11452
- )
11453
- commit_branch: str = Field(
11454
- ...,
11455
- description='The branch in the tools repo whose tip will be tested.',
11456
- title='Commit Branch',
11457
- )
11458
- project_path: str = Field(
11459
- ...,
11460
- description='The directory in the tools repo that contains the `pyproject.toml` file corresponding to the tool version to publish.',
11461
- pattern='^[-\\w\\d_/]+$',
11462
- title='Project Path',
11463
- )
11464
- required_envvars: dict[str, str] = Field(
11374
+ class InvocationMode(Enum):
11375
+ regular = 'regular'
11376
+ conversation_simulation = 'conversation-simulation'
11377
+
11378
+
11379
+ class ToolTestToolRequestInput(BaseModel):
11380
+ input_parameters: dict[str, Any] = Field(
11465
11381
  ...,
11466
- description='The environment variables required for the tool to run.',
11467
- title='Required Envvars',
11382
+ description='The input parameters for the tool invocation.',
11383
+ title='Input Parameters',
11468
11384
  )
11469
- required_secret_envvars: dict[str, str] = Field(
11470
- ...,
11471
- description='The secret environment variables required for the tool to run.',
11472
- title='Required Secret Envvars',
11385
+ invocation_mode: InvocationMode = Field(
11386
+ ..., description='The mode of invocation.', title='Invocation Mode'
11473
11387
  )
11474
11388
 
11475
11389
 
@@ -11539,7 +11453,7 @@ class UserGetMemoriesResponse(BaseModel):
11539
11453
  )
11540
11454
 
11541
11455
 
11542
- class UserSearchUsersResponseUserInstanceUserStats(BaseModel):
11456
+ class UserGetUsersResponseUserInstanceUserStats(BaseModel):
11543
11457
  num_conversations: int = Field(
11544
11458
  ...,
11545
11459
  description='The number of conversations the user has created.',
@@ -11557,6 +11471,31 @@ class UserSearchUsersResponseUserInstanceUserStats(BaseModel):
11557
11471
  )
11558
11472
 
11559
11473
 
11474
+ class UserSearchUsersResponseUserInstance(BaseModel):
11475
+ org_id: str = Field(
11476
+ ...,
11477
+ description='The ID of the organization that this user belongs to.',
11478
+ title='Org Id',
11479
+ )
11480
+ user_id: str = Field(
11481
+ ..., description='The identifier of the user.', title='User Id'
11482
+ )
11483
+ first_name: str = Field(
11484
+ ..., description='The first name of the user.', title='First Name'
11485
+ )
11486
+ last_name: str = Field(
11487
+ ..., description='The last name of the user.', title='Last Name'
11488
+ )
11489
+ email: str = Field(..., description='Email of the user.', title='Email')
11490
+ user_stats: UserGetUsersResponseUserInstanceUserStats = Field(
11491
+ ..., description="Statistics about the user's usage of the Amigo platform."
11492
+ )
11493
+ role: str = Field(..., description='The ID of the role of the user.', title='Role')
11494
+ preferences: MongoCollectionsUserUserPreferences = Field(
11495
+ ..., description='The preferences of the user.'
11496
+ )
11497
+
11498
+
11560
11499
  class UserSignInWithApiKeyResponse(BaseModel):
11561
11500
  id_token: str = Field(
11562
11501
  ...,
@@ -11900,15 +11839,23 @@ class GetServicesParametersQuery(BaseModel):
11900
11839
  )
11901
11840
 
11902
11841
 
11903
- class AudioFormat(Enum):
11904
- mp3 = 'mp3'
11905
- pcm = 'pcm'
11906
-
11907
-
11908
- class ServiceIdItem(AppliedToService):
11909
- pass
11910
-
11911
-
11842
+ class CreateConversationParametersQuery(BaseModel):
11843
+ response_format: Format = Field(
11844
+ ...,
11845
+ description='The format of the response that will be sent to the user.',
11846
+ title='Response Format',
11847
+ )
11848
+ current_agent_action_type: str | None = Field(
11849
+ '^.*$',
11850
+ description="A regex for filtering the type of the current agent action to return. By default, all are returned. If you don't want to receive any events, set this to a regex that matches nothing, for instance `^$`.",
11851
+ title='Current Agent Action Type',
11852
+ )
11853
+
11854
+
11855
+ class ServiceIdItem(AppliedToService):
11856
+ pass
11857
+
11858
+
11912
11859
  class GetConversationsParametersQuery(BaseModel):
11913
11860
  user_id: list[str] | None = Field(
11914
11861
  [],
@@ -11958,7 +11905,7 @@ class GetConversationMessagesParametersQuery(BaseModel):
11958
11905
  title='Id',
11959
11906
  )
11960
11907
  message_type: list[MessageType] | None = Field(
11961
- ['user-message', 'agent-message', 'external-event'],
11908
+ ['user-message', 'external-event', 'agent-message'],
11962
11909
  description='The type of messages to retrieve.',
11963
11910
  title='Message Type',
11964
11911
  )
@@ -11986,6 +11933,31 @@ class GetConversationMessagesParametersQuery(BaseModel):
11986
11933
  )
11987
11934
 
11988
11935
 
11936
+ class InteractWithConversationParametersQuery(BaseModel):
11937
+ request_format: Format = Field(
11938
+ ...,
11939
+ description='The format in which the user message is delivered to the server.',
11940
+ title='Request Format',
11941
+ )
11942
+ response_format: Format = Field(
11943
+ ...,
11944
+ description='The format of the response that will be sent to the user.',
11945
+ title='Response Format',
11946
+ )
11947
+ current_agent_action_type: str | None = Field(
11948
+ '^.*$',
11949
+ description="A regex for filtering the type of the current agent action to return. By default, all are returned. If you don't want to receive any events, set this to a regex that matches nothing, for instance `^$`.",
11950
+ title='Current Agent Action Type',
11951
+ )
11952
+ request_audio_config: (
11953
+ MP3UserMessageAudioConfig | PCMUserMessageAudioConfig | None
11954
+ ) = Field(
11955
+ None,
11956
+ description='Configuration for the user message audio. This is only required if `request_format` is set to `voice`.',
11957
+ title='Request Audio Config',
11958
+ )
11959
+
11960
+
11989
11961
  class ExternalEventMessageContent(PydanticBaseModelStrippedNonemptyString1):
11990
11962
  pass
11991
11963
 
@@ -14109,7 +14081,7 @@ class DynamicBehaviorSetCreateDynamicBehaviorSetVersionRequestChangeToolCandidat
14109
14081
 
14110
14082
  class DynamicBehaviorSetGetDynamicBehaviorSetsResponse(BaseModel):
14111
14083
  dynamic_behavior_sets: list[
14112
- DynamicBehaviorSetGetDynamicBehaviorSetsResponseDynamicBehaviorSetInstance
14084
+ DynamicBehaviorSetSearchDynamicBehaviorSetsResponseDynamicBehaviorSetInstance
14113
14085
  ] = Field(
14114
14086
  ...,
14115
14087
  description='The retrieved dynamic behavior sets.',
@@ -14133,6 +14105,16 @@ class DynamicBehaviorSetGetDynamicBehaviorSetsResponse(BaseModel):
14133
14105
  )
14134
14106
 
14135
14107
 
14108
+ class DynamicBehaviorSetSearchDynamicBehaviorSetsResponse(BaseModel):
14109
+ dynamic_behavior_sets: list[
14110
+ DynamicBehaviorSetSearchDynamicBehaviorSetsResponseDynamicBehaviorSetInstance
14111
+ ] = Field(
14112
+ ...,
14113
+ description='The retrieved dynamic behavior sets.',
14114
+ title='Dynamic Behavior Sets',
14115
+ )
14116
+
14117
+
14136
14118
  class MetricCreateMetricRequest(BaseModel):
14137
14119
  name: str = Field(
14138
14120
  ...,
@@ -14189,7 +14171,7 @@ class OrganizationCreateOrganizationRequest(BaseModel):
14189
14171
  description='Additional descriptions of the services offered by this organization that is displayed below `main_description` in a smaller font.',
14190
14172
  min_length=1,
14191
14173
  )
14192
- user_dimensions: list[OrganizationCreateOrganizationRequestUserDimension] = Field(
14174
+ user_dimensions: list[OrganizationModifyOrganizationRequestUserDimension] = Field(
14193
14175
  ...,
14194
14176
  description='User dimensions for the organization.',
14195
14177
  title='User Dimensions',
@@ -14359,6 +14341,17 @@ class OrganizationGetApiKeysResponse(BaseModel):
14359
14341
  )
14360
14342
 
14361
14343
 
14344
+ class UserDimensions(
14345
+ RootModel[list[OrganizationModifyOrganizationRequestUserDimension]]
14346
+ ):
14347
+ root: list[OrganizationModifyOrganizationRequestUserDimension] = Field(
14348
+ ...,
14349
+ description='User dimensions for the organization. If not set or `null`, this field is not updated.',
14350
+ min_length=1,
14351
+ title='User Dimensions',
14352
+ )
14353
+
14354
+
14362
14355
  class OrganizationModifyOrganizationRequest(BaseModel):
14363
14356
  title: PydanticBaseModelStrippedNonemptyString1 | None = Field(
14364
14357
  None,
@@ -14412,7 +14405,7 @@ class OrganizationModifyOrganizationRequest(BaseModel):
14412
14405
  )
14413
14406
 
14414
14407
 
14415
- class RoleModifyRoleRequestPermissionGrant(BaseModel):
14408
+ class RoleCreateRoleRequestPermissionGrant(BaseModel):
14416
14409
  action: Action = Field(
14417
14410
  ...,
14418
14411
  description='Whether this grant allows or denies the specified access.',
@@ -14427,20 +14420,57 @@ class RoleModifyRoleRequestPermissionGrant(BaseModel):
14427
14420
  description: PydanticBaseModelStrippedNonemptyString1 | None = None
14428
14421
 
14429
14422
 
14430
- class ServiceCreateServiceRequestVersionSet(BaseModel):
14431
- agent_version_number: int | None = Field(
14423
+ class RoleModifyRoleRequest(BaseModel):
14424
+ description: PydanticBaseModelStrippedNonemptyString1 | None = Field(
14425
+ None,
14426
+ description='A description about the role. Only updated if specified. This field is a mutable field.',
14427
+ )
14428
+ permission_grants: list[RoleCreateRoleRequestPermissionGrant] | None = Field(
14429
+ None,
14430
+ description='A list of permission grants associated with this role. Only updated if specified. This field is an immutable field.',
14431
+ title='Permission Grants',
14432
+ )
14433
+ frontend_view: FrontendView | None = Field(
14434
+ None,
14435
+ description='The frontend view for the user of this role. Only updated if specified. This field is an immutable field.',
14436
+ )
14437
+
14438
+
14439
+ class ServiceCreateServiceRequest(BaseModel):
14440
+ service_hierarchical_state_machine_id: str = Field(
14432
14441
  ...,
14433
- description='The version number of the agent to be used. If None, the latest agent version will be used.',
14434
- title='Agent Version Number',
14442
+ description='The ID of the state machine that this service uses.',
14443
+ pattern='^[a-f0-9]{24}$',
14444
+ title='Service Hierarchical State Machine Id',
14435
14445
  )
14436
- service_hierarchical_state_machine_version_number: int | None = Field(
14446
+ agent_id: str = Field(
14437
14447
  ...,
14438
- description='The version number of the state machine to be used. If None, the latest state machine version will be used.',
14439
- title='Service Hierarchical State Machine Version Number',
14448
+ description='The ID of the agent that this service uses.',
14449
+ pattern='^[a-f0-9]{24}$',
14450
+ title='Agent Id',
14451
+ )
14452
+ name: str = Field(..., description='The name of this service.', min_length=1)
14453
+ description: str = Field(
14454
+ ..., description='A description of this service.', min_length=1
14455
+ )
14456
+ is_active: bool = Field(
14457
+ ...,
14458
+ description='Whether the newly-created service is active. Only active services are visible to users on the dashboard. You can later adjust the activeness of this service.',
14459
+ title='Is Active',
14460
+ )
14461
+ release_version_set: ServiceUpsertServiceVersionSetRequestVersionSet | None = Field(
14462
+ None,
14463
+ description='The `release` version set to use for this service. If not specified, the `release` version set will be the same as the `edge` version set, which uses the\nlatest agent and state machine versions with no model preference.',
14464
+ )
14465
+ keyterms: list[StrippedNonemptyStringAZAZ02] | None = Field(
14466
+ default_factory=list,
14467
+ description='A list of keyterms that are easy to get wrong during audio transcriptions that tend to occur commonly in audio sessions using this service.',
14468
+ max_length=20,
14469
+ title='Keyterms',
14470
+ )
14471
+ tags: dict[StrippedNonemptyStringWS, StrippedNonemptyStringWS | None] = Field(
14472
+ ..., description='The tags of this service.', title='Tags'
14440
14473
  )
14441
- llm_model_preferences: dict[
14442
- str, ServiceUpsertServiceVersionSetRequestVersionSetLLMConfig
14443
- ] = Field(..., title='Llm Model Preferences')
14444
14474
 
14445
14475
 
14446
14476
  class ServiceGetServicesResponse(BaseModel):
@@ -14464,7 +14494,7 @@ class ServiceGetServicesResponse(BaseModel):
14464
14494
 
14465
14495
 
14466
14496
  class ServiceUpsertServiceVersionSetRequest(BaseModel):
14467
- version_set: ServiceCreateServiceRequestVersionSet = Field(
14497
+ version_set: ServiceUpsertServiceVersionSetRequestVersionSet = Field(
14468
14498
  ..., description='The version set to upsert.'
14469
14499
  )
14470
14500
 
@@ -14518,7 +14548,7 @@ class SimulationCreateSimulationUnitTestSetRequest(BaseModel):
14518
14548
  ..., description='The description of the simulation unit test set.'
14519
14549
  )
14520
14550
  unit_test_runs: list[
14521
- SimulationCreateSimulationUnitTestSetRequestUnitTestRunDescriptor
14551
+ SimulationUpdateSimulationUnitTestSetRequestUnitTestRunDescriptor
14522
14552
  ] = Field(
14523
14553
  ...,
14524
14554
  description='The unit test runs that are part of this set.',
@@ -14554,7 +14584,7 @@ class SimulationGetSimulationPersonasResponse(BaseModel):
14554
14584
 
14555
14585
  class SimulationGetSimulationScenariosResponse(BaseModel):
14556
14586
  simulation_scenarios: list[
14557
- SimulationGetSimulationScenariosResponseSimulationScenarioInstance
14587
+ SimulationSearchSimulationScenariosResponseSimulationScenarioInstance
14558
14588
  ] = Field(
14559
14589
  ...,
14560
14590
  description='The list of simulation scenarios.',
@@ -14608,6 +14638,16 @@ class SimulationSearchSimulationPersonasResponse(BaseModel):
14608
14638
  )
14609
14639
 
14610
14640
 
14641
+ class SimulationSearchSimulationScenariosResponse(BaseModel):
14642
+ simulation_scenarios: list[
14643
+ SimulationSearchSimulationScenariosResponseSimulationScenarioInstance
14644
+ ] = Field(
14645
+ ...,
14646
+ description='The list of simulation scenarios.',
14647
+ title='Simulation Scenarios',
14648
+ )
14649
+
14650
+
14611
14651
  class SimulationSearchSimulationUnitTestSetResponse(BaseModel):
14612
14652
  simulation_unit_test_sets: list[SimulationUnitTestSet] = Field(
14613
14653
  ...,
@@ -14622,6 +14662,38 @@ class SimulationUpdateSimulationUnitTestRequestSuccessCriterion(
14622
14662
  pass
14623
14663
 
14624
14664
 
14665
+ class UnitTestRuns(
14666
+ RootModel[list[SimulationUpdateSimulationUnitTestSetRequestUnitTestRunDescriptor]]
14667
+ ):
14668
+ root: list[SimulationUpdateSimulationUnitTestSetRequestUnitTestRunDescriptor] = (
14669
+ Field(
14670
+ ...,
14671
+ description='The unit test runs that are part of this set.',
14672
+ min_length=1,
14673
+ title='Unit Test Runs',
14674
+ )
14675
+ )
14676
+
14677
+
14678
+ class SimulationUpdateSimulationUnitTestSetRequest(BaseModel):
14679
+ name: PydanticBaseModelStrippedNonemptyString1 | None = Field(
14680
+ None, description='The name of the simulation unit test set.'
14681
+ )
14682
+ description: PydanticBaseModelStrippedNonemptyString1 | FieldNotSet | None = Field(
14683
+ default_factory=lambda: PydanticBaseModelStrippedNonemptyString1({}),
14684
+ description='The description of the simulation unit test set. If not specified or an empty object is provided, the description will not be updated.',
14685
+ title='Description',
14686
+ )
14687
+ unit_test_runs: UnitTestRuns | None = Field(
14688
+ None,
14689
+ description='The unit test runs that are part of this set.',
14690
+ title='Unit Test Runs',
14691
+ )
14692
+ tags: dict[str, str | None] | None = Field(
14693
+ None, description='The tags of the simulation unit test set.', title='Tags'
14694
+ )
14695
+
14696
+
14625
14697
  class ToolGetToolVersionsResponse(BaseModel):
14626
14698
  tool_versions: list[ToolVersionInstance] = Field(
14627
14699
  ...,
@@ -14663,7 +14735,7 @@ class ToolGetToolsResponse(BaseModel):
14663
14735
 
14664
14736
 
14665
14737
  class ToolInvokeToolVersionRequest(BaseModel):
14666
- inputs: list[ToolInvokeToolVersionRequestInput] = Field(
14738
+ inputs: list[ToolTestToolRequestInput] = Field(
14667
14739
  ...,
14668
14740
  description='The list of inputs for the tool invocation.',
14669
14741
  max_length=10,
@@ -14687,6 +14759,37 @@ class ToolModifyToolEnvvarsRequest(BaseModel):
14687
14759
  deletes: list[DeleteRequest] | None = Field(default_factory=list, title='Deletes')
14688
14760
 
14689
14761
 
14762
+ class ToolTestToolRequest(BaseModel):
14763
+ inputs: list[ToolTestToolRequestInput] = Field(
14764
+ ...,
14765
+ description='The list of inputs for the tool invocation.',
14766
+ max_length=10,
14767
+ min_length=1,
14768
+ title='Inputs',
14769
+ )
14770
+ commit_branch: str = Field(
14771
+ ...,
14772
+ description='The branch in the tools repo whose tip will be tested.',
14773
+ title='Commit Branch',
14774
+ )
14775
+ project_path: str = Field(
14776
+ ...,
14777
+ description='The directory in the tools repo that contains the `pyproject.toml` file corresponding to the tool version to publish.',
14778
+ pattern='^[-\\w\\d_/]+$',
14779
+ title='Project Path',
14780
+ )
14781
+ required_envvars: dict[str, str] = Field(
14782
+ ...,
14783
+ description='The environment variables required for the tool to run.',
14784
+ title='Required Envvars',
14785
+ )
14786
+ required_secret_envvars: dict[str, str] = Field(
14787
+ ...,
14788
+ description='The secret environment variables required for the tool to run.',
14789
+ title='Required Secret Envvars',
14790
+ )
14791
+
14792
+
14690
14793
  class ToolTestToolResponse(ToolInvokeToolVersionResponse):
14691
14794
  pass
14692
14795
 
@@ -14728,33 +14831,22 @@ class UserGetUserModelResponse(BaseModel):
14728
14831
  )
14729
14832
 
14730
14833
 
14731
- class UserGetUsersResponseUserInstance(BaseModel):
14732
- org_id: str = Field(
14733
- ...,
14734
- description='The ID of the organization that this user belongs to.',
14735
- title='Org Id',
14736
- )
14737
- user_id: str = Field(
14738
- ..., description='The identifier of the user.', title='User Id'
14739
- )
14740
- first_name: str = Field(
14741
- ..., description='The first name of the user.', title='First Name'
14742
- )
14743
- last_name: str = Field(
14744
- ..., description='The last name of the user.', title='Last Name'
14834
+ class UserGetUsersResponse(BaseModel):
14835
+ users: list[UserSearchUsersResponseUserInstance] = Field(
14836
+ ..., description='Users in this organization.', title='Users'
14745
14837
  )
14746
- email: str = Field(..., description='Email of the user.', title='Email')
14747
- user_stats: UserSearchUsersResponseUserInstanceUserStats = Field(
14748
- ..., description="Statistics about the user's usage of the Amigo platform."
14838
+ has_more: bool = Field(
14839
+ ..., description='Whether there are more users to retrieve.', title='Has More'
14749
14840
  )
14750
- role: str = Field(..., description='The ID of the role of the user.', title='Role')
14751
- preferences: MongoCollectionsUserUserPreferences = Field(
14752
- ..., description='The preferences of the user.'
14841
+ continuation_token: int | None = Field(
14842
+ ...,
14843
+ description='A token to supply to the next request to retrieve the next page of users. Only populated if `has_more` is `True`.',
14844
+ title='Continuation Token',
14753
14845
  )
14754
14846
 
14755
14847
 
14756
14848
  class UserSearchUsersResponse(BaseModel):
14757
- users: list[UserGetUsersResponseUserInstance] = Field(
14849
+ users: list[UserSearchUsersResponseUserInstance] = Field(
14758
14850
  ..., description='Users in this organization.', title='Users'
14759
14851
  )
14760
14852
 
@@ -14775,64 +14867,6 @@ class WebhookDestinationGetWebhookDeliveriesResponse(BaseModel):
14775
14867
  )
14776
14868
 
14777
14869
 
14778
- class CreateConversationParametersQuery(BaseModel):
14779
- response_format: Format = Field(
14780
- ...,
14781
- description='The format of the response that will be sent to the user.',
14782
- title='Response Format',
14783
- )
14784
- current_agent_action_type: str | None = Field(
14785
- '^.*$',
14786
- description="A regex for filtering the type of the current agent action to return. By default, all are returned. If you don't want to receive any events, set this to a regex that matches nothing, for instance `^$`.",
14787
- title='Current Agent Action Type',
14788
- )
14789
- audio_format: AudioFormat | None = Field(
14790
- None, deprecated=True, title='Audio Format'
14791
- )
14792
- response_audio_format: (
14793
- VoiceResponsePCMAudioFormat | VoiceResponseMP3AudioFormat | None
14794
- ) = Field(
14795
- None,
14796
- description='The format of the audio response, if `response_format` is set to `voice`.',
14797
- title='Response Audio Format',
14798
- )
14799
-
14800
-
14801
- class InteractWithConversationParametersQuery(BaseModel):
14802
- request_format: Format = Field(
14803
- ...,
14804
- description='The format in which the user message is delivered to the server.',
14805
- title='Request Format',
14806
- )
14807
- response_format: Format = Field(
14808
- ...,
14809
- description='The format of the response that will be sent to the user.',
14810
- title='Response Format',
14811
- )
14812
- current_agent_action_type: str | None = Field(
14813
- '^.*$',
14814
- description="A regex for filtering the type of the current agent action to return. By default, all are returned. If you don't want to receive any events, set this to a regex that matches nothing, for instance `^$`.",
14815
- title='Current Agent Action Type',
14816
- )
14817
- request_audio_config: (
14818
- MP3UserMessageAudioConfig | PCMUserMessageAudioConfig | None
14819
- ) = Field(
14820
- None,
14821
- description='Configuration for the user message audio. This is only required if `request_format` is set to `voice`.',
14822
- title='Request Audio Config',
14823
- )
14824
- audio_format: AudioFormat | None = Field(
14825
- None, deprecated=True, title='Audio Format'
14826
- )
14827
- response_audio_format: (
14828
- VoiceResponsePCMAudioFormat | VoiceResponseMP3AudioFormat | None
14829
- ) = Field(
14830
- None,
14831
- description='The format of the audio response, if `response_format` is set to `voice`.',
14832
- title='Response Audio Format',
14833
- )
14834
-
14835
-
14836
14870
  class ConversationInstance(BaseModel):
14837
14871
  id: str = Field(..., description='The identifier of the conversation.', title='Id')
14838
14872
  user_id: str = Field(
@@ -15418,7 +15452,7 @@ class RoleCreateRoleRequest(BaseModel):
15418
15452
  description: str = Field(
15419
15453
  ..., description='A description about the role.', min_length=1
15420
15454
  )
15421
- permission_grants: list[RoleModifyRoleRequestPermissionGrant] = Field(
15455
+ permission_grants: list[RoleCreateRoleRequestPermissionGrant] = Field(
15422
15456
  ...,
15423
15457
  description='A list of permission grants associated with this role.',
15424
15458
  title='Permission Grants',
@@ -15434,59 +15468,6 @@ class RoleGetRolesResponse(BaseModel):
15434
15468
  )
15435
15469
 
15436
15470
 
15437
- class RoleModifyRoleRequest(BaseModel):
15438
- description: PydanticBaseModelStrippedNonemptyString1 | None = Field(
15439
- None,
15440
- description='A description about the role. Only updated if specified. This field is a mutable field.',
15441
- )
15442
- permission_grants: list[RoleModifyRoleRequestPermissionGrant] | None = Field(
15443
- None,
15444
- description='A list of permission grants associated with this role. Only updated if specified. This field is an immutable field.',
15445
- title='Permission Grants',
15446
- )
15447
- frontend_view: FrontendView | None = Field(
15448
- None,
15449
- description='The frontend view for the user of this role. Only updated if specified. This field is an immutable field.',
15450
- )
15451
-
15452
-
15453
- class ServiceCreateServiceRequest(BaseModel):
15454
- service_hierarchical_state_machine_id: str = Field(
15455
- ...,
15456
- description='The ID of the state machine that this service uses.',
15457
- pattern='^[a-f0-9]{24}$',
15458
- title='Service Hierarchical State Machine Id',
15459
- )
15460
- agent_id: str = Field(
15461
- ...,
15462
- description='The ID of the agent that this service uses.',
15463
- pattern='^[a-f0-9]{24}$',
15464
- title='Agent Id',
15465
- )
15466
- name: str = Field(..., description='The name of this service.', min_length=1)
15467
- description: str = Field(
15468
- ..., description='A description of this service.', min_length=1
15469
- )
15470
- is_active: bool = Field(
15471
- ...,
15472
- description='Whether the newly-created service is active. Only active services are visible to users on the dashboard. You can later adjust the activeness of this service.',
15473
- title='Is Active',
15474
- )
15475
- release_version_set: ServiceCreateServiceRequestVersionSet | None = Field(
15476
- None,
15477
- description='The `release` version set to use for this service. If not specified, the `release` version set will be the same as the `edge` version set, which uses the\nlatest agent and state machine versions with no model preference.',
15478
- )
15479
- keyterms: list[StrippedNonemptyStringAZAZ02] | None = Field(
15480
- default_factory=list,
15481
- description='A list of keyterms that are easy to get wrong during audio transcriptions that tend to occur commonly in audio sessions using this service.',
15482
- max_length=20,
15483
- title='Keyterms',
15484
- )
15485
- tags: dict[StrippedNonemptyStringWS, StrippedNonemptyStringWS | None] = Field(
15486
- ..., description='The tags of this service.', title='Tags'
15487
- )
15488
-
15489
-
15490
15471
  class SimulationCreateSimulationUnitTestRequest(BaseModel):
15491
15472
  name: str = Field(..., description='The name of the unit test.', min_length=1)
15492
15473
  description: str = Field(
@@ -15641,20 +15622,6 @@ class ToolSearchToolInvocationsResponseToolInvocationInstance(BaseModel):
15641
15622
  )
15642
15623
 
15643
15624
 
15644
- class UserGetUsersResponse(BaseModel):
15645
- users: list[UserGetUsersResponseUserInstance] = Field(
15646
- ..., description='Users in this organization.', title='Users'
15647
- )
15648
- has_more: bool = Field(
15649
- ..., description='Whether there are more users to retrieve.', title='Has More'
15650
- )
15651
- continuation_token: int | None = Field(
15652
- ...,
15653
- description='A token to supply to the next request to retrieve the next page of users. Only populated if `has_more` is `True`.',
15654
- title='Continuation Token',
15655
- )
15656
-
15657
-
15658
15625
  class ServiceHierarchicalStateMachineInstance(BaseModel):
15659
15626
  id: str = Field(..., description='The ID of the state machine version.', title='Id')
15660
15627
  org_id: str = Field(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amigo_sdk
3
- Version: 0.101.0
3
+ Version: 0.103.0
4
4
  Summary: Amigo AI Python SDK
5
5
  Author: Amigo AI
6
6
  License-File: LICENSE
@@ -2,7 +2,7 @@ scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  scripts/aliases.json,sha256=c1_bkZyvNDQ8iMrKtUuZQqdP87GdLnRPrb3wjX533eQ,322
3
3
  scripts/check.py,sha256=ikFavw1IjX51FNjO-kIzXjYdep3on0dKZHYvPElPFtc,2872
4
4
  scripts/gen_models.py,sha256=c4J_gHYQIBL3CcKg5z8oUusLvPePytfvLdZ7STHBcNk,3553
5
- amigo_sdk/__init__.py,sha256=NSTXBTjs3uCHrXsjzDlo7D-Q2jFXrrDQDAEIhsDJzcA,140
5
+ amigo_sdk/__init__.py,sha256=alcG7WzR2ZlGlcUfiPYGTcPdeQtDbFYiGL88Pv763dM,140
6
6
  amigo_sdk/_retry_utils.py,sha256=VbA_Uwv268J80d11R9XfnCjZiV-NwE1aXRsSlRjjRio,2108
7
7
  amigo_sdk/auth.py,sha256=WaM9PcEcnaC6CzNsgRKueHkdSAxNbRylzpR_3Q6guQ0,1765
8
8
  amigo_sdk/config.py,sha256=0eZIo-hcJ8ODftKAr-mwB-FGJxGO5PT5T4dRpyWPqAg,1491
@@ -10,13 +10,13 @@ amigo_sdk/errors.py,sha256=Yn12AxIQ6zE9jnGLWO0MUVbBsmw77Kzh82AijyreOkA,4818
10
10
  amigo_sdk/http_client.py,sha256=tfMXHqMTmlz2ja7aJhOVgbwAiJNlKCzPcK4UGNqXHO8,13488
11
11
  amigo_sdk/models.py,sha256=V-G6iL43_ZNOPDcatCJCSszGWGz-nzp_RSyGNm-rBAc,45
12
12
  amigo_sdk/sdk_client.py,sha256=5nj8hzjHSFRs9JMNabdYIhQAcFE2G1jI_r7SHVGr9No,6106
13
- amigo_sdk/generated/model.py,sha256=QLTBWs3hxDuM2yd4O8jbK1O9DmtTv09n2LreINnzx68,443599
13
+ amigo_sdk/generated/model.py,sha256=-6o9IrmpS_ENAnfvXP0xKnQ2V8bL4Gn8eppbQK5RFkg,442617
14
14
  amigo_sdk/resources/conversation.py,sha256=X47PbPA6NqdkqXgxAPOjlO1E0W7t695tn1tPWSikMOk,14807
15
15
  amigo_sdk/resources/organization.py,sha256=yX4UlOHNegRzFW4gCJrCxjiLCAGnGegasjviR1yad_Q,1211
16
16
  amigo_sdk/resources/service.py,sha256=t1iA3nS9co-wuR-x5jBhAXXTWfMeGsLwfQcLycwVrCA,1536
17
17
  amigo_sdk/resources/user.py,sha256=P14lN-3fmIvELUjn_vpSaYpNsK-xd8zNmUV_KfcZPAU,4138
18
- amigo_sdk-0.101.0.dist-info/METADATA,sha256=AmXMv0xgaHjP7jWcqtxft3CuE7KGcvpiqMKZ1Iz4FLo,8500
19
- amigo_sdk-0.101.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
20
- amigo_sdk-0.101.0.dist-info/entry_points.txt,sha256=ivKZ8S9W6SH796zUDHeM-qHodrwmkmUItophi-jJWK0,82
21
- amigo_sdk-0.101.0.dist-info/licenses/LICENSE,sha256=tx3FiTVbGxwBUOxQbNh05AAQlC2jd5hGvNpIkSfVbCo,1062
22
- amigo_sdk-0.101.0.dist-info/RECORD,,
18
+ amigo_sdk-0.103.0.dist-info/METADATA,sha256=Hdx6Ol0pB4nphqDk6QulKTNGd_7svOge-6sRy6qekVY,8500
19
+ amigo_sdk-0.103.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
20
+ amigo_sdk-0.103.0.dist-info/entry_points.txt,sha256=ivKZ8S9W6SH796zUDHeM-qHodrwmkmUItophi-jJWK0,82
21
+ amigo_sdk-0.103.0.dist-info/licenses/LICENSE,sha256=tx3FiTVbGxwBUOxQbNh05AAQlC2jd5hGvNpIkSfVbCo,1062
22
+ amigo_sdk-0.103.0.dist-info/RECORD,,