"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ObservabilityAIAssistantPlugin = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _server = require("@kbn/core/server"); var _lodash = require("lodash"); var _i18n = require("@kbn/i18n"); var _saved_objects = require("@kbn/actions-plugin/server/constants/saved_objects"); var _feature = require("../common/feature"); var _register_routes = require("./routes/register_routes"); var _service = require("./service"); var _lens = require("./service/kb_service/kb_docs/lens"); /* * 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. */ class ObservabilityAIAssistantPlugin { constructor(context) { (0, _defineProperty2.default)(this, "logger", void 0); this.logger = context.logger.get(); } setup(core, plugins) { plugins.features.registerKibanaFeature({ id: _feature.OBSERVABILITY_AI_ASSISTANT_FEATURE_ID, name: _i18n.i18n.translate('xpack.observabilityAiAssistant.featureRegistry.featureName', { defaultMessage: 'Observability AI Assistant' }), order: 8600, category: _server.DEFAULT_APP_CATEGORIES.observability, app: [_feature.OBSERVABILITY_AI_ASSISTANT_FEATURE_ID, 'kibana'], catalogue: [_feature.OBSERVABILITY_AI_ASSISTANT_FEATURE_ID], minimumLicense: 'enterprise', // see x-pack/plugins/features/common/feature_kibana_privileges.ts privileges: { all: { app: [_feature.OBSERVABILITY_AI_ASSISTANT_FEATURE_ID, 'kibana'], api: [_feature.OBSERVABILITY_AI_ASSISTANT_FEATURE_ID, 'ai_assistant'], catalogue: [_feature.OBSERVABILITY_AI_ASSISTANT_FEATURE_ID], savedObject: { all: [_saved_objects.ACTION_SAVED_OBJECT_TYPE, _saved_objects.ACTION_TASK_PARAMS_SAVED_OBJECT_TYPE, _saved_objects.CONNECTOR_TOKEN_SAVED_OBJECT_TYPE], read: [] }, ui: ['show'] }, read: { disabled: true, savedObject: { all: [], read: [] }, ui: [] } } }); const routeHandlerPlugins = (0, _lodash.mapValues)(plugins, (value, key) => { return { setup: value, start: () => core.getStartServices().then(services => { const [, pluginsStartContracts] = services; return pluginsStartContracts[key]; }) }; }); const service = new _service.ObservabilityAIAssistantService({ logger: this.logger.get('service'), core, taskManager: plugins.taskManager }); (0, _lens.addLensDocsToKb)(service); (0, _register_routes.registerServerRoutes)({ core, logger: this.logger, dependencies: { plugins: routeHandlerPlugins, service } }); return {}; } start(core, plugins) { return {}; } } exports.ObservabilityAIAssistantPlugin = ObservabilityAIAssistantPlugin;