From b46275c7545c2311a8ea30d9a31b1f61eef8d227 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 14 Apr 2026 01:46:37 +0000 Subject: [PATCH] feat: Updated OpenAPI spec --- ...gentsClient.AgentsCountDeployedAgents.g.cs | 17 +- ....AgentsClient.AgentsGetAgentVariables.g.cs | 17 +- ...entsClient.AgentsSearchDeployedAgents.g.cs | 17 +- ...tta.AgentsClient.AttachArchiveToAgent.g.cs | 17 +- ...ta.AgentsClient.AttachCoreMemoryBlock.g.cs | 17 +- ...etta.AgentsClient.AttachFolderToAgent.g.cs | 17 +- ...ta.AgentsClient.AttachIdentityToAgent.g.cs | 17 +- .../Letta.AgentsClient.AttachToolToAgent.g.cs | 17 +- .../Letta.AgentsClient.CancelMessage.g.cs | 17 +- ...ta.AgentsClient.CloseAllFilesForAgent.g.cs | 17 +- .../Letta.AgentsClient.CloseFileForAgent.g.cs | 17 +- .../Letta.AgentsClient.CountAgents.g.cs | 17 +- .../Letta.AgentsClient.CreateAgent.g.cs | 25 ++- ....AgentsClient.CreateAgentMessageAsync.g.cs | 17 +- .../Letta.AgentsClient.CreatePassage.g.cs | 17 +- .../Letta.AgentsClient.DeleteAgent.g.cs | 17 +- .../Letta.AgentsClient.DeletePassage.g.cs | 17 +- ...a.AgentsClient.DetachArchiveFromAgent.g.cs | 17 +- ...ta.AgentsClient.DetachCoreMemoryBlock.g.cs | 17 +- ...ta.AgentsClient.DetachFolderFromAgent.g.cs | 17 +- ....AgentsClient.DetachIdentityFromAgent.g.cs | 17 +- ...etta.AgentsClient.DetachToolFromAgent.g.cs | 17 +- .../Letta.AgentsClient.ExportAgent.g.cs | 17 +- ...ta.AgentsClient.ExportAgentWithSkills.g.cs | 17 +- ...Letta.AgentsClient.GenerateCompletion.g.cs | 17 +- .../Letta.AgentsClient.ImportAgent.g.cs | 25 ++- .../Letta.AgentsClient.ListAgents.g.cs | 17 +- ...tta.AgentsClient.ListCoreMemoryBlocks.g.cs | 17 +- .../Letta.AgentsClient.ListFilesForAgent.g.cs | 17 +- ...etta.AgentsClient.ListFoldersForAgent.g.cs | 17 +- ...Letta.AgentsClient.ListGroupsForAgent.g.cs | 17 +- .../Letta.AgentsClient.ListMessages.g.cs | 17 +- .../Letta.AgentsClient.ListPassages.g.cs | 17 +- .../Letta.AgentsClient.ListToolsForAgent.g.cs | 17 +- .../Letta.AgentsClient.ModifyAgent.g.cs | 17 +- ...ta.AgentsClient.ModifyApprovalForTool.g.cs | 17 +- ...ta.AgentsClient.ModifyCoreMemoryBlock.g.cs | 17 +- .../Letta.AgentsClient.OpenFileForAgent.g.cs | 17 +- ...etta.AgentsClient.PreviewModelRequest.g.cs | 17 +- .../Letta.AgentsClient.RecompileAgent.g.cs | 17 +- .../Letta.AgentsClient.ResetMessages.g.cs | 17 +- .../Letta.AgentsClient.RetrieveAgent.g.cs | 17 +- ....AgentsClient.RetrieveCoreMemoryBlock.g.cs | 17 +- .../Letta.AgentsClient.RunToolForAgent.g.cs | 17 +- ...tta.AgentsClient.SearchArchivalMemory.g.cs | 17 +- .../Letta.AgentsClient.SearchMessages.g.cs | 17 +- .../Letta.AgentsClient.SendMessage.g.cs | 17 +- .../Letta.AgentsClient.SummarizeMessages.g.cs | 17 +- .../Letta/Generated/Letta.AgentsClient.g.cs | 147 +++++++++++++- .../Letta.ArchivesClient.CreateArchive.g.cs | 17 +- ...ArchivesClient.CreatePassageInArchive.g.cs | 17 +- ...rchivesClient.CreatePassagesInArchive.g.cs | 17 +- .../Letta.ArchivesClient.DeleteArchive.g.cs | 17 +- ...chivesClient.DeletePassageFromArchive.g.cs | 17 +- ...a.ArchivesClient.ListAgentsForArchive.g.cs | 17 +- .../Letta.ArchivesClient.ListArchives.g.cs | 17 +- .../Letta.ArchivesClient.ModifyArchive.g.cs | 17 +- .../Letta.ArchivesClient.RetrieveArchive.g.cs | 17 +- .../Letta/Generated/Letta.ArchivesClient.g.cs | 147 +++++++++++++- ...ta.BlocksClient.AttachIdentityToBlock.g.cs | 17 +- .../Letta.BlocksClient.CountBlocks.g.cs | 17 +- .../Letta.BlocksClient.CreateBlock.g.cs | 17 +- .../Letta.BlocksClient.DeleteBlock.g.cs | 17 +- ....BlocksClient.DetachIdentityFromBlock.g.cs | 17 +- ...Letta.BlocksClient.ListAgentsForBlock.g.cs | 17 +- .../Letta.BlocksClient.ListBlocks.g.cs | 17 +- .../Letta.BlocksClient.ModifyBlock.g.cs | 17 +- .../Letta.BlocksClient.RetrieveBlock.g.cs | 17 +- .../Letta/Generated/Letta.BlocksClient.g.cs | 147 +++++++++++++- ...Letta.ChatClient.CreateChatCompletion.g.cs | 17 +- .../Letta/Generated/Letta.ChatClient.g.cs | 147 +++++++++++++- ...cessTokensCreateClientSideAccessToken.g.cs | 17 +- ...cessTokensDeleteClientSideAccessToken.g.cs | 17 +- ...ccessTokensListClientSideAccessTokens.g.cs | 17 +- .../Letta.ClientSideAccessTokensClient.g.cs | 147 +++++++++++++- ...onversationsClient.CancelConversation.g.cs | 17 +- ...nversationsClient.CompactConversation.g.cs | 17 +- ...onversationsClient.CreateConversation.g.cs | 17 +- ...onversationsClient.DeleteConversation.g.cs | 17 +- ....ConversationsClient.ForkConversation.g.cs | 17 +- ...ationsClient.ListConversationMessages.g.cs | 17 +- ...ConversationsClient.ListConversations.g.cs | 17 +- ...lient.PreviewConversationModelRequest.g.cs | 17 +- ...ersationsClient.RecompileConversation.g.cs | 17 +- ...versationsClient.RetrieveConversation.g.cs | 17 +- ...ionsClient.RetrieveConversationStream.g.cs | 17 +- ...sationsClient.SendConversationMessage.g.cs | 17 +- ...onversationsClient.UpdateConversation.g.cs | 17 +- .../Generated/Letta.ConversationsClient.g.cs | 147 +++++++++++++- ...ient.DeviceStorageGetDeviceStorageKey.g.cs | 17 +- .../Generated/Letta.DeviceStorageClient.g.cs | 147 +++++++++++++- ....EmbeddingsClient.GetTotalStorageSize.g.cs | 25 ++- .../Generated/Letta.EmbeddingsClient.g.cs | 147 +++++++++++++- ...sClient.EnvironmentsDeleteEnvironment.g.cs | 17 +- ...mentsClient.EnvironmentsGetConnection.g.cs | 17 +- ...ntsClient.EnvironmentsListConnections.g.cs | 17 +- ...vironmentsClient.EnvironmentsRegister.g.cs | 17 +- ...onmentsClient.EnvironmentsSendMessage.g.cs | 17 +- .../Generated/Letta.EnvironmentsClient.g.cs | 147 +++++++++++++- ...FeedsClient.FeedsBackfillSubscription.g.cs | 17 +- .../Letta.FeedsClient.FeedsCreateFeed.g.cs | 17 +- .../Letta.FeedsClient.FeedsDeleteFeed.g.cs | 17 +- ...a.FeedsClient.FeedsDeleteSubscription.g.cs | 17 +- .../Letta.FeedsClient.FeedsGetFeed.g.cs | 17 +- .../Letta.FeedsClient.FeedsGetMessage.g.cs | 17 +- .../Letta.FeedsClient.FeedsListFeeds.g.cs | 17 +- .../Letta.FeedsClient.FeedsListMessages.g.cs | 17 +- ...dsClient.FeedsListSubscriptionHistory.g.cs | 17 +- ...ta.FeedsClient.FeedsListSubscriptions.g.cs | 17 +- ...etta.FeedsClient.FeedsPublishMessages.g.cs | 17 +- ...Letta.FeedsClient.FeedsSubscribeAgent.g.cs | 17 +- ....FeedsClient.FeedsTriggerSubscription.g.cs | 17 +- ...tta.FeedsClient.FeedsUnsubscribeAgent.g.cs | 17 +- ...lient.FeedsUpdateAllSubscriptionsCron.g.cs | 17 +- ...a.FeedsClient.FeedsUpdateSubscription.g.cs | 17 +- .../Letta/Generated/Letta.FeedsClient.g.cs | 147 +++++++++++++- .../Letta.FoldersClient.CountFolders.g.cs | 17 +- .../Letta.FoldersClient.CreateFolder.g.cs | 17 +- ...ta.FoldersClient.DeleteFileFromFolder.g.cs | 17 +- .../Letta.FoldersClient.DeleteFolder.g.cs | 17 +- ...tta.FoldersClient.ListAgentsForFolder.g.cs | 17 +- ...etta.FoldersClient.ListFilesForFolder.g.cs | 17 +- ...etta.FoldersClient.ListFolderPassages.g.cs | 17 +- .../Letta.FoldersClient.ListFolders.g.cs | 17 +- .../Letta.FoldersClient.ModifyFolder.g.cs | 17 +- .../Letta.FoldersClient.RetrieveFile.g.cs | 17 +- .../Letta.FoldersClient.RetrieveFolder.g.cs | 17 +- .../Letta.FoldersClient.RetrieveMetadata.g.cs | 17 +- ...etta.FoldersClient.UploadFileToFolder.g.cs | 17 +- .../Letta/Generated/Letta.FoldersClient.g.cs | 147 +++++++++++++- .../Letta.HealthClient.CheckHealth.g.cs | 17 +- .../Letta.HealthClient.CheckReadiness.g.cs | 17 +- .../Letta/Generated/Letta.HealthClient.g.cs | 147 +++++++++++++- .../Letta/Generated/Letta.IAgentsClient.g.cs | 23 ++- .../Generated/Letta.IArchivesClient.g.cs | 23 ++- .../Letta/Generated/Letta.IBlocksClient.g.cs | 23 ++- .../Letta/Generated/Letta.IChatClient.g.cs | 23 ++- .../Letta.IClientSideAccessTokensClient.g.cs | 23 ++- .../Generated/Letta.IConversationsClient.g.cs | 23 ++- .../Generated/Letta.IDeviceStorageClient.g.cs | 23 ++- .../Generated/Letta.IEmbeddingsClient.g.cs | 23 ++- .../Generated/Letta.IEnvironmentsClient.g.cs | 23 ++- .../Letta/Generated/Letta.IFeedsClient.g.cs | 23 ++- .../Letta/Generated/Letta.IFoldersClient.g.cs | 23 ++- .../Letta/Generated/Letta.IHealthClient.g.cs | 23 ++- .../Letta.IInternalAgentsClient.g.cs | 23 ++- .../Letta.IInternalBlocksClient.g.cs | 23 ++- .../Generated/Letta.IInternalRunsClient.g.cs | 23 ++- .../Letta.IInternalTemplatesClient.g.cs | 23 ++- .../Letta/Generated/Letta.IJobsClient.g.cs | 23 ++- .../Letta/Generated/Letta.ILettaClient.g.cs | 23 ++- .../Generated/Letta.IMcpServersClient.g.cs | 23 ++- .../Generated/Letta.IMemoryFilesClient.g.cs | 23 ++- .../Generated/Letta.IMessagesClient.g.cs | 23 ++- .../Generated/Letta.IMetadataClient.g.cs | 23 ++- .../Letta/Generated/Letta.IModelsClient.g.cs | 23 ++- .../Generated/Letta.IPassagesClient.g.cs | 23 ++- .../Generated/Letta.IPipelinesClient.g.cs | 23 ++- .../Generated/Letta.IProjectsClient.g.cs | 23 ++- .../Generated/Letta.IProvidersClient.g.cs | 23 ++- .../Letta/Generated/Letta.IRunsClient.g.cs | 23 ++- .../Generated/Letta.ISandboxesClient.g.cs | 23 ++- .../Letta.IScheduledMessagesClient.g.cs | 23 ++- .../Letta/Generated/Letta.IStepsClient.g.cs | 23 ++- .../Letta/Generated/Letta.ITagClient.g.cs | 23 ++- .../Generated/Letta.ITemplatesClient.g.cs | 23 ++- .../Letta/Generated/Letta.IToolsClient.g.cs | 23 ++- ...ernalAgentsClient.CountInternalAgents.g.cs | 17 +- ...sClient.ModifyInternalCoreMemoryBlock.g.cs | 17 +- .../Generated/Letta.InternalAgentsClient.g.cs | 147 +++++++++++++- ...ernalBlocksClient.CreateInternalBlock.g.cs | 17 +- ...ernalBlocksClient.DeleteInternalBlock.g.cs | 17 +- ...ocksClient.ListAgentsForInternalBlock.g.cs | 17 +- ...ternalBlocksClient.ListInternalBlocks.g.cs | 17 +- .../Generated/Letta.InternalBlocksClient.g.cs | 147 +++++++++++++- ...a.InternalRunsClient.ListInternalRuns.g.cs | 17 +- .../Generated/Letta.InternalRunsClient.g.cs | 147 +++++++++++++- ...tesClient.CreateInternalTemplateAgent.g.cs | 17 +- ...tesClient.CreateInternalTemplateBlock.g.cs | 17 +- ...ent.CreateInternalTemplateBlocksBatch.g.cs | 17 +- ...tesClient.CreateInternalTemplateGroup.g.cs | 17 +- ...ernalTemplatesClient.DeleteDeployment.g.cs | 17 +- ...emplatesClient.ListDeploymentEntities.g.cs | 17 +- .../Letta.InternalTemplatesClient.g.cs | 147 +++++++++++++- .../Generated/Letta.JobsClient.CancelJob.g.cs | 17 +- .../Generated/Letta.JobsClient.DeleteJob.g.cs | 17 +- .../Generated/Letta.JobsClient.ListJobs.g.cs | 17 +- .../Letta.JobsClient.RetrieveJob.g.cs | 17 +- .../Letta/Generated/Letta.JobsClient.g.cs | 147 +++++++++++++- .../Letta/Generated/Letta.LettaClient.g.cs | 180 +++++++++++++++++- ....McpServersClient.McpConnectMcpServer.g.cs | 17 +- ...a.McpServersClient.McpCreateMcpServer.g.cs | 17 +- ...a.McpServersClient.McpDeleteMcpServer.g.cs | 17 +- ...ta.McpServersClient.McpListMcpServers.g.cs | 17 +- ...erversClient.McpListToolsForMcpServer.g.cs | 17 +- ...erversClient.McpRefreshMcpServerTools.g.cs | 17 +- ...McpServersClient.McpRetrieveMcpServer.g.cs | 17 +- ...a.McpServersClient.McpRetrieveMcpTool.g.cs | 17 +- .../Letta.McpServersClient.McpRunTool.g.cs | 17 +- ...a.McpServersClient.McpUpdateMcpServer.g.cs | 17 +- .../Generated/Letta.McpServersClient.g.cs | 147 +++++++++++++- ...FilesClient.MemoryFilesGetFileHistory.g.cs | 17 +- ...yFilesClient.MemoryFilesListDirectory.g.cs | 17 +- ...ilesClient.MemoryFilesReadFileContent.g.cs | 17 +- .../Generated/Letta.MemoryFilesClient.g.cs | 147 +++++++++++++- .../Letta.MessagesClient.CancelBatch.g.cs | 17 +- .../Letta.MessagesClient.CreateBatch.g.cs | 17 +- .../Letta.MessagesClient.ListAllMessages.g.cs | 17 +- .../Letta.MessagesClient.ListBatches.g.cs | 17 +- ...a.MessagesClient.ListMessagesForBatch.g.cs | 17 +- .../Letta.MessagesClient.RetrieveBatch.g.cs | 17 +- .../Letta.MessagesClient.RetrieveMessage.g.cs | 17 +- ...etta.MessagesClient.SearchAllMessages.g.cs | 17 +- .../Letta/Generated/Letta.MessagesClient.g.cs | 147 +++++++++++++- ...etta.MetadataClient.MetadataGetStatus.g.cs | 17 +- .../Letta.MetadataClient.MetadataGetUser.g.cs | 17 +- ...lient.MetadataRetrieveCurrentBalances.g.cs | 17 +- ...a.MetadataClient.MetadataSendFeedback.g.cs | 17 +- ....MetadataClient.MetadataSendTelemetry.g.cs | 17 +- .../Letta/Generated/Letta.MetadataClient.g.cs | 147 +++++++++++++- ...etta.ModelsClient.ListEmbeddingModels.g.cs | 17 +- .../Letta.ModelsClient.ListModels.g.cs | 17 +- ...odelsClient.ModelsListEmbeddingModels.g.cs | 17 +- .../Letta/Generated/Letta.ModelsClient.g.cs | 147 +++++++++++++- .../Letta/Generated/Letta.OptionsSupport.g.cs | 2 + .../Letta.PassagesClient.SearchPassages.g.cs | 17 +- .../Letta/Generated/Letta.PassagesClient.g.cs | 147 +++++++++++++- ...pelinesClient.PipelinesCountPipelines.g.cs | 17 +- ...pelinesClient.PipelinesCreatePipeline.g.cs | 17 +- ...pelinesClient.PipelinesDeletePipeline.g.cs | 17 +- ....PipelinesClient.PipelinesGetPipeline.g.cs | 17 +- ...ient.PipelinesListPipelineSyncHistory.g.cs | 17 +- ...ipelinesClient.PipelinesListPipelines.g.cs | 17 +- ...elinesClient.PipelinesPreviewPipeline.g.cs | 17 +- ...PipelinesClient.PipelinesSyncPipeline.g.cs | 17 +- ...pelinesClient.PipelinesUpdatePipeline.g.cs | 17 +- ...PipelinesUpdatePipelineProducerConfig.g.cs | 17 +- .../Generated/Letta.PipelinesClient.g.cs | 147 +++++++++++++- ....ProjectsClient.ProjectsCreateProject.g.cs | 17 +- ....ProjectsClient.ProjectsDeleteProject.g.cs | 17 +- ...a.ProjectsClient.ProjectsListProjects.g.cs | 17 +- .../Letta/Generated/Letta.ProjectsClient.g.cs | 147 +++++++++++++- ...ProvidersClient.CheckExistingProvider.g.cs | 17 +- .../Letta.ProvidersClient.CheckProvider.g.cs | 17 +- .../Letta.ProvidersClient.CreateProvider.g.cs | 17 +- .../Letta.ProvidersClient.DeleteProvider.g.cs | 17 +- .../Letta.ProvidersClient.ListProviders.g.cs | 17 +- .../Letta.ProvidersClient.ModifyProvider.g.cs | 17 +- ...ProvidersClient.RefreshProviderModels.g.cs | 17 +- ...etta.ProvidersClient.RetrieveProvider.g.cs | 17 +- .../Generated/Letta.ProvidersClient.g.cs | 147 +++++++++++++- .../Generated/Letta.RunsClient.DeleteRun.g.cs | 17 +- .../Letta.RunsClient.ListMessagesForRun.g.cs | 17 +- .../Generated/Letta.RunsClient.ListRuns.g.cs | 17 +- .../Letta.RunsClient.ListStepsForRun.g.cs | 17 +- ...etta.RunsClient.RetrieveMetricsForRun.g.cs | 17 +- .../Letta.RunsClient.RetrieveRun.g.cs | 17 +- ...Letta.RunsClient.RetrieveStreamForRun.g.cs | 17 +- .../Letta.RunsClient.RetrieveTraceForRun.g.cs | 17 +- .../Letta.RunsClient.RetrieveUsageForRun.g.cs | 17 +- .../Letta/Generated/Letta.RunsClient.g.cs | 147 +++++++++++++- ...andboxesClient.SandboxesCreateSandbox.g.cs | 17 +- ...andboxesClient.SandboxesListSandboxes.g.cs | 17 +- ...boxesClient.SandboxesTerminateSandbox.g.cs | 17 +- .../Generated/Letta.SandboxesClient.g.cs | 147 +++++++++++++- ...heduledMessagesDeleteScheduledMessage.g.cs | 17 +- ...cheduledMessagesListScheduledMessages.g.cs | 17 +- ...duledMessagesRetrieveScheduledMessage.g.cs | 17 +- ...ScheduledMessagesScheduleAgentMessage.g.cs | 17 +- .../Letta.ScheduledMessagesClient.g.cs | 147 +++++++++++++- .../Generated/Letta.ServerSelection.g.cs | 57 ++++++ ...Letta.StepsClient.ListMessagesForStep.g.cs | 17 +- .../Letta.StepsClient.ListSteps.g.cs | 25 ++- ...tta.StepsClient.ModifyFeedbackForStep.g.cs | 17 +- ...ta.StepsClient.RetrieveMetricsForStep.g.cs | 17 +- .../Letta.StepsClient.RetrieveStep.g.cs | 17 +- ...etta.StepsClient.RetrieveTraceForStep.g.cs | 17 +- .../Letta/Generated/Letta.StepsClient.g.cs | 147 +++++++++++++- .../Generated/Letta.TagClient.ListTags.g.cs | 17 +- src/libs/Letta/Generated/Letta.TagClient.g.cs | 147 +++++++++++++- ...ent.TemplatesCreateAgentsFromTemplate.g.cs | 17 +- ...atesCreateAgentsFromTemplateNoProject.g.cs | 17 +- ...mplatesClient.TemplatesCreateTemplate.g.cs | 17 +- ...ient.TemplatesCreateTemplateNoProject.g.cs | 17 +- ...mplatesClient.TemplatesDeleteTemplate.g.cs | 17 +- ...ient.TemplatesDeleteTemplateNoProject.g.cs | 17 +- ...TemplatesClient.TemplatesForkTemplate.g.cs | 17 +- ...esClient.TemplatesGetTemplateSnapshot.g.cs | 17 +- ...platesClient.TemplatesLegacyMigration.g.cs | 17 +- ...sClient.TemplatesListTemplateVersions.g.cs | 17 +- ...emplatesClient.TemplatesListTemplates.g.cs | 17 +- ...atesClient.TemplatesMigrateDeployment.g.cs | 17 +- ...mplatesClient.TemplatesRenameTemplate.g.cs | 17 +- ...latesClient.TemplatesRollbackTemplate.g.cs | 17 +- ...nt.TemplatesRollbackTemplateNoProject.g.cs | 17 +- ...esClient.TemplatesSaveTemplateVersion.g.cs | 17 +- ...TemplatesSaveTemplateVersionNoProject.g.cs | 17 +- ...mplatesSetCurrentTemplateFromSnapshot.g.cs | 17 +- ...tesUpdateCurrentTemplateFromAgentFile.g.cs | 17 +- ...CurrentTemplateFromAgentFileNoProject.g.cs | 17 +- ...nt.TemplatesUpdateTemplateDescription.g.cs | 17 +- .../Generated/Letta.TemplatesClient.g.cs | 147 +++++++++++++- .../Letta.ToolsClient.AddBaseTools.g.cs | 17 +- .../Letta.ToolsClient.AddMcpServer.g.cs | 17 +- .../Letta.ToolsClient.AddMcpTool.g.cs | 17 +- .../Letta.ToolsClient.ConnectMcpServer.g.cs | 17 +- .../Letta.ToolsClient.CountTools.g.cs | 17 +- .../Letta.ToolsClient.CreateTool.g.cs | 17 +- .../Letta.ToolsClient.DeleteMcpServer.g.cs | 17 +- .../Letta.ToolsClient.DeleteTool.g.cs | 17 +- .../Letta.ToolsClient.ExecuteMcpTool.g.cs | 17 +- .../Letta.ToolsClient.ListMcpServers.g.cs | 17 +- ...etta.ToolsClient.ListMcpToolsByServer.g.cs | 17 +- .../Letta.ToolsClient.ListTools.g.cs | 17 +- .../Letta.ToolsClient.McpOauthCallback.g.cs | 17 +- .../Letta.ToolsClient.ModifyTool.g.cs | 17 +- ...etta.ToolsClient.ResyncMcpServerTools.g.cs | 17 +- .../Letta.ToolsClient.RetrieveTool.g.cs | 17 +- .../Letta.ToolsClient.RunToolFromSource.g.cs | 17 +- .../Letta.ToolsClient.SearchTools.g.cs | 17 +- .../Letta.ToolsClient.TestMcpServer.g.cs | 17 +- .../Letta.ToolsClient.UpdateMcpServer.g.cs | 17 +- .../Letta.ToolsClient.UpsertTool.g.cs | 17 +- .../Letta/Generated/Letta.ToolsClient.g.cs | 147 +++++++++++++- 324 files changed, 9884 insertions(+), 338 deletions(-) create mode 100644 src/libs/Letta/Generated/Letta.ServerSelection.g.cs diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.AgentsCountDeployedAgents.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.AgentsCountDeployedAgents.g.cs index 7eccae32..1aec37aa 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.AgentsCountDeployedAgents.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.AgentsCountDeployedAgents.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_AgentsCountDeployedAgentsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AgentsCountDeployedAgentsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessAgentsCountDeployedAgentsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/agents/search/count", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AgentsCountDeployedAgentsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("search", search, selector: static x => x.ToString() ?? string.Empty, delimiter: ",", explode: true) .AddOptionalParameter("project_id", projectId) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.AgentsGetAgentVariables.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.AgentsGetAgentVariables.g.cs index 0f14ecc2..c6ead542 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.AgentsGetAgentVariables.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.AgentsGetAgentVariables.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_AgentsGetAgentVariablesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AgentsGetAgentVariablesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessAgentsGetAgentVariablesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/core-memory/variables", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AgentsGetAgentVariablesServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.AgentsSearchDeployedAgents.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.AgentsSearchDeployedAgents.g.cs index e8ecd687..809e1625 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.AgentsSearchDeployedAgents.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.AgentsSearchDeployedAgents.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_AgentsSearchDeployedAgentsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AgentsSearchDeployedAgentsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessAgentsSearchDeployedAgentsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/agents/search", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AgentsSearchDeployedAgentsServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.AttachArchiveToAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.AttachArchiveToAgent.g.cs index 4b4eda17..772c148c 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.AttachArchiveToAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.AttachArchiveToAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_AttachArchiveToAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AttachArchiveToAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessAttachArchiveToAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/archives/attach/{archiveId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AttachArchiveToAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.AttachCoreMemoryBlock.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.AttachCoreMemoryBlock.g.cs index fde05a48..450aac25 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.AttachCoreMemoryBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.AttachCoreMemoryBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_AttachCoreMemoryBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AttachCoreMemoryBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -93,7 +106,9 @@ partial void ProcessAttachCoreMemoryBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/core-memory/blocks/attach/{blockId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AttachCoreMemoryBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.AttachFolderToAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.AttachFolderToAgent.g.cs index 8d6174f3..d94ad093 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.AttachFolderToAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.AttachFolderToAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_AttachFolderToAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AttachFolderToAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -93,7 +106,9 @@ partial void ProcessAttachFolderToAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/folders/attach/{folderId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AttachFolderToAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.AttachIdentityToAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.AttachIdentityToAgent.g.cs index fc4a5df6..4b7657ed 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.AttachIdentityToAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.AttachIdentityToAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_AttachIdentityToAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AttachIdentityToAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessAttachIdentityToAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/identities/attach/{identityId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AttachIdentityToAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.AttachToolToAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.AttachToolToAgent.g.cs index 0f3ecc27..df105690 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.AttachToolToAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.AttachToolToAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_AttachToolToAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AttachToolToAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -93,7 +106,9 @@ partial void ProcessAttachToolToAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/tools/attach/{toolId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AttachToolToAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.CancelMessage.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.CancelMessage.g.cs index bcb2fb3b..c14a7036 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.CancelMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.CancelMessage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_CancelMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CancelMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -95,7 +108,9 @@ partial void ProcessCancelMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/messages/cancel", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CancelMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.CloseAllFilesForAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.CloseAllFilesForAgent.g.cs index a5f0f55a..e31a8196 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.CloseAllFilesForAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.CloseAllFilesForAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_CloseAllFilesForAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CloseAllFilesForAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -88,7 +101,9 @@ partial void ProcessCloseAllFilesForAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/files/close-all", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CloseAllFilesForAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.CloseFileForAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.CloseFileForAgent.g.cs index a606b651..1961aed7 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.CloseFileForAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.CloseFileForAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_CloseFileForAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CloseFileForAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -95,7 +108,9 @@ partial void ProcessCloseFileForAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/files/{fileId}/close", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CloseFileForAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.CountAgents.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.CountAgents.g.cs index c55292c6..fa8d751f 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.CountAgents.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.CountAgents.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_CountAgentsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CountAgentsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -158,7 +171,9 @@ partial void ProcessCountAgentsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/agents/count", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CountAgentsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("name", name) .AddOptionalParameter("tags", tags?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.CreateAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.CreateAgent.g.cs index a5603c13..270f30c2 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.CreateAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.CreateAgent.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -96,7 +109,9 @@ partial void ProcessCreateAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/agents/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, @@ -127,10 +142,10 @@ partial void ProcessCreateAgentResponseContent( } } - if (xProject != default) - { - __httpRequest.Headers.TryAddWithoutValidation("X-Project", xProject.ToString()); - } + if (xProject != default) + { + __httpRequest.Headers.TryAddWithoutValidation("X-Project", xProject.ToString()); + } var __httpRequestContentBody = request.ToJson(JsonSerializerContext); var __httpRequestContent = new global::System.Net.Http.StringContent( diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.CreateAgentMessageAsync.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.CreateAgentMessageAsync.g.cs index 77260a87..749eec4f 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.CreateAgentMessageAsync.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.CreateAgentMessageAsync.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateAgentMessageAsyncServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateAgentMessageAsyncSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -101,7 +114,9 @@ partial void ProcessCreateAgentMessageAsyncResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/messages/async", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateAgentMessageAsyncServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.CreatePassage.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.CreatePassage.g.cs index dd625458..4104c0ac 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.CreatePassage.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.CreatePassage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_CreatePassageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreatePassageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessCreatePassageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/archival-memory", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreatePassageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.DeleteAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.DeleteAgent.g.cs index a12d12c2..dc9cf32a 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.DeleteAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.DeleteAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessDeleteAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.DeletePassage.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.DeletePassage.g.cs index 991bb0e4..f761424d 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.DeletePassage.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.DeletePassage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_DeletePassageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeletePassageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessDeletePassageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/archival-memory/{memoryId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeletePassageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.DetachArchiveFromAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.DetachArchiveFromAgent.g.cs index bbc55f82..aa74c056 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.DetachArchiveFromAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.DetachArchiveFromAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_DetachArchiveFromAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DetachArchiveFromAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessDetachArchiveFromAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/archives/detach/{archiveId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DetachArchiveFromAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.DetachCoreMemoryBlock.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.DetachCoreMemoryBlock.g.cs index e09ce29f..c4dee013 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.DetachCoreMemoryBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.DetachCoreMemoryBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_DetachCoreMemoryBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DetachCoreMemoryBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -93,7 +106,9 @@ partial void ProcessDetachCoreMemoryBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/core-memory/blocks/detach/{blockId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DetachCoreMemoryBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.DetachFolderFromAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.DetachFolderFromAgent.g.cs index a9e96b6a..d87fc1f2 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.DetachFolderFromAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.DetachFolderFromAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_DetachFolderFromAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DetachFolderFromAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -93,7 +106,9 @@ partial void ProcessDetachFolderFromAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/folders/detach/{folderId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DetachFolderFromAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.DetachIdentityFromAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.DetachIdentityFromAgent.g.cs index 1b3efd73..4177af9e 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.DetachIdentityFromAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.DetachIdentityFromAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_DetachIdentityFromAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DetachIdentityFromAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessDetachIdentityFromAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/identities/detach/{identityId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DetachIdentityFromAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.DetachToolFromAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.DetachToolFromAgent.g.cs index 23e03d4f..ef463878 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.DetachToolFromAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.DetachToolFromAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_DetachToolFromAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DetachToolFromAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -93,7 +106,9 @@ partial void ProcessDetachToolFromAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/tools/detach/{toolId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DetachToolFromAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ExportAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ExportAgent.g.cs index 0a6cf244..96aa5d03 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ExportAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ExportAgent.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ExportAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ExportAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessExportAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/export", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ExportAgentServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("max_steps", maxSteps?.ToString()) .AddOptionalParameter("use_legacy_format", useLegacyFormat?.ToString().ToLowerInvariant()) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ExportAgentWithSkills.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ExportAgentWithSkills.g.cs index 67bc33f0..733b7e3a 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ExportAgentWithSkills.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ExportAgentWithSkills.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ExportAgentWithSkillsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ExportAgentWithSkillsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessExportAgentWithSkillsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/export", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ExportAgentWithSkillsServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.GenerateCompletion.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.GenerateCompletion.g.cs index a40fbb85..660870ce 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.GenerateCompletion.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.GenerateCompletion.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_GenerateCompletionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_GenerateCompletionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -109,7 +122,9 @@ partial void ProcessGenerateCompletionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/generate", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_GenerateCompletionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ImportAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ImportAgent.g.cs index 137914b3..3ec56629 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ImportAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ImportAgent.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ImportAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ImportAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -95,7 +108,9 @@ partial void ProcessImportAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/agents/import", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ImportAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, @@ -126,10 +141,10 @@ partial void ProcessImportAgentResponseContent( } } - if (xOverrideEmbeddingModel != default) - { - __httpRequest.Headers.TryAddWithoutValidation("x-override-embedding-model", xOverrideEmbeddingModel.ToString()); - } + if (xOverrideEmbeddingModel != default) + { + __httpRequest.Headers.TryAddWithoutValidation("x-override-embedding-model", xOverrideEmbeddingModel.ToString()); + } var __httpRequestContent = new global::System.Net.Http.MultipartFormDataContent(); if (xOverrideEmbeddingModel != default) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ListAgents.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ListAgents.g.cs index 37675bdd..a1a14526 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ListAgents.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ListAgents.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListAgentsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListAgentsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -228,7 +241,9 @@ partial void ProcessListAgentsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/agents/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListAgentsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("name", name) .AddOptionalParameter("tags", tags?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ListCoreMemoryBlocks.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ListCoreMemoryBlocks.g.cs index 22f3295c..7483b70c 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ListCoreMemoryBlocks.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ListCoreMemoryBlocks.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListCoreMemoryBlocksServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListCoreMemoryBlocksSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListCoreMemoryBlocksResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/core-memory/blocks", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListCoreMemoryBlocksServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ListFilesForAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ListFilesForAgent.g.cs index 094006cd..fc6ccc37 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ListFilesForAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ListFilesForAgent.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListFilesForAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListFilesForAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -140,7 +153,9 @@ partial void ProcessListFilesForAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/files", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListFilesForAgentServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ListFoldersForAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ListFoldersForAgent.g.cs index a696aa97..4652ded6 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ListFoldersForAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ListFoldersForAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListFoldersForAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListFoldersForAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListFoldersForAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/folders", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListFoldersForAgentServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ListGroupsForAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ListGroupsForAgent.g.cs index 22edef54..1c409532 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ListGroupsForAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ListGroupsForAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListGroupsForAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListGroupsForAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -131,7 +144,9 @@ partial void ProcessListGroupsForAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/groups", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListGroupsForAgentServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("manager_type", managerType) .AddOptionalParameter("before", before) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ListMessages.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ListMessages.g.cs index fbda8144..047c95a9 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ListMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ListMessages.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -178,7 +191,9 @@ partial void ProcessListMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ListPassages.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ListPassages.g.cs index 5f43951a..28606865 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ListPassages.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ListPassages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListPassagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListPassagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -123,7 +136,9 @@ partial void ProcessListPassagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/archival-memory", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListPassagesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("after", after) .AddOptionalParameter("before", before) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ListToolsForAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ListToolsForAgent.g.cs index 969dce46..652e0ada 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ListToolsForAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ListToolsForAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListToolsForAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListToolsForAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListToolsForAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/tools", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListToolsForAgentServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ModifyAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ModifyAgent.g.cs index d68b87e4..422ad877 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ModifyAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ModifyAgent.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -96,7 +109,9 @@ partial void ProcessModifyAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ModifyApprovalForTool.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ModifyApprovalForTool.g.cs index f112faf5..da2ca181 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ModifyApprovalForTool.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ModifyApprovalForTool.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyApprovalForToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyApprovalForToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -109,7 +122,9 @@ partial void ProcessModifyApprovalForToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/tools/approval/{toolName}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyApprovalForToolServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("requires_approval", requiresApproval?.ToString().ToLowerInvariant()) ; diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ModifyCoreMemoryBlock.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ModifyCoreMemoryBlock.g.cs index 92156a4b..c8b3d563 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ModifyCoreMemoryBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ModifyCoreMemoryBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyCoreMemoryBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyCoreMemoryBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessModifyCoreMemoryBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/core-memory/blocks/{blockLabel}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyCoreMemoryBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.OpenFileForAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.OpenFileForAgent.g.cs index c676072d..c01857fe 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.OpenFileForAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.OpenFileForAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_OpenFileForAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_OpenFileForAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -96,7 +109,9 @@ partial void ProcessOpenFileForAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/files/{fileId}/open", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_OpenFileForAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.PreviewModelRequest.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.PreviewModelRequest.g.cs index 57d483d5..d5f0efb1 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.PreviewModelRequest.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.PreviewModelRequest.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_PreviewModelRequestServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PreviewModelRequestSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -95,7 +108,9 @@ partial void ProcessPreviewModelRequestResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/messages/preview-raw-payload", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PreviewModelRequestServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.RecompileAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.RecompileAgent.g.cs index b0d30b1d..daf5036c 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.RecompileAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.RecompileAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_RecompileAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RecompileAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -102,7 +115,9 @@ partial void ProcessRecompileAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/recompile", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RecompileAgentServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("update_timestamp", updateTimestamp?.ToString().ToLowerInvariant()) .AddOptionalParameter("dry_run", dryRun?.ToString().ToLowerInvariant()) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.ResetMessages.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.ResetMessages.g.cs index 82eeabc1..4b2208ab 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.ResetMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.ResetMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ResetMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ResetMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessResetMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/reset-messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ResetMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.RetrieveAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.RetrieveAgent.g.cs index 0bfbca53..7132b11e 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.RetrieveAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.RetrieveAgent.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -103,7 +116,9 @@ partial void ProcessRetrieveAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveAgentServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("include_relationships", includeRelationships?.ToString()) .AddOptionalParameter("include", include, selector: static x => x.ToValueString(), delimiter: ",", explode: true) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.RetrieveCoreMemoryBlock.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.RetrieveCoreMemoryBlock.g.cs index 55adc308..38480b0a 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.RetrieveCoreMemoryBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.RetrieveCoreMemoryBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveCoreMemoryBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveCoreMemoryBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessRetrieveCoreMemoryBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/core-memory/blocks/{blockLabel}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveCoreMemoryBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.RunToolForAgent.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.RunToolForAgent.g.cs index 85513116..3d62f2e0 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.RunToolForAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.RunToolForAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_RunToolForAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RunToolForAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -101,7 +114,9 @@ partial void ProcessRunToolForAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/tools/{toolName}/run", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RunToolForAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.SearchArchivalMemory.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.SearchArchivalMemory.g.cs index b9aa731f..ef0d6d17 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.SearchArchivalMemory.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.SearchArchivalMemory.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_SearchArchivalMemoryServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SearchArchivalMemorySecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -132,7 +145,9 @@ partial void ProcessSearchArchivalMemoryResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/archival-memory/search", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SearchArchivalMemoryServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddRequiredParameter("query", query) .AddOptionalParameter("tags", tags?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.SearchMessages.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.SearchMessages.g.cs index 83b34adc..9b57d660 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.SearchMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.SearchMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_SearchMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SearchMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -88,7 +101,9 @@ partial void ProcessSearchMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/agents/messages/search", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SearchMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.SendMessage.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.SendMessage.g.cs index 616de256..ec770d23 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.SendMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.SendMessage.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_SendMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SendMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -107,7 +120,9 @@ partial void ProcessSendMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SendMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.SummarizeMessages.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.SummarizeMessages.g.cs index ab6b4e1a..66b2d32d 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.SummarizeMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.SummarizeMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class AgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_SummarizeMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SummarizeMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessSummarizeMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/summarize", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SummarizeMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.AgentsClient.g.cs b/src/libs/Letta/Generated/Letta.AgentsClient.g.cs index b6ec52cd..dbe1102e 100644 --- a/src/libs/Letta/Generated/Letta.AgentsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.AgentsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class AgentsClient : global::Letta.IAgentsClient, global:: public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class AgentsClient : global::Letta.IAgentsClient, global:: /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the AgentsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public AgentsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.CreateArchive.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.CreateArchive.g.cs index 2eab4129..9a08fd05 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.CreateArchive.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.CreateArchive.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateArchiveServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateArchiveSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessCreateArchiveResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/archives/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateArchiveServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.CreatePassageInArchive.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.CreatePassageInArchive.g.cs index a639111f..12507c6b 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.CreatePassageInArchive.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.CreatePassageInArchive.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_CreatePassageInArchiveServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreatePassageInArchiveSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -95,7 +108,9 @@ partial void ProcessCreatePassageInArchiveResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/archives/{archiveId}/passages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreatePassageInArchiveServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.CreatePassagesInArchive.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.CreatePassagesInArchive.g.cs index 619e63d1..6128ceb7 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.CreatePassagesInArchive.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.CreatePassagesInArchive.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_CreatePassagesInArchiveServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreatePassagesInArchiveSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -95,7 +108,9 @@ partial void ProcessCreatePassagesInArchiveResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/archives/{archiveId}/passages/batch", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreatePassagesInArchiveServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.DeleteArchive.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.DeleteArchive.g.cs index a40618aa..5a25c45e 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.DeleteArchive.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.DeleteArchive.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteArchiveServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteArchiveSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -81,7 +94,9 @@ partial void ProcessDeleteArchiveResponse( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/archives/{archiveId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteArchiveServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.DeletePassageFromArchive.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.DeletePassageFromArchive.g.cs index 2924dcec..66b829ab 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.DeletePassageFromArchive.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.DeletePassageFromArchive.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_DeletePassageFromArchiveServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeletePassageFromArchiveSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessDeletePassageFromArchiveResponse( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/archives/{archiveId}/passages/{passageId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeletePassageFromArchiveServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.ListAgentsForArchive.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.ListAgentsForArchive.g.cs index dfa2d23e..793e2c81 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.ListAgentsForArchive.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.ListAgentsForArchive.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_ListAgentsForArchiveServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListAgentsForArchiveSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListAgentsForArchiveResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/archives/{archiveId}/agents", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListAgentsForArchiveServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.ListArchives.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.ListArchives.g.cs index e4ef1afc..2f772b43 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.ListArchives.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.ListArchives.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_ListArchivesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListArchivesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -131,7 +144,9 @@ partial void ProcessListArchivesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/archives/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListArchivesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.ModifyArchive.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.ModifyArchive.g.cs index 0a038f3d..78c207d8 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.ModifyArchive.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.ModifyArchive.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyArchiveServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyArchiveSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessModifyArchiveResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/archives/{archiveId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyArchiveServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.RetrieveArchive.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.RetrieveArchive.g.cs index 0cd35d28..59d930b1 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.RetrieveArchive.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.RetrieveArchive.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ArchivesClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveArchiveServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveArchiveSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveArchiveResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/archives/{archiveId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveArchiveServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ArchivesClient.g.cs b/src/libs/Letta/Generated/Letta.ArchivesClient.g.cs index 5680ef9f..1f8db026 100644 --- a/src/libs/Letta/Generated/Letta.ArchivesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ArchivesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ArchivesClient : global::Letta.IArchivesClient, glob public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ArchivesClient : global::Letta.IArchivesClient, glob /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ArchivesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ArchivesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.AttachIdentityToBlock.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.AttachIdentityToBlock.g.cs index 785a5f22..6fd29608 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.AttachIdentityToBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.AttachIdentityToBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_AttachIdentityToBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AttachIdentityToBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessAttachIdentityToBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/blocks/{blockId}/identities/attach/{identityId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AttachIdentityToBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.CountBlocks.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.CountBlocks.g.cs index b3f3b5d6..828548d4 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.CountBlocks.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.CountBlocks.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_CountBlocksServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CountBlocksSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessCountBlocksResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/blocks/count", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CountBlocksServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("label", label) .AddOptionalParameter("templates_only", templatesOnly?.ToString().ToLowerInvariant()) diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.CreateBlock.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.CreateBlock.g.cs index 60a68219..5d8384a3 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.CreateBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.CreateBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessCreateBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/blocks/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.DeleteBlock.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.DeleteBlock.g.cs index 2a10f4f8..24f69282 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.DeleteBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.DeleteBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -85,7 +98,9 @@ partial void ProcessDeleteBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/blocks/{blockId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.DetachIdentityFromBlock.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.DetachIdentityFromBlock.g.cs index e9f27d7d..79d90e86 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.DetachIdentityFromBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.DetachIdentityFromBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_DetachIdentityFromBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DetachIdentityFromBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessDetachIdentityFromBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/blocks/{blockId}/identities/detach/{identityId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DetachIdentityFromBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.ListAgentsForBlock.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.ListAgentsForBlock.g.cs index 610ca7d9..4ce007b5 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.ListAgentsForBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.ListAgentsForBlock.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_ListAgentsForBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListAgentsForBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -142,7 +155,9 @@ partial void ProcessListAgentsForBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/blocks/{blockId}/agents", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListAgentsForBlockServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.ListBlocks.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.ListBlocks.g.cs index 5961029e..e371315f 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.ListBlocks.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.ListBlocks.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_ListBlocksServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListBlocksSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -216,7 +229,9 @@ partial void ProcessListBlocksResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/blocks/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListBlocksServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("label", label) .AddOptionalParameter("templates_only", templatesOnly?.ToString().ToLowerInvariant()) diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.ModifyBlock.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.ModifyBlock.g.cs index 4ba4c1c4..1b10b7e8 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.ModifyBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.ModifyBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -93,7 +106,9 @@ partial void ProcessModifyBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/blocks/{blockId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.RetrieveBlock.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.RetrieveBlock.g.cs index 1b0b294b..337d8916 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.RetrieveBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.RetrieveBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class BlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -85,7 +98,9 @@ partial void ProcessRetrieveBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/blocks/{blockId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.BlocksClient.g.cs b/src/libs/Letta/Generated/Letta.BlocksClient.g.cs index 1002dadb..40d9b26d 100644 --- a/src/libs/Letta/Generated/Letta.BlocksClient.g.cs +++ b/src/libs/Letta/Generated/Letta.BlocksClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class BlocksClient : global::Letta.IBlocksClient, global:: public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class BlocksClient : global::Letta.IBlocksClient, global:: /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the BlocksClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public BlocksClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ChatClient.CreateChatCompletion.g.cs b/src/libs/Letta/Generated/Letta.ChatClient.CreateChatCompletion.g.cs index a5b8f4b4..b2913791 100644 --- a/src/libs/Letta/Generated/Letta.ChatClient.CreateChatCompletion.g.cs +++ b/src/libs/Letta/Generated/Letta.ChatClient.CreateChatCompletion.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ChatClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateChatCompletionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateChatCompletionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessCreateChatCompletionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/chat/completions", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateChatCompletionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ChatClient.g.cs b/src/libs/Letta/Generated/Letta.ChatClient.g.cs index 9174b32a..c21b963e 100644 --- a/src/libs/Letta/Generated/Letta.ChatClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ChatClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ChatClient : global::Letta.IChatClient, global::Syst public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ChatClient : global::Letta.IChatClient, global::Syst /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ChatClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ChatClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensCreateClientSideAccessToken.g.cs b/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensCreateClientSideAccessToken.g.cs index 37e88850..4c7c5b92 100644 --- a/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensCreateClientSideAccessToken.g.cs +++ b/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensCreateClientSideAccessToken.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ClientSideAccessTokensClient { + private static readonly global::Letta.AutoSDKServer[] s_ClientSideAccessTokensCreateClientSideAccessTokenServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ClientSideAccessTokensCreateClientSideAccessTokenSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessClientSideAccessTokensCreateClientSideAccessTokenResponseCon { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/client-side-access-tokens", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ClientSideAccessTokensCreateClientSideAccessTokenServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensDeleteClientSideAccessToken.g.cs b/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensDeleteClientSideAccessToken.g.cs index 876000d6..bfa5b78d 100644 --- a/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensDeleteClientSideAccessToken.g.cs +++ b/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensDeleteClientSideAccessToken.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ClientSideAccessTokensClient { + private static readonly global::Letta.AutoSDKServer[] s_ClientSideAccessTokensDeleteClientSideAccessTokenServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ClientSideAccessTokensDeleteClientSideAccessTokenSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessClientSideAccessTokensDeleteClientSideAccessTokenResponseCon { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/client-side-access-tokens/{token}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ClientSideAccessTokensDeleteClientSideAccessTokenServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensListClientSideAccessTokens.g.cs b/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensListClientSideAccessTokens.g.cs index 8ca02f6f..56e83978 100644 --- a/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensListClientSideAccessTokens.g.cs +++ b/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.ClientSideAccessTokensListClientSideAccessTokens.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ClientSideAccessTokensClient { + private static readonly global::Letta.AutoSDKServer[] s_ClientSideAccessTokensListClientSideAccessTokensServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ClientSideAccessTokensListClientSideAccessTokensSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -98,7 +111,9 @@ partial void ProcessClientSideAccessTokensListClientSideAccessTokensResponseCont { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/client-side-access-tokens", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ClientSideAccessTokensListClientSideAccessTokensServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agentId", agentId) .AddOptionalParameter("offset", offset?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.g.cs b/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.g.cs index c0604fa8..44068593 100644 --- a/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ClientSideAccessTokensClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ClientSideAccessTokensClient : global::Letta.IClient public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ClientSideAccessTokensClient : global::Letta.IClient /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ClientSideAccessTokensClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ClientSideAccessTokensClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.CancelConversation.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.CancelConversation.g.cs index 457a85dd..04991ec4 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.CancelConversation.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.CancelConversation.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_CancelConversationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CancelConversationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessCancelConversationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}/cancel", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CancelConversationServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agent_id", agentId) ; diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.CompactConversation.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.CompactConversation.g.cs index bfb1a9f3..26060a22 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.CompactConversation.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.CompactConversation.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_CompactConversationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CompactConversationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessCompactConversationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}/compact", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CompactConversationServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.CreateConversation.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.CreateConversation.g.cs index 84d2cfa6..8866d5eb 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.CreateConversation.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.CreateConversation.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateConversationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateConversationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessCreateConversationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/conversations/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateConversationServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddRequiredParameter("agent_id", agentId) ; diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.DeleteConversation.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.DeleteConversation.g.cs index 0b009233..e877c18e 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.DeleteConversation.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.DeleteConversation.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteConversationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteConversationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessDeleteConversationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteConversationServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.ForkConversation.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.ForkConversation.g.cs index 2d030425..ed230585 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.ForkConversation.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.ForkConversation.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_ForkConversationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ForkConversationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessForkConversationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}/fork", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ForkConversationServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agent_id", agentId) ; diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.ListConversationMessages.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.ListConversationMessages.g.cs index 9c1ca0d5..01fad471 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.ListConversationMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.ListConversationMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListConversationMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListConversationMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -157,7 +170,9 @@ partial void ProcessListConversationMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListConversationMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agent_id", agentId) .AddOptionalParameter("before", before) diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.ListConversations.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.ListConversations.g.cs index 0276fc01..8708debb 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.ListConversations.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.ListConversations.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListConversationsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListConversationsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListConversationsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/conversations/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListConversationsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agent_id", agentId) .AddOptionalParameter("limit", limit?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.PreviewConversationModelRequest.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.PreviewConversationModelRequest.g.cs index 8eaebfbb..fefaf620 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.PreviewConversationModelRequest.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.PreviewConversationModelRequest.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_PreviewConversationModelRequestServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PreviewConversationModelRequestSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -100,7 +113,9 @@ partial void ProcessPreviewConversationModelRequestResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}/messages/preview-raw-payload", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PreviewConversationModelRequestServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.RecompileConversation.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.RecompileConversation.g.cs index 1da280bc..7603981a 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.RecompileConversation.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.RecompileConversation.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_RecompileConversationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RecompileConversationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -102,7 +115,9 @@ partial void ProcessRecompileConversationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}/recompile", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RecompileConversationServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("dry_run", dryRun?.ToString().ToLowerInvariant()) ; diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.RetrieveConversation.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.RetrieveConversation.g.cs index 4ccb1256..bf6cc52f 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.RetrieveConversation.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.RetrieveConversation.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveConversationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveConversationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveConversationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveConversationServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.RetrieveConversationStream.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.RetrieveConversationStream.g.cs index 6adea8e8..b5a1010c 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.RetrieveConversationStream.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.RetrieveConversationStream.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveConversationStreamServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveConversationStreamSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -103,7 +116,9 @@ partial void ProcessRetrieveConversationStreamResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}/stream", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveConversationStreamServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.SendConversationMessage.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.SendConversationMessage.g.cs index ddb3437e..605a3867 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.SendConversationMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.SendConversationMessage.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_SendConversationMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SendConversationMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -102,7 +115,9 @@ partial void ProcessSendConversationMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SendConversationMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.UpdateConversation.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.UpdateConversation.g.cs index 57b5a89c..1c49b1e2 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.UpdateConversation.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.UpdateConversation.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ConversationsClient { + private static readonly global::Letta.AutoSDKServer[] s_UpdateConversationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_UpdateConversationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessUpdateConversationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/conversations/{conversationId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_UpdateConversationServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ConversationsClient.g.cs b/src/libs/Letta/Generated/Letta.ConversationsClient.g.cs index f79a28e5..7b692cef 100644 --- a/src/libs/Letta/Generated/Letta.ConversationsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ConversationsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ConversationsClient : global::Letta.IConversationsCl public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ConversationsClient : global::Letta.IConversationsCl /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ConversationsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ConversationsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.DeviceStorageClient.DeviceStorageGetDeviceStorageKey.g.cs b/src/libs/Letta/Generated/Letta.DeviceStorageClient.DeviceStorageGetDeviceStorageKey.g.cs index 0fe2ce7f..bb1207b1 100644 --- a/src/libs/Letta/Generated/Letta.DeviceStorageClient.DeviceStorageGetDeviceStorageKey.g.cs +++ b/src/libs/Letta/Generated/Letta.DeviceStorageClient.DeviceStorageGetDeviceStorageKey.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class DeviceStorageClient { + private static readonly global::Letta.AutoSDKServer[] s_DeviceStorageGetDeviceStorageKeyServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeviceStorageGetDeviceStorageKeySecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessDeviceStorageGetDeviceStorageKeyResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/device-storage-key", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeviceStorageGetDeviceStorageKeyServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddRequiredParameter("deviceId", deviceId) ; diff --git a/src/libs/Letta/Generated/Letta.DeviceStorageClient.g.cs b/src/libs/Letta/Generated/Letta.DeviceStorageClient.g.cs index fadc74a1..e974fd82 100644 --- a/src/libs/Letta/Generated/Letta.DeviceStorageClient.g.cs +++ b/src/libs/Letta/Generated/Letta.DeviceStorageClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class DeviceStorageClient : global::Letta.IDeviceStorageCl public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class DeviceStorageClient : global::Letta.IDeviceStorageCl /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the DeviceStorageClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public DeviceStorageClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.EmbeddingsClient.GetTotalStorageSize.g.cs b/src/libs/Letta/Generated/Letta.EmbeddingsClient.GetTotalStorageSize.g.cs index 0e877947..e379ea3a 100644 --- a/src/libs/Letta/Generated/Letta.EmbeddingsClient.GetTotalStorageSize.g.cs +++ b/src/libs/Letta/Generated/Letta.EmbeddingsClient.GetTotalStorageSize.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class EmbeddingsClient { + private static readonly global::Letta.AutoSDKServer[] s_GetTotalStorageSizeServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_GetTotalStorageSizeSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessGetTotalStorageSizeResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/embeddings/total_storage_size", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_GetTotalStorageSizeServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, @@ -117,10 +132,10 @@ partial void ProcessGetTotalStorageSizeResponseContent( } } - if (storageUnit != default) - { - __httpRequest.Headers.TryAddWithoutValidation("storage-unit", storageUnit.ToString()); - } + if (storageUnit != default) + { + __httpRequest.Headers.TryAddWithoutValidation("storage-unit", storageUnit.ToString()); + } global::Letta.AutoSDKRequestOptionsSupport.ApplyHeaders( request: __httpRequest, diff --git a/src/libs/Letta/Generated/Letta.EmbeddingsClient.g.cs b/src/libs/Letta/Generated/Letta.EmbeddingsClient.g.cs index 5d45057c..a6d932ee 100644 --- a/src/libs/Letta/Generated/Letta.EmbeddingsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.EmbeddingsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class EmbeddingsClient : global::Letta.IEmbeddingsClient, public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class EmbeddingsClient : global::Letta.IEmbeddingsClient, /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the EmbeddingsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public EmbeddingsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsDeleteEnvironment.g.cs b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsDeleteEnvironment.g.cs index e59802ce..843d9dbf 100644 --- a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsDeleteEnvironment.g.cs +++ b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsDeleteEnvironment.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class EnvironmentsClient { + private static readonly global::Letta.AutoSDKServer[] s_EnvironmentsDeleteEnvironmentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_EnvironmentsDeleteEnvironmentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessEnvironmentsDeleteEnvironmentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/environments/{id}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_EnvironmentsDeleteEnvironmentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsGetConnection.g.cs b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsGetConnection.g.cs index 989aa5c7..392d3c11 100644 --- a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsGetConnection.g.cs +++ b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsGetConnection.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class EnvironmentsClient { + private static readonly global::Letta.AutoSDKServer[] s_EnvironmentsGetConnectionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_EnvironmentsGetConnectionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessEnvironmentsGetConnectionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/environments/{deviceId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_EnvironmentsGetConnectionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsListConnections.g.cs b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsListConnections.g.cs index 17b613a7..7a9bdd4c 100644 --- a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsListConnections.g.cs +++ b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsListConnections.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class EnvironmentsClient { + private static readonly global::Letta.AutoSDKServer[] s_EnvironmentsListConnectionsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_EnvironmentsListConnectionsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessEnvironmentsListConnectionsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/environments", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_EnvironmentsListConnectionsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("limit", limit) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsRegister.g.cs b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsRegister.g.cs index bfeb594a..dc070dce 100644 --- a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsRegister.g.cs +++ b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsRegister.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class EnvironmentsClient { + private static readonly global::Letta.AutoSDKServer[] s_EnvironmentsRegisterServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_EnvironmentsRegisterSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessEnvironmentsRegisterResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/environments/register", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_EnvironmentsRegisterServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsSendMessage.g.cs b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsSendMessage.g.cs index 450569e4..4b986db0 100644 --- a/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsSendMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.EnvironmentsClient.EnvironmentsSendMessage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class EnvironmentsClient { + private static readonly global::Letta.AutoSDKServer[] s_EnvironmentsSendMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_EnvironmentsSendMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessEnvironmentsSendMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/environments/{connectionId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_EnvironmentsSendMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.EnvironmentsClient.g.cs b/src/libs/Letta/Generated/Letta.EnvironmentsClient.g.cs index f206757e..64bc04f9 100644 --- a/src/libs/Letta/Generated/Letta.EnvironmentsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.EnvironmentsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class EnvironmentsClient : global::Letta.IEnvironmentsClie public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class EnvironmentsClient : global::Letta.IEnvironmentsClie /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the EnvironmentsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public EnvironmentsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsBackfillSubscription.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsBackfillSubscription.g.cs index f30109ce..302332c4 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsBackfillSubscription.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsBackfillSubscription.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsBackfillSubscriptionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsBackfillSubscriptionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessFeedsBackfillSubscriptionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/subscriptions/{subscriptionId}/backfill", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsBackfillSubscriptionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsCreateFeed.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsCreateFeed.g.cs index 06f97759..b1dc4ff5 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsCreateFeed.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsCreateFeed.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsCreateFeedServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsCreateFeedSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessFeedsCreateFeedResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/feeds", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsCreateFeedServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsDeleteFeed.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsDeleteFeed.g.cs index 18d831d8..874d9c12 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsDeleteFeed.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsDeleteFeed.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsDeleteFeedServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsDeleteFeedSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessFeedsDeleteFeedResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsDeleteFeedServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsDeleteSubscription.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsDeleteSubscription.g.cs index 44cb490a..7037381d 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsDeleteSubscription.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsDeleteSubscription.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsDeleteSubscriptionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsDeleteSubscriptionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessFeedsDeleteSubscriptionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/subscriptions/{subscriptionId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsDeleteSubscriptionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsGetFeed.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsGetFeed.g.cs index 98c2ceb8..2979f97b 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsGetFeed.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsGetFeed.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsGetFeedServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsGetFeedSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessFeedsGetFeedResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsGetFeedServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsGetMessage.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsGetMessage.g.cs index 6baa8846..29bcb4e4 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsGetMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsGetMessage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsGetMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsGetMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessFeedsGetMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/messages/{messageId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsGetMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListFeeds.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListFeeds.g.cs index 8b65cabd..a06feb31 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListFeeds.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListFeeds.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsListFeedsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsListFeedsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessFeedsListFeedsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/feeds", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsListFeedsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("project_id", projectId) .AddOptionalParameter("name", name) diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListMessages.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListMessages.g.cs index 0be93263..959efd5c 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsListMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsListMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessFeedsListMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsListMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("after_sequence", afterSequence) .AddOptionalParameter("limit", limit) diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListSubscriptionHistory.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListSubscriptionHistory.g.cs index 30e893b2..ed0c69fa 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListSubscriptionHistory.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListSubscriptionHistory.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsListSubscriptionHistoryServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsListSubscriptionHistorySecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessFeedsListSubscriptionHistoryResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/subscriptions/{subscriptionId}/history", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsListSubscriptionHistoryServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("page_size", pageSize) .AddOptionalParameter("next_page_token", nextPageToken) diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListSubscriptions.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListSubscriptions.g.cs index c3e0e50d..5c789927 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListSubscriptions.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsListSubscriptions.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsListSubscriptionsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsListSubscriptionsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessFeedsListSubscriptionsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/subscriptions", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsListSubscriptionsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("limit", limit) .AddOptionalParameter("offset", offset?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsPublishMessages.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsPublishMessages.g.cs index d368c88b..c4535e78 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsPublishMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsPublishMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsPublishMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsPublishMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessFeedsPublishMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsPublishMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsSubscribeAgent.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsSubscribeAgent.g.cs index 6e6b2e00..7018aa19 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsSubscribeAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsSubscribeAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsSubscribeAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsSubscribeAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessFeedsSubscribeAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/subscribe", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsSubscribeAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsTriggerSubscription.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsTriggerSubscription.g.cs index ba437f9a..be30b51c 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsTriggerSubscription.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsTriggerSubscription.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsTriggerSubscriptionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsTriggerSubscriptionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessFeedsTriggerSubscriptionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/subscriptions/{subscriptionId}/trigger", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsTriggerSubscriptionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUnsubscribeAgent.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUnsubscribeAgent.g.cs index e3c52203..bdaf80d0 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUnsubscribeAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUnsubscribeAgent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsUnsubscribeAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsUnsubscribeAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessFeedsUnsubscribeAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/unsubscribe", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsUnsubscribeAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUpdateAllSubscriptionsCron.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUpdateAllSubscriptionsCron.g.cs index 66487996..d6d5df62 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUpdateAllSubscriptionsCron.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUpdateAllSubscriptionsCron.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsUpdateAllSubscriptionsCronServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsUpdateAllSubscriptionsCronSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessFeedsUpdateAllSubscriptionsCronResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/subscriptions/cron", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsUpdateAllSubscriptionsCronServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUpdateSubscription.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUpdateSubscription.g.cs index 9f1bd5e7..8095a458 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUpdateSubscription.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.FeedsUpdateSubscription.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FeedsClient { + private static readonly global::Letta.AutoSDKServer[] s_FeedsUpdateSubscriptionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_FeedsUpdateSubscriptionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessFeedsUpdateSubscriptionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/feeds/{feedId}/subscriptions/{subscriptionId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_FeedsUpdateSubscriptionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FeedsClient.g.cs b/src/libs/Letta/Generated/Letta.FeedsClient.g.cs index 5f0d713b..ab45ab2f 100644 --- a/src/libs/Letta/Generated/Letta.FeedsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.FeedsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class FeedsClient : global::Letta.IFeedsClient, global::Sy public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class FeedsClient : global::Letta.IFeedsClient, global::Sy /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the FeedsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public FeedsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.CountFolders.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.CountFolders.g.cs index ddded86b..eb17f7d9 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.CountFolders.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.CountFolders.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_CountFoldersServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CountFoldersSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessCountFoldersResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/folders/count", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CountFoldersServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.CreateFolder.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.CreateFolder.g.cs index 66e7edd4..e5faa48c 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.CreateFolder.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.CreateFolder.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateFolderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateFolderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessCreateFolderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/folders/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateFolderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.DeleteFileFromFolder.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.DeleteFileFromFolder.g.cs index 8caac6b9..c0d03cb3 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.DeleteFileFromFolder.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.DeleteFileFromFolder.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteFileFromFolderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteFileFromFolderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -88,7 +101,9 @@ partial void ProcessDeleteFileFromFolderResponse( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}/{fileId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteFileFromFolderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.DeleteFolder.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.DeleteFolder.g.cs index d7f872da..15a42e88 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.DeleteFolder.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.DeleteFolder.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteFolderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteFolderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessDeleteFolderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteFolderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.ListAgentsForFolder.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.ListAgentsForFolder.g.cs index 9fe6a0f1..e68da494 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.ListAgentsForFolder.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.ListAgentsForFolder.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_ListAgentsForFolderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListAgentsForFolderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListAgentsForFolderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}/agents", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListAgentsForFolderServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.ListFilesForFolder.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.ListFilesForFolder.g.cs index 3885bf16..dfa3f7bd 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.ListFilesForFolder.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.ListFilesForFolder.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_ListFilesForFolderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListFilesForFolderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -132,7 +145,9 @@ partial void ProcessListFilesForFolderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}/files", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListFilesForFolderServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.ListFolderPassages.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.ListFolderPassages.g.cs index 8d0a5ea9..477d97b3 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.ListFolderPassages.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.ListFolderPassages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_ListFolderPassagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListFolderPassagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListFolderPassagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}/passages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListFolderPassagesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.ListFolders.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.ListFolders.g.cs index 7ef3b82c..9c97327f 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.ListFolders.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.ListFolders.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_ListFoldersServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListFoldersSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListFoldersResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/folders/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListFoldersServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.ModifyFolder.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.ModifyFolder.g.cs index 6965ada6..29a5e454 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.ModifyFolder.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.ModifyFolder.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyFolderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyFolderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessModifyFolderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyFolderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveFile.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveFile.g.cs index a6d7a088..7fc9df12 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveFile.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveFile.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveFileServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveFileSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -101,7 +114,9 @@ partial void ProcessRetrieveFileResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}/files/{fileId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveFileServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("include_content", includeContent?.ToString().ToLowerInvariant()) ; diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveFolder.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveFolder.g.cs index 7b5743c8..7fe7dfde 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveFolder.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveFolder.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveFolderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveFolderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveFolderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveFolderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveMetadata.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveMetadata.g.cs index 8382cf89..cd410b5c 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveMetadata.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.RetrieveMetadata.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveMetadataServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveMetadataSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessRetrieveMetadataResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/folders/metadata", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveMetadataServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("include_detailed_per_source_metadata", includeDetailedPerSourceMetadata?.ToString().ToLowerInvariant()) ; diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.UploadFileToFolder.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.UploadFileToFolder.g.cs index 534c80a5..a379fabe 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.UploadFileToFolder.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.UploadFileToFolder.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class FoldersClient { + private static readonly global::Letta.AutoSDKServer[] s_UploadFileToFolderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_UploadFileToFolderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -109,7 +122,9 @@ partial void ProcessUploadFileToFolderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/folders/{folderId}/upload", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_UploadFileToFolderServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("duplicate_handling", duplicateHandling?.ToValueString()) .AddOptionalParameter("name", name) diff --git a/src/libs/Letta/Generated/Letta.FoldersClient.g.cs b/src/libs/Letta/Generated/Letta.FoldersClient.g.cs index 56e900bf..a3a22297 100644 --- a/src/libs/Letta/Generated/Letta.FoldersClient.g.cs +++ b/src/libs/Letta/Generated/Letta.FoldersClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class FoldersClient : global::Letta.IFoldersClient, global public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class FoldersClient : global::Letta.IFoldersClient, global /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the FoldersClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public FoldersClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.HealthClient.CheckHealth.g.cs b/src/libs/Letta/Generated/Letta.HealthClient.CheckHealth.g.cs index 5cc3b7a9..14fd301e 100644 --- a/src/libs/Letta/Generated/Letta.HealthClient.CheckHealth.g.cs +++ b/src/libs/Letta/Generated/Letta.HealthClient.CheckHealth.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class HealthClient { + private static readonly global::Letta.AutoSDKServer[] s_CheckHealthServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CheckHealthSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessCheckHealthResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/health/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CheckHealthServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.HealthClient.CheckReadiness.g.cs b/src/libs/Letta/Generated/Letta.HealthClient.CheckReadiness.g.cs index 6a74bbd4..1b221e78 100644 --- a/src/libs/Letta/Generated/Letta.HealthClient.CheckReadiness.g.cs +++ b/src/libs/Letta/Generated/Letta.HealthClient.CheckReadiness.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class HealthClient { + private static readonly global::Letta.AutoSDKServer[] s_CheckReadinessServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CheckReadinessSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessCheckReadinessResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/ready/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CheckReadinessServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.HealthClient.g.cs b/src/libs/Letta/Generated/Letta.HealthClient.g.cs index bf3945f7..eabcbb3c 100644 --- a/src/libs/Letta/Generated/Letta.HealthClient.g.cs +++ b/src/libs/Letta/Generated/Letta.HealthClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class HealthClient : global::Letta.IHealthClient, global:: public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class HealthClient : global::Letta.IHealthClient, global:: /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the HealthClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public HealthClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.IAgentsClient.g.cs b/src/libs/Letta/Generated/Letta.IAgentsClient.g.cs index ed210642..39255f75 100644 --- a/src/libs/Letta/Generated/Letta.IAgentsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IAgentsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IAgentsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IAgentsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IArchivesClient.g.cs b/src/libs/Letta/Generated/Letta.IArchivesClient.g.cs index 95208e10..d4b1aaea 100644 --- a/src/libs/Letta/Generated/Letta.IArchivesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IArchivesClient.g.cs @@ -19,6 +19,27 @@ public partial interface IArchivesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IArchivesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IBlocksClient.g.cs b/src/libs/Letta/Generated/Letta.IBlocksClient.g.cs index 82413991..6688dc5f 100644 --- a/src/libs/Letta/Generated/Letta.IBlocksClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IBlocksClient.g.cs @@ -19,6 +19,27 @@ public partial interface IBlocksClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IBlocksClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IChatClient.g.cs b/src/libs/Letta/Generated/Letta.IChatClient.g.cs index 17e027d8..e7b1f911 100644 --- a/src/libs/Letta/Generated/Letta.IChatClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IChatClient.g.cs @@ -19,6 +19,27 @@ public partial interface IChatClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IChatClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IClientSideAccessTokensClient.g.cs b/src/libs/Letta/Generated/Letta.IClientSideAccessTokensClient.g.cs index 10175036..c31a7f89 100644 --- a/src/libs/Letta/Generated/Letta.IClientSideAccessTokensClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IClientSideAccessTokensClient.g.cs @@ -19,6 +19,27 @@ public partial interface IClientSideAccessTokensClient : global::System.IDisposa /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IClientSideAccessTokensClient : global::System.IDisposa /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IConversationsClient.g.cs b/src/libs/Letta/Generated/Letta.IConversationsClient.g.cs index 74ed60fa..3ba50bfb 100644 --- a/src/libs/Letta/Generated/Letta.IConversationsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IConversationsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IConversationsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IConversationsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IDeviceStorageClient.g.cs b/src/libs/Letta/Generated/Letta.IDeviceStorageClient.g.cs index 1018ee10..1026d9c1 100644 --- a/src/libs/Letta/Generated/Letta.IDeviceStorageClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IDeviceStorageClient.g.cs @@ -19,6 +19,27 @@ public partial interface IDeviceStorageClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IDeviceStorageClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IEmbeddingsClient.g.cs b/src/libs/Letta/Generated/Letta.IEmbeddingsClient.g.cs index 55f9f3ae..b92dfaf2 100644 --- a/src/libs/Letta/Generated/Letta.IEmbeddingsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IEmbeddingsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IEmbeddingsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IEmbeddingsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IEnvironmentsClient.g.cs b/src/libs/Letta/Generated/Letta.IEnvironmentsClient.g.cs index 41eaaebb..0484a00a 100644 --- a/src/libs/Letta/Generated/Letta.IEnvironmentsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IEnvironmentsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IEnvironmentsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IEnvironmentsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IFeedsClient.g.cs b/src/libs/Letta/Generated/Letta.IFeedsClient.g.cs index 1685c665..b3dbe9c2 100644 --- a/src/libs/Letta/Generated/Letta.IFeedsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IFeedsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IFeedsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IFeedsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IFoldersClient.g.cs b/src/libs/Letta/Generated/Letta.IFoldersClient.g.cs index d0140d32..c515fbe3 100644 --- a/src/libs/Letta/Generated/Letta.IFoldersClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IFoldersClient.g.cs @@ -19,6 +19,27 @@ public partial interface IFoldersClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IFoldersClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IHealthClient.g.cs b/src/libs/Letta/Generated/Letta.IHealthClient.g.cs index e06bd9ca..9bf604e5 100644 --- a/src/libs/Letta/Generated/Letta.IHealthClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IHealthClient.g.cs @@ -19,6 +19,27 @@ public partial interface IHealthClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IHealthClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IInternalAgentsClient.g.cs b/src/libs/Letta/Generated/Letta.IInternalAgentsClient.g.cs index 6c6f5bea..f93c9a51 100644 --- a/src/libs/Letta/Generated/Letta.IInternalAgentsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IInternalAgentsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IInternalAgentsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IInternalAgentsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IInternalBlocksClient.g.cs b/src/libs/Letta/Generated/Letta.IInternalBlocksClient.g.cs index cc332249..24c7ff62 100644 --- a/src/libs/Letta/Generated/Letta.IInternalBlocksClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IInternalBlocksClient.g.cs @@ -19,6 +19,27 @@ public partial interface IInternalBlocksClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IInternalBlocksClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IInternalRunsClient.g.cs b/src/libs/Letta/Generated/Letta.IInternalRunsClient.g.cs index 1d83641c..43ba5593 100644 --- a/src/libs/Letta/Generated/Letta.IInternalRunsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IInternalRunsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IInternalRunsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IInternalRunsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IInternalTemplatesClient.g.cs b/src/libs/Letta/Generated/Letta.IInternalTemplatesClient.g.cs index 192dec3d..28d42c1d 100644 --- a/src/libs/Letta/Generated/Letta.IInternalTemplatesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IInternalTemplatesClient.g.cs @@ -19,6 +19,27 @@ public partial interface IInternalTemplatesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IInternalTemplatesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IJobsClient.g.cs b/src/libs/Letta/Generated/Letta.IJobsClient.g.cs index 9e267c39..829d11cc 100644 --- a/src/libs/Letta/Generated/Letta.IJobsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IJobsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IJobsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IJobsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.ILettaClient.g.cs b/src/libs/Letta/Generated/Letta.ILettaClient.g.cs index 6e97477d..fa3c45dd 100644 --- a/src/libs/Letta/Generated/Letta.ILettaClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ILettaClient.g.cs @@ -19,6 +19,27 @@ public partial interface ILettaClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface ILettaClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IMcpServersClient.g.cs b/src/libs/Letta/Generated/Letta.IMcpServersClient.g.cs index 4f02a6b7..1f86fa2d 100644 --- a/src/libs/Letta/Generated/Letta.IMcpServersClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IMcpServersClient.g.cs @@ -19,6 +19,27 @@ public partial interface IMcpServersClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IMcpServersClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IMemoryFilesClient.g.cs b/src/libs/Letta/Generated/Letta.IMemoryFilesClient.g.cs index c62a37f1..d3c4e09e 100644 --- a/src/libs/Letta/Generated/Letta.IMemoryFilesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IMemoryFilesClient.g.cs @@ -19,6 +19,27 @@ public partial interface IMemoryFilesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IMemoryFilesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IMessagesClient.g.cs b/src/libs/Letta/Generated/Letta.IMessagesClient.g.cs index 38e99db1..715018a8 100644 --- a/src/libs/Letta/Generated/Letta.IMessagesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IMessagesClient.g.cs @@ -19,6 +19,27 @@ public partial interface IMessagesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IMessagesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IMetadataClient.g.cs b/src/libs/Letta/Generated/Letta.IMetadataClient.g.cs index 87f684ee..ba1f6ccb 100644 --- a/src/libs/Letta/Generated/Letta.IMetadataClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IMetadataClient.g.cs @@ -19,6 +19,27 @@ public partial interface IMetadataClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IMetadataClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IModelsClient.g.cs b/src/libs/Letta/Generated/Letta.IModelsClient.g.cs index 802a3c93..6586c57b 100644 --- a/src/libs/Letta/Generated/Letta.IModelsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IModelsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IModelsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IModelsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IPassagesClient.g.cs b/src/libs/Letta/Generated/Letta.IPassagesClient.g.cs index 1aef70f8..070eb231 100644 --- a/src/libs/Letta/Generated/Letta.IPassagesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IPassagesClient.g.cs @@ -19,6 +19,27 @@ public partial interface IPassagesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IPassagesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IPipelinesClient.g.cs b/src/libs/Letta/Generated/Letta.IPipelinesClient.g.cs index 2567a16a..84b65f3b 100644 --- a/src/libs/Letta/Generated/Letta.IPipelinesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IPipelinesClient.g.cs @@ -19,6 +19,27 @@ public partial interface IPipelinesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IPipelinesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IProjectsClient.g.cs b/src/libs/Letta/Generated/Letta.IProjectsClient.g.cs index 75828320..6b9698c2 100644 --- a/src/libs/Letta/Generated/Letta.IProjectsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IProjectsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IProjectsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IProjectsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IProvidersClient.g.cs b/src/libs/Letta/Generated/Letta.IProvidersClient.g.cs index 8314be98..0cc9d6d2 100644 --- a/src/libs/Letta/Generated/Letta.IProvidersClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IProvidersClient.g.cs @@ -19,6 +19,27 @@ public partial interface IProvidersClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IProvidersClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IRunsClient.g.cs b/src/libs/Letta/Generated/Letta.IRunsClient.g.cs index 65ed85d5..7aebebc8 100644 --- a/src/libs/Letta/Generated/Letta.IRunsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IRunsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IRunsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IRunsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.ISandboxesClient.g.cs b/src/libs/Letta/Generated/Letta.ISandboxesClient.g.cs index 533fa28b..a21971d8 100644 --- a/src/libs/Letta/Generated/Letta.ISandboxesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ISandboxesClient.g.cs @@ -19,6 +19,27 @@ public partial interface ISandboxesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface ISandboxesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IScheduledMessagesClient.g.cs b/src/libs/Letta/Generated/Letta.IScheduledMessagesClient.g.cs index d492f476..dfffa19f 100644 --- a/src/libs/Letta/Generated/Letta.IScheduledMessagesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IScheduledMessagesClient.g.cs @@ -19,6 +19,27 @@ public partial interface IScheduledMessagesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IScheduledMessagesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IStepsClient.g.cs b/src/libs/Letta/Generated/Letta.IStepsClient.g.cs index 7c9ac24b..1521742a 100644 --- a/src/libs/Letta/Generated/Letta.IStepsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IStepsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IStepsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IStepsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.ITagClient.g.cs b/src/libs/Letta/Generated/Letta.ITagClient.g.cs index 3d37ca2d..406e4118 100644 --- a/src/libs/Letta/Generated/Letta.ITagClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ITagClient.g.cs @@ -19,6 +19,27 @@ public partial interface ITagClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface ITagClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.ITemplatesClient.g.cs b/src/libs/Letta/Generated/Letta.ITemplatesClient.g.cs index 826fef14..355186ec 100644 --- a/src/libs/Letta/Generated/Letta.ITemplatesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ITemplatesClient.g.cs @@ -19,6 +19,27 @@ public partial interface ITemplatesClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface ITemplatesClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.IToolsClient.g.cs b/src/libs/Letta/Generated/Letta.IToolsClient.g.cs index 57987441..31e4ed07 100644 --- a/src/libs/Letta/Generated/Letta.IToolsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.IToolsClient.g.cs @@ -19,6 +19,27 @@ public partial interface IToolsClient : global::System.IDisposable /// public System.Uri? BaseUri { get; } + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers { get; } + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId); + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer(); + /// /// The authorizations to use for the requests. /// @@ -32,12 +53,12 @@ public partial interface IToolsClient : global::System.IDisposable /// ensuring is populated. /// public bool ReadResponseAsString { get; set; } - /// /// Client-wide request defaults such as headers, query parameters, retries, and timeout. /// public global::Letta.AutoSDKClientOptions Options { get; } + /// /// /// diff --git a/src/libs/Letta/Generated/Letta.InternalAgentsClient.CountInternalAgents.g.cs b/src/libs/Letta/Generated/Letta.InternalAgentsClient.CountInternalAgents.g.cs index 8e8f1a5d..266cc09d 100644 --- a/src/libs/Letta/Generated/Letta.InternalAgentsClient.CountInternalAgents.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalAgentsClient.CountInternalAgents.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalAgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_CountInternalAgentsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CountInternalAgentsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessCountInternalAgentsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/_internal_agents/count", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CountInternalAgentsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("exclude_hidden", excludeHidden?.ToString().ToLowerInvariant()) ; diff --git a/src/libs/Letta/Generated/Letta.InternalAgentsClient.ModifyInternalCoreMemoryBlock.g.cs b/src/libs/Letta/Generated/Letta.InternalAgentsClient.ModifyInternalCoreMemoryBlock.g.cs index b34bf505..6c734a49 100644 --- a/src/libs/Letta/Generated/Letta.InternalAgentsClient.ModifyInternalCoreMemoryBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalAgentsClient.ModifyInternalCoreMemoryBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalAgentsClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyInternalCoreMemoryBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyInternalCoreMemoryBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessModifyInternalCoreMemoryBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/_internal_agents/{agentId}/core-memory/blocks/{blockLabel}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyInternalCoreMemoryBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.InternalAgentsClient.g.cs b/src/libs/Letta/Generated/Letta.InternalAgentsClient.g.cs index 3cd52ff9..56bc188b 100644 --- a/src/libs/Letta/Generated/Letta.InternalAgentsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalAgentsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class InternalAgentsClient : global::Letta.IInternalAgents public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class InternalAgentsClient : global::Letta.IInternalAgents /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the InternalAgentsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public InternalAgentsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.InternalBlocksClient.CreateInternalBlock.g.cs b/src/libs/Letta/Generated/Letta.InternalBlocksClient.CreateInternalBlock.g.cs index a0b43be2..35eb1a16 100644 --- a/src/libs/Letta/Generated/Letta.InternalBlocksClient.CreateInternalBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalBlocksClient.CreateInternalBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalBlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateInternalBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateInternalBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessCreateInternalBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/_internal_blocks/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateInternalBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.InternalBlocksClient.DeleteInternalBlock.g.cs b/src/libs/Letta/Generated/Letta.InternalBlocksClient.DeleteInternalBlock.g.cs index a2cbe4f3..acefa883 100644 --- a/src/libs/Letta/Generated/Letta.InternalBlocksClient.DeleteInternalBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalBlocksClient.DeleteInternalBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalBlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteInternalBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteInternalBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -85,7 +98,9 @@ partial void ProcessDeleteInternalBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/_internal_blocks/{blockId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteInternalBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.InternalBlocksClient.ListAgentsForInternalBlock.g.cs b/src/libs/Letta/Generated/Letta.InternalBlocksClient.ListAgentsForInternalBlock.g.cs index 25dc494b..e3275d18 100644 --- a/src/libs/Letta/Generated/Letta.InternalBlocksClient.ListAgentsForInternalBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalBlocksClient.ListAgentsForInternalBlock.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class InternalBlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_ListAgentsForInternalBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListAgentsForInternalBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -142,7 +155,9 @@ partial void ProcessListAgentsForInternalBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/_internal_blocks/{blockId}/agents", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListAgentsForInternalBlockServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.InternalBlocksClient.ListInternalBlocks.g.cs b/src/libs/Letta/Generated/Letta.InternalBlocksClient.ListInternalBlocks.g.cs index b55e234b..7b632570 100644 --- a/src/libs/Letta/Generated/Letta.InternalBlocksClient.ListInternalBlocks.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalBlocksClient.ListInternalBlocks.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalBlocksClient { + private static readonly global::Letta.AutoSDKServer[] s_ListInternalBlocksServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListInternalBlocksSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -201,7 +214,9 @@ partial void ProcessListInternalBlocksResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/_internal_blocks/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListInternalBlocksServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("label", label) .AddOptionalParameter("templates_only", templatesOnly?.ToString().ToLowerInvariant()) diff --git a/src/libs/Letta/Generated/Letta.InternalBlocksClient.g.cs b/src/libs/Letta/Generated/Letta.InternalBlocksClient.g.cs index e5601c35..a0a3a519 100644 --- a/src/libs/Letta/Generated/Letta.InternalBlocksClient.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalBlocksClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class InternalBlocksClient : global::Letta.IInternalBlocks public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class InternalBlocksClient : global::Letta.IInternalBlocks /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the InternalBlocksClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public InternalBlocksClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.InternalRunsClient.ListInternalRuns.g.cs b/src/libs/Letta/Generated/Letta.InternalRunsClient.ListInternalRuns.g.cs index 47207f86..17a0a9ab 100644 --- a/src/libs/Letta/Generated/Letta.InternalRunsClient.ListInternalRuns.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalRunsClient.ListInternalRuns.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class InternalRunsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListInternalRunsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListInternalRunsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -255,7 +268,9 @@ partial void ProcessListInternalRunsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/_internal_runs/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListInternalRunsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("run_id", runId) .AddOptionalParameter("agent_id", agentId) diff --git a/src/libs/Letta/Generated/Letta.InternalRunsClient.g.cs b/src/libs/Letta/Generated/Letta.InternalRunsClient.g.cs index c3e02215..79b96ae9 100644 --- a/src/libs/Letta/Generated/Letta.InternalRunsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalRunsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class InternalRunsClient : global::Letta.IInternalRunsClie public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class InternalRunsClient : global::Letta.IInternalRunsClie /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the InternalRunsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public InternalRunsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateAgent.g.cs b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateAgent.g.cs index 1e9d4460..469f2c4f 100644 --- a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateAgent.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateAgent.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class InternalTemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateInternalTemplateAgentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateInternalTemplateAgentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessCreateInternalTemplateAgentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/_internal_templates/agents", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateInternalTemplateAgentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateBlock.g.cs b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateBlock.g.cs index e01da2c9..02760d79 100644 --- a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateBlock.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateBlock.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalTemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateInternalTemplateBlockServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateInternalTemplateBlockSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessCreateInternalTemplateBlockResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/_internal_templates/blocks", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateInternalTemplateBlockServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateBlocksBatch.g.cs b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateBlocksBatch.g.cs index f73b7e68..7abc579b 100644 --- a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateBlocksBatch.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateBlocksBatch.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalTemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateInternalTemplateBlocksBatchServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateInternalTemplateBlocksBatchSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessCreateInternalTemplateBlocksBatchResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/_internal_templates/blocks/batch", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateInternalTemplateBlocksBatchServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateGroup.g.cs b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateGroup.g.cs index 32fd284c..d75e64ad 100644 --- a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateGroup.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.CreateInternalTemplateGroup.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class InternalTemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateInternalTemplateGroupServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateInternalTemplateGroupSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessCreateInternalTemplateGroupResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/_internal_templates/groups", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateInternalTemplateGroupServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.DeleteDeployment.g.cs b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.DeleteDeployment.g.cs index 711ba078..686263e6 100644 --- a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.DeleteDeployment.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.DeleteDeployment.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalTemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteDeploymentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteDeploymentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -85,7 +98,9 @@ partial void ProcessDeleteDeploymentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/_internal_templates/deployment/{deploymentId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteDeploymentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.ListDeploymentEntities.g.cs b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.ListDeploymentEntities.g.cs index e87839cd..ef59ccbb 100644 --- a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.ListDeploymentEntities.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.ListDeploymentEntities.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class InternalTemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_ListDeploymentEntitiesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListDeploymentEntitiesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessListDeploymentEntitiesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/_internal_templates/deployment/{deploymentId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListDeploymentEntitiesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("entity_types", entityTypes?.ToString()) ; diff --git a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.g.cs b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.g.cs index b6cfba21..9c4f3f1a 100644 --- a/src/libs/Letta/Generated/Letta.InternalTemplatesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.InternalTemplatesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class InternalTemplatesClient : global::Letta.IInternalTem public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class InternalTemplatesClient : global::Letta.IInternalTem /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the InternalTemplatesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public InternalTemplatesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.JobsClient.CancelJob.g.cs b/src/libs/Letta/Generated/Letta.JobsClient.CancelJob.g.cs index d0bfe552..01855741 100644 --- a/src/libs/Letta/Generated/Letta.JobsClient.CancelJob.g.cs +++ b/src/libs/Letta/Generated/Letta.JobsClient.CancelJob.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class JobsClient { + private static readonly global::Letta.AutoSDKServer[] s_CancelJobServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CancelJobSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -88,7 +101,9 @@ partial void ProcessCancelJobResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/jobs/{jobId}/cancel", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CancelJobServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.JobsClient.DeleteJob.g.cs b/src/libs/Letta/Generated/Letta.JobsClient.DeleteJob.g.cs index f8719385..220f7035 100644 --- a/src/libs/Letta/Generated/Letta.JobsClient.DeleteJob.g.cs +++ b/src/libs/Letta/Generated/Letta.JobsClient.DeleteJob.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class JobsClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteJobServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteJobSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessDeleteJobResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/jobs/{jobId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteJobServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.JobsClient.ListJobs.g.cs b/src/libs/Letta/Generated/Letta.JobsClient.ListJobs.g.cs index 3ef5fd46..c43f5e70 100644 --- a/src/libs/Letta/Generated/Letta.JobsClient.ListJobs.g.cs +++ b/src/libs/Letta/Generated/Letta.JobsClient.ListJobs.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class JobsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListJobsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListJobsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -142,7 +155,9 @@ partial void ProcessListJobsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/jobs/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListJobsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("source_id", sourceId) .AddOptionalParameter("before", before) diff --git a/src/libs/Letta/Generated/Letta.JobsClient.RetrieveJob.g.cs b/src/libs/Letta/Generated/Letta.JobsClient.RetrieveJob.g.cs index 15322616..71268496 100644 --- a/src/libs/Letta/Generated/Letta.JobsClient.RetrieveJob.g.cs +++ b/src/libs/Letta/Generated/Letta.JobsClient.RetrieveJob.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class JobsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveJobServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveJobSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveJobResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/jobs/{jobId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveJobServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.JobsClient.g.cs b/src/libs/Letta/Generated/Letta.JobsClient.g.cs index 2197d2c9..0aa502d7 100644 --- a/src/libs/Letta/Generated/Letta.JobsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.JobsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class JobsClient : global::Letta.IJobsClient, global::Syst public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class JobsClient : global::Letta.IJobsClient, global::Syst /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the JobsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public JobsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.LettaClient.g.cs b/src/libs/Letta/Generated/Letta.LettaClient.g.cs index f37b61ae..39cc0ce6 100644 --- a/src/libs/Letta/Generated/Letta.LettaClient.g.cs +++ b/src/libs/Letta/Generated/Letta.LettaClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,6 +33,9 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// @@ -46,6 +49,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -55,6 +59,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -64,6 +69,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -73,6 +79,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -82,6 +89,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -91,6 +99,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -100,6 +109,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -109,6 +119,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -118,6 +129,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -127,6 +139,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -136,6 +149,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -145,6 +159,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -154,6 +169,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -163,6 +179,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -172,6 +189,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -181,6 +199,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -190,6 +209,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -199,6 +219,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -208,6 +229,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -217,6 +239,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -226,6 +249,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -235,6 +259,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -244,6 +269,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -253,6 +279,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -262,6 +289,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -271,6 +299,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -280,6 +309,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -289,6 +319,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -298,6 +329,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -307,6 +339,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -316,6 +349,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -325,6 +359,7 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, }; /// @@ -334,8 +369,37 @@ public sealed partial class LettaClient : global::Letta.ILettaClient, global::Sy { ReadResponseAsString = ReadResponseAsString, JsonSerializerContext = JsonSerializerContext, + AutoSDKServerConfiguration = AutoSDKServerConfiguration, + }; + + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), }; + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the LettaClient. /// If no httpClient is provided, a new one will be created. @@ -382,6 +446,8 @@ public LettaClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -408,5 +474,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpConnectMcpServer.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpConnectMcpServer.g.cs index b24c71d5..bae1d95c 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpConnectMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpConnectMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpConnectMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpConnectMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -85,7 +98,9 @@ partial void ProcessMcpConnectMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/mcp-servers/connect/{mcpServerId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpConnectMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpCreateMcpServer.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpCreateMcpServer.g.cs index 410cb20f..e830ec8b 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpCreateMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpCreateMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpCreateMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpCreateMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessMcpCreateMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/mcp-servers/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpCreateMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpDeleteMcpServer.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpDeleteMcpServer.g.cs index 04fbe691..3e5ed873 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpDeleteMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpDeleteMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpDeleteMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpDeleteMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessMcpDeleteMcpServerResponse( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/mcp-servers/{mcpServerId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpDeleteMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpListMcpServers.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpListMcpServers.g.cs index 91cc99a0..ff17ff58 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpListMcpServers.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpListMcpServers.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpListMcpServersServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpListMcpServersSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessMcpListMcpServersResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/mcp-servers/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpListMcpServersServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpListToolsForMcpServer.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpListToolsForMcpServer.g.cs index a9126349..7130ae2e 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpListToolsForMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpListToolsForMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpListToolsForMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpListToolsForMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessMcpListToolsForMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/mcp-servers/{mcpServerId}/tools", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpListToolsForMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpRefreshMcpServerTools.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpRefreshMcpServerTools.g.cs index b723fd50..ff38363f 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpRefreshMcpServerTools.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpRefreshMcpServerTools.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpRefreshMcpServerToolsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpRefreshMcpServerToolsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessMcpRefreshMcpServerToolsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/mcp-servers/{mcpServerId}/refresh", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpRefreshMcpServerToolsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agent_id", agentId) ; diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpRetrieveMcpServer.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpRetrieveMcpServer.g.cs index 972786fd..4142066c 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpRetrieveMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpRetrieveMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpRetrieveMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpRetrieveMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessMcpRetrieveMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/mcp-servers/{mcpServerId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpRetrieveMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpRetrieveMcpTool.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpRetrieveMcpTool.g.cs index 5ae9722e..6c11f21b 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpRetrieveMcpTool.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpRetrieveMcpTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpRetrieveMcpToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpRetrieveMcpToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessMcpRetrieveMcpToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/mcp-servers/{mcpServerId}/tools/{toolId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpRetrieveMcpToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpRunTool.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpRunTool.g.cs index 8dfffce6..de61691c 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpRunTool.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpRunTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpRunToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpRunToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -98,7 +111,9 @@ partial void ProcessMcpRunToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/mcp-servers/{mcpServerId}/tools/{toolId}/run", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpRunToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.McpUpdateMcpServer.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.McpUpdateMcpServer.g.cs index 055c9ce2..8df719f5 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.McpUpdateMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.McpUpdateMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class McpServersClient { + private static readonly global::Letta.AutoSDKServer[] s_McpUpdateMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpUpdateMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessMcpUpdateMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/mcp-servers/{mcpServerId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpUpdateMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.McpServersClient.g.cs b/src/libs/Letta/Generated/Letta.McpServersClient.g.cs index 04c2d88b..11ddf428 100644 --- a/src/libs/Letta/Generated/Letta.McpServersClient.g.cs +++ b/src/libs/Letta/Generated/Letta.McpServersClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class McpServersClient : global::Letta.IMcpServersClient, public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class McpServersClient : global::Letta.IMcpServersClient, /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the McpServersClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public McpServersClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesGetFileHistory.g.cs b/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesGetFileHistory.g.cs index e583dcab..70272d1e 100644 --- a/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesGetFileHistory.g.cs +++ b/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesGetFileHistory.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MemoryFilesClient { + private static readonly global::Letta.AutoSDKServer[] s_MemoryFilesGetFileHistoryServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_MemoryFilesGetFileHistorySecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessMemoryFilesGetFileHistoryResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/memory-files/history", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_MemoryFilesGetFileHistoryServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddRequiredParameter("file_path", filePath) .AddOptionalParameter("limit", limit?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesListDirectory.g.cs b/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesListDirectory.g.cs index ec99d41d..9877bcb9 100644 --- a/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesListDirectory.g.cs +++ b/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesListDirectory.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MemoryFilesClient { + private static readonly global::Letta.AutoSDKServer[] s_MemoryFilesListDirectoryServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_MemoryFilesListDirectorySecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessMemoryFilesListDirectoryResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/memory-files/directory", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_MemoryFilesListDirectoryServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("path", path) .AddOptionalParameter("depth", depth?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesReadFileContent.g.cs b/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesReadFileContent.g.cs index e12e9ce5..c56f391b 100644 --- a/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesReadFileContent.g.cs +++ b/src/libs/Letta/Generated/Letta.MemoryFilesClient.MemoryFilesReadFileContent.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MemoryFilesClient { + private static readonly global::Letta.AutoSDKServer[] s_MemoryFilesReadFileContentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_MemoryFilesReadFileContentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessMemoryFilesReadFileContentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/memory-files/content", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_MemoryFilesReadFileContentServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddRequiredParameter("file_path", filePath) .AddOptionalParameter("ref", @ref) diff --git a/src/libs/Letta/Generated/Letta.MemoryFilesClient.g.cs b/src/libs/Letta/Generated/Letta.MemoryFilesClient.g.cs index fbcab555..5b0e3455 100644 --- a/src/libs/Letta/Generated/Letta.MemoryFilesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.MemoryFilesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class MemoryFilesClient : global::Letta.IMemoryFilesClient public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class MemoryFilesClient : global::Letta.IMemoryFilesClient /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the MemoryFilesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public MemoryFilesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.CancelBatch.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.CancelBatch.g.cs index 07303c2f..633c55cb 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.CancelBatch.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.CancelBatch.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_CancelBatchServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CancelBatchSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessCancelBatchResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/messages/batches/{batchId}/cancel", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CancelBatchServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.CreateBatch.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.CreateBatch.g.cs index 822f94fe..4d55a851 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.CreateBatch.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.CreateBatch.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateBatchServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateBatchSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessCreateBatchResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/messages/batches", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateBatchServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.ListAllMessages.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.ListAllMessages.g.cs index 15c3c119..e0aa0501 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.ListAllMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.ListAllMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_ListAllMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListAllMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -123,7 +136,9 @@ partial void ProcessListAllMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/messages/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListAllMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.ListBatches.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.ListBatches.g.cs index 7abdfa8e..975ebec9 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.ListBatches.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.ListBatches.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_ListBatchesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListBatchesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -117,7 +130,9 @@ partial void ProcessListBatchesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/messages/batches", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListBatchesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.ListMessagesForBatch.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.ListMessagesForBatch.g.cs index 6518d548..1c61a6b6 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.ListMessagesForBatch.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.ListMessagesForBatch.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_ListMessagesForBatchServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListMessagesForBatchSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -129,7 +142,9 @@ partial void ProcessListMessagesForBatchResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/messages/batches/{batchId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListMessagesForBatchServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.RetrieveBatch.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.RetrieveBatch.g.cs index 63e8f172..2637c30b 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.RetrieveBatch.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.RetrieveBatch.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveBatchServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveBatchSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessRetrieveBatchResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/messages/batches/{batchId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveBatchServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.RetrieveMessage.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.RetrieveMessage.g.cs index 84a907a6..beb86d15 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.RetrieveMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.RetrieveMessage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/messages/{messageId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.SearchAllMessages.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.SearchAllMessages.g.cs index 92c17da6..d98ce42a 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.SearchAllMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.SearchAllMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_SearchAllMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SearchAllMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessSearchAllMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/messages/search", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SearchAllMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MessagesClient.g.cs b/src/libs/Letta/Generated/Letta.MessagesClient.g.cs index 013e6aad..104cc0ea 100644 --- a/src/libs/Letta/Generated/Letta.MessagesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.MessagesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class MessagesClient : global::Letta.IMessagesClient, glob public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class MessagesClient : global::Letta.IMessagesClient, glob /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the MessagesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public MessagesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataGetStatus.g.cs b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataGetStatus.g.cs index 5b7598d4..e31e25ca 100644 --- a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataGetStatus.g.cs +++ b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataGetStatus.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MetadataClient { + private static readonly global::Letta.AutoSDKServer[] s_MetadataGetStatusServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_MetadataGetStatusSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -78,7 +91,9 @@ partial void ProcessMetadataGetStatusResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/metadata/status", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_MetadataGetStatusServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataGetUser.g.cs b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataGetUser.g.cs index ff78c87f..87a9044f 100644 --- a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataGetUser.g.cs +++ b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataGetUser.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MetadataClient { + private static readonly global::Letta.AutoSDKServer[] s_MetadataGetUserServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_MetadataGetUserSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessMetadataGetUserResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/metadata/user", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_MetadataGetUserServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataRetrieveCurrentBalances.g.cs b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataRetrieveCurrentBalances.g.cs index bb8316e1..d94fc04f 100644 --- a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataRetrieveCurrentBalances.g.cs +++ b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataRetrieveCurrentBalances.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MetadataClient { + private static readonly global::Letta.AutoSDKServer[] s_MetadataRetrieveCurrentBalancesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_MetadataRetrieveCurrentBalancesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessMetadataRetrieveCurrentBalancesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/metadata/balance", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_MetadataRetrieveCurrentBalancesServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataSendFeedback.g.cs b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataSendFeedback.g.cs index 4be4d9ba..56c1ad35 100644 --- a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataSendFeedback.g.cs +++ b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataSendFeedback.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MetadataClient { + private static readonly global::Letta.AutoSDKServer[] s_MetadataSendFeedbackServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_MetadataSendFeedbackSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessMetadataSendFeedbackResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/metadata/feedback", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_MetadataSendFeedbackServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataSendTelemetry.g.cs b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataSendTelemetry.g.cs index b20dcff2..de68ca13 100644 --- a/src/libs/Letta/Generated/Letta.MetadataClient.MetadataSendTelemetry.g.cs +++ b/src/libs/Letta/Generated/Letta.MetadataClient.MetadataSendTelemetry.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class MetadataClient { + private static readonly global::Letta.AutoSDKServer[] s_MetadataSendTelemetryServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_MetadataSendTelemetrySecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessMetadataSendTelemetryResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/metadata/telemetry", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_MetadataSendTelemetryServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.MetadataClient.g.cs b/src/libs/Letta/Generated/Letta.MetadataClient.g.cs index 0bb44258..a61f52ea 100644 --- a/src/libs/Letta/Generated/Letta.MetadataClient.g.cs +++ b/src/libs/Letta/Generated/Letta.MetadataClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class MetadataClient : global::Letta.IMetadataClient, glob public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class MetadataClient : global::Letta.IMetadataClient, glob /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the MetadataClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public MetadataClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ModelsClient.ListEmbeddingModels.g.cs b/src/libs/Letta/Generated/Letta.ModelsClient.ListEmbeddingModels.g.cs index 080465ce..6da76c0b 100644 --- a/src/libs/Letta/Generated/Letta.ModelsClient.ListEmbeddingModels.g.cs +++ b/src/libs/Letta/Generated/Letta.ModelsClient.ListEmbeddingModels.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ModelsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListEmbeddingModelsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListEmbeddingModelsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -81,7 +94,9 @@ partial void ProcessListEmbeddingModelsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/models/embedding", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListEmbeddingModelsServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ModelsClient.ListModels.g.cs b/src/libs/Letta/Generated/Letta.ModelsClient.ListModels.g.cs index 98cec2e8..8d03e3db 100644 --- a/src/libs/Letta/Generated/Letta.ModelsClient.ListModels.g.cs +++ b/src/libs/Letta/Generated/Letta.ModelsClient.ListModels.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ModelsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListModelsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListModelsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -96,7 +109,9 @@ partial void ProcessListModelsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/models/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListModelsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("provider_category", providerCategory?.ToString()) .AddOptionalParameter("provider_name", providerName) diff --git a/src/libs/Letta/Generated/Letta.ModelsClient.ModelsListEmbeddingModels.g.cs b/src/libs/Letta/Generated/Letta.ModelsClient.ModelsListEmbeddingModels.g.cs index 6e62a54c..fd5decd0 100644 --- a/src/libs/Letta/Generated/Letta.ModelsClient.ModelsListEmbeddingModels.g.cs +++ b/src/libs/Letta/Generated/Letta.ModelsClient.ModelsListEmbeddingModels.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ModelsClient { + private static readonly global::Letta.AutoSDKServer[] s_ModelsListEmbeddingModelsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModelsListEmbeddingModelsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -73,7 +86,9 @@ partial void ProcessModelsListEmbeddingModelsResponse( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/models/embeddings", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModelsListEmbeddingModelsServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ModelsClient.g.cs b/src/libs/Letta/Generated/Letta.ModelsClient.g.cs index 4005ea24..e408e174 100644 --- a/src/libs/Letta/Generated/Letta.ModelsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ModelsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ModelsClient : global::Letta.IModelsClient, global:: public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ModelsClient : global::Letta.IModelsClient, global:: /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ModelsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ModelsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.OptionsSupport.g.cs b/src/libs/Letta/Generated/Letta.OptionsSupport.g.cs index 39dccab5..c254a10e 100644 --- a/src/libs/Letta/Generated/Letta.OptionsSupport.g.cs +++ b/src/libs/Letta/Generated/Letta.OptionsSupport.g.cs @@ -106,6 +106,7 @@ public sealed class AutoSDKRetryOptions public global::System.TimeSpan? Delay { get; set; } } + /// /// Runtime hook interface for generated SDK lifecycle events. /// @@ -236,6 +237,7 @@ public sealed class AutoSDKHookContext public global::System.Threading.CancellationToken CancellationToken { get; set; } } + internal static class AutoSDKRequestOptionsSupport { internal static global::Letta.AutoSDKHookContext CreateHookContext( diff --git a/src/libs/Letta/Generated/Letta.PassagesClient.SearchPassages.g.cs b/src/libs/Letta/Generated/Letta.PassagesClient.SearchPassages.g.cs index 7440d448..e0fa8d84 100644 --- a/src/libs/Letta/Generated/Letta.PassagesClient.SearchPassages.g.cs +++ b/src/libs/Letta/Generated/Letta.PassagesClient.SearchPassages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PassagesClient { + private static readonly global::Letta.AutoSDKServer[] s_SearchPassagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SearchPassagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -93,7 +106,9 @@ partial void ProcessSearchPassagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/passages/search", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SearchPassagesServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PassagesClient.g.cs b/src/libs/Letta/Generated/Letta.PassagesClient.g.cs index 551c56b4..2474d545 100644 --- a/src/libs/Letta/Generated/Letta.PassagesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.PassagesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class PassagesClient : global::Letta.IPassagesClient, glob public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class PassagesClient : global::Letta.IPassagesClient, glob /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the PassagesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public PassagesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesCountPipelines.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesCountPipelines.g.cs index 6730b26a..1b929812 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesCountPipelines.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesCountPipelines.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesCountPipelinesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesCountPipelinesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessPipelinesCountPipelinesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/pipelines/count", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesCountPipelinesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("search", search) .AddOptionalParameter("integration_type", integrationType) diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesCreatePipeline.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesCreatePipeline.g.cs index c0696f07..6617aae4 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesCreatePipeline.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesCreatePipeline.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesCreatePipelineServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesCreatePipelineSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessPipelinesCreatePipelineResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/pipelines", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesCreatePipelineServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesDeletePipeline.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesDeletePipeline.g.cs index 03a2a362..fca3221f 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesDeletePipeline.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesDeletePipeline.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesDeletePipelineServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesDeletePipelineSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessPipelinesDeletePipelineResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/pipelines/{pipelineId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesDeletePipelineServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesGetPipeline.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesGetPipeline.g.cs index b192936e..383b2f2f 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesGetPipeline.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesGetPipeline.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesGetPipelineServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesGetPipelineSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessPipelinesGetPipelineResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/pipelines/{pipelineId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesGetPipelineServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesListPipelineSyncHistory.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesListPipelineSyncHistory.g.cs index 65b0bc68..5fc01a46 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesListPipelineSyncHistory.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesListPipelineSyncHistory.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesListPipelineSyncHistoryServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesListPipelineSyncHistorySecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessPipelinesListPipelineSyncHistoryResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/pipelines/{pipelineId}/sync/history", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesListPipelineSyncHistoryServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesListPipelines.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesListPipelines.g.cs index d6de2b0a..042d53bd 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesListPipelines.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesListPipelines.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesListPipelinesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesListPipelinesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -104,7 +117,9 @@ partial void ProcessPipelinesListPipelinesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/pipelines", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesListPipelinesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("search", search) .AddOptionalParameter("integration_type", integrationType) diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesPreviewPipeline.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesPreviewPipeline.g.cs index f06c93e9..b8f549f1 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesPreviewPipeline.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesPreviewPipeline.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesPreviewPipelineServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesPreviewPipelineSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessPipelinesPreviewPipelineResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/pipelines/preview", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesPreviewPipelineServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesSyncPipeline.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesSyncPipeline.g.cs index ad179929..59f63cb7 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesSyncPipeline.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesSyncPipeline.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesSyncPipelineServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesSyncPipelineSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessPipelinesSyncPipelineResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/pipelines/{pipelineId}/sync", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesSyncPipelineServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesUpdatePipeline.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesUpdatePipeline.g.cs index 3ff2febf..fbf8a000 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesUpdatePipeline.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesUpdatePipeline.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesUpdatePipelineServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesUpdatePipelineSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessPipelinesUpdatePipelineResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/pipelines/{pipelineId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesUpdatePipelineServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesUpdatePipelineProducerConfig.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesUpdatePipelineProducerConfig.g.cs index 32a5d499..5d581254 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesUpdatePipelineProducerConfig.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.PipelinesUpdatePipelineProducerConfig.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class PipelinesClient { + private static readonly global::Letta.AutoSDKServer[] s_PipelinesUpdatePipelineProducerConfigServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_PipelinesUpdatePipelineProducerConfigSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessPipelinesUpdatePipelineProducerConfigResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/pipelines/{pipelineId}/config", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_PipelinesUpdatePipelineProducerConfigServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.PipelinesClient.g.cs b/src/libs/Letta/Generated/Letta.PipelinesClient.g.cs index 2ec25c8c..361b812c 100644 --- a/src/libs/Letta/Generated/Letta.PipelinesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.PipelinesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class PipelinesClient : global::Letta.IPipelinesClient, gl public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class PipelinesClient : global::Letta.IPipelinesClient, gl /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the PipelinesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public PipelinesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsCreateProject.g.cs b/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsCreateProject.g.cs index d962c5df..38063c78 100644 --- a/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsCreateProject.g.cs +++ b/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsCreateProject.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProjectsClient { + private static readonly global::Letta.AutoSDKServer[] s_ProjectsCreateProjectServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ProjectsCreateProjectSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessProjectsCreateProjectResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/projects", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ProjectsCreateProjectServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsDeleteProject.g.cs b/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsDeleteProject.g.cs index ff0e7b91..ed0b0600 100644 --- a/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsDeleteProject.g.cs +++ b/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsDeleteProject.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProjectsClient { + private static readonly global::Letta.AutoSDKServer[] s_ProjectsDeleteProjectServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ProjectsDeleteProjectSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessProjectsDeleteProjectResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/projects/{projectId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ProjectsDeleteProjectServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsListProjects.g.cs b/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsListProjects.g.cs index 7d872778..e5bdf0f5 100644 --- a/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsListProjects.g.cs +++ b/src/libs/Letta/Generated/Letta.ProjectsClient.ProjectsListProjects.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProjectsClient { + private static readonly global::Letta.AutoSDKServer[] s_ProjectsListProjectsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ProjectsListProjectsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessProjectsListProjectsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/projects", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ProjectsListProjectsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("name", name) .AddOptionalParameter("offset", offset?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.ProjectsClient.g.cs b/src/libs/Letta/Generated/Letta.ProjectsClient.g.cs index eee63523..aeb85f19 100644 --- a/src/libs/Letta/Generated/Letta.ProjectsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ProjectsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ProjectsClient : global::Letta.IProjectsClient, glob public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ProjectsClient : global::Letta.IProjectsClient, glob /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ProjectsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ProjectsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.CheckExistingProvider.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.CheckExistingProvider.g.cs index 491ee535..f7d7d2d2 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.CheckExistingProvider.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.CheckExistingProvider.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProvidersClient { + private static readonly global::Letta.AutoSDKServer[] s_CheckExistingProviderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CheckExistingProviderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessCheckExistingProviderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/providers/{providerId}/check", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CheckExistingProviderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.CheckProvider.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.CheckProvider.g.cs index fb720ac0..c1462983 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.CheckProvider.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.CheckProvider.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProvidersClient { + private static readonly global::Letta.AutoSDKServer[] s_CheckProviderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CheckProviderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessCheckProviderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/providers/check", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CheckProviderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.CreateProvider.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.CreateProvider.g.cs index 0143acd5..9cf9f82a 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.CreateProvider.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.CreateProvider.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProvidersClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateProviderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateProviderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessCreateProviderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/providers/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateProviderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.DeleteProvider.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.DeleteProvider.g.cs index 7d5b983e..7915057e 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.DeleteProvider.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.DeleteProvider.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProvidersClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteProviderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteProviderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessDeleteProviderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/providers/{providerId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteProviderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.ListProviders.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.ListProviders.g.cs index acc05eb6..8bdb9e3c 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.ListProviders.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.ListProviders.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProvidersClient { + private static readonly global::Letta.AutoSDKServer[] s_ListProvidersServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListProvidersSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -131,7 +144,9 @@ partial void ProcessListProvidersResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/providers/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListProvidersServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.ModifyProvider.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.ModifyProvider.g.cs index b9431d2f..c33ff5a7 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.ModifyProvider.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.ModifyProvider.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProvidersClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyProviderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyProviderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessModifyProviderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/providers/{providerId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyProviderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.RefreshProviderModels.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.RefreshProviderModels.g.cs index 42577e57..5ce88cba 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.RefreshProviderModels.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.RefreshProviderModels.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProvidersClient { + private static readonly global::Letta.AutoSDKServer[] s_RefreshProviderModelsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RefreshProviderModelsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessRefreshProviderModelsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/providers/{providerId}/refresh", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RefreshProviderModelsServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.RetrieveProvider.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.RetrieveProvider.g.cs index 0da845ac..fbf19286 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.RetrieveProvider.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.RetrieveProvider.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ProvidersClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveProviderServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveProviderSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveProviderResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/providers/{providerId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveProviderServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ProvidersClient.g.cs b/src/libs/Letta/Generated/Letta.ProvidersClient.g.cs index 8891fabf..417cd4bd 100644 --- a/src/libs/Letta/Generated/Letta.ProvidersClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ProvidersClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ProvidersClient : global::Letta.IProvidersClient, gl public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ProvidersClient : global::Letta.IProvidersClient, gl /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ProvidersClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ProvidersClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.RunsClient.DeleteRun.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.DeleteRun.g.cs index 58ceae31..007e0a37 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.DeleteRun.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.DeleteRun.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteRunServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteRunSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessDeleteRunResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/runs/{runId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteRunServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.RunsClient.ListMessagesForRun.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.ListMessagesForRun.g.cs index 4e7945a3..cb1b0347 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.ListMessagesForRun.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.ListMessagesForRun.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListMessagesForRunServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListMessagesForRunSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -122,7 +135,9 @@ partial void ProcessListMessagesForRunResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/runs/{runId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListMessagesForRunServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.RunsClient.ListRuns.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.ListRuns.g.cs index 6d7a86ba..1459124c 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.ListRuns.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.ListRuns.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListRunsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListRunsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -177,7 +190,9 @@ partial void ProcessListRunsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/runs/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListRunsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agent_id", agentId) .AddOptionalParameter("agent_ids", agentIds?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.RunsClient.ListStepsForRun.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.ListStepsForRun.g.cs index a0d14350..d119f55d 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.ListStepsForRun.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.ListStepsForRun.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListStepsForRunServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListStepsForRunSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -122,7 +135,9 @@ partial void ProcessListStepsForRunResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/runs/{runId}/steps", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListStepsForRunServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveMetricsForRun.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveMetricsForRun.g.cs index 2d14ec0f..438d4e21 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveMetricsForRun.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveMetricsForRun.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveMetricsForRunServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveMetricsForRunSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessRetrieveMetricsForRunResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/runs/{runId}/metrics", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveMetricsForRunServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveRun.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveRun.g.cs index 2143bbc7..968cd232 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveRun.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveRun.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveRunServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveRunSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessRetrieveRunResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/runs/{runId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveRunServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveStreamForRun.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveStreamForRun.g.cs index aeff3fd1..410e6e1a 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveStreamForRun.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveStreamForRun.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveStreamForRunServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveStreamForRunSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -91,7 +104,9 @@ partial void ProcessRetrieveStreamForRunResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/runs/{runId}/stream", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveStreamForRunServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveTraceForRun.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveTraceForRun.g.cs index b815a774..06dcd119 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveTraceForRun.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveTraceForRun.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveTraceForRunServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveTraceForRunSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -98,7 +111,9 @@ partial void ProcessRetrieveTraceForRunResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/runs/{runId}/trace", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveTraceForRunServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("limit", limit?.ToString()) ; diff --git a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveUsageForRun.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveUsageForRun.g.cs index f9790980..61b93826 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.RetrieveUsageForRun.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.RetrieveUsageForRun.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class RunsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveUsageForRunServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveUsageForRunSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessRetrieveUsageForRunResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/runs/{runId}/usage", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveUsageForRunServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.RunsClient.g.cs b/src/libs/Letta/Generated/Letta.RunsClient.g.cs index 0beb255b..4b29077d 100644 --- a/src/libs/Letta/Generated/Letta.RunsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.RunsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class RunsClient : global::Letta.IRunsClient, global::Syst public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class RunsClient : global::Letta.IRunsClient, global::Syst /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the RunsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public RunsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesCreateSandbox.g.cs b/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesCreateSandbox.g.cs index e8fdab3a..673ce46e 100644 --- a/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesCreateSandbox.g.cs +++ b/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesCreateSandbox.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class SandboxesClient { + private static readonly global::Letta.AutoSDKServer[] s_SandboxesCreateSandboxServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SandboxesCreateSandboxSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessSandboxesCreateSandboxResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/sandboxes", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SandboxesCreateSandboxServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesListSandboxes.g.cs b/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesListSandboxes.g.cs index b56ffe88..f58299ff 100644 --- a/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesListSandboxes.g.cs +++ b/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesListSandboxes.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class SandboxesClient { + private static readonly global::Letta.AutoSDKServer[] s_SandboxesListSandboxesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SandboxesListSandboxesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessSandboxesListSandboxesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/sandboxes", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SandboxesListSandboxesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agentId", agentId) .AddOptionalParameter("limit", limit) diff --git a/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesTerminateSandbox.g.cs b/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesTerminateSandbox.g.cs index 4c4a2a99..eecd77e6 100644 --- a/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesTerminateSandbox.g.cs +++ b/src/libs/Letta/Generated/Letta.SandboxesClient.SandboxesTerminateSandbox.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class SandboxesClient { + private static readonly global::Letta.AutoSDKServer[] s_SandboxesTerminateSandboxServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SandboxesTerminateSandboxSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessSandboxesTerminateSandboxResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/sandboxes/{sandboxId}/terminate", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SandboxesTerminateSandboxServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.SandboxesClient.g.cs b/src/libs/Letta/Generated/Letta.SandboxesClient.g.cs index 6c338bd7..3c40f9cc 100644 --- a/src/libs/Letta/Generated/Letta.SandboxesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.SandboxesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class SandboxesClient : global::Letta.ISandboxesClient, gl public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class SandboxesClient : global::Letta.ISandboxesClient, gl /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the SandboxesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public SandboxesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesDeleteScheduledMessage.g.cs b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesDeleteScheduledMessage.g.cs index ef042f14..87a3270f 100644 --- a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesDeleteScheduledMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesDeleteScheduledMessage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ScheduledMessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_ScheduledMessagesDeleteScheduledMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ScheduledMessagesDeleteScheduledMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessScheduledMessagesDeleteScheduledMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/schedule/{scheduledMessageId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ScheduledMessagesDeleteScheduledMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesListScheduledMessages.g.cs b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesListScheduledMessages.g.cs index 0844642d..f137e468 100644 --- a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesListScheduledMessages.g.cs +++ b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesListScheduledMessages.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ScheduledMessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_ScheduledMessagesListScheduledMessagesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ScheduledMessagesListScheduledMessagesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessScheduledMessagesListScheduledMessagesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/schedule", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ScheduledMessagesListScheduledMessagesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("limit", limit) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesRetrieveScheduledMessage.g.cs b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesRetrieveScheduledMessage.g.cs index f85346a4..f0a2e329 100644 --- a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesRetrieveScheduledMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesRetrieveScheduledMessage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ScheduledMessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_ScheduledMessagesRetrieveScheduledMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ScheduledMessagesRetrieveScheduledMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessScheduledMessagesRetrieveScheduledMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/schedule/{scheduledMessageId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ScheduledMessagesRetrieveScheduledMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesScheduleAgentMessage.g.cs b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesScheduleAgentMessage.g.cs index 3f658a3e..63612c35 100644 --- a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesScheduleAgentMessage.g.cs +++ b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.ScheduledMessagesScheduleAgentMessage.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ScheduledMessagesClient { + private static readonly global::Letta.AutoSDKServer[] s_ScheduledMessagesScheduleAgentMessageServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ScheduledMessagesScheduleAgentMessageSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessScheduledMessagesScheduleAgentMessageResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/agents/{agentId}/schedule", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ScheduledMessagesScheduleAgentMessageServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.g.cs b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.g.cs index f3f73aca..0a427377 100644 --- a/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ScheduledMessagesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ScheduledMessagesClient : global::Letta.IScheduledMe public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ScheduledMessagesClient : global::Letta.IScheduledMe /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ScheduledMessagesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ScheduledMessagesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ServerSelection.g.cs b/src/libs/Letta/Generated/Letta.ServerSelection.g.cs new file mode 100644 index 00000000..51abd191 --- /dev/null +++ b/src/libs/Letta/Generated/Letta.ServerSelection.g.cs @@ -0,0 +1,57 @@ +#nullable enable + +namespace Letta +{ + /// + /// Represents a concrete OpenAPI server option. + /// + public sealed class AutoSDKServer + { + /// + /// Initializes a new instance of the class. + /// + /// The stable identifier for this server option. + /// The display name for this server option. + /// The server URL. + /// The server description. + public AutoSDKServer( + string id, + string name, + string url, + string description) + { + Id = id ?? throw new global::System.ArgumentNullException(nameof(id)); + Name = name ?? string.Empty; + Url = url ?? throw new global::System.ArgumentNullException(nameof(url)); + Description = description ?? string.Empty; + Uri = new global::System.Uri(url, global::System.UriKind.RelativeOrAbsolute); + } + + /// + /// Gets the stable identifier for this server option. + /// + public string Id { get; } + /// + /// Gets the display name for this server option. + /// + public string Name { get; } + /// + /// Gets the server URL. + /// + public string Url { get; } + /// + /// Gets the server description. + /// + public string Description { get; } + /// + /// Gets the parsed server URI. + /// + public global::System.Uri Uri { get; } + } + + internal sealed class AutoSDKServerConfiguration + { + public global::System.Uri? ExplicitBaseUri { get; set; } + public global::Letta.AutoSDKServer? SelectedServer { get; set; } + } +} \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.StepsClient.ListMessagesForStep.g.cs b/src/libs/Letta/Generated/Letta.StepsClient.ListMessagesForStep.g.cs index 15a4c7be..7f24089c 100644 --- a/src/libs/Letta/Generated/Letta.StepsClient.ListMessagesForStep.g.cs +++ b/src/libs/Letta/Generated/Letta.StepsClient.ListMessagesForStep.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class StepsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListMessagesForStepServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListMessagesForStepSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -124,7 +137,9 @@ partial void ProcessListMessagesForStepResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/steps/{stepId}/messages", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListMessagesForStepServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.StepsClient.ListSteps.g.cs b/src/libs/Letta/Generated/Letta.StepsClient.ListSteps.g.cs index 9e9b863e..ca57fac1 100644 --- a/src/libs/Letta/Generated/Letta.StepsClient.ListSteps.g.cs +++ b/src/libs/Letta/Generated/Letta.StepsClient.ListSteps.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class StepsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListStepsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListStepsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -187,7 +200,9 @@ partial void ProcessListStepsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/steps/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListStepsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) @@ -234,10 +249,10 @@ partial void ProcessListStepsResponseContent( } } - if (xProject != default) - { - __httpRequest.Headers.TryAddWithoutValidation("X-Project", xProject.ToString()); - } + if (xProject != default) + { + __httpRequest.Headers.TryAddWithoutValidation("X-Project", xProject.ToString()); + } global::Letta.AutoSDKRequestOptionsSupport.ApplyHeaders( request: __httpRequest, diff --git a/src/libs/Letta/Generated/Letta.StepsClient.ModifyFeedbackForStep.g.cs b/src/libs/Letta/Generated/Letta.StepsClient.ModifyFeedbackForStep.g.cs index 0c6bc4cf..7b5b0c45 100644 --- a/src/libs/Letta/Generated/Letta.StepsClient.ModifyFeedbackForStep.g.cs +++ b/src/libs/Letta/Generated/Letta.StepsClient.ModifyFeedbackForStep.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class StepsClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyFeedbackForStepServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyFeedbackForStepSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessModifyFeedbackForStepResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/steps/{stepId}/feedback", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyFeedbackForStepServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.StepsClient.RetrieveMetricsForStep.g.cs b/src/libs/Letta/Generated/Letta.StepsClient.RetrieveMetricsForStep.g.cs index 876b1f1c..5eb2c2c7 100644 --- a/src/libs/Letta/Generated/Letta.StepsClient.RetrieveMetricsForStep.g.cs +++ b/src/libs/Letta/Generated/Letta.StepsClient.RetrieveMetricsForStep.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class StepsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveMetricsForStepServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveMetricsForStepSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveMetricsForStepResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/steps/{stepId}/metrics", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveMetricsForStepServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.StepsClient.RetrieveStep.g.cs b/src/libs/Letta/Generated/Letta.StepsClient.RetrieveStep.g.cs index ff8b5d6f..bb2c58e1 100644 --- a/src/libs/Letta/Generated/Letta.StepsClient.RetrieveStep.g.cs +++ b/src/libs/Letta/Generated/Letta.StepsClient.RetrieveStep.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class StepsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveStepServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveStepSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveStepResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/steps/{stepId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveStepServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.StepsClient.RetrieveTraceForStep.g.cs b/src/libs/Letta/Generated/Letta.StepsClient.RetrieveTraceForStep.g.cs index 72e734e9..16567e4c 100644 --- a/src/libs/Letta/Generated/Letta.StepsClient.RetrieveTraceForStep.g.cs +++ b/src/libs/Letta/Generated/Letta.StepsClient.RetrieveTraceForStep.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class StepsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveTraceForStepServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveTraceForStepSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -85,7 +98,9 @@ partial void ProcessRetrieveTraceForStepResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/steps/{stepId}/trace", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveTraceForStepServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.StepsClient.g.cs b/src/libs/Letta/Generated/Letta.StepsClient.g.cs index 74184ee3..b9f1db4f 100644 --- a/src/libs/Letta/Generated/Letta.StepsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.StepsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class StepsClient : global::Letta.IStepsClient, global::Sy public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class StepsClient : global::Letta.IStepsClient, global::Sy /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the StepsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public StepsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.TagClient.ListTags.g.cs b/src/libs/Letta/Generated/Letta.TagClient.ListTags.g.cs index b2b8f780..bd235107 100644 --- a/src/libs/Letta/Generated/Letta.TagClient.ListTags.g.cs +++ b/src/libs/Letta/Generated/Letta.TagClient.ListTags.g.cs @@ -8,6 +8,19 @@ namespace Letta public partial class TagClient { + private static readonly global::Letta.AutoSDKServer[] s_ListTagsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListTagsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -133,7 +146,9 @@ partial void ProcessListTagsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tags/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListTagsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.TagClient.g.cs b/src/libs/Letta/Generated/Letta.TagClient.g.cs index 6141e8fc..8c2496a5 100644 --- a/src/libs/Letta/Generated/Letta.TagClient.g.cs +++ b/src/libs/Letta/Generated/Letta.TagClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class TagClient : global::Letta.ITagClient, global::System public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class TagClient : global::Letta.ITagClient, global::System /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the TagClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public TagClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateAgentsFromTemplate.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateAgentsFromTemplate.g.cs index 8f82daf6..508b7dac 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateAgentsFromTemplate.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateAgentsFromTemplate.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesCreateAgentsFromTemplateServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesCreateAgentsFromTemplateSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessTemplatesCreateAgentsFromTemplateResponse( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateVersion}/agents", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesCreateAgentsFromTemplateServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateAgentsFromTemplateNoProject.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateAgentsFromTemplateNoProject.g.cs index b12fdce6..5149d09e 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateAgentsFromTemplateNoProject.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateAgentsFromTemplateNoProject.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesCreateAgentsFromTemplateNoProjectServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesCreateAgentsFromTemplateNoProjectSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessTemplatesCreateAgentsFromTemplateNoProjectResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{templateVersion}/agents", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesCreateAgentsFromTemplateNoProjectServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateTemplate.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateTemplate.g.cs index 3c2373df..f7912f6c 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateTemplate.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateTemplate.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesCreateTemplateServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesCreateTemplateSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -90,7 +103,9 @@ partial void ProcessTemplatesCreateTemplateResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesCreateTemplateServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateTemplateNoProject.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateTemplateNoProject.g.cs index 409dc798..d2eff7e7 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateTemplateNoProject.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesCreateTemplateNoProject.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesCreateTemplateNoProjectServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesCreateTemplateNoProjectSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -85,7 +98,9 @@ partial void ProcessTemplatesCreateTemplateNoProjectResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/templates", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesCreateTemplateNoProjectServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesDeleteTemplate.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesDeleteTemplate.g.cs index c2834730..2943bd77 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesDeleteTemplate.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesDeleteTemplate.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesDeleteTemplateServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesDeleteTemplateSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessTemplatesDeleteTemplateResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateName}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesDeleteTemplateServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesDeleteTemplateNoProject.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesDeleteTemplateNoProject.g.cs index e3f09802..7c210945 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesDeleteTemplateNoProject.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesDeleteTemplateNoProject.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesDeleteTemplateNoProjectServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesDeleteTemplateNoProjectSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessTemplatesDeleteTemplateNoProjectResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{templateName}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesDeleteTemplateNoProjectServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesForkTemplate.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesForkTemplate.g.cs index c849c513..23bd8b57 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesForkTemplate.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesForkTemplate.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesForkTemplateServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesForkTemplateSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessTemplatesForkTemplateResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateVersion}/fork", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesForkTemplateServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesGetTemplateSnapshot.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesGetTemplateSnapshot.g.cs index ece65333..ab3cec9a 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesGetTemplateSnapshot.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesGetTemplateSnapshot.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesGetTemplateSnapshotServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesGetTemplateSnapshotSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessTemplatesGetTemplateSnapshotResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateVersion}/snapshot", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesGetTemplateSnapshotServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesLegacyMigration.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesLegacyMigration.g.cs index 15483168..e58de410 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesLegacyMigration.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesLegacyMigration.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesLegacyMigrationServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesLegacyMigrationSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessTemplatesLegacyMigrationResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/legacy-templates/{templateId}/migrates", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesLegacyMigrationServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesListTemplateVersions.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesListTemplateVersions.g.cs index 3748bb9e..3f9bf4dc 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesListTemplateVersions.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesListTemplateVersions.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesListTemplateVersionsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesListTemplateVersionsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -99,7 +112,9 @@ partial void ProcessTemplatesListTemplateVersionsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{name}/versions", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesListTemplateVersionsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("offset", offset?.ToString()) .AddOptionalParameter("limit", limit) diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesListTemplates.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesListTemplates.g.cs index 1233b97e..18b07298 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesListTemplates.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesListTemplates.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesListTemplatesServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesListTemplatesSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -129,7 +142,9 @@ partial void ProcessTemplatesListTemplatesResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/templates", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesListTemplatesServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("offset", offset?.ToString()) .AddOptionalParameter("exact", exact) diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesMigrateDeployment.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesMigrateDeployment.g.cs index 2cccfcac..40030536 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesMigrateDeployment.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesMigrateDeployment.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesMigrateDeploymentServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesMigrateDeploymentSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -102,7 +115,9 @@ partial void ProcessTemplatesMigrateDeploymentResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateName}/deployments/{deploymentId}/migrate", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesMigrateDeploymentServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRenameTemplate.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRenameTemplate.g.cs index b397885c..eb18dfd9 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRenameTemplate.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRenameTemplate.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesRenameTemplateServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesRenameTemplateSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessTemplatesRenameTemplateResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateName}/name", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesRenameTemplateServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRollbackTemplate.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRollbackTemplate.g.cs index a56c13a5..2bb7109b 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRollbackTemplate.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRollbackTemplate.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesRollbackTemplateServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesRollbackTemplateSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessTemplatesRollbackTemplateResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateName}/rollback", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesRollbackTemplateServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRollbackTemplateNoProject.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRollbackTemplateNoProject.g.cs index 09f20ad3..6f4748da 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRollbackTemplateNoProject.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesRollbackTemplateNoProject.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesRollbackTemplateNoProjectServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesRollbackTemplateNoProjectSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessTemplatesRollbackTemplateNoProjectResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{templateName}/rollback", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesRollbackTemplateNoProjectServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSaveTemplateVersion.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSaveTemplateVersion.g.cs index 849a6a33..4fdeccc6 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSaveTemplateVersion.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSaveTemplateVersion.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesSaveTemplateVersionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesSaveTemplateVersionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessTemplatesSaveTemplateVersionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateName}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesSaveTemplateVersionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSaveTemplateVersionNoProject.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSaveTemplateVersionNoProject.g.cs index 8c5d8d4c..c6bee5d4 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSaveTemplateVersionNoProject.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSaveTemplateVersionNoProject.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesSaveTemplateVersionNoProjectServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesSaveTemplateVersionNoProjectSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessTemplatesSaveTemplateVersionNoProjectResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{templateName}/save", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesSaveTemplateVersionNoProjectServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSetCurrentTemplateFromSnapshot.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSetCurrentTemplateFromSnapshot.g.cs index 41847521..31384363 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSetCurrentTemplateFromSnapshot.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesSetCurrentTemplateFromSnapshot.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesSetCurrentTemplateFromSnapshotServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesSetCurrentTemplateFromSnapshotSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessTemplatesSetCurrentTemplateFromSnapshotResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateVersion}/snapshot", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesSetCurrentTemplateFromSnapshotServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateCurrentTemplateFromAgentFile.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateCurrentTemplateFromAgentFile.g.cs index 04b695ef..0f8128d0 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateCurrentTemplateFromAgentFile.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateCurrentTemplateFromAgentFile.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesUpdateCurrentTemplateFromAgentFileServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesUpdateCurrentTemplateFromAgentFileSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessTemplatesUpdateCurrentTemplateFromAgentFileResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateName}/agent-file", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesUpdateCurrentTemplateFromAgentFileServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateCurrentTemplateFromAgentFileNoProject.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateCurrentTemplateFromAgentFileNoProject.g.cs index 71842e67..03d53938 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateCurrentTemplateFromAgentFileNoProject.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateCurrentTemplateFromAgentFileNoProject.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesUpdateCurrentTemplateFromAgentFileNoProjectServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesUpdateCurrentTemplateFromAgentFileNoProjectSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -92,7 +105,9 @@ partial void ProcessTemplatesUpdateCurrentTemplateFromAgentFileNoProjectResponse { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{templateName}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesUpdateCurrentTemplateFromAgentFileNoProjectServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateTemplateDescription.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateTemplateDescription.g.cs index b66c2dd6..ece5d88c 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateTemplateDescription.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.TemplatesUpdateTemplateDescription.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class TemplatesClient { + private static readonly global::Letta.AutoSDKServer[] s_TemplatesUpdateTemplateDescriptionServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TemplatesUpdateTemplateDescriptionSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -97,7 +110,9 @@ partial void ProcessTemplatesUpdateTemplateDescriptionResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/templates/{projectId}/{templateName}/description", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TemplatesUpdateTemplateDescriptionServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.TemplatesClient.g.cs b/src/libs/Letta/Generated/Letta.TemplatesClient.g.cs index 61d5c870..0829345b 100644 --- a/src/libs/Letta/Generated/Letta.TemplatesClient.g.cs +++ b/src/libs/Letta/Generated/Letta.TemplatesClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class TemplatesClient : global::Letta.ITemplatesClient, gl public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class TemplatesClient : global::Letta.ITemplatesClient, gl /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the TemplatesClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public TemplatesClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.AddBaseTools.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.AddBaseTools.g.cs index de8fc547..5eab9365 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.AddBaseTools.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.AddBaseTools.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_AddBaseToolsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AddBaseToolsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessAddBaseToolsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/add-base-tools", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AddBaseToolsServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.AddMcpServer.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.AddMcpServer.g.cs index 3ec8c6ee..2986fd9a 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.AddMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.AddMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_AddMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AddMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -85,7 +98,9 @@ partial void ProcessAddMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/mcp/servers", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AddMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.AddMcpTool.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.AddMcpTool.g.cs index 5475b80a..9ffef3b0 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.AddMcpTool.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.AddMcpTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_AddMcpToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_AddMcpToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -89,7 +102,9 @@ partial void ProcessAddMcpToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/mcp/servers/{mcpServerName}/{mcpToolName}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_AddMcpToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.ConnectMcpServer.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.ConnectMcpServer.g.cs index bc3cb98f..a4f6709f 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.ConnectMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.ConnectMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_ConnectMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ConnectMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessConnectMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/mcp/servers/connect", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ConnectMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.CountTools.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.CountTools.g.cs index 301a62fe..0b42f273 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.CountTools.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.CountTools.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_CountToolsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CountToolsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -135,7 +148,9 @@ partial void ProcessCountToolsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/count", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CountToolsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("name", name) .AddOptionalParameter("names", names?.ToString()) diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.CreateTool.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.CreateTool.g.cs index 2f496901..918deab6 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.CreateTool.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.CreateTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_CreateToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_CreateToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessCreateToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_CreateToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.DeleteMcpServer.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.DeleteMcpServer.g.cs index 58323d77..f6f687f8 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.DeleteMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.DeleteMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessDeleteMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/mcp/servers/{mcpServerName}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.DeleteTool.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.DeleteTool.g.cs index a8a4b301..7cae2065 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.DeleteTool.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.DeleteTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_DeleteToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_DeleteToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessDeleteToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/{toolId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_DeleteToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.ExecuteMcpTool.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.ExecuteMcpTool.g.cs index 58950677..af52718f 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.ExecuteMcpTool.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.ExecuteMcpTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_ExecuteMcpToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ExecuteMcpToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -98,7 +111,9 @@ partial void ProcessExecuteMcpToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/mcp/servers/{mcpServerName}/tools/{toolName}/execute", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ExecuteMcpToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.ListMcpServers.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.ListMcpServers.g.cs index 3a744ea9..59d200bb 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.ListMcpServers.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.ListMcpServers.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListMcpServersServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListMcpServersSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -79,7 +92,9 @@ partial void ProcessListMcpServersResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/mcp/servers", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListMcpServersServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.ListMcpToolsByServer.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.ListMcpToolsByServer.g.cs index a646a1aa..4318ff23 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.ListMcpToolsByServer.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.ListMcpToolsByServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListMcpToolsByServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListMcpToolsByServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -84,7 +97,9 @@ partial void ProcessListMcpToolsByServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/mcp/servers/{mcpServerName}/tools", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListMcpToolsByServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.ListTools.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.ListTools.g.cs index 1b356343..93475795 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.ListTools.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.ListTools.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_ListToolsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ListToolsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -167,7 +180,9 @@ partial void ProcessListToolsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ListToolsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("before", before) .AddOptionalParameter("after", after) diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.McpOauthCallback.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.McpOauthCallback.g.cs index 2bbfdba2..cd6319c5 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.McpOauthCallback.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.McpOauthCallback.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_McpOauthCallbackServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_McpOauthCallbackSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -108,7 +121,9 @@ partial void ProcessMcpOauthCallbackResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/mcp/oauth/callback", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_McpOauthCallbackServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("code", code) .AddOptionalParameter("state", state) diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.ModifyTool.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.ModifyTool.g.cs index 29f10cb6..73e8e42d 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.ModifyTool.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.ModifyTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_ModifyToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ModifyToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessModifyToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/{toolId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ModifyToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.ResyncMcpServerTools.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.ResyncMcpServerTools.g.cs index f00449aa..0d26cf50 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.ResyncMcpServerTools.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.ResyncMcpServerTools.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_ResyncMcpServerToolsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_ResyncMcpServerToolsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -94,7 +107,9 @@ partial void ProcessResyncMcpServerToolsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/mcp/servers/{mcpServerName}/resync", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_ResyncMcpServerToolsServers, + defaultBaseUrl: "https://app.letta.com/")); __pathBuilder .AddOptionalParameter("agent_id", agentId) ; diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.RetrieveTool.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.RetrieveTool.g.cs index d5b7a757..e51ef962 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.RetrieveTool.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.RetrieveTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_RetrieveToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RetrieveToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessRetrieveToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/{toolId}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RetrieveToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.RunToolFromSource.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.RunToolFromSource.g.cs index 77d5ff5a..b16f1f68 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.RunToolFromSource.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.RunToolFromSource.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_RunToolFromSourceServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_RunToolFromSourceSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessRunToolFromSourceResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/run", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_RunToolFromSourceServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.SearchTools.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.SearchTools.g.cs index 20719db9..aaa0fd19 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.SearchTools.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.SearchTools.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_SearchToolsServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_SearchToolsSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -90,7 +103,9 @@ partial void ProcessSearchToolsResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/search", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_SearchToolsServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.TestMcpServer.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.TestMcpServer.g.cs index 912c7d11..042fec4f 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.TestMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.TestMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_TestMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_TestMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -86,7 +99,9 @@ partial void ProcessTestMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/mcp/servers/test", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_TestMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.UpdateMcpServer.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.UpdateMcpServer.g.cs index 4426d9cf..463fe197 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.UpdateMcpServer.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.UpdateMcpServer.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_UpdateMcpServerServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_UpdateMcpServerSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -90,7 +103,9 @@ partial void ProcessUpdateMcpServerResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: $"/v1/tools/mcp/servers/{mcpServerName}", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_UpdateMcpServerServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.UpsertTool.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.UpsertTool.g.cs index 0703506c..d8766f75 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.UpsertTool.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.UpsertTool.g.cs @@ -6,6 +6,19 @@ namespace Letta public partial class ToolsClient { + private static readonly global::Letta.AutoSDKServer[] s_UpsertToolServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + private static readonly global::Letta.EndPointSecurityRequirement s_UpsertToolSecurityRequirement0 = new global::Letta.EndPointSecurityRequirement @@ -87,7 +100,9 @@ partial void ProcessUpsertToolResponseContent( { var __pathBuilder = new global::Letta.PathBuilder( path: "/v1/tools/", - baseUri: HttpClient.BaseAddress); + baseUri: ResolveBaseUri( + servers: s_UpsertToolServers, + defaultBaseUrl: "https://app.letta.com/")); var __path = __pathBuilder.ToString(); __path = global::Letta.AutoSDKRequestOptionsSupport.AppendQueryParameters( path: __path, diff --git a/src/libs/Letta/Generated/Letta.ToolsClient.g.cs b/src/libs/Letta/Generated/Letta.ToolsClient.g.cs index 6eec9988..8acee90c 100644 --- a/src/libs/Letta/Generated/Letta.ToolsClient.g.cs +++ b/src/libs/Letta/Generated/Letta.ToolsClient.g.cs @@ -20,7 +20,7 @@ public sealed partial class ToolsClient : global::Letta.IToolsClient, global::Sy public global::System.Net.Http.HttpClient HttpClient { get; } /// - public System.Uri? BaseUri => HttpClient.BaseAddress; + public System.Uri? BaseUri => ResolveDisplayedBaseUri(); /// public global::System.Collections.Generic.List Authorizations { get; } @@ -33,12 +33,43 @@ public sealed partial class ToolsClient : global::Letta.IToolsClient, global::Sy /// public global::Letta.AutoSDKClientOptions Options { get; } + + + internal global::Letta.AutoSDKServerConfiguration AutoSDKServerConfiguration { get; set; } = new global::Letta.AutoSDKServerConfiguration(); /// /// /// public global::System.Text.Json.Serialization.JsonSerializerContext JsonSerializerContext { get; set; } = global::Letta.SourceGenerationContext.Default; + + private static readonly global::Letta.AutoSDKServer[] s_availableServers = new global::Letta.AutoSDKServer[] + { new global::Letta.AutoSDKServer( + id: "https-app-letta-com", + name: "Letta Cloud", + url: "https://app.letta.com/", + description: "Letta Cloud"), + new global::Letta.AutoSDKServer( + id: "http-localhost", + name: "Self-hosted", + url: "http://localhost:8283/", + description: "Self-hosted"), + }; + + /// + /// The server options available for this client. + /// + public global::System.Collections.Generic.IReadOnlyList AvailableServers => s_availableServers; + + /// + /// The currently selected server for this client, if any. + /// + public global::Letta.AutoSDKServer? SelectedServer + { + get => ResolveSelectedServer(); + set => SelectServer(value); + } + /// /// Creates a new instance of the ToolsClient. /// If no httpClient is provided, a new one will be created. @@ -85,6 +116,8 @@ public ToolsClient( Options = options ?? new global::Letta.AutoSDKClientOptions(); _disposeHttpClient = disposeHttpClient; + AutoSDKServerConfiguration.ExplicitBaseUri = baseUri ?? httpClient?.BaseAddress; + Initialized(HttpClient); } @@ -111,5 +144,117 @@ partial void ProcessResponseContent( global::System.Net.Http.HttpClient client, global::System.Net.Http.HttpResponseMessage response, ref string content); + + + /// + /// Selects one of the generated server options by id. + /// + public bool TrySelectServer(string serverId) + { + if (string.IsNullOrWhiteSpace(serverId)) + { + return false; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, serverId, global::System.StringComparison.OrdinalIgnoreCase)) + { + AutoSDKServerConfiguration.SelectedServer = server; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return true; + } + } + + return false; + } + + /// + /// Clears the currently selected server. + /// + public void ClearSelectedServer() + { + AutoSDKServerConfiguration.SelectedServer = null; + } + + private global::Letta.AutoSDKServer? ResolveSelectedServer() + { + var selectedServer = AutoSDKServerConfiguration.SelectedServer; + if (selectedServer is null) + { + return null; + } + + foreach (var server in s_availableServers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server; + } + } + + return null; + } + + private void SelectServer(global::Letta.AutoSDKServer? server) + { + if (server is null) + { + AutoSDKServerConfiguration.SelectedServer = null; + return; + } + + foreach (var candidate in s_availableServers) + { + if (string.Equals(candidate.Id, server.Id, global::System.StringComparison.Ordinal)) + { + AutoSDKServerConfiguration.SelectedServer = candidate; + AutoSDKServerConfiguration.ExplicitBaseUri = null; + return; + } + } + + throw new global::System.ArgumentException("The provided server is not available for this client.", nameof(server)); + } + + private global::System.Uri? ResolveDisplayedBaseUri() + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + return ResolveSelectedServer()?.Uri ?? HttpClient.BaseAddress; + } + + private global::System.Uri? ResolveBaseUri( + global::Letta.AutoSDKServer[] servers, + string defaultBaseUrl) + { + if (AutoSDKServerConfiguration.ExplicitBaseUri is global::System.Uri explicitBaseUri) + { + return explicitBaseUri; + } + + if (AutoSDKServerConfiguration.SelectedServer is global::Letta.AutoSDKServer selectedServer) + { + foreach (var server in servers) + { + if (string.Equals(server.Id, selectedServer.Id, global::System.StringComparison.Ordinal)) + { + return server.Uri; + } + } + } + + if (servers.Length > 0) + { + return servers[0].Uri; + } + + return string.IsNullOrWhiteSpace(defaultBaseUrl) + ? HttpClient.BaseAddress + : new global::System.Uri(defaultBaseUrl, global::System.UriKind.RelativeOrAbsolute); + } } } \ No newline at end of file