From 03cb02bd0bc6cddd0d484098f7da9773e859fba9 Mon Sep 17 00:00:00 2001 From: Alexandra Shatova Date: Thu, 29 Jan 2026 16:33:35 +0000 Subject: [PATCH 01/12] feat: disable Connect LLM button and set aria-current on connectors page --- .../prompts/add_llm_connection_prompt.tsx | 10 +++++++++ .../converse/conversation_error_handling.ts | 22 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx index 086cce2285ff0..58cac09391020 100644 --- a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx +++ b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx @@ -8,9 +8,11 @@ import { EuiButton, EuiButtonEmpty, useEuiTheme } from '@elastic/eui'; import React from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; +import { useObservable } from '@kbn/use-observable'; import { ErrorPrompt } from '../../common/prompt/error_prompt'; import { useAgentBuilderServices } from '../../../hooks/use_agent_builder_service'; import { useAssetBasePath } from '../../../hooks/use_asset_base_path'; +import { useKibana } from '../../../hooks/use_kibana'; import type { PromptLayoutVariant } from '../../common/prompt/layout'; export interface AddLlmConnectionPromptProps { @@ -22,6 +24,11 @@ export const AddLlmConnectionPrompt: React.FC = ({ const { colorMode } = useEuiTheme(); const assetBasePath = useAssetBasePath(); const llmDocsHref = docLinksService.models; + const { + services: { application }, + } = useKibana(); + const currentLocation = useObservable(application.currentLocation$, ''); + const isOnConnectorsPage = currentLocation.includes('triggersActionsConnectors/connectors'); const primaryButton = ( = ({ onClick={() => { navigationService.navigateToLlmConnectorsManagement(); }} + disabled={isOnConnectorsPage} + aria-current={isOnConnectorsPage ? 'page' : undefined} + data-test-subj="connectLLMButton" > { + await deleteConnectors(supertest); + + await agentBuilder.navigateToApp('conversations/new'); + + await retry.try(async () => { + await testSubjects.existOrFail('connectLLMButton'); + }); + + const connectButton = await testSubjects.find('connectLLMButton'); + await connectButton.click(); + + await retry.try(async () => { + const currentUrl = await browser.getCurrentUrl(); + expect(currentUrl).to.contain('triggersActionsConnectors/connectors'); + }); + + await testSubjects.missingOrFail('connectLLMButton'); + + await createConnector(llmProxy, supertest); + }); }); } From cffd7dc50de13550a80c6fea279356a0baffb9f8 Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 29 Jan 2026 16:51:38 +0000 Subject: [PATCH 02/12] Changes from node scripts/lint_ts_projects --fix --- x-pack/platform/plugins/shared/agent_builder/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/platform/plugins/shared/agent_builder/tsconfig.json b/x-pack/platform/plugins/shared/agent_builder/tsconfig.json index c54d198077642..b90f0b55b967d 100644 --- a/x-pack/platform/plugins/shared/agent_builder/tsconfig.json +++ b/x-pack/platform/plugins/shared/agent_builder/tsconfig.json @@ -99,6 +99,7 @@ "@kbn/react-kibana-context-theme", "@kbn/alerts-ui-shared", "@kbn/triggers-actions-ui-plugin", - "@kbn/home-plugin" + "@kbn/home-plugin", + "@kbn/use-observable" ] } From 559c1c2661220702a7e028195eeba9aea211c85c Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:02:04 +0000 Subject: [PATCH 03/12] Changes from node scripts/regenerate_moon_projects.js --update --- x-pack/platform/plugins/shared/agent_builder/moon.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/platform/plugins/shared/agent_builder/moon.yml b/x-pack/platform/plugins/shared/agent_builder/moon.yml index ccba3e6af2650..a9be272baa884 100644 --- a/x-pack/platform/plugins/shared/agent_builder/moon.yml +++ b/x-pack/platform/plugins/shared/agent_builder/moon.yml @@ -104,6 +104,7 @@ dependsOn: - '@kbn/alerts-ui-shared' - '@kbn/triggers-actions-ui-plugin' - '@kbn/home-plugin' + - '@kbn/use-observable' tags: - plugin - prod From 0333583345c0cf7ae8392637eb15f3da17842047 Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:25:46 +0000 Subject: [PATCH 04/12] Changes from node scripts/lint_ts_projects --fix --- x-pack/platform/plugins/shared/agent_builder/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/platform/plugins/shared/agent_builder/tsconfig.json b/x-pack/platform/plugins/shared/agent_builder/tsconfig.json index b90f0b55b967d..74467412f865c 100644 --- a/x-pack/platform/plugins/shared/agent_builder/tsconfig.json +++ b/x-pack/platform/plugins/shared/agent_builder/tsconfig.json @@ -100,6 +100,7 @@ "@kbn/alerts-ui-shared", "@kbn/triggers-actions-ui-plugin", "@kbn/home-plugin", - "@kbn/use-observable" + "@kbn/use-observable", + "@kbn/data-plugin" ] } From 02b435d66c2474000ef3d1f15e557e9b0a31bdf7 Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:36:15 +0000 Subject: [PATCH 05/12] Changes from node scripts/regenerate_moon_projects.js --update --- x-pack/platform/plugins/shared/agent_builder/moon.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/platform/plugins/shared/agent_builder/moon.yml b/x-pack/platform/plugins/shared/agent_builder/moon.yml index a9be272baa884..1d2451d651eb5 100644 --- a/x-pack/platform/plugins/shared/agent_builder/moon.yml +++ b/x-pack/platform/plugins/shared/agent_builder/moon.yml @@ -105,6 +105,7 @@ dependsOn: - '@kbn/triggers-actions-ui-plugin' - '@kbn/home-plugin' - '@kbn/use-observable' + - '@kbn/data-plugin' tags: - plugin - prod From e50c07d8950f397bd09383310b2f47b72659f5af Mon Sep 17 00:00:00 2001 From: Alexandra Shatova Date: Thu, 29 Jan 2026 19:00:57 +0000 Subject: [PATCH 06/12] feat: show EuiCallOut on connectors page instead of disabled button --- .../prompts/add_llm_connection_prompt.tsx | 21 ++++++++++++++----- .../converse/conversation_error_handling.ts | 6 +++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx index 58cac09391020..317d7e98b5245 100644 --- a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx +++ b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import { EuiButton, EuiButtonEmpty, useEuiTheme } from '@elastic/eui'; +import { EuiButton, EuiButtonEmpty, EuiCallOut, useEuiTheme } from '@elastic/eui'; import React from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; import { useObservable } from '@kbn/use-observable'; @@ -30,14 +30,25 @@ export const AddLlmConnectionPrompt: React.FC = ({ const currentLocation = useObservable(application.currentLocation$, ''); const isOnConnectorsPage = currentLocation.includes('triggersActionsConnectors/connectors'); - const primaryButton = ( + const primaryAction = isOnConnectorsPage ? ( + + } + data-test-subj="connectLLMOnConnectorsPageCallout" + /> + ) : ( { navigationService.navigateToLlmConnectorsManagement(); }} - disabled={isOnConnectorsPage} - aria-current={isOnConnectorsPage ? 'page' : undefined} data-test-subj="connectLLMButton" > = ({ variant={variant} errorType="ADD_LLM_CONNECTION" imageSrc={brainImage} - primaryButton={primaryButton} + primaryButton={primaryAction} secondaryButton={secondaryButton} /> ); diff --git a/x-pack/platform/test/agent_builder_functional/tests/converse/conversation_error_handling.ts b/x-pack/platform/test/agent_builder_functional/tests/converse/conversation_error_handling.ts index e23bc768e9440..7cb50546a4a6c 100644 --- a/x-pack/platform/test/agent_builder_functional/tests/converse/conversation_error_handling.ts +++ b/x-pack/platform/test/agent_builder_functional/tests/converse/conversation_error_handling.ts @@ -320,7 +320,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { expect(previousResponseText).to.contain(FIRST_RESPONSE); }); - it('Connect LLM button is not present when on connectors page', async () => { + it('shows EuiCallOut in embedded Agent Builder flyout when on connectors page', async () => { await deleteConnectors(supertest); await agentBuilder.navigateToApp('conversations/new'); @@ -337,8 +337,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { expect(currentUrl).to.contain('triggersActionsConnectors/connectors'); }); - await testSubjects.missingOrFail('connectLLMButton'); - + await testSubjects.click('AgentBuilderNavControlButton'); + await testSubjects.existOrFail('connectLLMOnConnectorsPageCallout'); await createConnector(llmProxy, supertest); }); }); From 0354bd9e1b1181586c2e5b1a3de4f98e56d64868 Mon Sep 17 00:00:00 2001 From: Alexandra Shatova Date: Fri, 30 Jan 2026 00:26:58 +0000 Subject: [PATCH 07/12] feat: fix import --- .../components/access/prompts/add_llm_connection_prompt.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx index 317d7e98b5245..3d14f6dac13ed 100644 --- a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx +++ b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx @@ -8,7 +8,7 @@ import { EuiButton, EuiButtonEmpty, EuiCallOut, useEuiTheme } from '@elastic/eui'; import React from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; -import { useObservable } from '@kbn/use-observable'; +import useObservable from 'react-use/lib/useObservable'; import { ErrorPrompt } from '../../common/prompt/error_prompt'; import { useAgentBuilderServices } from '../../../hooks/use_agent_builder_service'; import { useAssetBasePath } from '../../../hooks/use_asset_base_path'; From 7ad9c868928c543a17e28b504a52108d8bbee14b Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Fri, 30 Jan 2026 00:38:00 +0000 Subject: [PATCH 08/12] Changes from node scripts/lint_ts_projects --fix --- x-pack/platform/plugins/shared/agent_builder/tsconfig.json | 1 - 1 file changed, 1 deletion(-) diff --git a/x-pack/platform/plugins/shared/agent_builder/tsconfig.json b/x-pack/platform/plugins/shared/agent_builder/tsconfig.json index 74467412f865c..a2d6752205f5b 100644 --- a/x-pack/platform/plugins/shared/agent_builder/tsconfig.json +++ b/x-pack/platform/plugins/shared/agent_builder/tsconfig.json @@ -100,7 +100,6 @@ "@kbn/alerts-ui-shared", "@kbn/triggers-actions-ui-plugin", "@kbn/home-plugin", - "@kbn/use-observable", "@kbn/data-plugin" ] } From ba4122a4558d33774e28353a316fe015a103b1a1 Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Fri, 30 Jan 2026 00:49:22 +0000 Subject: [PATCH 09/12] Changes from node scripts/regenerate_moon_projects.js --update --- x-pack/platform/plugins/shared/agent_builder/moon.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/x-pack/platform/plugins/shared/agent_builder/moon.yml b/x-pack/platform/plugins/shared/agent_builder/moon.yml index 1d2451d651eb5..411a7d15c5c63 100644 --- a/x-pack/platform/plugins/shared/agent_builder/moon.yml +++ b/x-pack/platform/plugins/shared/agent_builder/moon.yml @@ -104,7 +104,6 @@ dependsOn: - '@kbn/alerts-ui-shared' - '@kbn/triggers-actions-ui-plugin' - '@kbn/home-plugin' - - '@kbn/use-observable' - '@kbn/data-plugin' tags: - plugin From e430e5879065c90b6288b88db9ee0e55948bb9e0 Mon Sep 17 00:00:00 2001 From: Alexandra Shatova Date: Fri, 30 Jan 2026 01:08:00 +0000 Subject: [PATCH 10/12] feat: remove test --- .../converse/conversation_error_handling.ts | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/x-pack/platform/test/agent_builder_functional/tests/converse/conversation_error_handling.ts b/x-pack/platform/test/agent_builder_functional/tests/converse/conversation_error_handling.ts index 7cb50546a4a6c..f55a105d96e83 100644 --- a/x-pack/platform/test/agent_builder_functional/tests/converse/conversation_error_handling.ts +++ b/x-pack/platform/test/agent_builder_functional/tests/converse/conversation_error_handling.ts @@ -319,27 +319,5 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { const previousResponseText = await previousResponseElement.getVisibleText(); expect(previousResponseText).to.contain(FIRST_RESPONSE); }); - - it('shows EuiCallOut in embedded Agent Builder flyout when on connectors page', async () => { - await deleteConnectors(supertest); - - await agentBuilder.navigateToApp('conversations/new'); - - await retry.try(async () => { - await testSubjects.existOrFail('connectLLMButton'); - }); - - const connectButton = await testSubjects.find('connectLLMButton'); - await connectButton.click(); - - await retry.try(async () => { - const currentUrl = await browser.getCurrentUrl(); - expect(currentUrl).to.contain('triggersActionsConnectors/connectors'); - }); - - await testSubjects.click('AgentBuilderNavControlButton'); - await testSubjects.existOrFail('connectLLMOnConnectorsPageCallout'); - await createConnector(llmProxy, supertest); - }); }); } From b2713d09231feae15ecb299856e0abff9b352576 Mon Sep 17 00:00:00 2001 From: Alexandra Shatova Date: Fri, 30 Jan 2026 10:05:16 +0000 Subject: [PATCH 11/12] fix: detect Management app byy\ currentAppId instead of path --- .../components/access/prompts/add_llm_connection_prompt.tsx | 5 +++-- .../agent_builder/public/application/hooks/use_navigation.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx index 3d14f6dac13ed..a99d46247ce4d 100644 --- a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx +++ b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx @@ -9,6 +9,7 @@ import { EuiButton, EuiButtonEmpty, EuiCallOut, useEuiTheme } from '@elastic/eui import React from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; import useObservable from 'react-use/lib/useObservable'; +import { MANAGEMENT_APP_ID } from '../../../hooks/use_navigation'; import { ErrorPrompt } from '../../common/prompt/error_prompt'; import { useAgentBuilderServices } from '../../../hooks/use_agent_builder_service'; import { useAssetBasePath } from '../../../hooks/use_asset_base_path'; @@ -27,8 +28,8 @@ export const AddLlmConnectionPrompt: React.FC = ({ const { services: { application }, } = useKibana(); - const currentLocation = useObservable(application.currentLocation$, ''); - const isOnConnectorsPage = currentLocation.includes('triggersActionsConnectors/connectors'); + const currentAppId = useObservable(application.currentAppId$, undefined); + const isOnConnectorsPage = currentAppId === MANAGEMENT_APP_ID; const primaryAction = isOnConnectorsPage ? ( { From 75fa6eee9482771fe203c24d49820f431949b4e2 Mon Sep 17 00:00:00 2001 From: Alexandra Shatova Date: Fri, 30 Jan 2026 12:33:51 +0000 Subject: [PATCH 12/12] fix: rename variable --- .../components/access/prompts/add_llm_connection_prompt.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx index a99d46247ce4d..9e3ef735d0f82 100644 --- a/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx +++ b/x-pack/platform/plugins/shared/agent_builder/public/application/components/access/prompts/add_llm_connection_prompt.tsx @@ -29,9 +29,9 @@ export const AddLlmConnectionPrompt: React.FC = ({ services: { application }, } = useKibana(); const currentAppId = useObservable(application.currentAppId$, undefined); - const isOnConnectorsPage = currentAppId === MANAGEMENT_APP_ID; + const isInManagementApp = currentAppId === MANAGEMENT_APP_ID; - const primaryAction = isOnConnectorsPage ? ( + const primaryAction = isInManagementApp ? (