This commit is contained in:
ehconitin
2026-04-20 21:26:49 +05:30
parent 55acadcef3
commit 04847b981a
5 changed files with 17 additions and 21 deletions
@@ -1,6 +1,9 @@
import { FieldMetadataType } from 'twenty-shared/types';
import { AI_SDK_OPENAI, AI_SDK_XAI } from 'src/engine/metadata-modules/ai/ai-models/constants/ai-sdk-package.const';
import {
AI_SDK_OPENAI,
AI_SDK_XAI,
} from 'src/engine/metadata-modules/ai/ai-models/constants/ai-sdk-package.const';
import { type AiModelRegistryService } from 'src/engine/metadata-modules/ai/ai-models/services/ai-model-registry.service';
import { type WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.service';
import { type WorkspaceCacheService } from 'src/engine/workspace-cache/services/workspace-cache.service';
@@ -261,10 +261,7 @@ describe('AgentAsyncExecutorService', () => {
},
}),
{
categories: [
ToolCategory.DATABASE_CRUD,
ToolCategory.ACTION,
],
categories: [ToolCategory.DATABASE_CRUD, ToolCategory.ACTION],
wrapWithErrorContext: false,
},
);
@@ -54,9 +54,7 @@ import {
AI_SDK_BEDROCK,
} from 'src/engine/metadata-modules/ai/ai-models/constants/ai-sdk-package.const';
import { AI_TELEMETRY_CONFIG } from 'src/engine/metadata-modules/ai/ai-models/constants/ai-telemetry.const';
import {
AiModelRegistryService,
} from 'src/engine/metadata-modules/ai/ai-models/services/ai-model-registry.service';
import { AiModelRegistryService } from 'src/engine/metadata-modules/ai/ai-models/services/ai-model-registry.service';
import { type AiModelConfig } from 'src/engine/metadata-modules/ai/ai-models/types/ai-model-config.type';
import { AiModelConfigService } from 'src/engine/metadata-modules/ai/ai-models/services/ai-model-config.service';
import { WebSearchService } from 'src/engine/core-modules/web-search/web-search.service';
@@ -161,12 +159,10 @@ export class ChatExecutionService {
registeredModel.modelId,
);
const nativeSearchTools = this.aiModelConfigService.getChatNativeSearchTools(
registeredModel,
{
const nativeSearchTools =
this.aiModelConfigService.getChatNativeSearchTools(registeredModel, {
useProviderNativeWebSearch: useNativeSearch,
},
);
});
const hasNativeWebSearch = Object.prototype.hasOwnProperty.call(
nativeSearchTools,
SEARCH_TOOL_NAMES.webSearch,
@@ -203,9 +199,7 @@ export class ChatExecutionService {
? new Set([SEARCH_TOOL_NAMES.webSearch])
: undefined;
const toolCatalogForPrompt = hasNativeWebSearch
? toolCatalog.filter(
(tool) => tool.name !== SEARCH_TOOL_NAMES.webSearch,
)
? toolCatalog.filter((tool) => tool.name !== SEARCH_TOOL_NAMES.webSearch)
: toolCatalog;
// ToolSet is constant for the entire conversation — no mutation.
@@ -10,7 +10,8 @@ import { type SdkProviderFactoryService } from 'src/engine/metadata-modules/ai/a
describe('AiModelConfigService', () => {
const createService = (
sdkProviderFactory: Partial<SdkProviderFactoryService>,
) => new AiModelConfigService(sdkProviderFactory as SdkProviderFactoryService);
) =>
new AiModelConfigService(sdkProviderFactory as SdkProviderFactoryService);
const xSearchTool = { type: 'provider', id: 'xai.x_search', args: {} };
const webSearchTool = { type: 'provider', id: 'xai.web_search', args: {} };
@@ -121,9 +121,8 @@ export class AiModelConfigService {
return [];
}
const anthropicProvider = this.sdkProviderFactory.getRawAnthropicProvider(
model.providerName,
);
const anthropicProvider =
this.sdkProviderFactory.getRawAnthropicProvider(model.providerName);
if (!anthropicProvider) {
return [];
@@ -169,7 +168,9 @@ export class AiModelConfigService {
return [];
}
return [[SEARCH_TOOL_NAMES.webSearch, openAiProvider.tools.webSearch()]];
return [
[SEARCH_TOOL_NAMES.webSearch, openAiProvider.tools.webSearch()],
];
}
case AI_SDK_XAI: {
const xaiProvider = this.sdkProviderFactory.getRawXaiProvider(