diff --git a/internal/commands/integrations/command.go b/internal/commands/integrations/command.go index d734627..2d40574 100644 --- a/internal/commands/integrations/command.go +++ b/internal/commands/integrations/command.go @@ -21,7 +21,6 @@ import ( "github.com/metorial/metorial-go/v1/endpoints" "github.com/metorial/metorial-go/v1/resources/consumers" "github.com/metorial/metorial-go/v1/resources/magicmcpservers" - magicmcpserverprovider "github.com/metorial/metorial-go/v1/resources/magicmcpservers/provider" setupsessions "github.com/metorial/metorial-go/v1/resources/providerdeployments/setupsessions" providerlistings "github.com/metorial/metorial-go/v1/resources/providerlistings" "github.com/metorial/metorial-go/v1/resources/providers" @@ -36,6 +35,14 @@ type integrationToolsProvider struct { Listing *providerlistings.ProviderListingsGetOutput `json:"listing,omitempty"` } +type magicMcpServerProviderListOutput struct { + Items []magicMcpServerProviderListOutputItem `json:"items"` +} + +type magicMcpServerProviderListOutputItem struct { + ProviderId string `json:"provider_id"` +} + type integrationListRow struct { Id string `json:"id"` Alias string `json:"alias,omitempty"` @@ -981,13 +988,13 @@ func ensureMagicMCPTokenSecret(sdk *metorial.MetorialSdk) (string, error) { return strings.TrimSpace(token.Secret), nil } -func listMagicMcpServerProviders(runtime config.Runtime, sdk *metorial.MetorialSdk, magicMcpServerID string) (*magicmcpserverprovider.MagicMcpServersProviderListOutput, error) { +func listMagicMcpServerProviders(runtime config.Runtime, sdk *metorial.MetorialSdk, magicMcpServerID string) (*magicMcpServerProviderListOutput, error) { response, err := consumerSDKFetch(runtime, sdk, "GET", fmt.Sprintf("/magic-mcp-servers/%s/providers?limit=15", strings.TrimSpace(magicMcpServerID)), nil) if err != nil { return nil, err } - var providers magicmcpserverprovider.MagicMcpServersProviderListOutput + var providers magicMcpServerProviderListOutput if err := json.Unmarshal(response.Body, &providers); err != nil { return nil, fmt.Errorf("metorial: failed to decode magic MCP providers for %s: %w", magicMcpServerID, err) } @@ -995,7 +1002,7 @@ func listMagicMcpServerProviders(runtime config.Runtime, sdk *metorial.MetorialS return &providers, nil } -func createMagicMcpServerProvider(runtime config.Runtime, sdk *metorial.MetorialSdk, magicMcpServerID string, body map[string]any) (*magicmcpserverprovider.MagicMcpServersProviderCreateOutput, error) { +func createMagicMcpServerProvider(runtime config.Runtime, sdk *metorial.MetorialSdk, magicMcpServerID string, body map[string]any) (map[string]any, error) { payload, err := json.Marshal(body) if err != nil { return nil, fmt.Errorf("metorial: failed to encode magic MCP provider assignment: %w", err) @@ -1006,12 +1013,12 @@ func createMagicMcpServerProvider(runtime config.Runtime, sdk *metorial.Metorial return nil, err } - var providerAssignment magicmcpserverprovider.MagicMcpServersProviderCreateOutput + var providerAssignment map[string]any if err := json.Unmarshal(response.Body, &providerAssignment); err != nil { return nil, fmt.Errorf("metorial: failed to decode magic MCP provider assignment for %s: %w", magicMcpServerID, err) } - return &providerAssignment, nil + return providerAssignment, nil } func resolveIntegrationMCPClient(ctx context.Context, application *app.App, rootOptions *rootOptionsView, integrationID string) (*magicmcpservers.MagicMcpServersGetOutput, *consumers.ConsumersGetMemberConsumerOutput, *magicMCPClient, error) { @@ -1414,7 +1421,7 @@ func attachSetupSessionProviderToMagicServer( sdk *metorial.MetorialSdk, setupSession *setupsessions.ProviderDeploymentsSetupSessionsGetOutput, server *magicmcpservers.MagicMcpServersCreateOutput, -) (*magicmcpserverprovider.MagicMcpServersProviderCreateOutput, error) { +) (map[string]any, error) { if setupSession == nil || server == nil { return nil, nil } @@ -1691,7 +1698,7 @@ func renderIntegrationTools(writer io.Writer, features terminal.Features, server return renderTips(writer, features, tips) } -func renderSetupResult(writer io.Writer, features terminal.Features, setupSession *setupsessions.ProviderDeploymentsSetupSessionsGetOutput, listing *providerlistings.ProviderListingsGetOutput, provider *providers.ProvidersGetOutput, server *magicmcpservers.MagicMcpServersCreateOutput, sessionTemplateProvider *magicmcpserverprovider.MagicMcpServersProviderCreateOutput, tips []string) error { +func renderSetupResult(writer io.Writer, features terminal.Features, setupSession *setupsessions.ProviderDeploymentsSetupSessionsGetOutput, listing *providerlistings.ProviderListingsGetOutput, provider *providers.ProvidersGetOutput, server *magicmcpservers.MagicMcpServersCreateOutput, sessionTemplateProvider map[string]any, tips []string) error { colors := terminal.NewColorizer(features) title := server.Id if name := optionalString(server.Name); name != "" {