diff --git a/packages/twenty-client-sdk/src/metadata/generated/schema.graphql b/packages/twenty-client-sdk/src/metadata/generated/schema.graphql index d14922c0815..e0bbd9b3f02 100644 --- a/packages/twenty-client-sdk/src/metadata/generated/schema.graphql +++ b/packages/twenty-client-sdk/src/metadata/generated/schema.graphql @@ -1625,7 +1625,7 @@ type PublicWorkspaceData { workspaceUrls: WorkspaceUrls! } -type NativeModelCapabilities { +type AgentCapabilities { webSearch: Boolean twitterSearch: Boolean } @@ -1638,7 +1638,7 @@ type ClientAIModelConfig { sdkPackage: String inputCostPerMillionTokens: Float outputCostPerMillionTokens: Float - nativeCapabilities: NativeModelCapabilities + capabilities: AgentCapabilities isDeprecated: Boolean isRecommended: Boolean providerName: String diff --git a/packages/twenty-client-sdk/src/metadata/generated/schema.ts b/packages/twenty-client-sdk/src/metadata/generated/schema.ts index 1d99496c36d..49e6c7440cf 100644 --- a/packages/twenty-client-sdk/src/metadata/generated/schema.ts +++ b/packages/twenty-client-sdk/src/metadata/generated/schema.ts @@ -1334,10 +1334,10 @@ export interface PublicWorkspaceData { __typename: 'PublicWorkspaceData' } -export interface NativeModelCapabilities { +export interface AgentCapabilities { webSearch?: Scalars['Boolean'] twitterSearch?: Scalars['Boolean'] - __typename: 'NativeModelCapabilities' + __typename: 'AgentCapabilities' } export interface ClientAIModelConfig { @@ -1348,7 +1348,7 @@ export interface ClientAIModelConfig { sdkPackage?: Scalars['String'] inputCostPerMillionTokens?: Scalars['Float'] outputCostPerMillionTokens?: Scalars['Float'] - nativeCapabilities?: NativeModelCapabilities + capabilities?: AgentCapabilities isDeprecated?: Scalars['Boolean'] isRecommended?: Scalars['Boolean'] providerName?: Scalars['String'] @@ -4509,7 +4509,7 @@ export interface PublicWorkspaceDataGenqlSelection{ __scalar?: boolean | number } -export interface NativeModelCapabilitiesGenqlSelection{ +export interface AgentCapabilitiesGenqlSelection{ webSearch?: boolean | number twitterSearch?: boolean | number __typename?: boolean | number @@ -4524,7 +4524,7 @@ export interface ClientAIModelConfigGenqlSelection{ sdkPackage?: boolean | number inputCostPerMillionTokens?: boolean | number outputCostPerMillionTokens?: boolean | number - nativeCapabilities?: NativeModelCapabilitiesGenqlSelection + capabilities?: AgentCapabilitiesGenqlSelection isDeprecated?: boolean | number isRecommended?: boolean | number providerName?: boolean | number @@ -7624,10 +7624,10 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null - const NativeModelCapabilities_possibleTypes: string[] = ['NativeModelCapabilities'] - export const isNativeModelCapabilities = (obj?: { __typename?: any } | null): obj is NativeModelCapabilities => { - if (!obj?.__typename) throw new Error('__typename is missing in "isNativeModelCapabilities"') - return NativeModelCapabilities_possibleTypes.includes(obj.__typename) + const AgentCapabilities_possibleTypes: string[] = ['AgentCapabilities'] + export const isAgentCapabilities = (obj?: { __typename?: any } | null): obj is AgentCapabilities => { + if (!obj?.__typename) throw new Error('__typename is missing in "isAgentCapabilities"') + return AgentCapabilities_possibleTypes.includes(obj.__typename) } diff --git a/packages/twenty-client-sdk/src/metadata/generated/types.ts b/packages/twenty-client-sdk/src/metadata/generated/types.ts index 295d46703c0..259bc3cc659 100644 --- a/packages/twenty-client-sdk/src/metadata/generated/types.ts +++ b/packages/twenty-client-sdk/src/metadata/generated/types.ts @@ -3275,7 +3275,7 @@ export default { 1 ] }, - "NativeModelCapabilities": { + "AgentCapabilities": { "webSearch": [ 6 ], @@ -3308,7 +3308,7 @@ export default { "outputCostPerMillionTokens": [ 11 ], - "nativeCapabilities": [ + "capabilities": [ 165 ], "isDeprecated": [ diff --git a/packages/twenty-front/src/generated-metadata/graphql.ts b/packages/twenty-front/src/generated-metadata/graphql.ts index bf2fad7841a..9bea50d9ace 100644 --- a/packages/twenty-front/src/generated-metadata/graphql.ts +++ b/packages/twenty-front/src/generated-metadata/graphql.ts @@ -112,6 +112,12 @@ export type Agent = { updatedAt: Scalars['DateTime']; }; +export type AgentCapabilities = { + __typename?: 'AgentCapabilities'; + twitterSearch?: Maybe; + webSearch?: Maybe; +}; + export type AgentChatEvent = { __typename?: 'AgentChatEvent'; event: Scalars['JSON']; @@ -867,6 +873,7 @@ export type CheckUserExist = { export type ClientAiModelConfig = { __typename?: 'ClientAIModelConfig'; + capabilities?: Maybe; contextWindowTokens?: Maybe; dataResidency?: Maybe; inputCostPerMillionTokens?: Maybe; @@ -877,7 +884,6 @@ export type ClientAiModelConfig = { modelFamily?: Maybe; modelFamilyLabel?: Maybe; modelId: Scalars['String']; - nativeCapabilities?: Maybe; outputCostPerMillionTokens?: Maybe; providerLabel?: Maybe; providerName?: Maybe; @@ -3841,12 +3847,6 @@ export type MutationVerifyTwoFactorAuthenticationMethodForAuthenticatedUserArgs otp: Scalars['String']; }; -export type NativeModelCapabilities = { - __typename?: 'NativeModelCapabilities'; - twitterSearch?: Maybe; - webSearch?: Maybe; -}; - export type NavigationMenuItem = { __typename?: 'NavigationMenuItem'; applicationId?: Maybe; diff --git a/packages/twenty-front/src/modules/ai/components/SettingsAgentModelCapabilities.tsx b/packages/twenty-front/src/modules/ai/components/SettingsAgentModelCapabilities.tsx index 6c2b6b456ac..c79e5ed28b0 100644 --- a/packages/twenty-front/src/modules/ai/components/SettingsAgentModelCapabilities.tsx +++ b/packages/twenty-front/src/modules/ai/components/SettingsAgentModelCapabilities.tsx @@ -34,13 +34,13 @@ export const SettingsAgentModelCapabilities = ({ const aiModels = useAtomStateValue(aiModelsState); const selectedModel = aiModels.find((m) => m.modelId === selectedModelId); - const nativeCapabilities = selectedModel?.nativeCapabilities; + const capabilities = selectedModel?.capabilities; - if (!isDefined(nativeCapabilities)) { + if (!isDefined(capabilities)) { return null; } - if (!nativeCapabilities.webSearch && !nativeCapabilities.twitterSearch) { + if (!capabilities.webSearch && !capabilities.twitterSearch) { return null; } @@ -61,8 +61,8 @@ export const SettingsAgentModelCapabilities = ({ }); }; - const capabilities = [ - ...(nativeCapabilities.webSearch + const capabilityItems = [ + ...(capabilities.webSearch ? [ { key: 'webSearch' as const, @@ -72,7 +72,7 @@ export const SettingsAgentModelCapabilities = ({ }, ] : []), - ...(nativeCapabilities.twitterSearch + ...(capabilities.twitterSearch ? [ { key: 'twitterSearch' as const, @@ -88,7 +88,7 @@ export const SettingsAgentModelCapabilities = ({
{t`Capabilities`}
- {capabilities.map((capability) => ( + {capabilityItems.map((capability) => ( Boolean, { nullable: true }) webSearch?: boolean; @@ -62,8 +62,8 @@ export class ClientAIModelConfig { @Field(() => Number, { nullable: true }) outputCostPerMillionTokens?: number; - @Field(() => NativeModelCapabilities, { nullable: true }) - nativeCapabilities?: NativeModelCapabilities; + @Field(() => AgentCapabilities, { nullable: true }) + capabilities?: AgentCapabilities; @Field(() => Boolean, { nullable: true }) isDeprecated?: boolean; diff --git a/packages/twenty-server/src/engine/core-modules/client-config/services/client-config.service.ts b/packages/twenty-server/src/engine/core-modules/client-config/services/client-config.service.ts index 613ca03e784..73c0626fd52 100644 --- a/packages/twenty-server/src/engine/core-modules/client-config/services/client-config.service.ts +++ b/packages/twenty-server/src/engine/core-modules/client-config/services/client-config.service.ts @@ -17,7 +17,7 @@ import { MaintenanceModeService } from 'src/engine/core-modules/admin-panel/main import { type ClientAIModelConfig, type ClientConfig, - type NativeModelCapabilities, + type AgentCapabilities, } from 'src/engine/core-modules/client-config/client-config.entity'; import { DomainServerConfigService } from 'src/engine/core-modules/domain/domain-server-config/services/domain-server-config.service'; import { PUBLIC_FEATURE_FLAGS } from 'src/engine/core-modules/feature-flag/constants/public-feature-flag.const'; @@ -38,9 +38,9 @@ export class ClientConfigService { private maintenanceModeService: MaintenanceModeService, ) {} - private deriveNativeCapabilities( + private deriveAgentCapabilities( sdkPackage?: AiSdkPackage, - ): NativeModelCapabilities | undefined { + ): AgentCapabilities | undefined { const hasNativeWebSearch = sdkPackage === AI_SDK_OPENAI || sdkPackage === AI_SDK_ANTHROPIC || @@ -104,7 +104,7 @@ export class ClientConfigService { sdkPackage: registeredModel.sdkPackage, providerName, providerLabel: getProviderLabel(providerName), - nativeCapabilities: this.deriveNativeCapabilities( + capabilities: this.deriveAgentCapabilities( registeredModel.sdkPackage, ), inputCostPerMillionTokens: modelConfig?.inputCostPerMillionTokens,