diff --git a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/api/prompts/use_fetch_prompts.ts b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/api/prompts/use_fetch_prompts.ts index 27e2bccbd66c..3f66b81a2bb2 100644 --- a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/api/prompts/use_fetch_prompts.ts +++ b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/api/prompts/use_fetch_prompts.ts @@ -8,8 +8,6 @@ import { FindPromptsResponse } from '@kbn/elastic-assistant-common/impl/schemas'; import { useQuery } from '@tanstack/react-query'; import { API_VERSIONS, ELASTIC_AI_ASSISTANT_PROMPTS_URL_FIND } from '@kbn/elastic-assistant-common'; -import { HttpSetup, IToasts } from '@kbn/core/public'; -import { i18n } from '@kbn/i18n'; import { useAssistantContext } from '../../../assistant_context'; export interface UseFetchPromptsParams { @@ -74,28 +72,3 @@ export const useFetchPrompts = (payload?: UseFetchPromptsParams) => { } ); }; - -export const getPrompts = async ({ - http, - signal, - toasts, -}: { - http: HttpSetup; - toasts: IToasts; - signal?: AbortSignal | undefined; -}) => { - try { - return await http.fetch(ELASTIC_AI_ASSISTANT_PROMPTS_URL_FIND, { - method: 'GET', - version: API_VERSIONS.public.v1, - signal, - }); - } catch (error) { - toasts.addError(error.body && error.body.message ? new Error(error.body.message) : error, { - title: i18n.translate('xpack.elasticAssistant.prompts.getPromptsError', { - defaultMessage: 'Error fetching prompts', - }), - }); - throw error; - } -}; diff --git a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/mock/system_prompt/index.ts b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/mock/system_prompt/index.ts index b96faaa5f90d..ad83d1aa205c 100644 --- a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/mock/system_prompt/index.ts +++ b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/mock/system_prompt/index.ts @@ -36,16 +36,6 @@ export const defaultSystemPrompt: PromptResponse = { isNewConversationDefault: true, }; -export const defaultQuickPrompt: PromptResponse = { - id: 'default-system-prompt', - content: - 'You are a helpful, expert assistant who answers questions about Elastic Security. Do not answer questions unrelated to Elastic Security.\nIf you answer a question related to KQL or EQL, it should be immediately usable within an Elastic Security timeline; please always format the output correctly with back ticks. Any answer provided for Query DSL should also be usable in a security timeline. This means you should only ever include the "filter" portion of the query.\nUse the following context to answer questions:', - name: 'Default system prompt', - promptType: 'quick', - consumer: 'securitySolutionUI', - color: 'red', -}; - export const mockSystemPrompts: PromptResponse[] = [ mockSystemPrompt, mockSuperheroSystemPrompt, diff --git a/x-pack/platform/packages/shared/kbn-elastic-assistant/index.ts b/x-pack/platform/packages/shared/kbn-elastic-assistant/index.ts index 540c506a98cd..fd8436349425 100644 --- a/x-pack/platform/packages/shared/kbn-elastic-assistant/index.ts +++ b/x-pack/platform/packages/shared/kbn-elastic-assistant/index.ts @@ -161,7 +161,7 @@ export * from './impl/assistant/api/conversations/bulk_update_actions_conversati export { getConversationById } from './impl/assistant/api/conversations/conversations'; export { UpgradeButtons } from './impl/upgrade/upgrade_buttons'; -export { getUserConversationsExist, getPrompts, bulkUpdatePrompts } from './impl/assistant/api'; +export { getUserConversationsExist, bulkUpdatePrompts } from './impl/assistant/api'; export { /** A range slider component, typically used to configure the number of alerts sent as context */ diff --git a/x-pack/platform/plugins/private/translations/translations/fr-FR.json b/x-pack/platform/plugins/private/translations/translations/fr-FR.json index 99d1fdef5ba4..05762fc5ae7e 100644 --- a/x-pack/platform/plugins/private/translations/translations/fr-FR.json +++ b/x-pack/platform/plugins/private/translations/translations/fr-FR.json @@ -16359,7 +16359,6 @@ "xpack.elasticAssistant.knowledgeBase.tour.videoStep.desc": "Les sources de connaissances personnalisées vous permettent de recevoir des réponses personnalisées et adaptées de la part de l'assistant d’IA. Visionnez cette vidéo pour découvrir comment ajouter vos propres sources de données et voir des exemples de leur application dans un contexte d'opérations de sécurité.", "xpack.elasticAssistant.knowledgeBase.tour.videoStep.title": "Présentation des sources de connaissances personnalisées", "xpack.elasticAssistant.prompts.bulkActionspromptsError": "Erreur de la mise à jour des invites {error}", - "xpack.elasticAssistant.prompts.getPromptsError": "Erreur lors de la récupération des invites", "xpack.elasticAssistant.securityAssistant.content.prompts.welcome.enterprisePrompt": "L'assistant d'IA d'Elastic n'est accessible qu'aux entreprises. Veuillez mettre votre licence à niveau pour bénéficier de cette fonctionnalité.", "xpack.elasticAssistantPlugin.assistant.apiErrorTitle": "Une erreur s’est produite lors de l’envoi de votre message.", "xpack.elasticAssistantPlugin.assistant.contentReferences.knowledgeBaseEntryReference.label": "Entrée de la base de connaissances", @@ -35063,18 +35062,6 @@ "xpack.securitySolution.assistant.content.promptContexts.indexTitle": "index", "xpack.securitySolution.assistant.content.promptContexts.viewTitle": "vue", "xpack.securitySolution.assistant.conversationMigrationStatus.title": "Les conversations de stockage local ont été persistées avec succès.", - "xpack.securitySolution.assistant.quickPrompts.alertSummarizationPrompt": "En tant qu’expert en opérations de sécurité et en réponses aux incidents, décomposer l’alerte jointe et résumer ce qu’elle peut impliquer pour mon organisation.", - "xpack.securitySolution.assistant.quickPrompts.alertSummarizationTitle": "Synthèse de l’alerte", - "xpack.securitySolution.assistant.quickPrompts.AutomationPrompt": "Quelle intégration d’Elastic Agent activée par Fleet dois-je utiliser pour collecter des logs et des évènements de :", - "xpack.securitySolution.assistant.quickPrompts.AutomationTitle": "Conseil sur l’intégration d’agent", - "xpack.securitySolution.assistant.quickPrompts.ruleCreationPrompt": "En tant qu'utilisateur expert d'Elastic Security, veuillez générer une requête EQL valide et précise pour détecter le cas d'utilisation ci-dessous. Votre réponse doit être formatée pour pouvoir être utilisée immédiatement dans une chronologie ou une règle de détection d'Elastic Security. Si Elastic Security a déjà une règle prédéfinie pour le cas d'utilisation ou pour un cas similaire, veuillez fournir un lien vers cette règle et la décrire.", - "xpack.securitySolution.assistant.quickPrompts.ruleCreationTitle": "Génération de requête", - "xpack.securitySolution.assistant.quickPrompts.splQueryConversionPrompt": "J'ai la requête suivante d'une plateforme SIEM précédente. En tant qu'utilisateur expert d'Elastic Security, veuillez suggérer un équivalent EQL Elastic. Je dois être capable de la copier immédiatement dans une chronologie Elastic Security.", - "xpack.securitySolution.assistant.quickPrompts.splQueryConversionTitle": "Conversion de requête", - "xpack.securitySolution.assistant.quickPrompts.threatInvestigationGuidesPrompt": "En tant qu’utilisateur expert d’Elastic Security, d’Elastic Agent et de pipelines d'ingestion, veuillez donner des instructions précises et formatées, étape par étape, sur comment ingérer les données suivantes à l’aide d’Elastic Agent et de Fleet dans Kibana, et comment les convertir dans Elastic Common Schema :", - "xpack.securitySolution.assistant.quickPrompts.threatInvestigationGuidesTitle": "Assistant d’ingestion de données personnalisées", - "xpack.securitySolution.assistant.quickPrompts.workflowAnalysisPrompt": "En tant qu’utilisateur expert d’Elastic Security, veuillez suggérer un workflow, avec des instructions étape par étape pour :", - "xpack.securitySolution.assistant.quickPrompts.workflowAnalysisTitle": "Suggestion de workflow", "xpack.securitySolution.assistant.settings.breadcrumb.index": "Assistants d'IA", "xpack.securitySolution.assistant.settings.breadcrumb.security": "Sécurité", "xpack.securitySolution.assistant.settings.breadcrumb.serverless.security": "Paramètres de l'assistant d'IA pour Security", diff --git a/x-pack/platform/plugins/private/translations/translations/ja-JP.json b/x-pack/platform/plugins/private/translations/translations/ja-JP.json index 78df8036654e..3e78b808d4a4 100644 --- a/x-pack/platform/plugins/private/translations/translations/ja-JP.json +++ b/x-pack/platform/plugins/private/translations/translations/ja-JP.json @@ -16377,7 +16377,6 @@ "xpack.elasticAssistant.knowledgeBase.tour.videoStep.desc": "カスタムナレッジソースでは、AI Assistantからカスタマイズされた応答を受け取ることができます。独自のデータソースを追加する方法や、セキュリティ運用コンテキストで応用する方法の例を探るには、こちらの動画を視聴してください。", "xpack.elasticAssistant.knowledgeBase.tour.videoStep.title": "カスタムナレッジソースの概要", "xpack.elasticAssistant.prompts.bulkActionspromptsError": "プロンプトの更新エラー{error}", - "xpack.elasticAssistant.prompts.getPromptsError": "プロンプト取得エラー", "xpack.elasticAssistant.securityAssistant.content.prompts.welcome.enterprisePrompt": "Elastic AI Assistantはエンタープライズユーザーのみご利用いただけます。 この機能を使用するには、ライセンスをアップグレードしてください。", "xpack.elasticAssistantPlugin.assistant.apiErrorTitle": "メッセージの送信中にエラーが発生しました。", "xpack.elasticAssistantPlugin.assistant.contentReferences.knowledgeBaseEntryReference.label": "ナレッジベースエントリ", @@ -35097,18 +35096,6 @@ "xpack.securitySolution.assistant.content.promptContexts.indexTitle": "インデックス", "xpack.securitySolution.assistant.content.promptContexts.viewTitle": "表示", "xpack.securitySolution.assistant.conversationMigrationStatus.title": "ローカルストレージ会話は正常に永続しました。", - "xpack.securitySolution.assistant.quickPrompts.alertSummarizationPrompt": "セキュリティ運用とインシデント対応のエキスパートとして、添付されたアラートの内訳を説明し、それが私の組織にとって何を意味するのかを要約してください。", - "xpack.securitySolution.assistant.quickPrompts.alertSummarizationTitle": "アラート要約", - "xpack.securitySolution.assistant.quickPrompts.AutomationPrompt": "ログやイベントの収集には、どのFleet対応Elasticエージェント統合を使用すべきですか。", - "xpack.securitySolution.assistant.quickPrompts.AutomationTitle": "エージェント統合のアドバイス", - "xpack.securitySolution.assistant.quickPrompts.ruleCreationPrompt": "Elasticセキュリティのエキスパートユーザーとして、以下のユースケースを検出するための正確で有効なEQLクエリを作成してください。回答は、Elasticセキュリティのタイムラインまたは検出ルールですぐに使用できるように書式設定してください。そのユースケースに対応するルールがすでにElasticセキュリティに組み込まれている場合、または類似のルールが組み込まれている場合は、そのルールへのリンクと説明を入力してください。", - "xpack.securitySolution.assistant.quickPrompts.ruleCreationTitle": "クエリ生成", - "xpack.securitySolution.assistant.quickPrompts.splQueryConversionPrompt": "以前のSIEMプラットフォームから次のクエリを受け取りました。Elasticセキュリティのエキスパートユーザーとして、同等のElastic EQLを提案してください。すぐにそれをElasticのセキュリティタイムラインにコピーできます。", - "xpack.securitySolution.assistant.quickPrompts.splQueryConversionTitle": "クエリ変換", - "xpack.securitySolution.assistant.quickPrompts.threatInvestigationGuidesPrompt": "Elasticセキュリティ、Elasticエージェント、インジェストパイプラインのエキスパートユーザーとして、ElasticエージェントとKibanaのFleetを使用して次のデータをインジェストし、Elastic Common Schemaに変換する方法について、正確で書式設定された段階的な手順を挙げてください。", - "xpack.securitySolution.assistant.quickPrompts.threatInvestigationGuidesTitle": "カスタムデータインジェストヘルパー", - "xpack.securitySolution.assistant.quickPrompts.workflowAnalysisPrompt": "Elasticセキュリティのエキスパートユーザーとして、次の方法に関するワークフローと段階的な手順を提案してください。", - "xpack.securitySolution.assistant.quickPrompts.workflowAnalysisTitle": "ワークフロー提案", "xpack.securitySolution.assistant.settings.breadcrumb.index": "AI Assistant", "xpack.securitySolution.assistant.settings.breadcrumb.security": "セキュリティ", "xpack.securitySolution.assistant.settings.breadcrumb.serverless.security": "AI Assistant for Security設定", diff --git a/x-pack/platform/plugins/private/translations/translations/zh-CN.json b/x-pack/platform/plugins/private/translations/translations/zh-CN.json index 0e4a17aa009d..36e387ad8fd6 100644 --- a/x-pack/platform/plugins/private/translations/translations/zh-CN.json +++ b/x-pack/platform/plugins/private/translations/translations/zh-CN.json @@ -16373,7 +16373,6 @@ "xpack.elasticAssistant.knowledgeBase.tour.videoStep.desc": "使用定制知识源,您可以从 AI 助手接收专门定制的响应。观看此视频了解如何添加您自己的数据源,并浏览如何在安全运营情况下应用这类数据源的示例。", "xpack.elasticAssistant.knowledgeBase.tour.videoStep.title": "定制知识源简介", "xpack.elasticAssistant.prompts.bulkActionspromptsError": "更新提示时出错 {error}", - "xpack.elasticAssistant.prompts.getPromptsError": "提取提示时出错", "xpack.elasticAssistant.securityAssistant.content.prompts.welcome.enterprisePrompt": "Elastic AI 助手仅对企业用户可用。请升级许可证以使用此功能。", "xpack.elasticAssistantPlugin.assistant.apiErrorTitle": "发送消息时出错。", "xpack.elasticAssistantPlugin.assistant.contentReferences.knowledgeBaseEntryReference.label": "知识库条目", @@ -35086,18 +35085,6 @@ "xpack.securitySolution.assistant.content.promptContexts.indexTitle": "索引", "xpack.securitySolution.assistant.content.promptContexts.viewTitle": "视图", "xpack.securitySolution.assistant.conversationMigrationStatus.title": "已成功保持本地存储对话。", - "xpack.securitySolution.assistant.quickPrompts.alertSummarizationPrompt": "作为安全运营和事件响应领域的专家,提供附加告警的细目并简要说明它对我所在组织可能的影响。", - "xpack.securitySolution.assistant.quickPrompts.alertSummarizationTitle": "告警汇总", - "xpack.securitySolution.assistant.quickPrompts.AutomationPrompt": "我应使用哪个启用 Fleet 的 Elastic 代理集成从以下项中收集日志和事件:", - "xpack.securitySolution.assistant.quickPrompts.AutomationTitle": "代理集成建议", - "xpack.securitySolution.assistant.quickPrompts.ruleCreationPrompt": "作为 Elastic Security 的专家用户,请生成准确、有效的 EQL 查询来检测以下用例。应对您的响应进行格式化,以便可以立即在 Elastic Security 时间线或检测规则中使用。如果 Elastic Security 已经为此用例预构建了规则,或具有类似规则,请提供该规则的链接并做出描述。", - "xpack.securitySolution.assistant.quickPrompts.ruleCreationTitle": "查询生成", - "xpack.securitySolution.assistant.quickPrompts.splQueryConversionPrompt": "我具有以下来自之前 SIEM 平台的查询。作为 Elastic Security 的专家用户,请提议一个 Elastic EQL 等价查询。我应能够立即将其复制到 Elastic Security 时间线。", - "xpack.securitySolution.assistant.quickPrompts.splQueryConversionTitle": "查询转换", - "xpack.securitySolution.assistant.quickPrompts.threatInvestigationGuidesPrompt": "作为 Elastic Security、Elastic 代理和采集管道的专家用户,请列出如何在 Kibana 中使用 Elastic 代理和 Fleet 采集以下数据并将其转换为 Elastic Common Schema 的准确、已格式化的分步说明:", - "xpack.securitySolution.assistant.quickPrompts.threatInvestigationGuidesTitle": "定制数据采集帮助程序", - "xpack.securitySolution.assistant.quickPrompts.workflowAnalysisPrompt": "作为 Elastic Security 的专家用户,请提议一个工作流,提供如何执行以下操作的分步说明:", - "xpack.securitySolution.assistant.quickPrompts.workflowAnalysisTitle": "工作流建议", "xpack.securitySolution.assistant.settings.breadcrumb.index": "AI 助手", "xpack.securitySolution.assistant.settings.breadcrumb.security": "安全", "xpack.securitySolution.assistant.settings.breadcrumb.serverless.security": "适用于 Security 的 AI 助手设置", diff --git a/x-pack/solutions/security/plugins/elastic_assistant/server/routes/prompts/find_route.ts b/x-pack/solutions/security/plugins/elastic_assistant/server/routes/prompts/find_route.ts index 7556e764c653..747e7c218366 100644 --- a/x-pack/solutions/security/plugins/elastic_assistant/server/routes/prompts/find_route.ts +++ b/x-pack/solutions/security/plugins/elastic_assistant/server/routes/prompts/find_route.ts @@ -63,10 +63,8 @@ export const findPromptsRoute = (router: ElasticAssistantPluginRouter, logger: L sortField: query.sort_field, sortOrder: query.sort_order, filter: query.filter - ? `${decodeURIComponent( - query.filter - )} and not (prompt_type: "system" and is_default: true)` - : 'not (prompt_type: "system" and is_default: true)', + ? `${decodeURIComponent(query.filter)} and not (is_default: true)` + : 'not (is_default: true)', fields: query.fields, }); diff --git a/x-pack/solutions/security/plugins/security_solution/public/assistant/content/quick_prompts/index.tsx b/x-pack/solutions/security/plugins/security_solution/public/assistant/content/quick_prompts/index.tsx deleted file mode 100644 index 8c33ca94f913..000000000000 --- a/x-pack/solutions/security/plugins/security_solution/public/assistant/content/quick_prompts/index.tsx +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { PromptTypeEnum, type PromptResponse } from '@kbn/elastic-assistant-common/impl/schemas'; -import { APP_UI_ID } from '../../../../common'; -import * as i18n from './translations'; -import { - PROMPT_CONTEXT_ALERT_CATEGORY, - PROMPT_CONTEXT_DETECTION_RULES_CATEGORY, - PROMPT_CONTEXT_EVENT_CATEGORY, -} from '../prompt_contexts'; - -/** - * Global list of QuickPrompts intended to be used throughout Security Solution. - * Useful if wanting to see all available QuickPrompts in one place, or if needing - * to reference when constructing a new chat window to include a QuickPrompt. - */ -export const BASE_SECURITY_QUICK_PROMPTS: PromptResponse[] = [ - { - name: i18n.ALERT_SUMMARIZATION_TITLE, - content: i18n.ALERT_SUMMARIZATION_PROMPT, - color: '#F68FBE', - categories: [PROMPT_CONTEXT_ALERT_CATEGORY], - isDefault: true, - id: i18n.ALERT_SUMMARIZATION_TITLE, - promptType: PromptTypeEnum.quick, - consumer: APP_UI_ID, - }, - { - name: i18n.RULE_CREATION_TITLE, - content: i18n.RULE_CREATION_PROMPT, - categories: [PROMPT_CONTEXT_DETECTION_RULES_CATEGORY], - color: '#7DDED8', - isDefault: true, - id: i18n.RULE_CREATION_TITLE, - promptType: PromptTypeEnum.quick, - consumer: APP_UI_ID, - }, - { - name: i18n.WORKFLOW_ANALYSIS_TITLE, - content: i18n.WORKFLOW_ANALYSIS_PROMPT, - color: '#36A2EF', - isDefault: true, - id: i18n.WORKFLOW_ANALYSIS_TITLE, - promptType: PromptTypeEnum.quick, - consumer: APP_UI_ID, - }, - { - name: i18n.THREAT_INVESTIGATION_GUIDES_TITLE, - content: i18n.THREAT_INVESTIGATION_GUIDES_PROMPT, - categories: [PROMPT_CONTEXT_EVENT_CATEGORY], - color: '#F3D371', - isDefault: true, - id: i18n.THREAT_INVESTIGATION_GUIDES_TITLE, - promptType: PromptTypeEnum.quick, - consumer: APP_UI_ID, - }, - { - name: i18n.SPL_QUERY_CONVERSION_TITLE, - content: i18n.SPL_QUERY_CONVERSION_PROMPT, - color: '#BADA55', - isDefault: true, - id: i18n.SPL_QUERY_CONVERSION_TITLE, - promptType: PromptTypeEnum.quick, - consumer: APP_UI_ID, - }, - { - name: i18n.AUTOMATION_TITLE, - content: i18n.AUTOMATION_PROMPT, - color: '#FFA500', - isDefault: true, - id: i18n.AUTOMATION_TITLE, - promptType: PromptTypeEnum.quick, - consumer: APP_UI_ID, - }, -]; diff --git a/x-pack/solutions/security/plugins/security_solution/public/assistant/content/quick_prompts/translations.ts b/x-pack/solutions/security/plugins/security_solution/public/assistant/content/quick_prompts/translations.ts deleted file mode 100644 index 1d122b0169be..000000000000 --- a/x-pack/solutions/security/plugins/security_solution/public/assistant/content/quick_prompts/translations.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; - -export const ALERT_SUMMARIZATION_TITLE = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.alertSummarizationTitle', - { - defaultMessage: 'Alert summarization', - } -); - -export const ALERT_SUMMARIZATION_PROMPT = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.alertSummarizationPrompt', - { - defaultMessage: - 'As an expert in security operations and incident response, provide a breakdown of the attached alert and summarize what it might mean for my organization.', - } -); - -export const RULE_CREATION_TITLE = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.ruleCreationTitle', - { - defaultMessage: 'Query generation', - } -); - -export const RULE_CREATION_PROMPT = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.ruleCreationPrompt', - { - defaultMessage: - 'As an expert user of Elastic Security, please generate an accurate and valid EQL query to detect the use case below. Your response should be formatted to be able to use immediately in an Elastic Security timeline or detection rule. If Elastic Security already has a prebuilt rule for the use case, or a similar one, please provide a link to it and describe it.', - } -); - -export const WORKFLOW_ANALYSIS_TITLE = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.workflowAnalysisTitle', - { - defaultMessage: 'Workflow suggestions', - } -); - -export const WORKFLOW_ANALYSIS_PROMPT = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.workflowAnalysisPrompt', - { - defaultMessage: - 'As an expert user of Elastic Security, please suggest a workflow, with step by step instructions on how to:', - } -); - -export const THREAT_INVESTIGATION_GUIDES_TITLE = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.threatInvestigationGuidesTitle', - { - defaultMessage: 'Custom data ingestion helper', - } -); - -export const THREAT_INVESTIGATION_GUIDES_PROMPT = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.threatInvestigationGuidesPrompt', - { - defaultMessage: - 'As an expert user of Elastic Security, Elastic Agent, and Ingest pipelines, please list accurate and formatted, step by step instructions on how to ingest the following data using Elastic Agent and Fleet in Kibana and convert it to the Elastic Common Schema:', - } -); - -export const SPL_QUERY_CONVERSION_TITLE = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.splQueryConversionTitle', - { - defaultMessage: 'Query conversion', - } -); - -export const SPL_QUERY_CONVERSION_PROMPT = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.splQueryConversionPrompt', - { - defaultMessage: - 'I have the following query from a previous SIEM platform. As an expert user of Elastic Security, please suggest an Elastic EQL equivalent. I should be able to copy it immediately into an Elastic security timeline.', - } -); - -export const AUTOMATION_TITLE = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.AutomationTitle', - { - defaultMessage: 'Agent integration advice', - } -); - -export const AUTOMATION_PROMPT = i18n.translate( - 'xpack.securitySolution.assistant.quickPrompts.AutomationPrompt', - { - defaultMessage: - 'Which Fleet enabled Elastic Agent integration should I use to collect logs and events from:', - } -); diff --git a/x-pack/solutions/security/plugins/security_solution/public/assistant/provider.tsx b/x-pack/solutions/security/plugins/security_solution/public/assistant/provider.tsx index 40dc8e348b07..7b4414dde23c 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/assistant/provider.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/assistant/provider.tsx @@ -6,19 +6,11 @@ */ import type { FC, PropsWithChildren } from 'react'; import React, { useEffect } from 'react'; -import type { NotificationsStart } from '@kbn/core-notifications-browser'; -import { - AssistantProvider as ElasticAssistantProvider, - getPrompts, - bulkUpdatePrompts, -} from '@kbn/elastic-assistant'; +import { AssistantProvider as ElasticAssistantProvider } from '@kbn/elastic-assistant'; -import { once, isEmpty } from 'lodash/fp'; -import type { HttpSetup } from '@kbn/core-http-browser'; +import { isEmpty } from 'lodash/fp'; import useObservable from 'react-use/lib/useObservable'; import { useKibana } from '../common/lib/kibana'; -// import { getComments } from './get_comments'; -import { BASE_SECURITY_QUICK_PROMPTS } from './content/quick_prompts'; import { useAssistantAvailability } from './use_assistant_availability'; import { licenseService } from '../common/hooks/use_license'; import { useFindPromptContexts } from './content/prompt_contexts/use_find_prompt_contexts'; @@ -27,22 +19,6 @@ import { AugmentMessageCodeBlocksPortal } from './use_augment_message_code_block import { useElasticAssistantSharedStateSignalIndex } from './use_elastic_assistant_shared_state_signal_index/use_elastic_assistant_shared_state_signal_index'; import { useMigrateConversationsFromLocalStorage } from './migrate_conversations_from_local_storage/use_migrate_conversation_from_local_storage'; -export const createBasePrompts = async (notifications: NotificationsStart, http: HttpSetup) => { - const promptsToCreate = [...BASE_SECURITY_QUICK_PROMPTS]; - - // post bulk create - const bulkResult = await bulkUpdatePrompts( - http, - { - create: promptsToCreate, - }, - notifications.toasts - ); - if (bulkResult && bulkResult.success) { - return bulkResult.attributes.results.created; - } -}; - /** * This component configures the Elastic AI Assistant context provider for the Security Solution app. */ @@ -58,35 +34,6 @@ export const AssistantProvider: FC> = ({ children }) useMigrateConversationsFromLocalStorage(); useElasticAssistantSharedStateSignalIndex(); - useEffect(() => { - const createSecurityPrompts = once(async () => { - if ( - hasEnterpriseLicence && - assistantAvailability.isAssistantEnabled && - assistantAvailability.hasAssistantPrivilege - ) { - try { - const res = await getPrompts({ - http, - toasts: notifications.toasts, - }); - - if (res.total === 0) { - await createBasePrompts(notifications, http); - } - // eslint-disable-next-line no-empty - } catch (e) {} - } - }); - createSecurityPrompts(); - }, [ - assistantAvailability.hasAssistantPrivilege, - assistantAvailability.isAssistantEnabled, - hasEnterpriseLicence, - http, - notifications, - ]); - const promptContexts = useFindPromptContexts({ context: { isAssistantEnabled: