Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Observability AI Assistant] Action menu item #163463

Merged
merged 159 commits into from
Aug 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
90203d9
Observability AI Assistant plugin
dgieselaar Jul 15, 2023
798b1c3
Observability AI Assistant Service + Client
dgieselaar Jul 18, 2023
5f96a6c
Add Storybook setup
CoenWarmer Jul 19, 2023
8e5e894
Add AskAiAssistantButton
CoenWarmer Jul 19, 2023
09f821b
Add Assistant Avatar
CoenWarmer Jul 19, 2023
378cc90
First pass of InsightPanel
CoenWarmer Jul 19, 2023
6d7bbcf
Merge pull request #6 from CoenWarmer/storybook
dgieselaar Jul 19, 2023
9279a0b
newline in package.json
dgieselaar Jul 19, 2023
7e2525d
Update AskAssistantButton to include Sparkles from Eui
CoenWarmer Jul 19, 2023
4fc20ac
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Jul 19, 2023
b06714b
[CI] Auto-commit changed files from 'node scripts/generate codeowners'
kibanamachine Jul 19, 2023
0cd6dde
[CI] Auto-commit changed files from 'node scripts/build_plugin_list_d…
kibanamachine Jul 19, 2023
e27e590
Add plugin to limits.yml
dgieselaar Jul 19, 2023
26dcb4e
Merge branch 'obs-ai-assistant' of github.com:dgieselaar/kibana into …
dgieselaar Jul 19, 2023
8a30a08
Fix i18n check
dgieselaar Jul 19, 2023
a9c59b6
Added Insight component
CoenWarmer Jul 19, 2023
e3a67c8
Merge branch 'obs-ai-assistant' into storybook
CoenWarmer Jul 20, 2023
d391008
Update i18n translation base key
CoenWarmer Jul 20, 2023
cc0f643
Merge branch 'storybook' of github.com:CoenWarmer/kibana into storybook
CoenWarmer Jul 20, 2023
3c96673
Add builders for Messages
CoenWarmer Jul 20, 2023
c0decc6
Add hooks
CoenWarmer Jul 20, 2023
1a3d74c
Add security as dependency
CoenWarmer Jul 20, 2023
990d6d1
Update imports
CoenWarmer Jul 20, 2023
fa10766
First pass of Chat interface
CoenWarmer Jul 20, 2023
26bf617
Observability AI Assistant plugin
dgieselaar Jul 15, 2023
d98b43a
Observability AI Assistant Service + Client
dgieselaar Jul 18, 2023
61efe2f
Add Storybook setup
CoenWarmer Jul 19, 2023
7004c7c
Add AskAiAssistantButton
CoenWarmer Jul 19, 2023
4d4ca17
Add Assistant Avatar
CoenWarmer Jul 19, 2023
0efd9d3
First pass of InsightPanel
CoenWarmer Jul 19, 2023
a959689
newline in package.json
dgieselaar Jul 19, 2023
7188423
Add plugin to limits.yml
dgieselaar Jul 19, 2023
0c59c0c
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Jul 19, 2023
82d482e
[CI] Auto-commit changed files from 'node scripts/generate codeowners'
kibanamachine Jul 19, 2023
cedbed9
[CI] Auto-commit changed files from 'node scripts/build_plugin_list_d…
kibanamachine Jul 19, 2023
1755e1a
Fix i18n check
dgieselaar Jul 19, 2023
739b116
Add observability_ai_assistant storybook to CI step
dgieselaar Jul 20, 2023
a375fbd
Update AskAssistantButton to include Sparkles from Eui
CoenWarmer Jul 19, 2023
fc6d944
Added Insight component
CoenWarmer Jul 19, 2023
dbb37d9
Update i18n translation base key
CoenWarmer Jul 20, 2023
3a2e069
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Jul 20, 2023
16955ed
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant
dgieselaar Jul 24, 2023
15f22db
Contextual insights
dgieselaar Jul 23, 2023
9f211e2
Add unit tests
dgieselaar Jul 23, 2023
8fb4514
Migrate existing insights
dgieselaar Jul 23, 2023
b12a2a2
Fix types
dgieselaar Jul 23, 2023
1641866
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Jul 23, 2023
13c821a
Remove unused translations
dgieselaar Jul 23, 2023
8930c8a
Fix types in test_helper
dgieselaar Jul 23, 2023
2909dae
Fix infra type errors
dgieselaar Jul 23, 2023
f1bf989
Add API tests
dgieselaar Jul 24, 2023
54a6b07
Remove AI ASsistant config settings from observability plugin in rend…
dgieselaar Jul 24, 2023
62c04bf
Remove basic config
dgieselaar Jul 24, 2023
818ffc8
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Jul 24, 2023
47965bf
Correct type import
dgieselaar Jul 24, 2023
e0b5911
Merge branch 'contextual-insights' of github.com:dgieselaar/kibana in…
dgieselaar Jul 24, 2023
a284f45
Add support for Azure
dgieselaar Jul 24, 2023
76f4f32
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant
dgieselaar Jul 25, 2023
a8d6eca
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Jul 25, 2023
0b66523
Add chat timeline
CoenWarmer Jul 25, 2023
43aede2
Merge branch 'obs-ai-assistant' of github.com:dgieselaar/kibana into …
CoenWarmer Jul 25, 2023
38d0eb8
Catch resource_already_exists_exception
dgieselaar Jul 25, 2023
e0e9b0e
Merge branch 'obs-ai-assistant' of github.com:dgieselaar/kibana into …
dgieselaar Jul 25, 2023
a6527b4
Integrate changes
CoenWarmer Jul 25, 2023
d4d2ad3
Remove background for EA
CoenWarmer Jul 25, 2023
807fd10
Use createConcreteWriteIndex from alerting plugin
dgieselaar Jul 25, 2023
d01bbef
Merge pull request #9 from CoenWarmer/storybook
dgieselaar Jul 25, 2023
f258a42
Review feedback & don't init on startup
dgieselaar Jul 25, 2023
d4447de
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant
dgieselaar Jul 25, 2023
7f6c24e
Define system/user prompts for infra
dgieselaar Jul 25, 2023
ca8a576
[Observability AI Assistant] Stop/regenerate response
dgieselaar Jul 25, 2023
889f1a8
Add Actions menu to ChatItems
CoenWarmer Jul 25, 2023
706559f
Merge pull request #10 from CoenWarmer/storybook
CoenWarmer Jul 25, 2023
eb51ece
Add Regenerate button to ChatItem
CoenWarmer Jul 25, 2023
27f224a
Merge pull request #11 from CoenWarmer/storybook
CoenWarmer Jul 25, 2023
3cb27a5
Chat Flyout
CoenWarmer Jul 25, 2023
c9753e5
Merge pull request #12 from CoenWarmer/storybook
CoenWarmer Jul 26, 2023
b5ed9c5
Re-adding subdued background for insight
dgieselaar Jul 26, 2023
b90ba84
Make sure to close mock connector server after tests
dgieselaar Jul 26, 2023
d127681
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant
dgieselaar Jul 26, 2023
4910060
Merge branch 'obs-ai-assistant' into obs-ai-assistant-2
dgieselaar Jul 26, 2023
c8e83e7
Remove accidental important
dgieselaar Jul 26, 2023
ef0deea
Merge branch 'obs-ai-assistant' into obs-ai-assistant-2
dgieselaar Jul 26, 2023
22b35d6
Padding for controls
dgieselaar Jul 26, 2023
3de9a1f
Conversation page
dgieselaar Jul 26, 2023
11a3b34
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant-2
dgieselaar Jul 26, 2023
d5dcfc1
Merge branch 'obs-ai-assistant-2' into obs-ai-assistant-conversation-…
dgieselaar Jul 26, 2023
a650125
Add prompt form field and connectors
dgieselaar Jul 26, 2023
4cd509b
Merge pull request #14 from dgieselaar/obs-ai-assistant-conversation-…
dgieselaar Jul 26, 2023
10184b5
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant-2
dgieselaar Jul 26, 2023
9cb9379
Add builder for Conversation, update Stories
CoenWarmer Jul 26, 2023
8e734ed
Merge pull request #15 from CoenWarmer/storybook
CoenWarmer Jul 26, 2023
d72a335
Merge branch 'obs-ai-assistant-2' of github.com:dgieselaar/kibana int…
dgieselaar Jul 27, 2023
1ff7e3e
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant-2
dgieselaar Jul 27, 2023
9834163
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant
dgieselaar Jul 27, 2023
182994e
Merge branch 'obs-ai-assistant' into obs-ai-assistant-2
dgieselaar Jul 27, 2023
8b71580
Merge branch 'obs-ai-assistant-2' into abort-and-regenerate-responses
dgieselaar Jul 27, 2023
db42d29
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Jul 27, 2023
d2754bf
Merge pull request #16 from dgieselaar/abort-and-regenerate-responses
dgieselaar Jul 27, 2023
50c1c18
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Jul 27, 2023
c5a2e92
Merge remote-tracking branch 'upstream/main' into obs-ai-assistant-2
dgieselaar Jul 29, 2023
74422f9
Merge branch 'obs-ai-assistant-2' of github.com:dgieselaar/kibana int…
dgieselaar Jul 29, 2023
745d7ee
[Observability AI Assistant] Create chat (#17)
dgieselaar Jul 30, 2023
f9723f3
Update CODEOWNERS
dgieselaar Jul 30, 2023
ca0a9bd
[CI] Auto-commit changed files from 'node scripts/generate codeowners'
kibanamachine Jul 30, 2023
bcbda06
Remove unused variable
dgieselaar Jul 30, 2023
a2f85c6
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant-2
dgieselaar Jul 30, 2023
bc8ade2
Merge branch 'obs-ai-assistant-2' of github.com:dgieselaar/kibana int…
dgieselaar Jul 30, 2023
b061579
Don't render cursor placeholder for code blocks
dgieselaar Jul 30, 2023
59ebcdf
[regression] Fix Storybooks after #161914
clintandrewhall Jul 30, 2023
6cf0b70
Add ConversationList
CoenWarmer Jul 31, 2023
2b75771
Merge pull request #18 from CoenWarmer/storybook
CoenWarmer Aug 1, 2023
b63e3f3
[Observability AI Assistant]: Function registry (#19)
dgieselaar Aug 1, 2023
c042a9c
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistan…
dgieselaar Aug 1, 2023
f1426b6
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Aug 1, 2023
2ab673f
Undo change in sub_action_connector
dgieselaar Aug 1, 2023
d5288d1
Function states
dgieselaar Aug 2, 2023
61f7476
Merge branch 'obs-ai-assistant-chat' into obs-ai-assistant-2
dgieselaar Aug 2, 2023
198cc21
Add JSON schema validation for Prompt Editor
CoenWarmer Aug 2, 2023
da6fdbd
Small UX fixes
dgieselaar Aug 2, 2023
17382ca
Listen for shift and 4 to trigger functionList
CoenWarmer Aug 2, 2023
bcb7fcd
Merge branch 'obs-ai-assistant-2' of github.com:dgieselaar/kibana int…
CoenWarmer Aug 2, 2023
a28a5db
Add onFocus handler and Keyboard handler to Chat Prompt Editor
CoenWarmer Aug 2, 2023
fa10b50
Merge pull request #20 from CoenWarmer/storybook
CoenWarmer Aug 2, 2023
fcf22d4
[CI] Auto-commit changed files from 'node scripts/precommit_hook.js -…
kibanamachine Aug 2, 2023
0496387
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Aug 2, 2023
41b0df5
Assorted tweaks
CoenWarmer Aug 3, 2023
ff5ffc2
Merge pull request #21 from CoenWarmer/storybook
CoenWarmer Aug 3, 2023
006e1d6
[Observability AI Assistant]: Summarise & recall (#22)
dgieselaar Aug 3, 2023
9847ee6
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Aug 3, 2023
7b3be93
Fix type errors
dgieselaar Aug 3, 2023
786b705
code block styling & improved system prompt
dgieselaar Aug 4, 2023
b8cd8ed
[Observability AI Assistant] Persist conversations (#24)
dgieselaar Aug 6, 2023
64638b1
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistant-2
dgieselaar Aug 6, 2023
ac3c233
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Aug 6, 2023
7d94c7b
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Aug 6, 2023
9d32168
Merge branch 'obs-ai-assistant-2' of github.com:dgieselaar/kibana int…
dgieselaar Aug 6, 2023
e311aef
Prevent cursor animation from being unmounted and reset
dgieselaar Aug 6, 2023
980e69c
Allow request bodies for elasticsearch function
dgieselaar Aug 6, 2023
83030fa
Merge branch 'obs-ai-assistant-chat' of github.com:dgieselaar/kibana …
dgieselaar Aug 6, 2023
4d60bfc
Fix i18n typos
dgieselaar Aug 6, 2023
20a93c6
Merge branch 'obs-ai-assistant-2' into obs-ai-assistant-chat
dgieselaar Aug 6, 2023
85bc1e6
[Observability AI Assistant] Action menu item
dgieselaar Aug 6, 2023
ffa972c
Add assistant button everywhere in Observability
dgieselaar Aug 6, 2023
1a5bf22
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistan…
dgieselaar Aug 8, 2023
45832d6
newline in package.json
dgieselaar Aug 8, 2023
bf9f193
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Aug 8, 2023
4839790
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistan…
dgieselaar Aug 8, 2023
aefd5eb
Add application key
dgieselaar Aug 8, 2023
d26aafc
Update oss_plugins.json
dgieselaar Aug 8, 2023
0c7a2bc
Merge branch 'obs-ai-assistant-chat' into obs-ai-assistant-action
dgieselaar Aug 9, 2023
2e78093
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistan…
dgieselaar Aug 9, 2023
47c8226
[CI] Auto-commit changed files from 'node scripts/lint_ts_projects --…
kibanamachine Aug 9, 2023
9000adc
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistan…
dgieselaar Aug 9, 2023
705232d
Fix unit tests
dgieselaar Aug 9, 2023
86f9efc
Update x-pack/plugins/observability/public/plugin.ts
dgieselaar Aug 10, 2023
457a14d
[CI] Auto-commit changed files from 'node scripts/precommit_hook.js -…
kibanamachine Aug 10, 2023
58f9a6c
Merge branch 'main' of github.com:elastic/kibana into obs-ai-assistan…
dgieselaar Aug 10, 2023
76d25d0
Merge branch 'obs-ai-assistant-action' of github.com:dgieselaar/kiban…
dgieselaar Aug 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
import { apmLabsButton } from '@kbn/observability-plugin/common';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { ObservabilityAIAssistantActionMenuItem } from '@kbn/observability-ai-assistant-plugin/public';
import { getAlertingCapabilities } from '../../../alerting/utils/get_alerting_capabilities';
import { getLegacyApmHref } from '../../../shared/links/apm/apm_link';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
Expand Down Expand Up @@ -96,6 +97,7 @@ export function ApmHeaderActionMenu() {
})}
</EuiHeaderLink>
<InspectorHeaderLink />
<ObservabilityAIAssistantActionMenuItem />
</EuiHeaderLinks>
);
}
3 changes: 2 additions & 1 deletion x-pack/plugins/exploratory_view/kibana.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
"security",
"share",
"triggersActionsUi",
"unifiedSearch"
"unifiedSearch",
"observabilityAIAssistant"
],
"optionalPlugins": ["discover", "embeddable", "home", "licensing", "spaces", "usageCollection"],
"requiredBundles": [
Expand Down
52 changes: 30 additions & 22 deletions x-pack/plugins/exploratory_view/public/application/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
} from '@kbn/kibana-react-plugin/public';
import { Storage } from '@kbn/kibana-utils-plugin/public';
import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
import { ObservabilityAIAssistantProvider } from '@kbn/observability-ai-assistant-plugin/public';
import { PluginContext } from '../context/plugin_context';
import { routes } from '../routes';
import { ExploratoryViewPublicPluginsStart } from '../plugin';
Expand Down Expand Up @@ -70,34 +71,41 @@ export const renderApp = ({
const ApplicationUsageTrackingProvider =
usageCollection?.components.ApplicationUsageTrackingProvider ?? React.Fragment;

const aiAssistantService = plugins.observabilityAIAssistant;

ReactDOM.render(
<EuiErrorBoundary>
<ApplicationUsageTrackingProvider>
<KibanaThemeProvider theme$={theme$}>
<KibanaContextProvider
services={{
...core,
...plugins,
storage: new Storage(localStorage),
isDev,
}}
>
<PluginContext.Provider
value={{
appMountParameters,
<ObservabilityAIAssistantProvider value={aiAssistantService}>
<KibanaContextProvider
services={{
...core,
...plugins,
storage: new Storage(localStorage),
isDev,
}}
>
<Router history={history}>
<EuiThemeProvider darkMode={isDarkMode}>
<i18nCore.Context>
<RedirectAppLinks application={core.application} className={APP_WRAPPER_CLASS}>
<App />
</RedirectAppLinks>
</i18nCore.Context>
</EuiThemeProvider>
</Router>
</PluginContext.Provider>
</KibanaContextProvider>
<PluginContext.Provider
value={{
appMountParameters,
}}
>
<Router history={history}>
<EuiThemeProvider darkMode={isDarkMode}>
<i18nCore.Context>
<RedirectAppLinks
application={core.application}
className={APP_WRAPPER_CLASS}
>
<App />
</RedirectAppLinks>
</i18nCore.Context>
</EuiThemeProvider>
</Router>
</PluginContext.Provider>
</KibanaContextProvider>
</ObservabilityAIAssistantProvider>
</KibanaThemeProvider>
</ApplicationUsageTrackingProvider>
</EuiErrorBoundary>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ import React, { useState } from 'react';
import { EuiButton, EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { LensEmbeddableInput, TypedLensByValueInput } from '@kbn/lens-plugin/public';
import {
ObservabilityAIAssistantActionMenuItem,
useObservabilityAIAssistantOptional,
} from '@kbn/observability-ai-assistant-plugin/public';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { EmbedAction } from '../../header/embed_action';
import { ObservabilityAppServices } from '../../../../../application/types';
Expand All @@ -29,6 +33,8 @@ export function ExpViewActionMenuContent({

const LensSaveModalComponent = lens.SaveModalComponent;

const service = useObservabilityAIAssistantOptional();

return (
<>
<EuiFlexGroup
Expand Down Expand Up @@ -93,6 +99,11 @@ export function ExpViewActionMenuContent({
})}
</EuiButton>
</EuiFlexItem>
{service?.isEnabled() ? (
<EuiFlexItem>
<ObservabilityAIAssistantActionMenuItem />
</EuiFlexItem>
) : null}
</EuiFlexGroup>

{isSaveOpen && lensAttributes && (
Expand Down
2 changes: 2 additions & 0 deletions x-pack/plugins/exploratory_view/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/publi
import { SpacesPluginStart } from '@kbn/spaces-plugin/public';
import { LicensingPluginStart } from '@kbn/licensing-plugin/public';
import { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public';
import { ObservabilityAIAssistantPluginStart } from '@kbn/observability-ai-assistant-plugin/public';
import { getExploratoryViewEmbeddable } from './components/shared/exploratory_view/embeddable';
import { createExploratoryViewUrl } from './components/shared/exploratory_view/configurations/exploratory_view_url';
import getAppDataView from './utils/observability_data_views/get_app_data_view';
Expand Down Expand Up @@ -70,6 +71,7 @@ export interface ExploratoryViewPublicPluginsStart {
usageCollection: UsageCollectionSetup;
unifiedSearch: UnifiedSearchPublicPluginStart;
home?: HomePublicPluginStart;
observabilityAIAssistant: ObservabilityAIAssistantPluginStart;
}

export type ExploratoryViewPublicSetup = ReturnType<Plugin['setup']>;
Expand Down
3 changes: 2 additions & 1 deletion x-pack/plugins/exploratory_view/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@
"@kbn/shared-ux-router",
"@kbn/core-application-browser",
"@kbn/observability-shared-plugin",
"@kbn/core-ui-settings-browser-mocks"
"@kbn/core-ui-settings-browser-mocks",
"@kbn/observability-ai-assistant-plugin"
],
"exclude": ["target/**/*"]
}
2 changes: 2 additions & 0 deletions x-pack/plugins/infra/public/pages/logs/page_content.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import React, { useContext } from 'react';
import { Routes, Route } from '@kbn/shared-ux-router';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { HeaderMenuPortal, useLinkProps } from '@kbn/observability-shared-plugin/public';
import { ObservabilityAIAssistantActionMenuItem } from '@kbn/observability-ai-assistant-plugin/public';
import { LazyAlertDropdownWrapper } from '../../alerting/log_threshold';
import { HelpCenterContent } from '../../components/help_center_content';
import { useReadOnlyBadge } from '../../hooks/use_readonly_badge';
Expand Down Expand Up @@ -81,6 +82,7 @@ export const LogsPageContent: React.FunctionComponent = () => {
>
{ADD_DATA_LABEL}
</EuiHeaderLink>
<ObservabilityAIAssistantActionMenuItem />
</EuiHeaderLinks>
</HeaderMenuPortal>
)}
Expand Down
2 changes: 2 additions & 0 deletions x-pack/plugins/infra/public/pages/metrics/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { Routes, Route } from '@kbn/shared-ux-router';
import { EuiErrorBoundary, EuiHeaderLinks, EuiHeaderLink } from '@elastic/eui';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { HeaderMenuPortal, useLinkProps } from '@kbn/observability-shared-plugin/public';
import { ObservabilityAIAssistantActionMenuItem } from '@kbn/observability-ai-assistant-plugin/public';
import { MetricsSourceConfigurationProperties } from '../../../common/metrics_sources';
import { HelpCenterContent } from '../../components/help_center_content';
import { useReadOnlyBadge } from '../../hooks/use_readonly_badge';
Expand Down Expand Up @@ -89,6 +90,7 @@ export const InfrastructurePage = ({ match }: RouteComponentProps) => {
>
{ADD_DATA_LABEL}
</EuiHeaderLink>
<ObservabilityAIAssistantActionMenuItem />
</EuiHeaderLinks>
</HeaderMenuPortal>
)}
Expand Down
1 change: 1 addition & 0 deletions x-pack/plugins/observability/kibana.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"inspector",
"lens",
"observabilityShared",
"observabilityAIAssistant",
"ruleRegistry",
"triggersActionsUi",
"security",
Expand Down
55 changes: 29 additions & 26 deletions x-pack/plugins/observability/public/application/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import {
} from '@kbn/kibana-react-plugin/public';
import { Storage } from '@kbn/kibana-utils-plugin/public';
import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
import { ObservabilityAIAssistantProvider } from '@kbn/observability-ai-assistant-plugin/public';
import { HasDataContextProvider } from '../context/has_data_context/has_data_context';
import { PluginContext } from '../context/plugin_context/plugin_context';
import { ConfigSchema, ObservabilityPublicPluginsStart } from '../plugin';
Expand Down Expand Up @@ -100,32 +101,34 @@ export const renderApp = ({
kibanaVersion,
}}
>
<PluginContext.Provider
value={{
config,
appMountParameters,
observabilityRuleTypeRegistry,
ObservabilityPageTemplate,
}}
>
<Router history={history}>
<EuiThemeProvider darkMode={isDarkMode}>
<i18nCore.Context>
<RedirectAppLinks
application={core.application}
className={APP_WRAPPER_CLASS}
>
<QueryClientProvider client={queryClient}>
<HasDataContextProvider>
<App />
</HasDataContextProvider>
<HideableReactQueryDevTools />
</QueryClientProvider>
</RedirectAppLinks>
</i18nCore.Context>
</EuiThemeProvider>
</Router>
</PluginContext.Provider>
<ObservabilityAIAssistantProvider value={plugins.observabilityAIAssistant}>
<PluginContext.Provider
value={{
config,
appMountParameters,
observabilityRuleTypeRegistry,
ObservabilityPageTemplate,
}}
>
<Router history={history}>
<EuiThemeProvider darkMode={isDarkMode}>
<i18nCore.Context>
<RedirectAppLinks
application={core.application}
className={APP_WRAPPER_CLASS}
>
<QueryClientProvider client={queryClient}>
<HasDataContextProvider>
<App />
</HasDataContextProvider>
<HideableReactQueryDevTools />
</QueryClientProvider>
</RedirectAppLinks>
</i18nCore.Context>
</EuiThemeProvider>
</Router>
</PluginContext.Provider>
</ObservabilityAIAssistantProvider>
</KibanaContextProvider>
</CloudProvider>
</KibanaThemeProvider>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ const mockKibana = () => {
useKibanaMock.mockReturnValue({
services: {
...kibanaStartMock.startContract(),
theme: {},
cases: casesPluginMock.createStartContract(),
http: {
basePath: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import { getTimeZone } from '../../utils/get_time_zone';
import { isAlertDetailsEnabledPerApp } from '../../utils/is_alert_details_enabled';
import { observabilityFeatureId } from '../../../common';
import { paths } from '../../../common/locators/paths';
import { HeaderMenu } from '../overview/components/header_menu/header_menu';

interface AlertDetailsPathParams {
alertId: string;
Expand Down Expand Up @@ -137,6 +138,7 @@ export function AlertDetails() {
}}
data-test-subj="alertDetails"
>
<HeaderMenu />
<AlertSummary alertSummaryFields={summaryFields} />
<EuiSpacer size="l" />
{AlertDetailsAppSection && rule && (
Expand Down
2 changes: 2 additions & 0 deletions x-pack/plugins/observability/public/pages/alerts/alerts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import { calculateTimeRangeBucketSize } from '../overview/helpers/calculate_buck
import { getAlertSummaryTimeRange } from '../../utils/alert_summary_widget';
import { observabilityAlertFeatureIds } from '../../../common/constants';
import { ALERTS_URL_STORAGE_KEY } from '../../../common/constants';
import { HeaderMenu } from '../overview/components/header_menu/header_menu';

const ALERTS_SEARCH_BAR_ID = 'alerts-search-bar-o11y';
const ALERTS_PER_PAGE = 50;
Expand Down Expand Up @@ -175,6 +176,7 @@ function InternalAlertsPage() {
rightSideItems: renderRuleStats(ruleStats, manageRulesHref, ruleStatsLoading),
}}
>
<HeaderMenu />
<EuiFlexGroup direction="column" gutterSize="m">
<EuiFlexItem>
<ObservabilityAlertSearchBar
Expand Down
2 changes: 2 additions & 0 deletions x-pack/plugins/observability/public/pages/cases/cases.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { useHasData } from '../../hooks/use_has_data';
import { Cases } from './components/cases';
import { LoadingObservability } from '../../components/loading_observability';
import { CaseFeatureNoPermissions } from './components/feature_no_permissions';
import { HeaderMenu } from '../overview/components/header_menu/header_menu';

export function CasesPage() {
const userCasesPermissions = useGetUserCasesPermissions();
Expand All @@ -26,6 +27,7 @@ export function CasesPage() {

return userCasesPermissions.read ? (
<ObservabilityPageTemplate isPageDataLoaded data-test-subj="o11yCasesPage">
<HeaderMenu />
<Cases permissions={userCasesPermissions} />
</ObservabilityPageTemplate>
) : (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
import { EuiHeaderLink, EuiHeaderLinks } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import React from 'react';
import {
ObservabilityAIAssistantActionMenuItem,
useObservabilityAIAssistantOptional,
} from '@kbn/observability-ai-assistant-plugin/public';
import { useKibana } from '../../../../utils/kibana_react';
import { usePluginContext } from '../../../../hooks/use_plugin_context';
import HeaderMenuPortal from './header_menu_portal';
Expand All @@ -18,6 +22,8 @@ export function HeaderMenu(): React.ReactElement | null {
appMountParameters: { setHeaderActionMenu },
} = usePluginContext();

const aiAssistant = useObservabilityAIAssistantOptional();

return (
<HeaderMenuPortal setHeaderActionMenu={setHeaderActionMenu} theme$={theme.theme$}>
<EuiHeaderLinks>
Expand All @@ -28,6 +34,7 @@ export function HeaderMenu(): React.ReactElement | null {
>
{addDataLinkText}
</EuiHeaderLink>
{aiAssistant?.isEnabled() ? <ObservabilityAIAssistantActionMenuItem /> : null}
</EuiHeaderLinks>
</HeaderMenuPortal>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import {
getDefaultAlertSummaryTimeRange,
} from '../../utils/alert_summary_widget';
import type { AlertStatus } from '../../../common/typings';
import { HeaderMenu } from '../overview/components/header_menu/header_menu';

export type TabId = typeof RULE_DETAILS_ALERTS_TAB | typeof RULE_DETAILS_EXECUTION_TAB;

Expand Down Expand Up @@ -217,6 +218,7 @@ export function RuleDetailsPage() {
],
}}
>
<HeaderMenu />
<EuiFlexGroup wrap gutterSize="m">
<EuiFlexItem style={{ minWidth: 350 }}>
<RuleStatusPanel
Expand Down
10 changes: 3 additions & 7 deletions x-pack/plugins/observability/public/pages/rules/rules.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ jest.mock('@kbn/triggers-actions-ui-plugin/public', () => ({
}));

jest.spyOn(pluginContext, 'usePluginContext').mockImplementation(() => ({
appMountParameters: {} as AppMountParameters,
appMountParameters: {
setHeaderActionMenu: () => {},
} as unknown as AppMountParameters,
config: {
unsafe: {
slo: { enabled: false },
Expand All @@ -47,12 +49,6 @@ jest.spyOn(pluginContext, 'usePluginContext').mockImplementation(() => ({
compositeSlo: {
enabled: false,
},
aiAssistant: {
enabled: false,
feedback: {
enabled: false,
},
},
},
observabilityRuleTypeRegistry: createObservabilityRuleTypeRegistryMock(),
ObservabilityPageTemplate: KibanaPageTemplate,
Expand Down
Loading