{"version":3,"file":"discourse-ai.js","names":["define","_exports","Object","defineProperty","value","default","resource","path","map","this","route","resetNamespace","_rest","_defineProperty","obj","key","i","t","r","e","Symbol","toPrimitive","call","TypeError","String","Number","_toPrimitive","enumerable","configurable","writable","Adapter","constructor","super","arguments","basePath","pathFor","store","type","findArgs","pluralize","apiNameFor","appendQueryParams","_tracking","_ajax","_class","_descriptor","ATTRIBUTES","CommandOption","target","property","descriptor","context","initializer","prototype","decorators","tracked","desc","keys","forEach","slice","reverse","reduce","decorator","undefined","AiPersona","init","properties","commands","command","commandId","options","optionId","hasOwnProperty","getCommandOption","createUser","result","ajax","id","user","user_id","commandOptions","populateCommandOptions","attrs","commandsWithOptions","optionsWithValues","option","push","updateProperties","getProperties","createProperties","workingCopy","create","_component","_component2","_object","_service","_I18n","_aiBotHelper","_templateFactory","_descriptor2","_composeAiBotMessage","_initializerDefineProperty","_classPrivateMethodInitSpec","privateSet","privateCollection","has","_checkPrivateRedeclaration","add","_applyDecoratedDescriptor","__COLOCATED_TEMPLATE__","createTemplateFactory","block","moduleName","isStrictMode","AiBotHeaderPanel","WeakSet","composeMessageWithTargetBot","receiver","fn","_classPrivateMethodGet","_composeAiBotMessage2","botNames","enabledBotOptions","bot","humanized","modelName","siteSettings","ai_bot_enabled_chat_bots","split","inject","action","getOwnPropertyDescriptor","targetBot","args","closePanel","composeAiBotMessage","composer","setComponentTemplate","_multiSelect","extend","_modelDisabledChanged","observer","selectKit","set","get","content","computed","selectKitOptions","filterable","_helper","_didInsert","_dButton","_i18n","_not","_class2","setupCustomPrompt","_customPromptInput","document","querySelector","focus","sendInput","submit","promptArgs","scope","Input","_templateOnly","AiHelperLoading","_discourseI18n","_comboBox","name","concat","llms","AiPersonaCommandOptionEditor","_aiPersonaCommandOptionEditor","AiPersonaCommandOptions","showCommandOptions","allCommands1","allCommands","commandNames","any","command1","find","c1","options1","commandId1","commandName1","commandOptions1","mappedOptions1","key1","value1","persona","assign","commandName","_modifier","_didUpdate","_routing","_runloop","_dTextarea","_dToggleSwitch","_boundAvatarTemplate","_ajaxError","_group","_adminUser","_groupChooser","_dTooltip","_aiCommandSelector","_aiLlmSelector","_aiPersonaCommandOptions","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_descriptor8","_sortPersonas","updateModel","editingModel","model","showDelete","isNew","system","updateAllGroups","allGroups","findAll","save","isNew1","isSaving","backupModel1","setProperties","_sortPersonas2","personas","addObject","router","transitionTo","toasts","success","data","message","duration","e1","popupAjaxError","later","showTemperature","temperature","showTopP","top_p","adminUser","mappedDefaultLlm","default_llm","dialog","confirm","didConfirm","destroyRecord","then","removeObject","updateAllowedGroups","ids1","toggleEnabled","toggleField","togglePriority","toggleMentionable","user1","field1","sortPersonas1","args1","update","on","LinkTo","sorted1","toArray","sort","a1","b1","priority","localeCompare","clear","setObjects","_concatClass","_text","_dIcon","_aiPersonaEditor","noPersonaText","_noPersonaText","raw1","cook","result1","_categoryBadge","_dMenu","_eq","title","category","tag","input","selectedPosts","item1","cooked","join","disabled","loading","suggestions","length","loadSuggestions","mode","method","text","SUGGESTION_TYPES","suggestions1","assistant","s1","suggestedCategories1","site","categories","filter","includes","toLowerCase","catch","finally","applySuggestion","suggestion1","menu1","updateAction","close","currentValue","Array","isArray","updatedTags1","Set","_decorators","_descriptor9","_closeMenu","_updateTags","_tagSelectorHasValues","_assignGeneratedSuggestions","willDestroy","removeEventListener","onClickOutside","showAIButton","isShowAIButton1","replyLength","composerFields1","classList","remove","disableSuggestionButton","applyClasses","event1","_closeMenu2","handleClickOutside","addEventListener","composer1","selectedCategoryId1","slug","_updateTags2","performSuggestion","alert","suggestIcon","reply","data1","_assignGeneratedSuggestions2","showMenu","bind","showErrors","errors","maxTags1","max_tags_per_topic","tags","generatedSuggestions","tags1","error","count","_tagSelectorHasValues2","mode1","t1","_template","_dModal","triggerConfirmChanges","closeModal","triggerRevertChanges","revert","htmlSafe","_later","_copyConversation","postStream1","topic","postNumbers1","i1","post_number","allPosts","postNumber1","postId1","findPostIdForPostNumber","findLoadedPost","post1","maxContext","contextValue","updateHtmlContext","context1","username","htmlContext","copyContext","from1","to1","justCopiedText","_dModalCancel","_thumbnailSuggestionItem","isDisabled","selectedImages","addSelection","selection1","thumbnailMarkdown1","original_filename","width","height","short_url","removeSelection","thumbnail1","appendSelectedImages","imageMarkdown1","dEditorInput1","setSelectionRange","execCommand","_chatChannel","ReviewableAiChatMessage","chatChannel","reviewable","chat_channel","toggleSelection","selected","selectIcon","selectLabel","AISentimentDashboard","shouldRender","_outletArgs1","helper1","ai_sentiment_enabled","_aiSuggestionDropdown","_showAiHelper","outletArgs1","showComposerAIHelper","AiTitleSuggestion","_core","_utilities","_environment","_dec","_descriptor10","_descriptor11","_descriptor12","_descriptor13","_descriptor14","_descriptor15","_descriptor16","_descriptor17","_descriptor18","_descriptor19","_descriptor20","_descriptor21","_descriptor22","_descriptor23","_descriptor24","_descriptor25","_descriptor26","_descriptor27","debounce","INPUT_DELAY","triggers","resets","review","outletArgs","helper","selectionChanged","onKeyDown","_popper","destroy","menuState","_menuState","newState","previousMenuState","helperOptions","prompts","currentUser","ai_helper_prompts","p","location","customPromptIndex","findIndex","customPrompt","splice","unshift","_showUserCustomPrompts","promptTypes","memo","prompt_type","activeElement","_dEditorInput","canSelect","Boolean","window","getSelection","selectedText","substring","selectionStart","selectionEnd","selectionRange","x","y","minSelectionChars","_onSelectionChanged","closeContextMenu","updatePosition","showContextMenu","positionContextMenu","event","generateGetBoundingClientRect","top","right","bottom","left","canCloseContextMenu","_activeAIRequest","CONTEXT_MENU_STATES","customPromptValue","_updateSuggestedByAI","newSelectedText","diff","_insertAt","start","end","_toggleLoadingState","can_use_custom_prompts","handleBoundaries","textAreaWrapper","getBoundingClientRect","boundaryElement","contextMenuRect","_contextMenu","caretCoords","popperPlacement","getCaretPosition","pos","caretPosition","virtualElement","clientWidth","clientHeight","createPopper","placement","modifiers","offset","setupContextMenu","toggleAiHelperOptions","undoAIAction","capabilities","isFirefox","lastSelectionRange","initialValue","updateSelected","lastUsedOption","custom_prompt","thumbnailSuggestions","showThumbnailModal","thumbnails","viewChanges","showDiffModal","confirmChanges","cancelAIAction","abort","togglePreviousMenu","afterRender","_dec2","composerModel","renderChatWarning","ai_bot_enable_chat_warning","aiBotClasses","isAiBotChat","targetRecipients","ai_enabled_chat_bots","recipients","SearchResultDecoration","_keyValueStore","_dropdownSelectBox","container1","ai_enabled_personas","currentUser1","reciepients1","bot1","username1","isBotMessage","STORE_NAMESPACE","botOptions","personaId1","preferredPersonaStore","getObject","_value","parseInt","metaData","ai_persona_id","persona1","description","newValue1","setObject","hash","showPostAIHelper","suggestion","prompt1","suggest","_ref","trim","updateValue","_fullPageSearch","_pluginApi","_search","search","_args1","siteSettings1","ai_embeddings_semantic_search_enabled","disableToggleSwitch","searching","AIResults","preventAISearch","searchStateText","showingAIResults","searchTerm","initialSearchTerm","searchEnabled","SEARCH_TYPE_DEFAULT","isValidSearchTerm","toggleAIResults","addSearchResults","resetAIResults","handleSearch","searchPreferencesManager","sortOrder","performHyDESearch","withPluginApi","api1","onAppEvent","q","async","model1","translateResults","results1","posts","generatedByAI","_willDestroy","_cookText","_fastEdit","_fastEdit2","_aiHelperCustomPrompt","_aiHelperLoading","showAIHelperOptions","showMainButtons","MENU_STATES","menu","activeMenu","subscribe","channel1","quoteState","postId","messageBus","_updateResult","unsubscribe","performAISuggestion","option1","fetchUrl1","buffer","post_id","showAiButtons","desktopView","showFastEdit","modal","show","newValue","post","closeFastEdit","copySuggestion","clipboardCopy","copyButtonIcon","copyButtonLabel","setTimeout","prompts1","customPromptIndex1","p1","customPrompt1","canEditPost","hideToolbar","_aiSplitTopicSuggester","related_topics","hidden","moreTopicsPreferenceTracking","selectedTab","listId","relatedTopics","createRecord","registerList","registerTopicList","icon","removeList","removeTopicList","_adminDashboardTab","filters","startDate","endDate","_composer","botUsername","model_name","focusComposer","fallbackToNewTopic","openOpts","PRIVATE_MESSAGE","topicTitle","archetypeId","draftKey","hasGroups","warningsDisabled","skipDraftCheck","_loadScript","MIN_LETTERS_PER_INTERVAL","addProgressDot","applyProgress","postStream","noop","aiStreamingStatus","ensureProgress","PROGRESS_INTERVAL","GIVE_UP_INTERVAL","MAX_FLUSH_TIME","progressTimer","lastNonEmptyChild","element","lastChild","nodeType","Node","TEXT_NODE","test","textContent","previousSibling","lastBlock","ELEMENT_NODE","dotElement","createElement","appendChild","StreamUpdater","streaming","setCooked","setRaw","raw","PostUpdater","postElement","done","offsetWidth","cookedElement","innerHTML","oldElement","status","updater","startTime","Date","now","oldRaw","newRaw","indexOf","letters","Math","floor","keepPolling","promises","postStatus","postUpdater","Promise","all","handleProgress","fromPostNumber","toPostNumber","clipboardCopyAsync","stream","postNumbers","postIds","postNumber","url","post_ids","include_raw","response","post_stream","discourseAiTestClipboard","discourseAiClipboard","generateClipboard","Blob","_helperEnabled","discourse_ai_enabled","composer_ai_helper_enabled","featureType","enableHelper","enableAssistant","can_use_assistant","canShowInPM","ai_helper_allowed_in_pm","enableFeature","ai_helper_enabled_features","privateMessage","can_use_assistant_in_post","_discourse","modelFor","record","setupController","controller","_super","params","allPersonas","findBy","beforeModel","_renderGlimmer","_widget","buildAttributes","html","sendWidgetAction","clickOutside","_shareModal","_aiStreamer","isGPTBot","attachHeaderIcon","api","settings","container","lookup","enabledBots","ai_bot_add_to_header","attachWidgetAction","state","botSelectorVisible","decorateWidget","attach","active","classNames","addHeaderPanel","initializeAIBotReplies","addPostMenuButton","className","position","modifyClass","pluginId","onAIBotStreamedReply","isPrivateMessage","details","allowed_users","initializePersonaDecorator","topicController","dec","widget","registerWidgetShim","initialize","getCurrentUser","shareAiResponse","showFeedback","initializeShareButton","_api","apiInitializer","classNameBindings","ai_embeddings_enabled","ai_embeddings_semantic_related_topics_enabled","_setSuggestedTopics","setup","allowList"],"sources":["discourse/plugins/discourse-ai/discourse/admin-discourse-ai-personas-route-map.js","discourse/plugins/discourse-ai/discourse/admin-discourse-ai-route-map.js","discourse/plugins/discourse-ai/discourse/admin/adapters/ai-persona.js","discourse/plugins/discourse-ai/discourse/admin/models/ai-persona.js","discourse/plugins/discourse-ai/discourse/components/ai-bot-header-panel.js","discourse/plugins/discourse-ai/discourse/components/ai-command-selector.js","discourse/plugins/discourse-ai/discourse/components/ai-helper-custom-prompt.js","discourse/plugins/discourse-ai/discourse/components/ai-helper-loading.js","discourse/plugins/discourse-ai/discourse/components/ai-llm-selector.js","discourse/plugins/discourse-ai/discourse/components/ai-persona-command-option-editor.js","discourse/plugins/discourse-ai/discourse/components/ai-persona-command-options.js","discourse/plugins/discourse-ai/discourse/components/ai-persona-editor.js","discourse/plugins/discourse-ai/discourse/components/ai-persona-list-editor.js","discourse/plugins/discourse-ai/discourse/components/ai-split-topic-suggester.js","discourse/plugins/discourse-ai/discourse/components/ai-suggestion-dropdown.js","discourse/plugins/discourse-ai/discourse/components/modal/diff-modal.js","discourse/plugins/discourse-ai/discourse/components/modal/share-modal.js","discourse/plugins/discourse-ai/discourse/components/modal/thumbnail-suggestions.js","discourse/plugins/discourse-ai/discourse/components/model-accuracies.js","discourse/plugins/discourse-ai/discourse/components/reviewable-ai-chat-message.js","discourse/plugins/discourse-ai/discourse/components/reviewable-ai-post.js","discourse/plugins/discourse-ai/discourse/components/thumbnail-suggestion-item.js","discourse/plugins/discourse-ai/discourse/connectors/admin-dashboard-tabs-after/admin-sentiment-dashbboard.js","discourse/plugins/discourse-ai/discourse/connectors/after-composer-category-input/ai-category-suggestion.js","discourse/plugins/discourse-ai/discourse/connectors/after-composer-tag-input/ai-tag-suggestion.js","discourse/plugins/discourse-ai/discourse/connectors/after-composer-title-input/ai-title-suggestion.js","discourse/plugins/discourse-ai/discourse/connectors/after-d-editor/ai-helper-context-menu.js","discourse/plugins/discourse-ai/discourse/connectors/after-d-editor/composer-open.js","discourse/plugins/discourse-ai/discourse/connectors/after-search-result-entry/search-result-decoration.js","discourse/plugins/discourse-ai/discourse/connectors/composer-fields/persona-selector.js","discourse/plugins/discourse-ai/discourse/connectors/fast-edit-footer-after/ai-edit-suggestion-button.js","discourse/plugins/discourse-ai/discourse/connectors/full-page-search-below-search-header/semantic-search.js","discourse/plugins/discourse-ai/discourse/connectors/post-text-buttons/ai-helper-options-menu.js","discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-category-after/ai-category-suggestion.js","discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-tag-after/ai-tag-suggestion.js","discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-title-after/ai-title-suggestion.js","discourse/plugins/discourse-ai/discourse/connectors/topic-more-content/related-topics.js","discourse/plugins/discourse-ai/discourse/controllers/admin-dashboard-sentiment.js","discourse/plugins/discourse-ai/discourse/lib/ai-bot-helper.js","discourse/plugins/discourse-ai/discourse/lib/ai-streamer.js","discourse/plugins/discourse-ai/discourse/lib/copy-conversation.js","discourse/plugins/discourse-ai/discourse/lib/show-ai-helper.js","discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-ai-personas-index.js","discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-ai-personas-new.js","discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-ai-personas-show.js","discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-ai-personas.js","discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-index.js","discourse/plugins/discourse-ai/discourse/templates/admin-dashboard-sentiment.js","discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/index.js","discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/new.js","discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/show.js","discourse/plugins/discourse-ai/discourse/templates/connectors/after-d-editor/ai-helper-context-menu.js","discourse/plugins/discourse-ai/discourse/templates/connectors/after-d-editor/composer-open.js","discourse/plugins/discourse-ai/discourse/templates/connectors/topic-more-content/related-topics.js","discourse/plugins/discourse-ai/discourse/widgets/ai-bot-header-panel-wrapper.js","discourse/plugins/discourse-ai/initializers/ai-bot-replies.js","discourse/plugins/discourse-ai/initializers/ai-semantic-search.js","discourse/plugins/discourse-ai/initializers/related-topics.js","discourse/plugins/discourse-ai/lib/discourse-markdown/ai-tags.js"],"sourcesContent":["define(\"discourse/plugins/discourse-ai/discourse/admin-discourse-ai-personas-route-map\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    resource: \"admin.adminPlugins\",\n    path: \"/plugins\",\n    map() {\n      this.route(\"discourse-ai\", function () {\n        this.route(\"ai-personas\", function () {\n          this.route(\"new\");\n          this.route(\"show\", {\n            path: \"/:id\"\n          });\n        });\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-ai/discourse/admin-discourse-ai-route-map\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    resource: \"admin.dashboard\",\n    path: \"/dashboard\",\n    map() {\n      this.route(\"admin.dashboardSentiment\", {\n        path: \"/dashboard/sentiment\",\n        resetNamespace: true\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-ai/discourse/admin/adapters/ai-persona\", [\"exports\", \"discourse/adapters/rest\"], function (_exports, _rest) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  class Adapter extends _rest.default {\n    constructor() {\n      super(...arguments);\n      _defineProperty(this, \"jsonMode\", true);\n    }\n    basePath() {\n      return \"/admin/plugins/discourse-ai/\";\n    }\n    pathFor(store, type, findArgs) {\n      // removes underscores which are implemented in base\n      let path = this.basePath(store, type, findArgs) + store.pluralize(this.apiNameFor(type));\n      return this.appendQueryParams(path, findArgs);\n    }\n    apiNameFor() {\n      return \"ai-persona\";\n    }\n  }\n  _exports.default = Adapter;\n});","define(\"discourse/plugins/discourse-ai/discourse/admin/models/ai-persona\", [\"exports\", \"@glimmer/tracking\", \"discourse/lib/ajax\", \"discourse/models/rest\"], function (_exports, _tracking, _ajax, _rest) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const ATTRIBUTES = [\"name\", \"description\", \"commands\", \"system_prompt\", \"allowed_group_ids\", \"enabled\", \"system\", \"priority\", \"top_p\", \"temperature\", \"user_id\", \"mentionable\", \"default_llm\", \"user\", \"max_context_posts\"];\n  let CommandOption = (_class = class CommandOption {\n    constructor() {\n      _initializerDefineProperty(this, \"value\", _descriptor, this);\n    }\n  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"value\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  })), _class);\n  class AiPersona extends _rest.default {\n    // this code is here to convert the wire schema to easier to work with object\n    // on the wire we pass in/out commands as an Array.\n    // [[CommandName, {option1: value, option2: value}], CommandName2, CommandName3]\n    // So we rework this into a \"commands\" property and nested commandOptions\n    init(properties) {\n      if (properties.commands) {\n        properties.commands = properties.commands.map(command => {\n          if (typeof command === \"string\") {\n            return command;\n          } else {\n            let [commandId, options] = command;\n            for (let optionId in options) {\n              if (!options.hasOwnProperty(optionId)) {\n                continue;\n              }\n              this.getCommandOption(commandId, optionId).value = options[optionId];\n            }\n            return commandId;\n          }\n        });\n      }\n      super.init(properties);\n      this.commands = properties.commands;\n    }\n    async createUser() {\n      const result = await (0, _ajax.ajax)(`/admin/plugins/discourse-ai/ai-personas/${this.id}/create-user.json`, {\n        type: \"POST\"\n      });\n      this.user = result.user;\n      this.user_id = this.user.id;\n      return this.user;\n    }\n    getCommandOption(commandId, optionId) {\n      this.commandOptions ||= {};\n      this.commandOptions[commandId] ||= {};\n      return this.commandOptions[commandId][optionId] ||= new CommandOption();\n    }\n    populateCommandOptions(attrs) {\n      if (!attrs.commands) {\n        return;\n      }\n      let commandsWithOptions = [];\n      attrs.commands.forEach(commandId => {\n        if (typeof commandId !== \"string\") {\n          commandId = commandId[0];\n        }\n        if (this.commandOptions && this.commandOptions[commandId]) {\n          let options = this.commandOptions[commandId];\n          let optionsWithValues = {};\n          for (let optionId in options) {\n            if (!options.hasOwnProperty(optionId)) {\n              continue;\n            }\n            let option = options[optionId];\n            optionsWithValues[optionId] = option.value;\n          }\n          commandsWithOptions.push([commandId, optionsWithValues]);\n        } else {\n          commandsWithOptions.push(commandId);\n        }\n      });\n      attrs.commands = commandsWithOptions;\n    }\n    updateProperties() {\n      let attrs = this.getProperties(ATTRIBUTES);\n      attrs.id = this.id;\n      this.populateCommandOptions(attrs);\n      return attrs;\n    }\n    createProperties() {\n      let attrs = this.getProperties(ATTRIBUTES);\n      this.populateCommandOptions(attrs);\n      return attrs;\n    }\n    workingCopy() {\n      return AiPersona.create(this.createProperties());\n    }\n  }\n  _exports.default = AiPersona;\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-bot-header-panel\", [\"exports\", \"@ember/component\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"I18n\", \"discourse/plugins/discourse-ai/discourse/lib/ai-bot-helper\", \"@ember/template-factory\"], function (_exports, _component, _component2, _object, _service, _I18n, _aiBotHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _composeAiBotMessage;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <div class=\"bot-panel ai-bot-available-bot-options\">\n    <div class=\"menu-panel drop-down\">\n      <div class=\"panel-body\">\n        <div class=\"panel-body-contents\">\n          <div class=\"sidebar-hamburger-dropdown\">\n            {{#each this.botNames as |bot|}}\n              <DButton\n                @translatedTitle={{bot.humanized}}\n                @translatedLabel={{bot.humanized}}\n                @action={{action \"composeMessageWithTargetBot\" bot.modelName}}\n                class=\"btn-flat ai-bot-available-bot-content\"\n              />\n            {{/each}}\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  */\n  {\n    \"id\": \"90vXLYKC\",\n    \"block\": \"[[[10,0],[14,0,\\\"bot-panel ai-bot-available-bot-options\\\"],[12],[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"menu-panel drop-down\\\"],[12],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"panel-body\\\"],[12],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"panel-body-contents\\\"],[12],[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"sidebar-hamburger-dropdown\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,1],[[28,[37,1],[[30,0,[\\\"botNames\\\"]]],null]],null],null,[[[1,\\\"            \\\"],[8,[39,2],[[24,0,\\\"btn-flat ai-bot-available-bot-content\\\"]],[[\\\"@translatedTitle\\\",\\\"@translatedLabel\\\",\\\"@action\\\"],[[30,1,[\\\"humanized\\\"]],[30,1,[\\\"humanized\\\"]],[28,[37,3],[[30,0],\\\"composeMessageWithTargetBot\\\",[30,1,[\\\"modelName\\\"]]],null]]],null],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"],[13]],[\\\"bot\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"d-button\\\",\\\"action\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/components/ai-bot-header-panel.hbs\",\n    \"isStrictMode\": false\n  });\n  let AiBotHeaderPanel = _exports.default = (_class = (_composeAiBotMessage = /*#__PURE__*/new WeakSet(), class AiBotHeaderPanel extends _component2.default {\n    constructor() {\n      super(...arguments);\n      _classPrivateMethodInitSpec(this, _composeAiBotMessage);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor, this);\n      _initializerDefineProperty(this, \"composer\", _descriptor2, this);\n    }\n    composeMessageWithTargetBot(target) {\n      _classPrivateMethodGet(this, _composeAiBotMessage, _composeAiBotMessage2).call(this, target);\n    }\n    get botNames() {\n      return this.enabledBotOptions.map(bot => {\n        return {\n          humanized: _I18n.default.t(`discourse_ai.ai_bot.bot_names.${bot}`),\n          modelName: bot\n        };\n      });\n    }\n    get enabledBotOptions() {\n      return this.siteSettings.ai_bot_enabled_chat_bots.split(\"|\");\n    }\n  }), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"composer\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _applyDecoratedDescriptor(_class.prototype, \"composeMessageWithTargetBot\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"composeMessageWithTargetBot\"), _class.prototype)), _class);\n  function _composeAiBotMessage2(targetBot) {\n    this.args.closePanel();\n    (0, _aiBotHelper.composeAiBotMessage)(targetBot, this.composer);\n  }\n  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, AiBotHeaderPanel);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-command-selector\", [\"exports\", \"@ember/object\", \"select-kit/components/multi-select\"], function (_exports, _object, _multiSelect) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = _multiSelect.default.extend({\n    _modelDisabledChanged: (0, _object.observer)(\"attrs.disabled\", function () {\n      this.selectKit.options.set(\"disabled\", this.get(\"attrs.disabled.value\"));\n    }),\n    content: (0, _object.computed)(function () {\n      return this.commands;\n    }),\n    value: \"\",\n    selectKitOptions: {\n      filterable: true\n    }\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-helper-custom-prompt\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/component\", \"@ember/helper\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"discourse/components/d-button\", \"discourse-common/helpers/i18n\", \"truth-helpers/helpers/not\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _component2, _helper, _object, _didInsert, _dButton, _i18n, _not, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiHelperCustomPrompt = _exports.default = (_class = (_class2 = class AiHelperCustomPrompt extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"_customPromptInput\", _descriptor, this);\n    }\n    setupCustomPrompt() {\n      this._customPromptInput = document.querySelector(\".ai-custom-prompt__input\");\n      this._customPromptInput.focus();\n    }\n    sendInput() {\n      return this.args.submit(this.args.promptArgs);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <div class=\"ai-custom-prompt\" {{didInsert this.setupCustomPrompt}}>\n        <Input\n          @value={{@value}}\n          placeholder={{i18n\n            \"discourse_ai.ai_helper.context_menu.custom_prompt.placeholder\"\n          }}\n          class=\"ai-custom-prompt__input\"\n          @enter={{this.sendInput}}\n        />\n  \n        <DButton\n          @icon=\"discourse-sparkles\"\n          @action={{fn @submit @promptArgs}}\n          @disabled={{not @value.length}}\n          class=\"ai-custom-prompt__submit btn-primary\"\n        />\n      </div>\n    \n  */\n  {\n    \"id\": \"R9H8RJGc\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[11,0],[24,0,\\\"ai-custom-prompt\\\"],[4,[32,0],[[30,0,[\\\"setupCustomPrompt\\\"]]],null],[12],[1,\\\"\\\\n      \\\"],[8,[32,1],[[16,\\\"placeholder\\\",[28,[32,2],[\\\"discourse_ai.ai_helper.context_menu.custom_prompt.placeholder\\\"],null]],[24,0,\\\"ai-custom-prompt__input\\\"]],[[\\\"@value\\\",\\\"@enter\\\"],[[30,1],[30,0,[\\\"sendInput\\\"]]]],null],[1,\\\"\\\\n\\\\n      \\\"],[8,[32,3],[[24,0,\\\"ai-custom-prompt__submit btn-primary\\\"]],[[\\\"@icon\\\",\\\"@action\\\",\\\"@disabled\\\"],[\\\"discourse-sparkles\\\",[28,[32,4],[[30,2],[30,3]],null],[28,[32,5],[[30,1,[\\\"length\\\"]]],null]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@value\\\",\\\"@submit\\\",\\\"@promptArgs\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/ai-helper-custom-prompt.js\",\n    \"scope\": () => [_didInsert.default, _component2.Input, _i18n.default, _dButton.default, _helper.fn, _not.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"_customPromptInput\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _applyDecoratedDescriptor(_class.prototype, \"setupCustomPrompt\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"setupCustomPrompt\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"sendInput\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"sendInput\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-helper-loading\", [\"exports\", \"discourse/components/d-button\", \"discourse-common/helpers/i18n\", \"@ember/template-factory\", \"@ember/component\", \"@ember/component/template-only\"], function (_exports, _dButton, _i18n, _templateFactory, _component, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const AiHelperLoading = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <div class=\"ai-helper-context-menu__loading\">\n      <div class=\"dot-falling\"></div>\n      <span>\n        {{i18n \"discourse_ai.ai_helper.context_menu.loading\"}}\n      </span>\n      <DButton\n        @icon=\"times\"\n        @title=\"discourse_ai.ai_helper.context_menu.cancel\"\n        @action={{@cancel}}\n        class=\"btn-flat cancel-request\"\n      />\n    </div>\n  \n  */\n  {\n    \"id\": \"Av2n/cr8\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"ai-helper-context-menu__loading\\\"],[12],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"dot-falling\\\"],[12],[13],[1,\\\"\\\\n    \\\"],[10,1],[12],[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[\\\"discourse_ai.ai_helper.context_menu.loading\\\"],null]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[8,[32,1],[[24,0,\\\"btn-flat cancel-request\\\"]],[[\\\"@icon\\\",\\\"@title\\\",\\\"@action\\\"],[\\\"times\\\",\\\"discourse_ai.ai_helper.context_menu.cancel\\\",[30,1]]],null],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@cancel\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/ai-helper-loading.js\",\n    \"scope\": () => [_i18n.default, _dButton.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)());\n  var _default = _exports.default = AiHelperLoading;\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-llm-selector\", [\"exports\", \"@ember/object\", \"discourse-i18n\", \"select-kit/components/combo-box\"], function (_exports, _object, _discourseI18n, _comboBox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = _comboBox.default.extend({\n    _modelDisabledChanged: (0, _object.observer)(\"attrs.disabled\", function () {\n      this.selectKit.options.set(\"disabled\", this.get(\"attrs.disabled.value\"));\n    }),\n    content: (0, _object.computed)(function () {\n      return [{\n        id: \"blank\",\n        name: _discourseI18n.default.t(\"discourse_ai.ai_persona.no_llm_selected\")\n      }].concat(this.llms);\n    }),\n    selectKitOptions: {\n      filterable: true\n    }\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-persona-command-option-editor\", [\"exports\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const AiPersonaCommandOptionEditor = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <div class=\"control-group ai-persona-command-option-editor\">\n      <label>\n        {{@option.name}}\n      </label>\n      <div class=\"\">\n        <Input @value={{@option.value.value}} />\n      </div>\n      <div class=\"ai-persona-command-option-editor__instructions\">\n        {{@option.description}}\n      </div>\n    </div>\n  \n  */\n  {\n    \"id\": \"WHtmf9wt\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"control-group ai-persona-command-option-editor\\\"],[12],[1,\\\"\\\\n    \\\"],[10,\\\"label\\\"],[12],[1,\\\"\\\\n      \\\"],[1,[30,1,[\\\"name\\\"]]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,0],null,[[\\\"@value\\\"],[[30,1,[\\\"value\\\",\\\"value\\\"]]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"ai-persona-command-option-editor__instructions\\\"],[12],[1,\\\"\\\\n      \\\"],[1,[30,1,[\\\"description\\\"]]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@option\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/ai-persona-command-option-editor.js\",\n    \"scope\": () => [_component.Input],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)());\n  var _default = _exports.default = AiPersonaCommandOptionEditor;\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-persona-command-options\", [\"exports\", \"@glimmer/component\", \"discourse-i18n\", \"discourse/plugins/discourse-ai/discourse/components/ai-persona-command-option-editor\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _discourseI18n, _aiPersonaCommandOptionEditor, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class;\n  class AiPersonaCommandOptions extends _component.default {\n    get showCommandOptions() {\n      const allCommands1 = this.args.allCommands;\n      if (!allCommands1) {\n        return false;\n      }\n      return this.commandNames.any(command1 => allCommands1.find(c1 => c1.id === command1)?.options);\n    }\n    get commandNames() {\n      if (!this.args.commands) {\n        return [];\n      }\n      return this.args.commands.map(command1 => {\n        if (typeof command1 === \"string\") {\n          return command1;\n        } else {\n          return command1[0];\n        }\n      });\n    }\n    get commandOptions() {\n      if (!this.args.commands) {\n        return [];\n      }\n      const allCommands1 = this.args.allCommands;\n      if (!allCommands1) {\n        return [];\n      }\n      const options1 = [];\n      this.commandNames.forEach(commandId1 => {\n        const command1 = allCommands1.find(c1 => c1.id === commandId1);\n        const commandName1 = command1?.name;\n        const commandOptions1 = command1?.options;\n        if (commandOptions1) {\n          const mappedOptions1 = Object.keys(commandOptions1).map(key1 => {\n            const value1 = this.args.persona.getCommandOption(commandId1, key1);\n            return Object.assign({}, commandOptions1[key1], {\n              id: key1,\n              value: value1\n            });\n          });\n          options1.push({\n            commandName: commandName1,\n            options: mappedOptions1\n          });\n        }\n      });\n      return options1;\n    }\n  }\n  _exports.default = AiPersonaCommandOptions;\n  _class = AiPersonaCommandOptions;\n  (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.showCommandOptions}}\n        <div class=\"control-group\">\n          <label>{{I18n.t \"discourse_ai.ai_persona.command_options\"}}</label>\n          <div>\n            {{#each this.commandOptions as |commandOption|}}\n              <div class=\"ai-persona-editor__command-options\">\n                <div class=\"ai-persona-editor__command-options-name\">\n                  {{commandOption.commandName}}\n                </div>\n                <div class=\"ai-persona-editor__command-option-options\">\n                  {{#each commandOption.options as |option|}}\n                    <AiPersonaCommandOptionEditor @option={{option}} />\n                  {{/each}}\n                </div>\n              </div>\n            {{/each}}\n          </div>\n        </div>\n      {{/if}}\n    \n  */\n  {\n    \"id\": \"4ZSHKwgK\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showCommandOptions\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,0,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.command_options\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[10,0],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"commandOptions\\\"]]],null]],null],null,[[[1,\\\"            \\\"],[10,0],[14,0,\\\"ai-persona-editor__command-options\\\"],[12],[1,\\\"\\\\n              \\\"],[10,0],[14,0,\\\"ai-persona-editor__command-options-name\\\"],[12],[1,\\\"\\\\n                \\\"],[1,[30,1,[\\\"commandName\\\"]]],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n              \\\"],[10,0],[14,0,\\\"ai-persona-editor__command-option-options\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,1,[\\\"options\\\"]]],null]],null],null,[[[1,\\\"                  \\\"],[8,[32,1],null,[[\\\"@option\\\"],[[30,2]]],null],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"              \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"commandOption\\\",\\\"option\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/ai-persona-command-options.js\",\n    \"scope\": () => [_discourseI18n.default, _aiPersonaCommandOptionEditor.default],\n    \"isStrictMode\": true\n  }), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-persona-editor\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/component\", \"@ember/modifier\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/render-modifiers/modifiers/did-update\", \"@ember/routing\", \"@ember/runloop\", \"@ember/service\", \"discourse/components/d-button\", \"discourse/components/d-textarea\", \"discourse/components/d-toggle-switch\", \"discourse/helpers/bound-avatar-template\", \"discourse/lib/ajax-error\", \"discourse/models/group\", \"discourse-i18n\", \"admin/models/admin-user\", \"select-kit/components/group-chooser\", \"float-kit/components/d-tooltip\", \"discourse/plugins/discourse-ai/discourse/components/ai-command-selector\", \"discourse/plugins/discourse-ai/discourse/components/ai-llm-selector\", \"discourse/plugins/discourse-ai/discourse/components/ai-persona-command-options\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _component2, _modifier, _object, _didInsert, _didUpdate, _routing, _runloop, _service, _dButton, _dTextarea, _dToggleSwitch, _boundAvatarTemplate, _ajaxError, _group, _discourseI18n, _adminUser, _groupChooser, _dTooltip, _aiCommandSelector, _aiLlmSelector, _aiPersonaCommandOptions, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _class2, _sortPersonas;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let PersonaEditor = _exports.default = (_class = (_sortPersonas = /*#__PURE__*/new WeakSet(), (_class2 = class PersonaEditor extends _component.default {\n    constructor() {\n      super(...arguments);\n      _classPrivateMethodInitSpec(this, _sortPersonas);\n      _initializerDefineProperty(this, \"router\", _descriptor, this);\n      _initializerDefineProperty(this, \"store\", _descriptor2, this);\n      _initializerDefineProperty(this, \"dialog\", _descriptor3, this);\n      _initializerDefineProperty(this, \"toasts\", _descriptor4, this);\n      _initializerDefineProperty(this, \"allGroups\", _descriptor5, this);\n      _initializerDefineProperty(this, \"isSaving\", _descriptor6, this);\n      _initializerDefineProperty(this, \"editingModel\", _descriptor7, this);\n      _initializerDefineProperty(this, \"showDelete\", _descriptor8, this);\n    }\n    updateModel() {\n      this.editingModel = this.args.model.workingCopy();\n      this.showDelete = !this.args.model.isNew && !this.args.model.system;\n    }\n    async updateAllGroups() {\n      this.allGroups = await _group.default.findAll();\n    }\n    async save() {\n      const isNew1 = this.args.model.isNew;\n      this.isSaving = true;\n      const backupModel1 = this.args.model.workingCopy();\n      this.args.model.setProperties(this.editingModel);\n      try {\n        await this.args.model.save();\n        _classPrivateMethodGet(this, _sortPersonas, _sortPersonas2).call(this);\n        if (isNew1) {\n          this.args.personas.addObject(this.args.model);\n          this.router.transitionTo(\"adminPlugins.discourse-ai.ai-personas.show\", this.args.model);\n        } else {\n          this.toasts.success({\n            data: {\n              message: _discourseI18n.default.t(\"discourse_ai.ai_persona.saved\")\n            },\n            duration: 2000\n          });\n        }\n      } catch (e1) {\n        this.args.model.setProperties(backupModel1);\n        (0, _ajaxError.popupAjaxError)(e1);\n      } finally {\n        (0, _runloop.later)(() => {\n          this.isSaving = false;\n        }, 1000);\n      }\n    }\n    get showTemperature() {\n      return this.editingModel?.temperature || !this.editingModel?.system;\n    }\n    get showTopP() {\n      return this.editingModel?.top_p || !this.editingModel?.system;\n    }\n    get adminUser() {\n      return _adminUser.default.create(this.editingModel?.user);\n    }\n    get mappedDefaultLlm() {\n      return this.editingModel?.default_llm || \"blank\";\n    }\n    set mappedDefaultLlm(value1) {\n      if (value1 === \"blank\") {\n        this.editingModel.default_llm = null;\n      } else {\n        this.editingModel.default_llm = value1;\n      }\n    }\n    delete() {\n      return this.dialog.confirm({\n        message: _discourseI18n.default.t(\"discourse_ai.ai_persona.confirm_delete\"),\n        didConfirm: () => {\n          return this.args.model.destroyRecord().then(() => {\n            this.args.personas.removeObject(this.args.model);\n            this.router.transitionTo(\"adminPlugins.discourse-ai.ai-personas.index\");\n          });\n        }\n      });\n    }\n    updateAllowedGroups(ids1) {\n      this.editingModel.set(\"allowed_group_ids\", ids1);\n    }\n    async toggleEnabled() {\n      await this.toggleField(\"enabled\");\n    }\n    async togglePriority() {\n      await this.toggleField(\"priority\", true);\n    }\n    async toggleMentionable() {\n      await this.toggleField(\"mentionable\");\n    }\n    async createUser() {\n      try {\n        let user1 = await this.args.model.createUser();\n        this.editingModel.set(\"user\", user1);\n        this.editingModel.set(\"user_id\", user1.id);\n      } catch (e1) {\n        (0, _ajaxError.popupAjaxError)(e1);\n      }\n    }\n    async toggleField(field1, sortPersonas1) {\n      this.args.model.set(field1, !this.args.model[field1]);\n      this.editingModel.set(field1, this.args.model[field1]);\n      if (!this.args.model.isNew) {\n        try {\n          const args1 = {};\n          args1[field1] = this.args.model[field1];\n          await this.args.model.update(args1);\n          if (sortPersonas1) {\n            _classPrivateMethodGet(this, _sortPersonas, _sortPersonas2).call(this);\n          }\n        } catch (e1) {\n          (0, _ajaxError.popupAjaxError)(e1);\n        }\n      }\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <form\n        class=\"form-horizontal ai-persona-editor\"\n        {{didUpdate this.updateModel @model.id}}\n        {{didInsert this.updateModel @model.id}}\n        {{didInsert this.updateAllGroups @model.id}}\n      >\n        <div class=\"control-group\">\n          <DToggleSwitch\n            class=\"ai-persona-editor__enabled\"\n            @state={{@model.enabled}}\n            @label=\"discourse_ai.ai_persona.enabled\"\n            {{on \"click\" this.toggleEnabled}}\n          />\n        </div>\n        <div class=\"control-group ai-persona-editor__priority\">\n          <DToggleSwitch\n            class=\"ai-persona-editor__priority\"\n            @state={{@model.priority}}\n            @label=\"discourse_ai.ai_persona.priority\"\n            {{on \"click\" this.togglePriority}}\n          />\n          <DTooltip\n            @icon=\"question-circle\"\n            @content={{I18n.t \"discourse_ai.ai_persona.priority_help\"}}\n          />\n        </div>\n        {{#if this.editingModel.user}}\n          <div class=\"control-group ai-persona-editor__mentionable\">\n            <DToggleSwitch\n              class=\"ai-persona-editor__mentionable_toggle\"\n              @state={{@model.mentionable}}\n              @label=\"discourse_ai.ai_persona.mentionable\"\n              {{on \"click\" this.toggleMentionable}}\n            />\n            <DTooltip\n              @icon=\"question-circle\"\n              @content={{I18n.t \"discourse_ai.ai_persona.mentionable_help\"}}\n            />\n          </div>\n        {{/if}}\n        <div class=\"control-group\">\n          <label>{{I18n.t \"discourse_ai.ai_persona.name\"}}</label>\n          <Input\n            class=\"ai-persona-editor__name\"\n            @type=\"text\"\n            @value={{this.editingModel.name}}\n            disabled={{this.editingModel.system}}\n          />\n        </div>\n        <div class=\"control-group\">\n          <label>{{I18n.t \"discourse_ai.ai_persona.description\"}}</label>\n          <Textarea\n            class=\"ai-persona-editor__description\"\n            @value={{this.editingModel.description}}\n            disabled={{this.editingModel.system}}\n          />\n        </div>\n        <div class=\"control-group\">\n          <label>{{I18n.t \"discourse_ai.ai_persona.default_llm\"}}</label>\n          <AiLlmSelector\n            class=\"ai-persona-editor__llms\"\n            @value={{this.mappedDefaultLlm}}\n            @llms={{@personas.resultSetMeta.llms}}\n          />\n          <DTooltip\n            @icon=\"question-circle\"\n            @content={{I18n.t \"discourse_ai.ai_persona.default_llm_help\"}}\n          />\n        </div>\n        {{#unless @model.isNew}}\n          <div class=\"control-group\">\n            <label>{{I18n.t \"discourse_ai.ai_persona.user\"}}</label>\n            {{#if this.editingModel.user}}\n              <a\n                class=\"avatar\"\n                href={{this.editingModel.user.path}}\n                data-user-card={{this.editingModel.user.username}}\n              >\n                {{Avatar this.editingModel.user.avatar_template \"small\"}}\n              </a>\n              <LinkTo @route=\"adminUser\" @model={{this.adminUser}}>\n                {{this.editingModel.user.username}}\n              </LinkTo>\n            {{else}}\n              <DButton\n                @action={{this.createUser}}\n                class=\"ai-persona-editor__create-user\"\n              >\n                {{I18n.t \"discourse_ai.ai_persona.create_user\"}}\n              </DButton>\n              <DTooltip\n                @icon=\"question-circle\"\n                @content={{I18n.t \"discourse_ai.ai_persona.create_user_help\"}}\n              />\n            {{/if}}\n          </div>\n        {{/unless}}\n        <div class=\"control-group\">\n          <label>{{I18n.t \"discourse_ai.ai_persona.commands\"}}</label>\n          <AiCommandSelector\n            class=\"ai-persona-editor__commands\"\n            @value={{this.editingModel.commands}}\n            @disabled={{this.editingModel.system}}\n            @commands={{@personas.resultSetMeta.commands}}\n          />\n        </div>\n        {{#unless this.editingModel.system}}\n          <AiPersonaCommandOptions\n            @persona={{this.editingModel}}\n            @commands={{this.editingModel.commands}}\n            @allCommands={{@personas.resultSetMeta.commands}}\n          />\n        {{/unless}}\n        <div class=\"control-group\">\n          <label>{{I18n.t \"discourse_ai.ai_persona.allowed_groups\"}}</label>\n          <GroupChooser\n            @value={{this.editingModel.allowed_group_ids}}\n            @content={{this.allGroups}}\n            @onChange={{this.updateAllowedGroups}}\n          />\n        </div>\n        <div class=\"control-group\">\n          <label for=\"ai-persona-editor__system_prompt\">{{I18n.t\n              \"discourse_ai.ai_persona.system_prompt\"\n            }}</label>\n          <Textarea\n            class=\"ai-persona-editor__system_prompt\"\n            @value={{this.editingModel.system_prompt}}\n            disabled={{this.editingModel.system}}\n          />\n        </div>\n        <div class=\"control-group\">\n          <label>{{I18n.t \"discourse_ai.ai_persona.max_context_posts\"}}</label>\n          <Input\n            @type=\"number\"\n            class=\"ai-persona-editor__max_context_posts\"\n            @value={{this.editingModel.max_context_posts}}\n          />\n          <DTooltip\n            @icon=\"question-circle\"\n            @content={{I18n.t \"discourse_ai.ai_persona.max_context_posts_help\"}}\n          />\n        </div>\n        {{#if this.showTemperature}}\n          <div class=\"control-group\">\n            <label>{{I18n.t \"discourse_ai.ai_persona.temperature\"}}</label>\n            <Input\n              @type=\"number\"\n              class=\"ai-persona-editor__temperature\"\n              @value={{this.editingModel.temperature}}\n              disabled={{this.editingModel.system}}\n            />\n            <DTooltip\n              @icon=\"question-circle\"\n              @content={{I18n.t \"discourse_ai.ai_persona.temperature_help\"}}\n            />\n          </div>\n        {{/if}}\n        {{#if this.showTopP}}\n          <div class=\"control-group\">\n            <label>{{I18n.t \"discourse_ai.ai_persona.top_p\"}}</label>\n            <Input\n              @type=\"number\"\n              class=\"ai-persona-editor__top_p\"\n              @value={{this.editingModel.top_p}}\n              disabled={{this.editingModel.system}}\n            />\n            <DTooltip\n              @icon=\"question-circle\"\n              @content={{I18n.t \"discourse_ai.ai_persona.top_p_help\"}}\n            />\n          </div>\n        {{/if}}\n        <div class=\"control-group ai-persona-editor__action_panel\">\n          <DButton\n            class=\"btn-primary ai-persona-editor__save\"\n            @action={{this.save}}\n            @disabled={{this.isSaving}}\n          >{{I18n.t \"discourse_ai.ai_persona.save\"}}</DButton>\n          {{#if this.showDelete}}\n            <DButton\n              @action={{this.delete}}\n              class=\"btn-danger ai-persona-editor__delete\"\n            >\n              {{I18n.t \"discourse_ai.ai_persona.delete\"}}\n            </DButton>\n          {{/if}}\n        </div>\n      </form>\n    \n  */\n  {\n    \"id\": \"TDePBDmh\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[11,\\\"form\\\"],[24,0,\\\"form-horizontal ai-persona-editor\\\"],[4,[32,0],[[30,0,[\\\"updateModel\\\"]],[30,1,[\\\"id\\\"]]],null],[4,[32,1],[[30,0,[\\\"updateModel\\\"]],[30,1,[\\\"id\\\"]]],null],[4,[32,1],[[30,0,[\\\"updateAllGroups\\\"]],[30,1,[\\\"id\\\"]]],null],[12],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,2],[[24,0,\\\"ai-persona-editor__enabled\\\"],[4,[32,3],[\\\"click\\\",[30,0,[\\\"toggleEnabled\\\"]]],null]],[[\\\"@state\\\",\\\"@label\\\"],[[30,1,[\\\"enabled\\\"]],\\\"discourse_ai.ai_persona.enabled\\\"]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"control-group ai-persona-editor__priority\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,2],[[24,0,\\\"ai-persona-editor__priority\\\"],[4,[32,3],[\\\"click\\\",[30,0,[\\\"togglePriority\\\"]]],null]],[[\\\"@state\\\",\\\"@label\\\"],[[30,1,[\\\"priority\\\"]],\\\"discourse_ai.ai_persona.priority\\\"]],null],[1,\\\"\\\\n        \\\"],[8,[32,4],null,[[\\\"@icon\\\",\\\"@content\\\"],[\\\"question-circle\\\",[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.priority_help\\\"],null]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"editingModel\\\",\\\"user\\\"]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"control-group ai-persona-editor__mentionable\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,2],[[24,0,\\\"ai-persona-editor__mentionable_toggle\\\"],[4,[32,3],[\\\"click\\\",[30,0,[\\\"toggleMentionable\\\"]]],null]],[[\\\"@state\\\",\\\"@label\\\"],[[30,1,[\\\"mentionable\\\"]],\\\"discourse_ai.ai_persona.mentionable\\\"]],null],[1,\\\"\\\\n          \\\"],[8,[32,4],null,[[\\\"@icon\\\",\\\"@content\\\"],[\\\"question-circle\\\",[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.mentionable_help\\\"],null]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.name\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,6],[[24,0,\\\"ai-persona-editor__name\\\"],[16,\\\"disabled\\\",[30,0,[\\\"editingModel\\\",\\\"system\\\"]]]],[[\\\"@type\\\",\\\"@value\\\"],[\\\"text\\\",[30,0,[\\\"editingModel\\\",\\\"name\\\"]]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.description\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,7],[[24,0,\\\"ai-persona-editor__description\\\"],[16,\\\"disabled\\\",[30,0,[\\\"editingModel\\\",\\\"system\\\"]]]],[[\\\"@value\\\"],[[30,0,[\\\"editingModel\\\",\\\"description\\\"]]]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.default_llm\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,8],[[24,0,\\\"ai-persona-editor__llms\\\"]],[[\\\"@value\\\",\\\"@llms\\\"],[[30,0,[\\\"mappedDefaultLlm\\\"]],[30,2,[\\\"resultSetMeta\\\",\\\"llms\\\"]]]],null],[1,\\\"\\\\n        \\\"],[8,[32,4],null,[[\\\"@icon\\\",\\\"@content\\\"],[\\\"question-circle\\\",[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.default_llm_help\\\"],null]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"],[41,[51,[30,1,[\\\"isNew\\\"]]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.user\\\"],null]],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"editingModel\\\",\\\"user\\\"]],[[[1,\\\"            \\\"],[10,3],[14,0,\\\"avatar\\\"],[15,6,[30,0,[\\\"editingModel\\\",\\\"user\\\",\\\"path\\\"]]],[15,\\\"data-user-card\\\",[30,0,[\\\"editingModel\\\",\\\"user\\\",\\\"username\\\"]]],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,9],[[30,0,[\\\"editingModel\\\",\\\"user\\\",\\\"avatar_template\\\"]],\\\"small\\\"],null]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n            \\\"],[8,[32,10],null,[[\\\"@route\\\",\\\"@model\\\"],[\\\"adminUser\\\",[30,0,[\\\"adminUser\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n              \\\"],[1,[30,0,[\\\"editingModel\\\",\\\"user\\\",\\\"username\\\"]]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"            \\\"],[8,[32,11],[[24,0,\\\"ai-persona-editor__create-user\\\"]],[[\\\"@action\\\"],[[30,0,[\\\"createUser\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n              \\\"],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.create_user\\\"],null]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n            \\\"],[8,[32,4],null,[[\\\"@icon\\\",\\\"@content\\\"],[\\\"question-circle\\\",[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.create_user_help\\\"],null]]],null],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.commands\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,12],[[24,0,\\\"ai-persona-editor__commands\\\"]],[[\\\"@value\\\",\\\"@disabled\\\",\\\"@commands\\\"],[[30,0,[\\\"editingModel\\\",\\\"commands\\\"]],[30,0,[\\\"editingModel\\\",\\\"system\\\"]],[30,2,[\\\"resultSetMeta\\\",\\\"commands\\\"]]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"],[41,[51,[30,0,[\\\"editingModel\\\",\\\"system\\\"]]],[[[1,\\\"        \\\"],[8,[32,13],null,[[\\\"@persona\\\",\\\"@commands\\\",\\\"@allCommands\\\"],[[30,0,[\\\"editingModel\\\"]],[30,0,[\\\"editingModel\\\",\\\"commands\\\"]],[30,2,[\\\"resultSetMeta\\\",\\\"commands\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.allowed_groups\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,14],null,[[\\\"@value\\\",\\\"@content\\\",\\\"@onChange\\\"],[[30,0,[\\\"editingModel\\\",\\\"allowed_group_ids\\\"]],[30,0,[\\\"allGroups\\\"]],[30,0,[\\\"updateAllowedGroups\\\"]]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ai-persona-editor__system_prompt\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.system_prompt\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,7],[[24,0,\\\"ai-persona-editor__system_prompt\\\"],[16,\\\"disabled\\\",[30,0,[\\\"editingModel\\\",\\\"system\\\"]]]],[[\\\"@value\\\"],[[30,0,[\\\"editingModel\\\",\\\"system_prompt\\\"]]]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.max_context_posts\\\"],null]],[13],[1,\\\"\\\\n        \\\"],[8,[32,6],[[24,0,\\\"ai-persona-editor__max_context_posts\\\"]],[[\\\"@type\\\",\\\"@value\\\"],[\\\"number\\\",[30,0,[\\\"editingModel\\\",\\\"max_context_posts\\\"]]]],null],[1,\\\"\\\\n        \\\"],[8,[32,4],null,[[\\\"@icon\\\",\\\"@content\\\"],[\\\"question-circle\\\",[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.max_context_posts_help\\\"],null]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showTemperature\\\"]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.temperature\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[8,[32,6],[[24,0,\\\"ai-persona-editor__temperature\\\"],[16,\\\"disabled\\\",[30,0,[\\\"editingModel\\\",\\\"system\\\"]]]],[[\\\"@type\\\",\\\"@value\\\"],[\\\"number\\\",[30,0,[\\\"editingModel\\\",\\\"temperature\\\"]]]],null],[1,\\\"\\\\n          \\\"],[8,[32,4],null,[[\\\"@icon\\\",\\\"@content\\\"],[\\\"question-circle\\\",[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.temperature_help\\\"],null]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[30,0,[\\\"showTopP\\\"]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"control-group\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.top_p\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[8,[32,6],[[24,0,\\\"ai-persona-editor__top_p\\\"],[16,\\\"disabled\\\",[30,0,[\\\"editingModel\\\",\\\"system\\\"]]]],[[\\\"@type\\\",\\\"@value\\\"],[\\\"number\\\",[30,0,[\\\"editingModel\\\",\\\"top_p\\\"]]]],null],[1,\\\"\\\\n          \\\"],[8,[32,4],null,[[\\\"@icon\\\",\\\"@content\\\"],[\\\"question-circle\\\",[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.top_p_help\\\"],null]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[10,0],[14,0,\\\"control-group ai-persona-editor__action_panel\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,11],[[24,0,\\\"btn-primary ai-persona-editor__save\\\"]],[[\\\"@action\\\",\\\"@disabled\\\"],[[30,0,[\\\"save\\\"]],[30,0,[\\\"isSaving\\\"]]]],[[\\\"default\\\"],[[[[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.save\\\"],null]]],[]]]]],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showDelete\\\"]],[[[1,\\\"          \\\"],[8,[32,11],[[24,0,\\\"btn-danger ai-persona-editor__delete\\\"]],[[\\\"@action\\\"],[[30,0,[\\\"delete\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n            \\\"],[1,[28,[32,5,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.delete\\\"],null]],[1,\\\"\\\\n          \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@model\\\",\\\"@personas\\\"],false,[\\\"if\\\",\\\"unless\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/ai-persona-editor.js\",\n    \"scope\": () => [_didUpdate.default, _didInsert.default, _dToggleSwitch.default, _modifier.on, _dTooltip.default, _discourseI18n.default, _component2.Input, _dTextarea.default, _aiLlmSelector.default, _boundAvatarTemplate.default, _routing.LinkTo, _dButton.default, _aiCommandSelector.default, _aiPersonaCommandOptions.default, _groupChooser.default],\n    \"isStrictMode\": true\n  }), _class2), _class2)), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"router\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"store\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"dialog\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"toasts\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"allGroups\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return [];\n    }\n  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, \"isSaving\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, \"editingModel\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, \"showDelete\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"updateModel\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"updateModel\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"updateAllGroups\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"updateAllGroups\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"save\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"save\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"delete\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"delete\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"updateAllowedGroups\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"updateAllowedGroups\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"toggleEnabled\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"toggleEnabled\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"togglePriority\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"togglePriority\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"toggleMentionable\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"toggleMentionable\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"createUser\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"createUser\"), _class.prototype)), _class);\n  function _sortPersonas2() {\n    const sorted1 = this.args.personas.toArray().sort((a1, b1) => {\n      if (a1.priority && !b1.priority) {\n        return -1;\n      } else if (!a1.priority && b1.priority) {\n        return 1;\n      } else {\n        return a1.name.localeCompare(b1.name);\n      }\n    });\n    this.args.personas.clear();\n    this.args.personas.setObjects(sorted1);\n  }\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-persona-list-editor\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/routing\", \"discourse/helpers/concat-class\", \"discourse/lib/text\", \"discourse-common/helpers/d-icon\", \"discourse-i18n\", \"discourse/plugins/discourse-ai/discourse/components/ai-persona-editor\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _routing, _concatClass, _text, _dIcon, _discourseI18n, _aiPersonaEditor, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiPersonaListEditor = _exports.default = (_class = (_class2 = class AiPersonaListEditor extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"_noPersonaText\", _descriptor, this);\n    }\n    get noPersonaText() {\n      if (this._noPersonaText === null) {\n        const raw1 = _discourseI18n.default.t(\"discourse_ai.ai_persona.no_persona_selected\");\n        (0, _text.cook)(raw1).then(result1 => {\n          this._noPersonaText = result1;\n        });\n      }\n      return this._noPersonaText;\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <div class=\"ai-persona-list-editor__header\">\n        <h3>{{I18n.t \"discourse_ai.ai_persona.title\"}}</h3>\n        {{#unless @currentPersona.isNew}}\n          <LinkTo\n            @route=\"adminPlugins.discourse-ai.ai-personas.new\"\n            class=\"btn btn-primary\"\n          >\n            {{icon \"plus\"}}\n            <span>{{I18n.t \"discourse_ai.ai_persona.new\"}}</span>\n          </LinkTo>\n        {{/unless}}\n      </div>\n      <div class=\"content-list ai-persona-list-editor\">\n        <ul>\n          {{#each @personas as |persona|}}\n            <li\n              class={{concatClass\n                (if persona.enabled \"\" \"diabled\")\n                (if persona.priority \"priority\")\n              }}\n            >\n              <LinkTo\n                @route=\"adminPlugins.discourse-ai.ai-personas.show\"\n                current-when=\"true\"\n                @model={{persona}}\n              >{{persona.name}}\n              </LinkTo>\n            </li>\n          {{/each}}\n        </ul>\n      </div>\n      <section class=\"ai-persona-list-editor__current content-body\">\n        {{#if @currentPersona}}\n          <AiPersonaEditor @model={{@currentPersona}} @personas={{@personas}} />\n        {{else}}\n          <div class=\"ai-persona-list-editor__empty\">\n            {{this.noPersonaText}}\n          </div>\n        {{/if}}\n      </section>\n    \n  */\n  {\n    \"id\": \"ZGQwJcK9\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"ai-persona-list-editor__header\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"h3\\\"],[12],[1,[28,[32,0,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.title\\\"],null]],[13],[1,\\\"\\\\n\\\"],[41,[51,[30,1,[\\\"isNew\\\"]]],[[[1,\\\"        \\\"],[8,[32,1],[[24,0,\\\"btn btn-primary\\\"]],[[\\\"@route\\\"],[\\\"adminPlugins.discourse-ai.ai-personas.new\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[1,[28,[32,2],[\\\"plus\\\"],null]],[1,\\\"\\\\n          \\\"],[10,1],[12],[1,[28,[32,0,[\\\"t\\\"]],[\\\"discourse_ai.ai_persona.new\\\"],null]],[13],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"content-list ai-persona-list-editor\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"ul\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,2]],null]],null],null,[[[1,\\\"          \\\"],[10,\\\"li\\\"],[15,0,[28,[32,3],[[52,[30,3,[\\\"enabled\\\"]],\\\"\\\",\\\"diabled\\\"],[52,[30,3,[\\\"priority\\\"]],\\\"priority\\\"]],null]],[12],[1,\\\"\\\\n            \\\"],[8,[32,1],[[24,\\\"current-when\\\",\\\"true\\\"]],[[\\\"@route\\\",\\\"@model\\\"],[\\\"adminPlugins.discourse-ai.ai-personas.show\\\",[30,3]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"name\\\"]]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[3]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,\\\"section\\\"],[14,0,\\\"ai-persona-list-editor__current content-body\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,1],[[[1,\\\"        \\\"],[8,[32,4],null,[[\\\"@model\\\",\\\"@personas\\\"],[[30,1],[30,2]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"ai-persona-list-editor__empty\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[30,0,[\\\"noPersonaText\\\"]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@currentPersona\\\",\\\"@personas\\\",\\\"persona\\\"],false,[\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/ai-persona-list-editor.js\",\n    \"scope\": () => [_discourseI18n.default, _routing.LinkTo, _dIcon.default, _concatClass.default, _aiPersonaEditor.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"_noPersonaText\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  })), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-split-topic-suggester\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"discourse/helpers/category-badge\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"float-kit/components/d-menu\", \"truth-helpers/helpers/eq\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _helper, _modifier, _object, _service, _dButton, _categoryBadge, _ajax, _ajaxError, _dMenu, _eq, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiSplitTopicSuggester = _exports.default = (_class = (_class2 = class AiSplitTopicSuggester extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"site\", _descriptor, this);\n      _initializerDefineProperty(this, \"menu\", _descriptor2, this);\n      _initializerDefineProperty(this, \"suggestions\", _descriptor3, this);\n      _initializerDefineProperty(this, \"loading\", _descriptor4, this);\n      _initializerDefineProperty(this, \"icon\", _descriptor5, this);\n      _defineProperty(this, \"SUGGESTION_TYPES\", {\n        title: \"suggest_title\",\n        category: \"suggest_category\",\n        tag: \"suggest_tags\"\n      });\n    }\n    get input() {\n      return this.args.selectedPosts.map(item1 => item1.cooked).join(\"\\n\");\n    }\n    get disabled() {\n      return this.loading || this.suggestions.length > 0;\n    }\n    loadSuggestions() {\n      if (this.loading || this.suggestions.length > 0) {\n        return;\n      }\n      this.loading = true;\n      (0, _ajax.ajax)(`/discourse-ai/ai-helper/${this.args.mode}`, {\n        method: \"POST\",\n        data: {\n          text: this.input\n        }\n      }).then(result1 => {\n        if (this.args.mode === this.SUGGESTION_TYPES.title) {\n          this.suggestions = result1.suggestions;\n        } else if (this.args.mode === this.SUGGESTION_TYPES.category) {\n          const suggestions1 = result1.assistant.map(s1 => s1.name);\n          const suggestedCategories1 = this.site.categories.filter(item1 => suggestions1.includes(item1.name.toLowerCase()));\n          this.suggestions = suggestedCategories1;\n        } else {\n          this.suggestions = result1.assistant.map(s1 => s1.name);\n        }\n      }).catch(_ajaxError.popupAjaxError).finally(() => {\n        this.loading = false;\n      });\n    }\n    applySuggestion(suggestion1, menu1) {\n      if (!this.args.mode) {\n        return;\n      }\n      if (this.args.mode === this.SUGGESTION_TYPES.title) {\n        this.args.updateAction(suggestion1);\n        return menu1.close();\n      }\n      if (this.args.mode === this.SUGGESTION_TYPES.category) {\n        this.args.updateAction(suggestion1.id);\n        return menu1.close();\n      }\n      if (this.args.mode === this.SUGGESTION_TYPES.tag) {\n        if (this.args.currentValue) {\n          if (Array.isArray(this.args.currentValue)) {\n            const updatedTags1 = [...this.args.currentValue, suggestion1];\n            this.args.updateAction([...new Set(updatedTags1)]);\n          } else {\n            const updatedTags1 = [this.args.currentValue, suggestion1];\n            this.args.updateAction([...new Set(updatedTags1)]);\n          }\n        } else {\n          this.args.updateAction(suggestion1);\n        }\n        return menu1.close();\n      }\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.loading}}\n        {{!\n          Dynamically changing @icon of DMenu\n          causes it to rerender after load and\n          close the menu once data is loaded.\n          This workaround mimics an icon change of\n          the button by adding an overlapping\n          disabled button while loading}}\n        <DButton\n          class=\"ai-split-topic-loading-placeholder\"\n          @disabled={{true}}\n          @icon=\"spinner\"\n        />\n      {{/if}}\n      <DMenu\n        @icon=\"discourse-sparkles\"\n        @interactive={{true}}\n        @identifier=\"ai-split-topic-suggestion-menu\"\n        class=\"ai-split-topic-suggestion-button\"\n        data-suggestion-mode={{@mode}}\n        {{on \"click\" this.loadSuggestions}}\n        as |menu|\n      >\n        <ul class=\"ai-split-topic-suggestion__results\">\n          {{#unless this.loading}}\n            {{#each this.suggestions as |suggestion index|}}\n              {{#if (eq @mode \"suggest_category\")}}\n                <li\n                  data-name={{suggestion.name}}\n                  data-value={{suggestion.id}}\n                  class=\"ai-split-topic-suggestion__category-result\"\n                  role=\"button\"\n                  {{on \"click\" (fn this.applySuggestion suggestion menu)}}\n                >\n                  {{categoryBadge suggestion}}\n                </li>\n              {{else}}\n                <li data-name={{suggestion}} data-value={{index}}>\n                  <DButton\n                    @translatedLabel={{suggestion}}\n                    @action={{fn this.applySuggestion suggestion menu}}\n                  />\n                </li>\n              {{/if}}\n            {{/each}}\n          {{/unless}}\n        </ul>\n      </DMenu>\n    \n  */\n  {\n    \"id\": \"OK/TJTRS\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"loading\\\"]],[[[1,\\\"      \\\"],[8,[32,0],[[24,0,\\\"ai-split-topic-loading-placeholder\\\"]],[[\\\"@disabled\\\",\\\"@icon\\\"],[true,\\\"spinner\\\"]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[8,[32,1],[[24,0,\\\"ai-split-topic-suggestion-button\\\"],[16,\\\"data-suggestion-mode\\\",[30,1]],[4,[32,2],[\\\"click\\\",[30,0,[\\\"loadSuggestions\\\"]]],null]],[[\\\"@icon\\\",\\\"@interactive\\\",\\\"@identifier\\\"],[\\\"discourse-sparkles\\\",true,\\\"ai-split-topic-suggestion-menu\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[10,\\\"ul\\\"],[14,0,\\\"ai-split-topic-suggestion__results\\\"],[12],[1,\\\"\\\\n\\\"],[41,[51,[30,0,[\\\"loading\\\"]]],[[[42,[28,[31,3],[[28,[31,3],[[30,0,[\\\"suggestions\\\"]]],null]],null],null,[[[41,[28,[32,3],[[30,1],\\\"suggest_category\\\"],null],[[[1,\\\"              \\\"],[11,\\\"li\\\"],[16,\\\"data-name\\\",[30,3,[\\\"name\\\"]]],[16,\\\"data-value\\\",[30,3,[\\\"id\\\"]]],[24,0,\\\"ai-split-topic-suggestion__category-result\\\"],[24,\\\"role\\\",\\\"button\\\"],[4,[32,2],[\\\"click\\\",[28,[32,4],[[30,0,[\\\"applySuggestion\\\"]],[30,3],[30,2]],null]],null],[12],[1,\\\"\\\\n                \\\"],[1,[28,[32,5],[[30,3]],null]],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[10,\\\"li\\\"],[15,\\\"data-name\\\",[30,3]],[15,\\\"data-value\\\",[30,4]],[12],[1,\\\"\\\\n                \\\"],[8,[32,0],null,[[\\\"@translatedLabel\\\",\\\"@action\\\"],[[30,3],[28,[32,4],[[30,0,[\\\"applySuggestion\\\"]],[30,3],[30,2]],null]]],null],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]]]],[3,4]],null]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"]],[2]]]]],[1,\\\"\\\\n  \\\"]],[\\\"@mode\\\",\\\"menu\\\",\\\"suggestion\\\",\\\"index\\\"],false,[\\\"if\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/ai-split-topic-suggester.js\",\n    \"scope\": () => [_dButton.default, _dMenu.default, _modifier.on, _eq.default, _helper.fn, _categoryBadge.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"site\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"menu\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"suggestions\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return [];\n    }\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"loading\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"icon\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"discourse-sparkles\";\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"loadSuggestions\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"loadSuggestions\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"applySuggestion\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"applySuggestion\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/ai-suggestion-dropdown\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/service\", \"discourse/components/d-button\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse-common/utils/decorators\", \"I18n\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _helper, _object, _didInsert, _service, _dButton, _ajax, _ajaxError, _decorators, _I18n, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _class2, _closeMenu, _updateTags, _tagSelectorHasValues, _assignGeneratedSuggestions;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\n  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AISuggestionDropdown = _exports.default = (_class = (_closeMenu = /*#__PURE__*/new WeakSet(), _updateTags = /*#__PURE__*/new WeakSet(), _tagSelectorHasValues = /*#__PURE__*/new WeakSet(), _assignGeneratedSuggestions = /*#__PURE__*/new WeakSet(), (_class2 = class AISuggestionDropdown extends _component.default {\n    constructor() {\n      super(...arguments);\n      _classPrivateMethodInitSpec(this, _assignGeneratedSuggestions);\n      _classPrivateMethodInitSpec(this, _tagSelectorHasValues);\n      _classPrivateMethodInitSpec(this, _updateTags);\n      _classPrivateMethodInitSpec(this, _closeMenu);\n      _initializerDefineProperty(this, \"dialog\", _descriptor, this);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor2, this);\n      _initializerDefineProperty(this, \"composer\", _descriptor3, this);\n      _initializerDefineProperty(this, \"loading\", _descriptor4, this);\n      _initializerDefineProperty(this, \"showMenu\", _descriptor5, this);\n      _initializerDefineProperty(this, \"generatedSuggestions\", _descriptor6, this);\n      _initializerDefineProperty(this, \"suggestIcon\", _descriptor7, this);\n      _initializerDefineProperty(this, \"showErrors\", _descriptor8, this);\n      _initializerDefineProperty(this, \"error\", _descriptor9, this);\n      _defineProperty(this, \"SUGGESTION_TYPES\", {\n        title: \"suggest_title\",\n        category: \"suggest_category\",\n        tag: \"suggest_tags\"\n      });\n    }\n    willDestroy() {\n      super.willDestroy(...arguments);\n      document.removeEventListener(\"click\", this.onClickOutside);\n    }\n    get showAIButton() {\n      const minCharacterCount1 = 40;\n      const isShowAIButton1 = this.composer.model.replyLength > minCharacterCount1;\n      const composerFields1 = document.querySelector(\".composer-fields\");\n      if (composerFields1) {\n        if (isShowAIButton1) {\n          composerFields1.classList.add(\"showing-ai-suggestions\");\n        } else {\n          composerFields1.classList.remove(\"showing-ai-suggestions\");\n        }\n      }\n      return isShowAIButton1;\n    }\n    get disableSuggestionButton() {\n      return this.loading;\n    }\n    applyClasses() {\n      if (this.showAIButton) {\n        document.querySelector(\".composer-fields\")?.classList.add(\"showing-ai-suggestions\");\n      } else {\n        document.querySelector(\".composer-fields\")?.classList.remove(\"showing-ai-suggestions\");\n      }\n    }\n    onClickOutside(event1) {\n      const menu1 = document.querySelector(\".ai-title-suggestions-menu\");\n      if (event1.target === menu1) {\n        return;\n      }\n      return _classPrivateMethodGet(this, _closeMenu, _closeMenu2).call(this);\n    }\n    handleClickOutside() {\n      document.addEventListener(\"click\", this.onClickOutside);\n    }\n    applySuggestion(suggestion1) {\n      if (!this.args.mode) {\n        return;\n      }\n      const composer1 = this.args?.composer;\n      if (!composer1) {\n        return;\n      }\n      if (this.args.mode === this.SUGGESTION_TYPES.title) {\n        composer1.set(\"title\", suggestion1);\n        return _classPrivateMethodGet(this, _closeMenu, _closeMenu2).call(this);\n      }\n      if (this.args.mode === this.SUGGESTION_TYPES.category) {\n        const selectedCategoryId1 = this.composer.categories.find(c1 => c1.slug === suggestion1).id;\n        composer1.set(\"categoryId\", selectedCategoryId1);\n        return _classPrivateMethodGet(this, _closeMenu, _closeMenu2).call(this);\n      }\n      if (this.args.mode === this.SUGGESTION_TYPES.tag) {\n        _classPrivateMethodGet(this, _updateTags, _updateTags2).call(this, suggestion1, composer1);\n      }\n    }\n    async performSuggestion() {\n      if (!this.args.mode) {\n        return;\n      }\n      if (this.composer.model.replyLength === 0) {\n        return this.dialog.alert(_I18n.default.t(\"discourse_ai.ai_helper.missing_content\"));\n      }\n      this.loading = true;\n      this.suggestIcon = \"spinner\";\n      return (0, _ajax.ajax)(`/discourse-ai/ai-helper/${this.args.mode}`, {\n        method: \"POST\",\n        data: {\n          text: this.composer.model.reply\n        }\n      }).then(data1 => {\n        _classPrivateMethodGet(this, _assignGeneratedSuggestions, _assignGeneratedSuggestions2).call(this, data1, this.args.mode);\n      }).catch(_ajaxError.popupAjaxError).finally(() => {\n        this.loading = false;\n        this.suggestIcon = \"sync-alt\";\n        this.showMenu = true;\n        if (this.args.mode === \"suggest_category\") {\n          document.querySelector(\".category-input\")?.classList.add(\"showing-ai-suggestion-menu\");\n        }\n      });\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.showAIButton}}\n        <DButton\n          @icon={{this.suggestIcon}}\n          @title=\"discourse_ai.ai_helper.suggest\"\n          @action={{this.performSuggestion}}\n          @disabled={{this.disableSuggestionButton}}\n          class=\"suggestion-button {{if this.loading 'is-loading'}}\"\n          ...attributes\n        />\n      {{/if}}\n  \n      {{#if this.showMenu}}\n        {{! template-lint-disable modifier-name-case }}\n        <ul\n          class=\"popup-menu ai-suggestions-menu\"\n          {{didInsert this.handleClickOutside}}\n        >\n          {{#if this.showErrors}}\n            <li class=\"ai-suggestions-menu__errors\">{{this.error}}</li>\n          {{/if}}\n          {{#each this.generatedSuggestions as |suggestion index|}}\n            <li data-name={{suggestion}} data-value={{index}}>\n              <DButton\n                @translatedLabel={{suggestion}}\n                @action={{fn this.applySuggestion suggestion}}\n                class=\"popup-menu-btn\"\n              />\n            </li>\n          {{/each}}\n        </ul>\n      {{/if}}\n    \n  */\n  {\n    \"id\": \"Cn6HectJ\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showAIButton\\\"]],[[[1,\\\"      \\\"],[8,[32,0],[[16,0,[29,[\\\"suggestion-button \\\",[52,[30,0,[\\\"loading\\\"]],\\\"is-loading\\\"]]]],[17,1]],[[\\\"@icon\\\",\\\"@title\\\",\\\"@action\\\",\\\"@disabled\\\"],[[30,0,[\\\"suggestIcon\\\"]],\\\"discourse_ai.ai_helper.suggest\\\",[30,0,[\\\"performSuggestion\\\"]],[30,0,[\\\"disableSuggestionButton\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showMenu\\\"]],[[[1,\\\"      \\\"],[11,\\\"ul\\\"],[24,0,\\\"popup-menu ai-suggestions-menu\\\"],[4,[32,1],[[30,0,[\\\"handleClickOutside\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showErrors\\\"]],[[[1,\\\"          \\\"],[10,\\\"li\\\"],[14,0,\\\"ai-suggestions-menu__errors\\\"],[12],[1,[30,0,[\\\"error\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]],null],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"generatedSuggestions\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[10,\\\"li\\\"],[15,\\\"data-name\\\",[30,2]],[15,\\\"data-value\\\",[30,3]],[12],[1,\\\"\\\\n            \\\"],[8,[32,0],[[24,0,\\\"popup-menu-btn\\\"]],[[\\\"@translatedLabel\\\",\\\"@action\\\"],[[30,2],[28,[32,2],[[30,0,[\\\"applySuggestion\\\"]],[30,2]],null]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[2,3]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"&attrs\\\",\\\"suggestion\\\",\\\"index\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/ai-suggestion-dropdown.js\",\n    \"scope\": () => [_dButton.default, _didInsert.default, _helper.fn],\n    \"isStrictMode\": true\n  }), _class2), _class2)), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"dialog\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"composer\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"loading\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"showMenu\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, \"generatedSuggestions\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return [];\n    }\n  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, \"suggestIcon\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"discourse-sparkles\";\n    }\n  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, \"showErrors\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, \"error\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"applyClasses\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"applyClasses\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"onClickOutside\", [_decorators.bind], Object.getOwnPropertyDescriptor(_class.prototype, \"onClickOutside\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"handleClickOutside\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"handleClickOutside\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"applySuggestion\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"applySuggestion\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"performSuggestion\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"performSuggestion\"), _class.prototype)), _class);\n  function _closeMenu2() {\n    if (this.showMenu && this.args.mode === \"suggest_category\") {\n      document.querySelector(\".category-input\")?.classList.remove(\"showing-ai-suggestion-menu\");\n    }\n    this.suggestIcon = \"discourse-sparkles\";\n    this.showMenu = false;\n    this.showErrors = false;\n    this.errors = \"\";\n  }\n  function _updateTags2(suggestion1, composer1) {\n    const maxTags1 = this.siteSettings.max_tags_per_topic;\n    if (!composer1.tags) {\n      composer1.set(\"tags\", [suggestion1]);\n      // remove tag from the list of suggestions once added\n      this.generatedSuggestions = this.generatedSuggestions.filter(s1 => s1 !== suggestion1);\n      return;\n    }\n    const tags1 = composer1.tags;\n    if (tags1?.length >= maxTags1) {\n      // Show error if trying to add more tags than allowed\n      this.showErrors = true;\n      this.error = _I18n.default.t(\"select_kit.max_content_reached\", {\n        count: maxTags1\n      });\n      return;\n    }\n    tags1.push(suggestion1);\n    composer1.set(\"tags\", [...tags1]);\n    // remove tag from the list of suggestions once added\n    return this.generatedSuggestions = this.generatedSuggestions.filter(s1 => s1 !== suggestion1);\n  }\n  function _tagSelectorHasValues2() {\n    return this.args.composer?.tags && this.args.composer?.tags.length > 0;\n  }\n  function _assignGeneratedSuggestions2(data1, mode1) {\n    if (mode1 === this.SUGGESTION_TYPES.title) {\n      return this.generatedSuggestions = data1.suggestions;\n    }\n    const suggestions1 = data1.assistant.map(s1 => s1.name);\n    if (mode1 === this.SUGGESTION_TYPES.tag) {\n      if (_classPrivateMethodGet(this, _tagSelectorHasValues, _tagSelectorHasValues2).call(this)) {\n        // Filter out tags if they are already selected in the tag input\n        return this.generatedSuggestions = suggestions1.filter(t1 => !this.args.composer.tags.includes(t1));\n      } else {\n        return this.generatedSuggestions = suggestions1;\n      }\n    }\n    return this.generatedSuggestions = suggestions1;\n  }\n});","define(\"discourse/plugins/discourse-ai/discourse/components/modal/diff-modal\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/template\", \"discourse/components/d-button\", \"discourse/components/d-modal\", \"discourse-common/helpers/i18n\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _object, _template, _dButton, _dModal, _i18n, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _class2;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  let ModalDiffModal = _exports.default = (_class = (_class2 = class ModalDiffModal extends _component.default {\n    triggerConfirmChanges() {\n      this.args.closeModal();\n      this.args.confirm();\n    }\n    triggerRevertChanges() {\n      this.args.closeModal();\n      this.args.revert();\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <DModal\n        class=\"composer-ai-helper-modal\"\n        @title={{i18n \"discourse_ai.ai_helper.context_menu.changes\"}}\n        @closeModal={{@closeModal}}\n      >\n        <:body>\n          {{#if @diff}}\n            {{htmlSafe @diff}}\n          {{else}}\n            <div class=\"composer-ai-helper-modal__old-value\">\n              {{@oldValue}}\n            </div>\n  \n            <div class=\"composer-ai-helper-modal__new-value\">\n              {{@newValue}}\n            </div>\n          {{/if}}\n        </:body>\n  \n        <:footer>\n          <DButton\n            class=\"btn-primary confirm\"\n            @action={{this.triggerConfirmChanges}}\n            @label=\"discourse_ai.ai_helper.context_menu.confirm\"\n          />\n          <DButton\n            class=\"btn-flat\"\n            @action={{this.triggerRevertChanges}}\n            @label=\"discourse_ai.ai_helper.context_menu.revert\"\n          />\n        </:footer>\n      </DModal>\n    \n  */\n  {\n    \"id\": \"tqHStVL1\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],[[24,0,\\\"composer-ai-helper-modal\\\"]],[[\\\"@title\\\",\\\"@closeModal\\\"],[[28,[32,1],[\\\"discourse_ai.ai_helper.context_menu.changes\\\"],null],[30,1]]],[[\\\"body\\\",\\\"footer\\\"],[[[[1,\\\"\\\\n\\\"],[41,[30,2],[[[1,\\\"          \\\"],[1,[28,[32,2],[[30,2]],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[10,0],[14,0,\\\"composer-ai-helper-modal__old-value\\\"],[12],[1,\\\"\\\\n            \\\"],[1,[30,3]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\\n          \\\"],[10,0],[14,0,\\\"composer-ai-helper-modal__new-value\\\"],[12],[1,\\\"\\\\n            \\\"],[1,[30,4]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"      \\\"]],[]],[[[1,\\\"\\\\n        \\\"],[8,[32,3],[[24,0,\\\"btn-primary confirm\\\"]],[[\\\"@action\\\",\\\"@label\\\"],[[30,0,[\\\"triggerConfirmChanges\\\"]],\\\"discourse_ai.ai_helper.context_menu.confirm\\\"]],null],[1,\\\"\\\\n        \\\"],[8,[32,3],[[24,0,\\\"btn-flat\\\"]],[[\\\"@action\\\",\\\"@label\\\"],[[30,0,[\\\"triggerRevertChanges\\\"]],\\\"discourse_ai.ai_helper.context_menu.revert\\\"]],null],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[\\\"@closeModal\\\",\\\"@diff\\\",\\\"@oldValue\\\",\\\"@newValue\\\"],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/modal/diff-modal.js\",\n    \"scope\": () => [_dModal.default, _i18n.default, _template.htmlSafe, _dButton.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_applyDecoratedDescriptor(_class.prototype, \"triggerConfirmChanges\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"triggerConfirmChanges\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"triggerRevertChanges\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"triggerRevertChanges\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/modal/share-modal\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/component\", \"@ember/modifier\", \"@ember/object\", \"@ember/template\", \"discourse/components/d-button\", \"discourse/components/d-modal\", \"discourse-common/helpers/i18n\", \"discourse-common/lib/later\", \"discourse-i18n\", \"discourse/plugins/discourse-ai/discourse/lib/copy-conversation\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _component2, _modifier, _object, _template, _dButton, _dModal, _i18n, _later, _discourseI18n, _copyConversation, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let ShareModal = _exports.default = (_class = (_class2 = class ShareModal extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"contextValue\", _descriptor, this);\n      _initializerDefineProperty(this, \"htmlContext\", _descriptor2, this);\n      _initializerDefineProperty(this, \"maxContext\", _descriptor3, this);\n      _initializerDefineProperty(this, \"allPosts\", _descriptor4, this);\n      _initializerDefineProperty(this, \"justCopiedText\", _descriptor5, this);\n      const postStream1 = this.args.model.topic.get(\"postStream\");\n      let postNumbers1 = [];\n      // simpler to understand than Array.from\n      for (let i1 = 1; i1 <= this.args.model.post_number; i1++) {\n        postNumbers1.push(i1);\n      }\n      this.allPosts = postNumbers1.map(postNumber1 => {\n        let postId1 = postStream1.findPostIdForPostNumber(postNumber1);\n        if (postId1) {\n          return postStream1.findLoadedPost(postId1);\n        }\n      }).filter(post1 => post1);\n      this.maxContext = this.allPosts.length / 2;\n      this.contextValue = 1;\n      this.updateHtmlContext();\n    }\n    updateHtmlContext() {\n      let context1 = [];\n      const start1 = this.allPosts.length - this.contextValue * 2;\n      for (let i1 = start1; i1 < this.allPosts.length; i1++) {\n        const post1 = this.allPosts[i1];\n        context1.push(`<p><b>${post1.username}:</b></p>`);\n        context1.push(post1.cooked);\n      }\n      this.htmlContext = (0, _template.htmlSafe)(context1.join(\"\\n\"));\n    }\n    async copyContext() {\n      const from1 = this.allPosts[this.allPosts.length - this.contextValue * 2].post_number;\n      const to1 = this.args.model.post_number;\n      await (0, _copyConversation.default)(this.args.model.topic, from1, to1);\n      this.justCopiedText = _discourseI18n.default.t(\"discourse_ai.ai_bot.conversation_shared\");\n      (0, _later.default)(() => {\n        this.justCopiedText = \"\";\n      }, 2000);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <DModal\n        class=\"ai-share-modal\"\n        @title={{i18n \"discourse_ai.ai_bot.share_modal.title\"}}\n        @closeModal={{@closeModal}}\n      >\n        <:body>\n          <div class=\"ai-share-modal__preview\">\n            {{this.htmlContext}}\n          </div>\n        </:body>\n  \n        <:footer>\n          <div class=\"ai-share-modal__slider\">\n            <Input\n              @type=\"range\"\n              min=\"1\"\n              max={{this.maxContext}}\n              @value={{this.contextValue}}\n              {{on \"change\" this.updateHtmlContext}}\n            />\n            <div class=\"ai-share-modal__context\">\n              {{i18n \"discourse_ai.ai_bot.share_modal.context\"}}\n              {{this.contextValue}}\n            </div>\n          </div>\n          <DButton\n            class=\"btn-primary confirm\"\n            @icon=\"copy\"\n            @action={{this.copyContext}}\n            @label=\"discourse_ai.ai_bot.share_modal.copy\"\n          />\n          <span class=\"ai-share-modal__just-copied\">{{this.justCopiedText}}</span>\n        </:footer>\n      </DModal>\n    \n  */\n  {\n    \"id\": \"pMctz3Jd\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],[[24,0,\\\"ai-share-modal\\\"]],[[\\\"@title\\\",\\\"@closeModal\\\"],[[28,[32,1],[\\\"discourse_ai.ai_bot.share_modal.title\\\"],null],[30,1]]],[[\\\"body\\\",\\\"footer\\\"],[[[[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"ai-share-modal__preview\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[30,0,[\\\"htmlContext\\\"]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"]],[]],[[[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"ai-share-modal__slider\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,2],[[24,\\\"min\\\",\\\"1\\\"],[16,\\\"max\\\",[30,0,[\\\"maxContext\\\"]]],[4,[32,3],[\\\"change\\\",[30,0,[\\\"updateHtmlContext\\\"]]],null]],[[\\\"@type\\\",\\\"@value\\\"],[\\\"range\\\",[30,0,[\\\"contextValue\\\"]]]],null],[1,\\\"\\\\n          \\\"],[10,0],[14,0,\\\"ai-share-modal__context\\\"],[12],[1,\\\"\\\\n            \\\"],[1,[28,[32,1],[\\\"discourse_ai.ai_bot.share_modal.context\\\"],null]],[1,\\\"\\\\n            \\\"],[1,[30,0,[\\\"contextValue\\\"]]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n        \\\"],[8,[32,4],[[24,0,\\\"btn-primary confirm\\\"]],[[\\\"@icon\\\",\\\"@action\\\",\\\"@label\\\"],[\\\"copy\\\",[30,0,[\\\"copyContext\\\"]],\\\"discourse_ai.ai_bot.share_modal.copy\\\"]],null],[1,\\\"\\\\n        \\\"],[10,1],[14,0,\\\"ai-share-modal__just-copied\\\"],[12],[1,[30,0,[\\\"justCopiedText\\\"]]],[13],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[\\\"@closeModal\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/modal/share-modal.js\",\n    \"scope\": () => [_dModal.default, _i18n.default, _component2.Input, _modifier.on, _dButton.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"contextValue\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return 1;\n    }\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"htmlContext\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"maxContext\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return 0;\n    }\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"allPosts\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return [];\n    }\n  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"justCopiedText\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"updateHtmlContext\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"updateHtmlContext\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"copyContext\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"copyContext\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/modal/thumbnail-suggestions\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/object\", \"discourse/components/d-button\", \"discourse/components/d-modal\", \"discourse/components/d-modal-cancel\", \"discourse-common/helpers/i18n\", \"discourse/plugins/discourse-ai/discourse/components/thumbnail-suggestion-item\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _object, _dButton, _dModal, _dModalCancel, _i18n, _thumbnailSuggestionItem, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let ThumbnailSuggestions = _exports.default = (_class = (_class2 = class ThumbnailSuggestions extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"selectedImages\", _descriptor, this);\n    }\n    get isDisabled() {\n      return this.selectedImages.length === 0;\n    }\n    addSelection(selection1) {\n      const thumbnailMarkdown1 = `![${selection1.original_filename}|${selection1.width}x${selection1.height}](${selection1.short_url})`;\n      this.selectedImages = [...this.selectedImages, thumbnailMarkdown1];\n    }\n    removeSelection(selection1) {\n      const thumbnailMarkdown1 = `![${selection1.original_filename}|${selection1.width}x${selection1.height}](${selection1.short_url})`;\n      this.selectedImages = this.selectedImages.filter(thumbnail1 => {\n        if (thumbnail1 !== thumbnailMarkdown1) {\n          return thumbnail1;\n        }\n      });\n    }\n    appendSelectedImages() {\n      const imageMarkdown1 = \"\\n\\n\" + this.selectedImages.join(\"\\n\");\n      const dEditorInput1 = document.querySelector(\".d-editor-input\");\n      dEditorInput1.setSelectionRange(dEditorInput1.value.length, dEditorInput1.value.length);\n      dEditorInput1.focus();\n      document.execCommand(\"insertText\", false, imageMarkdown1);\n      this.args.closeModal();\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <DModal\n        class=\"thumbnail-suggestions-modal\"\n        @title={{i18n \"discourse_ai.ai_helper.thumbnail_suggestions.title\"}}\n        @closeModal={{@closeModal}}\n      >\n        <:body>\n          <div class=\"ai-thumbnail-suggestions\">\n            {{#each @thumbnails as |thumbnail|}}\n              <ThumbnailSuggestionItem\n                @thumbnail={{thumbnail}}\n                @addSelection={{this.addSelection}}\n                @removeSelection={{this.removeSelection}}\n              />\n            {{/each}}\n          </div>\n        </:body>\n  \n        <:footer>\n          <DButton\n            @action={{this.appendSelectedImages}}\n            @label=\"save\"\n            @disabled={{this.isDisabled}}\n            class=\"btn-primary create\"\n          />\n          <DModalCancel @close={{@closeModal}} />\n        </:footer>\n      </DModal>\n    \n  */\n  {\n    \"id\": \"rVPkxzzs\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],[[24,0,\\\"thumbnail-suggestions-modal\\\"]],[[\\\"@title\\\",\\\"@closeModal\\\"],[[28,[32,1],[\\\"discourse_ai.ai_helper.thumbnail_suggestions.title\\\"],null],[30,1]]],[[\\\"body\\\",\\\"footer\\\"],[[[[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"ai-thumbnail-suggestions\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,2]],null]],null],null,[[[1,\\\"            \\\"],[8,[32,2],null,[[\\\"@thumbnail\\\",\\\"@addSelection\\\",\\\"@removeSelection\\\"],[[30,3],[30,0,[\\\"addSelection\\\"]],[30,0,[\\\"removeSelection\\\"]]]],null],[1,\\\"\\\\n\\\"]],[3]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n      \\\"]],[]],[[[1,\\\"\\\\n        \\\"],[8,[32,3],[[24,0,\\\"btn-primary create\\\"]],[[\\\"@action\\\",\\\"@label\\\",\\\"@disabled\\\"],[[30,0,[\\\"appendSelectedImages\\\"]],\\\"save\\\",[30,0,[\\\"isDisabled\\\"]]]],null],[1,\\\"\\\\n        \\\"],[8,[32,4],null,[[\\\"@close\\\"],[[30,1]]],null],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[\\\"@closeModal\\\",\\\"@thumbnails\\\",\\\"thumbnail\\\"],false,[\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/modal/thumbnail-suggestions.js\",\n    \"scope\": () => [_dModal.default, _i18n.default, _thumbnailSuggestionItem.default, _dButton.default, _dModalCancel.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"selectedImages\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return [];\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"addSelection\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"addSelection\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"removeSelection\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"removeSelection\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"appendSelectedImages\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"appendSelectedImages\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/model-accuracies\", [\"exports\", \"@ember/component\", \"@ember/component/template-only\", \"@ember/template-factory\"], function (_exports, _component, _templateOnly, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if @accuracies}}\n    <table class=\"reviewable-scores\">\n      <tbody>\n        {{#each-in @accuracies as |model acc|}}\n          <tr>\n            <td colspan=\"4\">{{i18n \"discourse_ai.reviewables.model_used\"}}</td>\n            <td colspan=\"3\">{{model}}</td>\n            <td colspan=\"4\">{{i18n \"discourse_ai.reviewables.accuracy\"}}</td>\n            <td colspan=\"3\">{{acc}}%</td>\n          </tr>\n        {{/each-in}}\n      </tbody>\n    </table>\n  {{/if}}\n  */\n  {\n    \"id\": \"r8usWg+W\",\n    \"block\": \"[[[41,[30,1],[[[1,\\\"  \\\"],[10,\\\"table\\\"],[14,0,\\\"reviewable-scores\\\"],[12],[1,\\\"\\\\n    \\\"],[10,\\\"tbody\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,2],[[30,1]],null],null,[[[1,\\\"        \\\"],[10,\\\"tr\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"4\\\"],[12],[1,[28,[35,3],[\\\"discourse_ai.reviewables.model_used\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[12],[1,[30,3]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"4\\\"],[12],[1,[28,[35,3],[\\\"discourse_ai.reviewables.accuracy\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[12],[1,[30,2]],[1,\\\"%\\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[2,3]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[\\\"@accuracies\\\",\\\"acc\\\",\\\"model\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-each-in\\\",\\\"i18n\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/components/model-accuracies.hbs\",\n    \"isStrictMode\": false\n  });\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());\n});","define(\"discourse/plugins/discourse-ai/discourse/components/reviewable-ai-chat-message\", [\"exports\", \"@ember/component\", \"@glimmer/component\", \"discourse/plugins/chat/discourse/models/chat-channel\", \"@ember/template-factory\"], function (_exports, _component, _component2, _chatChannel, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if this.chatChannel}}\n    <div class=\"flagged-post-header\">\n      <LinkTo\n        @route=\"chat.channel.near-message\"\n        @models={{array\n          this.chatChannel.slugifiedTitle\n          this.chatChannel.id\n          @reviewable.target_id\n        }}\n      >\n        <ChatChannelTitle @channel={{this.chatChannel}} />\n      </LinkTo>\n    </div>\n  {{/if}}\n  \n  <div class=\"post-contents-wrapper\">\n    <ReviewableCreatedBy @user={{@reviewable.target_created_by}} @tagName=\"\" />\n    <div class=\"post-contents\">\n      <ReviewablePostHeader\n        @reviewable={{@reviewable}}\n        @createdBy={{@reviewable.target_created_by}}\n        @tagName=\"\"\n      />\n  \n      <div class=\"post-body\">\n        {{html-safe (or @reviewable.payload.message_cooked @reviewable.cooked)}}\n      </div>\n  \n      {{yield}}\n  \n      <ModelAccuracies @accuracies={{@reviewable.payload.accuracies}} />\n    </div>\n  </div>\n  */\n  {\n    \"id\": \"yKOx21Wk\",\n    \"block\": \"[[[41,[30,0,[\\\"chatChannel\\\"]],[[[1,\\\"  \\\"],[10,0],[14,0,\\\"flagged-post-header\\\"],[12],[1,\\\"\\\\n    \\\"],[8,[39,1],null,[[\\\"@route\\\",\\\"@models\\\"],[\\\"chat.channel.near-message\\\",[28,[37,2],[[30,0,[\\\"chatChannel\\\",\\\"slugifiedTitle\\\"]],[30,0,[\\\"chatChannel\\\",\\\"id\\\"]],[30,1,[\\\"target_id\\\"]]],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[39,3],null,[[\\\"@channel\\\"],[[30,0,[\\\"chatChannel\\\"]]]],null],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[10,0],[14,0,\\\"post-contents-wrapper\\\"],[12],[1,\\\"\\\\n  \\\"],[8,[39,4],null,[[\\\"@user\\\",\\\"@tagName\\\"],[[30,1,[\\\"target_created_by\\\"]],\\\"\\\"]],null],[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"post-contents\\\"],[12],[1,\\\"\\\\n    \\\"],[8,[39,5],null,[[\\\"@reviewable\\\",\\\"@createdBy\\\",\\\"@tagName\\\"],[[30,1],[30,1,[\\\"target_created_by\\\"]],\\\"\\\"]],null],[1,\\\"\\\\n\\\\n    \\\"],[10,0],[14,0,\\\"post-body\\\"],[12],[1,\\\"\\\\n      \\\"],[1,[28,[35,6],[[28,[37,7],[[30,1,[\\\"payload\\\",\\\"message_cooked\\\"]],[30,1,[\\\"cooked\\\"]]],null]],null]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[18,2,null],[1,\\\"\\\\n\\\\n    \\\"],[8,[39,9],null,[[\\\"@accuracies\\\"],[[30,1,[\\\"payload\\\",\\\"accuracies\\\"]]]],null],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"],[13]],[\\\"@reviewable\\\",\\\"&default\\\"],false,[\\\"if\\\",\\\"link-to\\\",\\\"array\\\",\\\"chat-channel-title\\\",\\\"reviewable-created-by\\\",\\\"reviewable-post-header\\\",\\\"html-safe\\\",\\\"or\\\",\\\"yield\\\",\\\"model-accuracies\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/components/reviewable-ai-chat-message.hbs\",\n    \"isStrictMode\": false\n  });\n  class ReviewableAiChatMessage extends _component2.default {\n    get chatChannel() {\n      if (!this.args.reviewable.chat_channel) {\n        return;\n      }\n      return _chatChannel.default.create(this.args.reviewable.chat_channel);\n    }\n  }\n  _exports.default = ReviewableAiChatMessage;\n  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, ReviewableAiChatMessage);\n});","define(\"discourse/plugins/discourse-ai/discourse/components/reviewable-ai-post\", [\"exports\", \"@ember/component\", \"@ember/component/template-only\", \"@ember/template-factory\"], function (_exports, _component, _templateOnly, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <div class=\"flagged-post-header\">\n    <ReviewableTopicLink @reviewable={{@reviewable}} @tagName=\"\" />\n    <ReviewablePostEdits @reviewable={{@reviewable}} @tagName=\"\" />\n  </div>\n  \n  <div class=\"post-contents-wrapper\">\n    <ReviewableCreatedBy @user={{@reviewable.target_created_by}} @tagName=\"\" />\n    <div class=\"post-contents\">\n      <ReviewablePostHeader\n        @reviewable={{@reviewable}}\n        @createdBy={{@reviewable.target_created_by}}\n        @tagName=\"\"\n      />\n      <div class=\"post-body\">\n        {{#if @reviewable.blank_post}}\n          <p>{{i18n \"review.deleted_post\"}}</p>\n        {{else}}\n          {{html-safe @reviewable.cooked}}\n        {{/if}}\n      </div>\n  \n      {{yield}}\n  \n      <ModelAccuracies @accuracies={{@reviewable.payload.accuracies}} />\n    </div>\n  </div>\n  */\n  {\n    \"id\": \"XJ3JIp4P\",\n    \"block\": \"[[[10,0],[14,0,\\\"flagged-post-header\\\"],[12],[1,\\\"\\\\n  \\\"],[8,[39,0],null,[[\\\"@reviewable\\\",\\\"@tagName\\\"],[[30,1],\\\"\\\"]],null],[1,\\\"\\\\n  \\\"],[8,[39,1],null,[[\\\"@reviewable\\\",\\\"@tagName\\\"],[[30,1],\\\"\\\"]],null],[1,\\\"\\\\n\\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[10,0],[14,0,\\\"post-contents-wrapper\\\"],[12],[1,\\\"\\\\n  \\\"],[8,[39,2],null,[[\\\"@user\\\",\\\"@tagName\\\"],[[30,1,[\\\"target_created_by\\\"]],\\\"\\\"]],null],[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"post-contents\\\"],[12],[1,\\\"\\\\n    \\\"],[8,[39,3],null,[[\\\"@reviewable\\\",\\\"@createdBy\\\",\\\"@tagName\\\"],[[30,1],[30,1,[\\\"target_created_by\\\"]],\\\"\\\"]],null],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"post-body\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"blank_post\\\"]],[[[1,\\\"        \\\"],[10,2],[12],[1,[28,[35,5],[\\\"review.deleted_post\\\"],null]],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        \\\"],[1,[28,[35,6],[[30,1,[\\\"cooked\\\"]]],null]],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[18,2,null],[1,\\\"\\\\n\\\\n    \\\"],[8,[39,8],null,[[\\\"@accuracies\\\"],[[30,1,[\\\"payload\\\",\\\"accuracies\\\"]]]],null],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"],[13]],[\\\"@reviewable\\\",\\\"&default\\\"],false,[\\\"reviewable-topic-link\\\",\\\"reviewable-post-edits\\\",\\\"reviewable-created-by\\\",\\\"reviewable-post-header\\\",\\\"if\\\",\\\"i18n\\\",\\\"html-safe\\\",\\\"yield\\\",\\\"model-accuracies\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/components/reviewable-ai-post.hbs\",\n    \"isStrictMode\": false\n  });\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());\n});","define(\"discourse/plugins/discourse-ai/discourse/components/thumbnail-suggestion-item\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/object\", \"discourse/components/d-button\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _helper, _object, _dButton, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let ThumbnailSuggestionItem = _exports.default = (_class = (_class2 = class ThumbnailSuggestionItem extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"selected\", _descriptor, this);\n      _initializerDefineProperty(this, \"selectIcon\", _descriptor2, this);\n      _initializerDefineProperty(this, \"selectLabel\", _descriptor3, this);\n    }\n    toggleSelection(thumbnail1) {\n      if (this.selected) {\n        this.selectIcon = \"far-circle\";\n        this.selectLabel = \"discourse_ai.ai_helper.thumbnail_suggestions.select\";\n        this.selected = false;\n        return this.args.removeSelection(thumbnail1);\n      }\n      this.selectIcon = \"check-circle\";\n      this.selectLabel = \"discourse_ai.ai_helper.thumbnail_suggestions.selected\";\n      this.selected = true;\n      return this.args.addSelection(thumbnail1);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <div class=\"ai-thumbnail-suggestions__item\">\n        <DButton\n          @icon={{this.selectIcon}}\n          @label={{this.selectLabel}}\n          @action={{fn this.toggleSelection @thumbnail}}\n          class={{if this.selected \"btn-primary\"}}\n        />\n        <img\n          src={{@thumbnail.url}}\n          loading=\"lazy\"\n          width={{@thumbnail.thumbnail_width}}\n          height={{@thumbnail.thumbnail_height}}\n        />\n      </div>\n    \n  */\n  {\n    \"id\": \"BsBgpDKw\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"ai-thumbnail-suggestions__item\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,0],[[16,0,[52,[30,0,[\\\"selected\\\"]],\\\"btn-primary\\\"]]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[[30,0,[\\\"selectIcon\\\"]],[30,0,[\\\"selectLabel\\\"]],[28,[32,1],[[30,0,[\\\"toggleSelection\\\"]],[30,1]],null]]],null],[1,\\\"\\\\n      \\\"],[10,\\\"img\\\"],[15,\\\"src\\\",[30,1,[\\\"url\\\"]]],[14,\\\"loading\\\",\\\"lazy\\\"],[15,\\\"width\\\",[30,1,[\\\"thumbnail_width\\\"]]],[15,\\\"height\\\",[30,1,[\\\"thumbnail_height\\\"]]],[12],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@thumbnail\\\"],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/components/thumbnail-suggestion-item.js\",\n    \"scope\": () => [_dButton.default, _helper.fn],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"selected\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"selectIcon\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"far-circle\";\n    }\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"selectLabel\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"discourse_ai.ai_helper.thumbnail_suggestions.select\";\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"toggleSelection\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"toggleSelection\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/admin-dashboard-tabs-after/admin-sentiment-dashbboard\", [\"exports\", \"@glimmer/component\", \"@ember/routing\", \"discourse-common/helpers/i18n\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _routing, _i18n, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class;\n  class AISentimentDashboard extends _component.default {\n    static shouldRender(_outletArgs1, helper1) {\n      return helper1.siteSettings.ai_sentiment_enabled;\n    }\n  }\n  _exports.default = AISentimentDashboard;\n  _class = AISentimentDashboard;\n  (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <li class=\"navigation-item sentiment\">\n        <LinkTo @route=\"admin.dashboardSentiment\" class=\"navigation-link\">\n          {{i18n \"discourse_ai.sentiments.dashboard.title\"}}\n        </LinkTo>\n      </li>\n    \n  */\n  {\n    \"id\": \"aCrw9598\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"li\\\"],[14,0,\\\"navigation-item sentiment\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,0],[[24,0,\\\"navigation-link\\\"]],[[\\\"@route\\\"],[\\\"admin.dashboardSentiment\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[1,[28,[32,1],[\\\"discourse_ai.sentiments.dashboard.title\\\"],null]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/admin-dashboard-tabs-after/admin-sentiment-dashbboard.js\",\n    \"scope\": () => [_routing.LinkTo, _i18n.default],\n    \"isStrictMode\": true\n  }), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/after-composer-category-input/ai-category-suggestion\", [\"exports\", \"@glimmer/component\", \"@ember/service\", \"discourse/plugins/discourse-ai/discourse/components/ai-suggestion-dropdown\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _service, _aiSuggestionDropdown, _showAiHelper, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiCategorySuggestion = _exports.default = (_class = (_class2 = class AiCategorySuggestion extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor, this);\n    }\n    static shouldRender(outletArgs1, helper1) {\n      return (0, _showAiHelper.showComposerAIHelper)(outletArgs1, helper1, \"suggestions\");\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.siteSettings.ai_embeddings_enabled}}\n        <AISuggestionDropdown\n          @mode=\"suggest_category\"\n          @composer={{@outletArgs.composer}}\n          class=\"suggest-category-button\"\n        />\n      {{/if}}\n    \n  */\n  {\n    \"id\": \"tgy79Whv\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"siteSettings\\\",\\\"ai_embeddings_enabled\\\"]],[[[1,\\\"      \\\"],[8,[32,0],[[24,0,\\\"suggest-category-button\\\"]],[[\\\"@mode\\\",\\\"@composer\\\"],[\\\"suggest_category\\\",[30,1,[\\\"composer\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"@outletArgs\\\"],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/after-composer-category-input/ai-category-suggestion.js\",\n    \"scope\": () => [_aiSuggestionDropdown.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  })), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/after-composer-tag-input/ai-tag-suggestion\", [\"exports\", \"@glimmer/component\", \"@ember/service\", \"discourse/plugins/discourse-ai/discourse/components/ai-suggestion-dropdown\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _service, _aiSuggestionDropdown, _showAiHelper, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiTagSuggestion = _exports.default = (_class = (_class2 = class AiTagSuggestion extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor, this);\n    }\n    static shouldRender(outletArgs1, helper1) {\n      return (0, _showAiHelper.showComposerAIHelper)(outletArgs1, helper1, \"suggestions\");\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.siteSettings.ai_embeddings_enabled}}\n        <AISuggestionDropdown\n          @mode=\"suggest_tags\"\n          @composer={{@outletArgs.composer}}\n          class=\"suggest-tags-button\"\n        />\n      {{/if}}\n    \n  */\n  {\n    \"id\": \"qB6wq01S\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"siteSettings\\\",\\\"ai_embeddings_enabled\\\"]],[[[1,\\\"      \\\"],[8,[32,0],[[24,0,\\\"suggest-tags-button\\\"]],[[\\\"@mode\\\",\\\"@composer\\\"],[\\\"suggest_tags\\\",[30,1,[\\\"composer\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"@outletArgs\\\"],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/after-composer-tag-input/ai-tag-suggestion.js\",\n    \"scope\": () => [_aiSuggestionDropdown.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  })), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/after-composer-title-input/ai-title-suggestion\", [\"exports\", \"@glimmer/component\", \"discourse/plugins/discourse-ai/discourse/components/ai-suggestion-dropdown\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _aiSuggestionDropdown, _showAiHelper, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class;\n  class AiTitleSuggestion extends _component.default {\n    static shouldRender(outletArgs1, helper1) {\n      return (0, _showAiHelper.showComposerAIHelper)(outletArgs1, helper1, \"suggestions\");\n    }\n  }\n  _exports.default = AiTitleSuggestion;\n  _class = AiTitleSuggestion;\n  (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <AISuggestionDropdown\n        @mode=\"suggest_title\"\n        @composer={{@outletArgs.composer}}\n        class=\"suggest-titles-button\"\n      />\n    \n  */\n  {\n    \"id\": \"4En7i5/x\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],[[24,0,\\\"suggest-titles-button\\\"]],[[\\\"@mode\\\",\\\"@composer\\\"],[\\\"suggest_title\\\",[30,1,[\\\"composer\\\"]]]],null],[1,\\\"\\\\n  \\\"]],[\\\"@outletArgs\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/after-composer-title-input/ai-title-suggestion.js\",\n    \"scope\": () => [_aiSuggestionDropdown.default],\n    \"isStrictMode\": true\n  }), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/after-d-editor/ai-helper-context-menu\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/object\", \"@ember/service\", \"@popperjs/core\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/utilities\", \"discourse-common/config/environment\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\"], function (_exports, _component, _tracking, _object, _service, _core, _ajax, _ajaxError, _utilities, _environment, _decorators, _showAiHelper) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23, _descriptor24, _descriptor25, _descriptor26, _descriptor27;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiHelperContextMenu = _exports.default = (_dec = (0, _decorators.debounce)(_environment.INPUT_DELAY), (_class = class AiHelperContextMenu extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"currentUser\", _descriptor, this);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor2, this);\n      _initializerDefineProperty(this, \"modal\", _descriptor3, this);\n      _initializerDefineProperty(this, \"capabilities\", _descriptor4, this);\n      _initializerDefineProperty(this, \"showContextMenu\", _descriptor5, this);\n      _initializerDefineProperty(this, \"caretCoords\", _descriptor6, this);\n      _initializerDefineProperty(this, \"virtualElement\", _descriptor7, this);\n      _initializerDefineProperty(this, \"selectedText\", _descriptor8, this);\n      _initializerDefineProperty(this, \"newSelectedText\", _descriptor9, this);\n      _initializerDefineProperty(this, \"loading\", _descriptor10, this);\n      _initializerDefineProperty(this, \"lastUsedOption\", _descriptor11, this);\n      _initializerDefineProperty(this, \"showDiffModal\", _descriptor12, this);\n      _initializerDefineProperty(this, \"showThumbnailModal\", _descriptor13, this);\n      _initializerDefineProperty(this, \"diff\", _descriptor14, this);\n      _initializerDefineProperty(this, \"popperPlacement\", _descriptor15, this);\n      _initializerDefineProperty(this, \"previousMenuState\", _descriptor16, this);\n      _initializerDefineProperty(this, \"customPromptValue\", _descriptor17, this);\n      _initializerDefineProperty(this, \"initialValue\", _descriptor18, this);\n      _initializerDefineProperty(this, \"thumbnailSuggestions\", _descriptor19, this);\n      _initializerDefineProperty(this, \"selectionRange\", _descriptor20, this);\n      _initializerDefineProperty(this, \"lastSelectionRange\", _descriptor21, this);\n      _defineProperty(this, \"CONTEXT_MENU_STATES\", {\n        triggers: \"TRIGGERS\",\n        options: \"OPTIONS\",\n        resets: \"RESETS\",\n        loading: \"LOADING\",\n        review: \"REVIEW\"\n      });\n      _defineProperty(this, \"prompts\", []);\n      _defineProperty(this, \"promptTypes\", {});\n      _defineProperty(this, \"minSelectionChars\", 3);\n      _initializerDefineProperty(this, \"_menuState\", _descriptor22, this);\n      _initializerDefineProperty(this, \"_popper\", _descriptor23, this);\n      _initializerDefineProperty(this, \"_dEditorInput\", _descriptor24, this);\n      _initializerDefineProperty(this, \"_customPromptInput\", _descriptor25, this);\n      _initializerDefineProperty(this, \"_contextMenu\", _descriptor26, this);\n      _initializerDefineProperty(this, \"_activeAIRequest\", _descriptor27, this);\n    }\n    static shouldRender(outletArgs, helper) {\n      return (0, _showAiHelper.showComposerAIHelper)(outletArgs, helper, \"context_menu\");\n    }\n    willDestroy() {\n      super.willDestroy(...arguments);\n      document.removeEventListener(\"selectionchange\", this.selectionChanged);\n      document.removeEventListener(\"keydown\", this.onKeyDown);\n      this._popper?.destroy();\n    }\n    get menuState() {\n      return this._menuState;\n    }\n    set menuState(newState) {\n      this.previousMenuState = this._menuState;\n      this._menuState = newState;\n    }\n    get helperOptions() {\n      let prompts = this.currentUser?.ai_helper_prompts;\n      prompts = prompts.filter(p => p.location.includes(\"composer\")).filter(p => p.name !== \"generate_titles\");\n\n      // Find the custom_prompt object and move it to the beginning of the array\n      const customPromptIndex = prompts.findIndex(p => p.name === \"custom_prompt\");\n      if (customPromptIndex !== -1) {\n        const customPrompt = prompts.splice(customPromptIndex, 1)[0];\n        prompts.unshift(customPrompt);\n      }\n      if (!this._showUserCustomPrompts()) {\n        prompts = prompts.filter(p => p.name !== \"custom_prompt\");\n      }\n      prompts.forEach(p => {\n        this.prompts[p.id] = p;\n      });\n      this.promptTypes = prompts.reduce((memo, p) => {\n        memo[p.name] = p.prompt_type;\n        return memo;\n      }, {});\n      return prompts;\n    }\n    selectionChanged() {\n      if (document.activeElement !== this._dEditorInput) {\n        return;\n      }\n      const canSelect = Boolean(window.getSelection() && document.activeElement && document.activeElement.value);\n      this.selectedText = canSelect ? document.activeElement.value.substring(document.activeElement.selectionStart, document.activeElement.selectionEnd) : \"\";\n      this.selectionRange = canSelect ? {\n        x: document.activeElement.selectionStart,\n        y: document.activeElement.selectionEnd\n      } : {\n        x: 0,\n        y: 0\n      };\n      if (this.selectedText?.length === 0) {\n        this.closeContextMenu();\n        return;\n      }\n      if (this.selectedText?.length < this.minSelectionChars) {\n        return;\n      }\n      this._onSelectionChanged();\n    }\n    updatePosition() {\n      if (!this.showContextMenu) {\n        return;\n      }\n      this.positionContextMenu();\n    }\n    onKeyDown(event) {\n      if (event.key === \"Escape\") {\n        return this.closeContextMenu();\n      }\n      if (event.key === \"Backspace\" && this.selectedText) {\n        return this.closeContextMenu();\n      }\n    }\n    _onSelectionChanged() {\n      this.positionContextMenu();\n      this.showContextMenu = true;\n    }\n    generateGetBoundingClientRect() {\n      let width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n      let height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      let x = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n      let y = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n      return () => ({\n        width,\n        height,\n        top: y,\n        right: x,\n        bottom: y,\n        left: x\n      });\n    }\n    get canCloseContextMenu() {\n      if (document.activeElement === this._customPromptInput) {\n        return false;\n      }\n      if (this.loading && this._activeAIRequest !== null) {\n        return false;\n      }\n      if (this.menuState === this.CONTEXT_MENU_STATES.review) {\n        return false;\n      }\n      return true;\n    }\n    closeContextMenu() {\n      if (!this.canCloseContextMenu) {\n        return;\n      }\n      this.showContextMenu = false;\n      this.menuState = this.CONTEXT_MENU_STATES.triggers;\n      this.customPromptValue = \"\";\n    }\n    _updateSuggestedByAI(data) {\n      this.newSelectedText = data.suggestions[0];\n      if (data.diff) {\n        this.diff = data.diff;\n      }\n      this._insertAt(this.selectionRange.x, this.selectionRange.y, this.newSelectedText);\n      this.menuState = this.CONTEXT_MENU_STATES.review;\n    }\n    _insertAt(start, end, text) {\n      this._dEditorInput.setSelectionRange(start, end);\n      this._dEditorInput.focus();\n      document.execCommand(\"insertText\", false, text);\n    }\n    _toggleLoadingState(loading) {\n      if (loading) {\n        this._dEditorInput.classList.add(\"loading\");\n        return this.loading = true;\n      }\n      this._dEditorInput.classList.remove(\"loading\");\n      return this.loading = false;\n    }\n    _showUserCustomPrompts() {\n      return this.currentUser?.can_use_custom_prompts;\n    }\n    handleBoundaries() {\n      const textAreaWrapper = document.querySelector(\".d-editor-textarea-wrapper\").getBoundingClientRect();\n      const buttonBar = document.querySelector(\".d-editor-button-bar\").getBoundingClientRect();\n      const boundaryElement = {\n        top: buttonBar.bottom,\n        bottom: textAreaWrapper.bottom\n      };\n      const contextMenuRect = this._contextMenu.getBoundingClientRect();\n\n      // Hide context menu if it's scrolled out of bounds:\n      if (contextMenuRect.top < boundaryElement.top) {\n        this._contextMenu.classList.add(\"out-of-bounds\");\n      } else if (contextMenuRect.bottom > boundaryElement.bottom) {\n        this._contextMenu.classList.add(\"out-of-bounds\");\n      } else {\n        this._contextMenu.classList.remove(\"out-of-bounds\");\n      }\n\n      // Position context menu at based on if interfering with button bar\n      if (this.caretCoords.y - contextMenuRect.height < boundaryElement.top) {\n        this.popperPlacement = \"bottom-start\";\n      } else {\n        this.popperPlacement = \"top-start\";\n      }\n    }\n    positionContextMenu() {\n      this._contextMenu = document.querySelector(\".ai-helper-context-menu\");\n      this.caretCoords = (0, _utilities.getCaretPosition)(this._dEditorInput, {\n        pos: (0, _utilities.caretPosition)(this._dEditorInput)\n      });\n\n      // prevent overflow of context menu outside of editor\n      this.handleBoundaries();\n      this.virtualElement = {\n        getBoundingClientRect: this.generateGetBoundingClientRect(this._contextMenu.clientWidth, this._contextMenu.clientHeight, this.caretCoords.x, this.caretCoords.y)\n      };\n      this._popper = (0, _core.createPopper)(this.virtualElement, this._contextMenu, {\n        placement: this.popperPlacement,\n        modifiers: [{\n          name: \"offset\",\n          options: {\n            offset: [10, 0]\n          }\n        }]\n      });\n    }\n    setupContextMenu() {\n      document.addEventListener(\"selectionchange\", this.selectionChanged);\n      document.addEventListener(\"keydown\", this.onKeyDown);\n      this._dEditorInput = document.querySelector(\".d-editor-input\");\n      if (this._dEditorInput) {\n        this._dEditorInput.addEventListener(\"scroll\", this.updatePosition);\n      }\n    }\n    setupCustomPrompt() {\n      this._customPromptInput = document.querySelector(\".ai-custom-prompt__input\");\n      this._customPromptInput.focus();\n    }\n    toggleAiHelperOptions() {\n      this.menuState = this.CONTEXT_MENU_STATES.options;\n    }\n    undoAIAction() {\n      if (this.capabilities.isFirefox) {\n        // execCommand(\"undo\") is no not supported in Firefox so we insert old text at range\n        this._insertAt(this.lastSelectionRange.x, this.lastSelectionRange.y, this.initialValue);\n      } else {\n        document.execCommand(\"undo\", false, null);\n      }\n\n      // context menu is prevented from closing when in review state\n      // so we change to reset state quickly before closing\n      this.menuState = this.CONTEXT_MENU_STATES.resets;\n      this.closeContextMenu();\n    }\n    async updateSelected(option) {\n      this._toggleLoadingState(true);\n      this.lastUsedOption = option;\n      this.menuState = this.CONTEXT_MENU_STATES.loading;\n      this.initialValue = this.selectedText;\n      this.lastSelectionRange = this.selectionRange;\n      this._activeAIRequest = (0, _ajax.ajax)(\"/discourse-ai/ai-helper/suggest\", {\n        method: \"POST\",\n        data: {\n          mode: option.id,\n          text: this.selectedText,\n          custom_prompt: this.customPromptValue\n        }\n      });\n      this._activeAIRequest.then(data => {\n        // resets the values if new suggestion is started:\n        this.diff = null;\n        this.newSelectedText = null;\n        this.thumbnailSuggestions = null;\n        if (option.name === \"illustrate_post\") {\n          this._toggleLoadingState(false);\n          this.closeContextMenu();\n          this.showThumbnailModal = true;\n          this.thumbnailSuggestions = data.thumbnails;\n        } else {\n          this._updateSuggestedByAI(data);\n        }\n      }).catch(_ajaxError.popupAjaxError).finally(() => {\n        this._toggleLoadingState(false);\n      });\n      return this._activeAIRequest;\n    }\n    viewChanges() {\n      this.showDiffModal = true;\n    }\n    confirmChanges() {\n      this.menuState = this.CONTEXT_MENU_STATES.resets;\n    }\n    cancelAIAction() {\n      if (this._activeAIRequest) {\n        this._activeAIRequest.abort();\n        this._activeAIRequest = null;\n        this._toggleLoadingState(false);\n        this.closeContextMenu();\n      }\n    }\n    togglePreviousMenu() {\n      this.menuState = this.previousMenuState;\n    }\n  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"currentUser\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"modal\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"capabilities\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"showContextMenu\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, \"caretCoords\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, \"virtualElement\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, \"selectedText\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, \"newSelectedText\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, \"loading\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, \"lastUsedOption\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, \"showDiffModal\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, \"showThumbnailModal\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, \"diff\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor15 = _applyDecoratedDescriptor(_class.prototype, \"popperPlacement\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"top-start\";\n    }\n  }), _descriptor16 = _applyDecoratedDescriptor(_class.prototype, \"previousMenuState\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor17 = _applyDecoratedDescriptor(_class.prototype, \"customPromptValue\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _descriptor18 = _applyDecoratedDescriptor(_class.prototype, \"initialValue\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _descriptor19 = _applyDecoratedDescriptor(_class.prototype, \"thumbnailSuggestions\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor20 = _applyDecoratedDescriptor(_class.prototype, \"selectionRange\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return {\n        x: 0,\n        y: 0\n      };\n    }\n  }), _descriptor21 = _applyDecoratedDescriptor(_class.prototype, \"lastSelectionRange\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor22 = _applyDecoratedDescriptor(_class.prototype, \"_menuState\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return this.CONTEXT_MENU_STATES.triggers;\n    }\n  }), _descriptor23 = _applyDecoratedDescriptor(_class.prototype, \"_popper\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor24 = _applyDecoratedDescriptor(_class.prototype, \"_dEditorInput\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor25 = _applyDecoratedDescriptor(_class.prototype, \"_customPromptInput\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor26 = _applyDecoratedDescriptor(_class.prototype, \"_contextMenu\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor27 = _applyDecoratedDescriptor(_class.prototype, \"_activeAIRequest\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"selectionChanged\", [_decorators.bind], Object.getOwnPropertyDescriptor(_class.prototype, \"selectionChanged\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"updatePosition\", [_decorators.bind], Object.getOwnPropertyDescriptor(_class.prototype, \"updatePosition\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"onKeyDown\", [_decorators.bind], Object.getOwnPropertyDescriptor(_class.prototype, \"onKeyDown\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"_onSelectionChanged\", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, \"_onSelectionChanged\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"positionContextMenu\", [_decorators.afterRender], Object.getOwnPropertyDescriptor(_class.prototype, \"positionContextMenu\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"setupContextMenu\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"setupContextMenu\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"setupCustomPrompt\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"setupCustomPrompt\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"toggleAiHelperOptions\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"toggleAiHelperOptions\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"undoAIAction\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"undoAIAction\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"updateSelected\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"updateSelected\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"viewChanges\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"viewChanges\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"confirmChanges\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"confirmChanges\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"cancelAIAction\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"cancelAIAction\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"togglePreviousMenu\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"togglePreviousMenu\"), _class.prototype)), _class));\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/after-d-editor/composer-open\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"discourse-i18n\"], function (_exports, _component, _object, _service, _discourseI18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _class2, _descriptor, _descriptor2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let _class = _exports.default = (_dec = (0, _object.computed)(\"composerModel.targetRecipients\", \"composerModel.title\"), _dec2 = (0, _object.computed)(\"composerModel.targetRecipients\"), (_class2 = class _class2 extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"currentUser\", _descriptor, this);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor2, this);\n    }\n    get composerModel() {\n      return this.args?.outletArgs?.composer;\n    }\n    get renderChatWarning() {\n      return this.siteSettings.ai_bot_enable_chat_warning;\n    }\n    get aiBotClasses() {\n      if (this.composerModel?.title === _discourseI18n.default.t(\"discourse_ai.ai_bot.default_pm_prefix\")) {\n        return \"ai-bot-chat\";\n      } else {\n        return \"ai-bot-pm\";\n      }\n    }\n    get isAiBotChat() {\n      if (this.composerModel && this.composerModel.targetRecipients && this.currentUser.ai_enabled_chat_bots) {\n        let recipients = this.composerModel.targetRecipients.split(\",\");\n        return this.currentUser.ai_enabled_chat_bots.any(bot => recipients.any(username => username === bot.username));\n      }\n      return false;\n    }\n  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, \"currentUser\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _applyDecoratedDescriptor(_class2.prototype, \"aiBotClasses\", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, \"aiBotClasses\"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, \"isAiBotChat\", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, \"isAiBotChat\"), _class2.prototype)), _class2));\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/after-search-result-entry/search-result-decoration\", [\"exports\", \"discourse-common/helpers/d-icon\", \"discourse-common/helpers/i18n\", \"@ember/template-factory\", \"@ember/component\", \"@ember/component/template-only\"], function (_exports, _dIcon, _i18n, _templateFactory, _component, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const SearchResultDecoration = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <div\n      class=\"ai-result__icon\"\n      title={{i18n \"discourse_ai.embeddings.ai_generated_result\"}}\n    >\n      {{icon \"discourse-sparkles\"}}\n    </div>\n  \n  */\n  {\n    \"id\": \"+zzrKPCx\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"ai-result__icon\\\"],[15,\\\"title\\\",[28,[32,0],[\\\"discourse_ai.embeddings.ai_generated_result\\\"],null]],[12],[1,\\\"\\\\n    \\\"],[1,[28,[32,1],[\\\"discourse-sparkles\\\"],null]],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/after-search-result-entry/search-result-decoration.js\",\n    \"scope\": () => [_i18n.default, _dIcon.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)());\n  var _default = _exports.default = SearchResultDecoration;\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/composer-fields/persona-selector\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/service\", \"discourse/lib/key-value-store\", \"select-kit/components/dropdown-select-box\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _helper, _service, _keyValueStore, _dropdownSelectBox, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  function isBotMessage(composer1, currentUser1) {\n    if (composer1 && composer1.targetRecipients && currentUser1.ai_enabled_chat_bots) {\n      const reciepients1 = composer1.targetRecipients.split(\",\");\n      return currentUser1.ai_enabled_chat_bots.any(bot1 => reciepients1.any(username1 => username1 === bot1.username));\n    }\n    return false;\n  }\n  let BotSelector = _exports.default = (_class = (_class2 = class BotSelector extends _component.default {\n    static shouldRender(args1, container1) {\n      return container1?.currentUser?.ai_enabled_personas && isBotMessage(args1.model, container1.currentUser);\n    }\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"currentUser\", _descriptor, this);\n      _defineProperty(this, \"STORE_NAMESPACE\", \"discourse_ai_persona_selector_\");\n      _defineProperty(this, \"preferredPersonaStore\", new _keyValueStore.default(this.STORE_NAMESPACE));\n      if (this.botOptions && this.composer) {\n        let personaId1 = this.preferredPersonaStore.getObject(\"id\");\n        this._value = this.botOptions[0].id;\n        if (personaId1) {\n          personaId1 = parseInt(personaId1, 10);\n          if (this.botOptions.any(bot1 => bot1.id === personaId1)) {\n            this._value = personaId1;\n          }\n        }\n        this.composer.metaData = {\n          ai_persona_id: this._value\n        };\n      }\n    }\n    get composer() {\n      return this.args?.outletArgs?.model;\n    }\n    get botOptions() {\n      if (this.currentUser.ai_enabled_personas) {\n        return this.currentUser.ai_enabled_personas.map(persona1 => {\n          return {\n            id: persona1.id,\n            name: persona1.name,\n            description: persona1.description\n          };\n        });\n      }\n    }\n    get filterable() {\n      return this.botOptions.length > 4;\n    }\n    get value() {\n      return this._value;\n    }\n    set value(newValue1) {\n      this._value = newValue1;\n      this.preferredPersonaStore.setObject({\n        key: \"id\",\n        value: newValue1\n      });\n      this.composer.metaData = {\n        ai_persona_id: newValue1\n      };\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <div class=\"gpt-persona\">\n        <DropdownSelectBox\n          class=\"persona-selector__dropdown\"\n          @value={{this.value}}\n          @content={{this.botOptions}}\n          @options={{hash icon=\"robot\" filterable=this.filterable}}\n        />\n      </div>\n    \n  */\n  {\n    \"id\": \"TcbpLBxH\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"gpt-persona\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,0],[[24,0,\\\"persona-selector__dropdown\\\"]],[[\\\"@value\\\",\\\"@content\\\",\\\"@options\\\"],[[30,0,[\\\"value\\\"]],[30,0,[\\\"botOptions\\\"]],[28,[32,1],null,[[\\\"icon\\\",\\\"filterable\\\"],[\\\"robot\\\",[30,0,[\\\"filterable\\\"]]]]]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/composer-fields/persona-selector.js\",\n    \"scope\": () => [_dropdownSelectBox.default, _helper.hash],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"currentUser\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  })), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/fast-edit-footer-after/ai-edit-suggestion-button\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _object, _service, _dButton, _ajax, _ajaxError, _showAiHelper, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiEditSuggestionButton = _exports.default = (_class = (_class2 = class AiEditSuggestionButton extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"currentUser\", _descriptor, this);\n      _initializerDefineProperty(this, \"loading\", _descriptor2, this);\n      _initializerDefineProperty(this, \"suggestion\", _descriptor3, this);\n      _initializerDefineProperty(this, \"_activeAIRequest\", _descriptor4, this);\n    }\n    static shouldRender(outletArgs1, helper1) {\n      return (0, _showAiHelper.showPostAIHelper)(outletArgs1, helper1);\n    }\n    get disabled() {\n      return this.loading || this.suggestion?.length > 0;\n    }\n    get mode() {\n      return this.currentUser?.ai_helper_prompts.find(prompt1 => prompt1.name === \"proofread\");\n    }\n    suggest() {\n      this.loading = true;\n      this._activeAIRequest = (0, _ajax.ajax)(\"/discourse-ai/ai-helper/suggest\", {\n        method: \"POST\",\n        data: {\n          mode: this.mode.id,\n          text: this.args.outletArgs.initialValue,\n          custom_prompt: \"\"\n        }\n      });\n      this._activeAIRequest.then(_ref => {\n        let {\n          suggestions: suggestions1\n        } = _ref;\n        this.suggestion = suggestions1[0].trim();\n        this.args.outletArgs.updateValue(this.suggestion);\n      }).catch(_ajaxError.popupAjaxError).finally(() => {\n        this.loading = false;\n      });\n      return this._activeAIRequest;\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#unless @outletArgs.newValue}}\n        <DButton\n          class=\"btn-small btn-ai-suggest-edit\"\n          @action={{this.suggest}}\n          @icon=\"discourse-sparkles\"\n          @label=\"discourse_ai.ai_helper.fast_edit.suggest_button\"\n          @isLoading={{this.loading}}\n          @disabled={{this.disabled}}\n        />\n      {{/unless}}\n    \n  */\n  {\n    \"id\": \"9jHc25oQ\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[51,[30,1,[\\\"newValue\\\"]]],[[[1,\\\"      \\\"],[8,[32,0],[[24,0,\\\"btn-small btn-ai-suggest-edit\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\",\\\"@isLoading\\\",\\\"@disabled\\\"],[[30,0,[\\\"suggest\\\"]],\\\"discourse-sparkles\\\",\\\"discourse_ai.ai_helper.fast_edit.suggest_button\\\",[30,0,[\\\"loading\\\"]],[30,0,[\\\"disabled\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"@outletArgs\\\"],false,[\\\"unless\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/fast-edit-footer-after/ai-edit-suggestion-button.js\",\n    \"scope\": () => [_dButton.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"currentUser\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"loading\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"suggestion\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"_activeAIRequest\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"suggest\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"suggest\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/full-page-search-below-search-header/semantic-search\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/modifier\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/service\", \"discourse/components/d-toggle-switch\", \"discourse/controllers/full-page-search\", \"discourse/lib/ajax\", \"discourse/lib/plugin-api\", \"discourse/lib/search\", \"discourse-common/helpers/d-icon\", \"I18n\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _modifier, _object, _didInsert, _service, _dToggleSwitch, _fullPageSearch, _ajax, _pluginApi, _search, _dIcon, _I18n, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let SemanticSearch = _exports.default = (_class = (_class2 = class SemanticSearch extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"appEvents\", _descriptor, this);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor2, this);\n      _initializerDefineProperty(this, \"searchPreferencesManager\", _descriptor3, this);\n      _initializerDefineProperty(this, \"searching\", _descriptor4, this);\n      _initializerDefineProperty(this, \"AIResults\", _descriptor5, this);\n      _initializerDefineProperty(this, \"showingAIResults\", _descriptor6, this);\n      _initializerDefineProperty(this, \"preventAISearch\", _descriptor7, this);\n      _defineProperty(this, \"initialSearchTerm\", this.args.outletArgs.search);\n    }\n    static shouldRender(_args1, _ref) {\n      let {\n        siteSettings: siteSettings1\n      } = _ref;\n      return siteSettings1.ai_embeddings_semantic_search_enabled;\n    }\n    get disableToggleSwitch() {\n      if (this.searching || this.AIResults.length === 0 || this.preventAISearch) {\n        return true;\n      }\n    }\n    get searchStateText() {\n      // Search results:\n      if (this.AIResults.length > 0) {\n        if (this.showingAIResults) {\n          return _I18n.default.t(\"discourse_ai.embeddings.semantic_search_results.toggle\", {\n            count: this.AIResults.length\n          });\n        } else {\n          return _I18n.default.t(\"discourse_ai.embeddings.semantic_search_results.toggle_hidden\", {\n            count: this.AIResults.length\n          });\n        }\n      }\n      // Search disabled for sort order:\n      if (this.preventAISearch) {\n        return _I18n.default.t(\"discourse_ai.embeddings.semantic_search_disabled_sort\");\n      }\n      // Search loading:\n      if (this.searching) {\n        return _I18n.default.t(\"discourse_ai.embeddings.semantic_search_loading\");\n      }\n      // Typing to search:\n      if (this.AIResults.length === 0 && this.searchTerm !== this.initialSearchTerm) {\n        return _I18n.default.t(\"discourse_ai.embeddings.semantic_search_results.new\");\n      }\n      // No results:\n      if (this.AIResults.length === 0) {\n        return _I18n.default.t(\"discourse_ai.embeddings.semantic_search_results.none\");\n      }\n    }\n    get searchTerm() {\n      if (this.initialSearchTerm !== this.args.outletArgs.search) {\n        this.initialSearchTerm = undefined;\n      }\n      return this.args.outletArgs.search;\n    }\n    get searchEnabled() {\n      return this.args.outletArgs.type === _fullPageSearch.SEARCH_TYPE_DEFAULT && (0, _search.isValidSearchTerm)(this.searchTerm, this.siteSettings);\n    }\n    toggleAIResults() {\n      if (this.showingAIResults) {\n        this.args.outletArgs.addSearchResults([], \"topic_id\");\n      } else {\n        this.args.outletArgs.addSearchResults(this.AIResults, \"topic_id\");\n      }\n      this.showingAIResults = !this.showingAIResults;\n    }\n    resetAIResults() {\n      this.AIResults = [];\n      this.showingAIResults = false;\n      this.args.outletArgs.addSearchResults([], \"topic_id\");\n    }\n    handleSearch() {\n      if (!this.searchEnabled) {\n        return;\n      }\n      if (this.searchPreferencesManager?.sortOrder !== undefined && this.searchPreferencesManager?.sortOrder !== 0) {\n        this.preventAISearch = true;\n        return;\n      } else {\n        this.preventAISearch = false;\n      }\n      if (this.initialSearchTerm && !this.searching) {\n        return this.performHyDESearch();\n      }\n      (0, _pluginApi.withPluginApi)(\"1.15.0\", api1 => {\n        api1.onAppEvent(\"full-page-search:trigger-search\", () => {\n          if (!this.searching) {\n            this.resetAIResults();\n            return this.performHyDESearch();\n          }\n        });\n      });\n    }\n    performHyDESearch() {\n      this.searching = true;\n      this.resetAIResults();\n      (0, _ajax.ajax)(\"/discourse-ai/embeddings/semantic-search\", {\n        data: {\n          q: this.searchTerm\n        }\n      }).then(async results1 => {\n        const model1 = (await (0, _search.translateResults)(results1)) || {};\n        if (model1.posts?.length === 0) {\n          this.searching = false;\n          return;\n        }\n        model1.posts.forEach(post1 => {\n          post1.generatedByAI = true;\n        });\n        this.AIResults = model1.posts;\n      }).finally(() => this.searching = false);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.searchEnabled}}\n        <div class=\"semantic-search__container search-results\" role=\"region\">\n          <div class=\"semantic-search__results\" {{didInsert this.handleSearch}}>\n            <div\n              class=\"semantic-search__searching\n                {{if this.searching 'in-progress'}}\"\n            >\n              <DToggleSwitch\n                disabled={{this.disableToggleSwitch}}\n                @state={{this.showingAIResults}}\n                title=\"AI search results hidden\"\n                class=\"semantic-search__results-toggle\"\n                {{on \"click\" this.toggleAIResults}}\n              />\n  \n              <div class=\"semantic-search__searching-text\">\n                {{icon \"discourse-sparkles\"}}\n                {{this.searchStateText}}\n              </div>\n  \n              {{#if this.searching}}\n                <span class=\"semantic-search__indicator-wave\">\n                  <span class=\"semantic-search__indicator-dot\">.</span>\n                  <span class=\"semantic-search__indicator-dot\">.</span>\n                  <span class=\"semantic-search__indicator-dot\">.</span>\n                </span>\n              {{/if}}\n            </div>\n          </div>\n        </div>\n      {{/if}}\n    \n  */\n  {\n    \"id\": \"3cSLRgPA\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"searchEnabled\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"semantic-search__container search-results\\\"],[14,\\\"role\\\",\\\"region\\\"],[12],[1,\\\"\\\\n        \\\"],[11,0],[24,0,\\\"semantic-search__results\\\"],[4,[32,0],[[30,0,[\\\"handleSearch\\\"]]],null],[12],[1,\\\"\\\\n          \\\"],[10,0],[15,0,[29,[\\\"semantic-search__searching\\\\n              \\\",[52,[30,0,[\\\"searching\\\"]],\\\"in-progress\\\"]]]],[12],[1,\\\"\\\\n            \\\"],[8,[32,1],[[16,\\\"disabled\\\",[30,0,[\\\"disableToggleSwitch\\\"]]],[24,\\\"title\\\",\\\"AI search results hidden\\\"],[24,0,\\\"semantic-search__results-toggle\\\"],[4,[32,2],[\\\"click\\\",[30,0,[\\\"toggleAIResults\\\"]]],null]],[[\\\"@state\\\"],[[30,0,[\\\"showingAIResults\\\"]]]],null],[1,\\\"\\\\n\\\\n            \\\"],[10,0],[14,0,\\\"semantic-search__searching-text\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,3],[\\\"discourse-sparkles\\\"],null]],[1,\\\"\\\\n              \\\"],[1,[30,0,[\\\"searchStateText\\\"]]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"searching\\\"]],[[[1,\\\"              \\\"],[10,1],[14,0,\\\"semantic-search__indicator-wave\\\"],[12],[1,\\\"\\\\n                \\\"],[10,1],[14,0,\\\"semantic-search__indicator-dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n                \\\"],[10,1],[14,0,\\\"semantic-search__indicator-dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n                \\\"],[10,1],[14,0,\\\"semantic-search__indicator-dot\\\"],[12],[1,\\\".\\\"],[13],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/full-page-search-below-search-header/semantic-search.js\",\n    \"scope\": () => [_didInsert.default, _dToggleSwitch.default, _modifier.on, _dIcon.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"appEvents\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"searchPreferencesManager\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"searching\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"AIResults\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return [];\n    }\n  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, \"showingAIResults\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, \"preventAISearch\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"toggleAIResults\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"toggleAIResults\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"resetAIResults\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"resetAIResults\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"handleSearch\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"handleSearch\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/post-text-buttons/ai-helper-options-menu\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/render-modifiers/modifiers/will-destroy\", \"@ember/service\", \"discourse/components/cook-text\", \"discourse/components/d-button\", \"discourse/components/fast-edit\", \"discourse/components/modal/fast-edit\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/utilities\", \"discourse-common/utils/decorators\", \"truth-helpers/helpers/eq\", \"truth-helpers/helpers/not\", \"discourse/plugins/discourse-ai/discourse/components/ai-helper-custom-prompt\", \"discourse/plugins/discourse-ai/discourse/components/ai-helper-loading\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _helper, _object, _didInsert, _willDestroy, _service, _cookText, _dButton, _fastEdit, _fastEdit2, _ajax, _ajaxError, _utilities, _decorators, _eq, _not, _aiHelperCustomPrompt, _aiHelperLoading, _showAiHelper, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AIHelperOptionsMenu = _exports.default = (_class = (_class2 = class AIHelperOptionsMenu extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"messageBus\", _descriptor, this);\n      _initializerDefineProperty(this, \"site\", _descriptor2, this);\n      _initializerDefineProperty(this, \"modal\", _descriptor3, this);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor4, this);\n      _initializerDefineProperty(this, \"currentUser\", _descriptor5, this);\n      _initializerDefineProperty(this, \"menu\", _descriptor6, this);\n      _initializerDefineProperty(this, \"menuState\", _descriptor7, this);\n      _initializerDefineProperty(this, \"loading\", _descriptor8, this);\n      _initializerDefineProperty(this, \"suggestion\", _descriptor9, this);\n      _initializerDefineProperty(this, \"showMainButtons\", _descriptor10, this);\n      _initializerDefineProperty(this, \"customPromptValue\", _descriptor11, this);\n      _initializerDefineProperty(this, \"copyButtonIcon\", _descriptor12, this);\n      _initializerDefineProperty(this, \"copyButtonLabel\", _descriptor13, this);\n      _initializerDefineProperty(this, \"showFastEdit\", _descriptor14, this);\n      _initializerDefineProperty(this, \"showAiButtons\", _descriptor15, this);\n      _defineProperty(this, \"MENU_STATES\", {\n        triggers: \"TRIGGERS\",\n        options: \"OPTIONS\",\n        loading: \"LOADING\",\n        result: \"RESULT\"\n      });\n      _initializerDefineProperty(this, \"_activeAIRequest\", _descriptor16, this);\n    }\n    static shouldRender(outletArgs1, helper1) {\n      return (0, _showAiHelper.showPostAIHelper)(outletArgs1, helper1);\n    }\n    async showAIHelperOptions() {\n      this.showMainButtons = false;\n      this.menuState = this.MENU_STATES.options;\n      this.menu.activeMenu.options.placement = \"bottom\";\n    }\n    subscribe() {\n      const channel1 = `/discourse-ai/ai-helper/explain/${this.args.outletArgs.data.quoteState.postId}`;\n      this.messageBus.subscribe(channel1, this._updateResult);\n    }\n    unsubscribe() {\n      this.messageBus.unsubscribe(\"/discourse-ai/ai-helper/explain/*\", this._updateResult);\n    }\n    _updateResult(result1) {\n      this.suggestion = result1.result;\n    }\n    async performAISuggestion(option1) {\n      this.menuState = this.MENU_STATES.loading;\n      if (option1.name === \"explain\") {\n        this.menuState = this.MENU_STATES.result;\n        const fetchUrl1 = `/discourse-ai/ai-helper/explain`;\n        this._activeAIRequest = (0, _ajax.ajax)(fetchUrl1, {\n          method: \"POST\",\n          data: {\n            mode: option1.value,\n            text: this.args.outletArgs.data.quoteState.buffer,\n            post_id: this.args.outletArgs.data.quoteState.postId\n          }\n        });\n      } else {\n        this._activeAIRequest = (0, _ajax.ajax)(\"/discourse-ai/ai-helper/suggest\", {\n          method: \"POST\",\n          data: {\n            mode: option1.id,\n            text: this.args.outletArgs.data.quoteState.buffer,\n            custom_prompt: this.customPromptValue\n          }\n        });\n      }\n      if (option1.name !== \"explain\") {\n        this._activeAIRequest.then(_ref => {\n          let {\n            suggestions: suggestions1\n          } = _ref;\n          this.suggestion = suggestions1[0].trim();\n          if (option1.name === \"proofread\") {\n            this.showAiButtons = false;\n            if (this.site.desktopView) {\n              this.showFastEdit = true;\n              return;\n            } else {\n              return this.modal.show(_fastEdit2.default, {\n                model: {\n                  initialValue: this.args.outletArgs.data.quoteState.buffer,\n                  newValue: this.suggestion,\n                  post: this.args.outletArgs.post,\n                  close: this.closeFastEdit\n                }\n              });\n            }\n          }\n        }).catch(_ajaxError.popupAjaxError).finally(() => {\n          this.loading = false;\n          this.menuState = this.MENU_STATES.result;\n        });\n      }\n      return this._activeAIRequest;\n    }\n    cancelAIAction() {\n      if (this._activeAIRequest) {\n        this._activeAIRequest.abort();\n        this._activeAIRequest = null;\n        this.loading = false;\n        this.menuState = this.MENU_STATES.options;\n      }\n    }\n    copySuggestion() {\n      if (this.suggestion?.length > 0) {\n        (0, _utilities.clipboardCopy)(this.suggestion);\n        this.copyButtonIcon = \"check\";\n        this.copyButtonLabel = \"discourse_ai.ai_helper.post_options_menu.copied\";\n        setTimeout(() => {\n          this.copyButtonIcon = \"copy\";\n          this.copyButtonLabel = \"discourse_ai.ai_helper.post_options_menu.copy\";\n        }, 3500);\n      }\n    }\n    get helperOptions() {\n      let prompts1 = this.currentUser?.ai_helper_prompts;\n      prompts1 = prompts1.filter(item1 => item1.location.includes(\"post\"));\n      // Find the custom_prompt object and move it to the beginning of the array\n      const customPromptIndex1 = prompts1.findIndex(p1 => p1.name === \"custom_prompt\");\n      if (customPromptIndex1 !== -1) {\n        const customPrompt1 = prompts1.splice(customPromptIndex1, 1)[0];\n        prompts1.unshift(customPrompt1);\n      }\n      if (!this._showUserCustomPrompts()) {\n        prompts1 = prompts1.filter(p1 => p1.name !== \"custom_prompt\");\n      }\n      if (!this.args.outletArgs.data.canEditPost) {\n        prompts1 = prompts1.filter(p1 => p1.name !== \"proofread\");\n      }\n      return prompts1;\n    }\n    _showUserCustomPrompts() {\n      return this.currentUser?.can_use_custom_prompts;\n    }\n    async closeFastEdit() {\n      this.showFastEdit = false;\n      await this.args.outletArgs.data.hideToolbar();\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.showMainButtons}}\n        {{yield}}\n      {{/if}}\n  \n      {{#if this.showAiButtons}}\n        <div class=\"ai-post-helper\">\n          {{#if (eq this.menuState this.MENU_STATES.triggers)}}\n            <DButton\n              @icon=\"discourse-sparkles\"\n              @title=\"discourse_ai.ai_helper.post_options_menu.title\"\n              @label=\"discourse_ai.ai_helper.post_options_menu.trigger\"\n              @action={{this.showAIHelperOptions}}\n              class=\"btn-flat ai-post-helper__trigger\"\n            />\n  \n          {{else if (eq this.menuState this.MENU_STATES.options)}}\n            <div class=\"ai-post-helper__options\">\n              {{#each this.helperOptions as |option|}}\n                {{#if (eq option.name \"custom_prompt\")}}\n                  <AiHelperCustomPrompt\n                    @value={{this.customPromptValue}}\n                    @promptArgs={{option}}\n                    @submit={{this.performAISuggestion}}\n                  />\n                {{else}}\n                  <DButton\n                    @icon={{option.icon}}\n                    @translatedLabel={{option.translated_name}}\n                    @action={{fn this.performAISuggestion option}}\n                    data-name={{option.name}}\n                    data-value={{option.id}}\n                    class=\"btn-flat ai-post-helper__options-button\"\n                  />\n                {{/if}}\n              {{/each}}\n            </div>\n  \n          {{else if (eq this.menuState this.MENU_STATES.loading)}}\n            <AiHelperLoading @cancel={{this.cancelAIAction}} />\n          {{else if (eq this.menuState this.MENU_STATES.result)}}\n            <div\n              class=\"ai-post-helper__suggestion\"\n              {{didInsert this.subscribe}}\n              {{willDestroy this.unsubscribe}}\n            >\n              {{#if this.suggestion}}\n                <div class=\"ai-post-helper__suggestion__text\" dir=\"auto\">\n                  <CookText @rawText={{this.suggestion}} />\n                </div>\n                <di class=\"ai-post-helper__suggestion__buttons\">\n                  <DButton\n                    @icon=\"times\"\n                    @label=\"discourse_ai.ai_helper.post_options_menu.cancel\"\n                    @action={{this.cancelAIAction}}\n                    class=\"btn-flat ai-post-helper__suggestion__cancel\"\n                  />\n                  <DButton\n                    @icon={{this.copyButtonIcon}}\n                    @label={{this.copyButtonLabel}}\n                    @action={{this.copySuggestion}}\n                    @disabled={{not this.suggestion}}\n                    class=\"btn-flat ai-post-helper__suggestion__copy\"\n                  />\n                </di>\n              {{else}}\n                <AiHelperLoading @cancel={{this.cancelAIAction}} />\n              {{/if}}\n            </div>\n          {{/if}}\n        </div>\n      {{/if}}\n  \n      {{#if this.showFastEdit}}\n        <div class=\"ai-post-helper__fast-edit\">\n          <FastEdit\n            @initialValue={{@outletArgs.data.quoteState.buffer}}\n            @newValue={{this.suggestion}}\n            @post={{@outletArgs.post}}\n            @close={{this.closeFastEdit}}\n          />\n        </div>\n      {{/if}}\n    \n  */\n  {\n    \"id\": \"j9occbDk\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showMainButtons\\\"]],[[[1,\\\"      \\\"],[18,3,null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showAiButtons\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"ai-post-helper\\\"],[12],[1,\\\"\\\\n\\\"],[41,[28,[32,0],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"MENU_STATES\\\",\\\"triggers\\\"]]],null],[[[1,\\\"          \\\"],[8,[32,1],[[24,0,\\\"btn-flat ai-post-helper__trigger\\\"]],[[\\\"@icon\\\",\\\"@title\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"discourse-sparkles\\\",\\\"discourse_ai.ai_helper.post_options_menu.title\\\",\\\"discourse_ai.ai_helper.post_options_menu.trigger\\\",[30,0,[\\\"showAIHelperOptions\\\"]]]],null],[1,\\\"\\\\n\\\\n\\\"]],[]],[[[41,[28,[32,0],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"MENU_STATES\\\",\\\"options\\\"]]],null],[[[1,\\\"          \\\"],[10,0],[14,0,\\\"ai-post-helper__options\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,3],[[28,[31,3],[[30,0,[\\\"helperOptions\\\"]]],null]],null],null,[[[41,[28,[32,0],[[30,1,[\\\"name\\\"]],\\\"custom_prompt\\\"],null],[[[1,\\\"                \\\"],[8,[32,2],null,[[\\\"@value\\\",\\\"@promptArgs\\\",\\\"@submit\\\"],[[30,0,[\\\"customPromptValue\\\"]],[30,1],[30,0,[\\\"performAISuggestion\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                \\\"],[8,[32,1],[[16,\\\"data-name\\\",[30,1,[\\\"name\\\"]]],[16,\\\"data-value\\\",[30,1,[\\\"id\\\"]]],[24,0,\\\"btn-flat ai-post-helper__options-button\\\"]],[[\\\"@icon\\\",\\\"@translatedLabel\\\",\\\"@action\\\"],[[30,1,[\\\"icon\\\"]],[30,1,[\\\"translated_name\\\"]],[28,[32,3],[[30,0,[\\\"performAISuggestion\\\"]],[30,1]],null]]],null],[1,\\\"\\\\n\\\"]],[]]]],[1]],null],[1,\\\"          \\\"],[13],[1,\\\"\\\\n\\\\n\\\"]],[]],[[[41,[28,[32,0],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"MENU_STATES\\\",\\\"loading\\\"]]],null],[[[1,\\\"          \\\"],[8,[32,4],null,[[\\\"@cancel\\\"],[[30,0,[\\\"cancelAIAction\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[41,[28,[32,0],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"MENU_STATES\\\",\\\"result\\\"]]],null],[[[1,\\\"          \\\"],[11,0],[24,0,\\\"ai-post-helper__suggestion\\\"],[4,[32,5],[[30,0,[\\\"subscribe\\\"]]],null],[4,[32,6],[[30,0,[\\\"unsubscribe\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"suggestion\\\"]],[[[1,\\\"              \\\"],[10,0],[14,0,\\\"ai-post-helper__suggestion__text\\\"],[14,\\\"dir\\\",\\\"auto\\\"],[12],[1,\\\"\\\\n                \\\"],[8,[32,7],null,[[\\\"@rawText\\\"],[[30,0,[\\\"suggestion\\\"]]]],null],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n              \\\"],[10,\\\"di\\\"],[14,0,\\\"ai-post-helper__suggestion__buttons\\\"],[12],[1,\\\"\\\\n                \\\"],[8,[32,1],[[24,0,\\\"btn-flat ai-post-helper__suggestion__cancel\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"times\\\",\\\"discourse_ai.ai_helper.post_options_menu.cancel\\\",[30,0,[\\\"cancelAIAction\\\"]]]],null],[1,\\\"\\\\n                \\\"],[8,[32,1],[[24,0,\\\"btn-flat ai-post-helper__suggestion__copy\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\",\\\"@disabled\\\"],[[30,0,[\\\"copyButtonIcon\\\"]],[30,0,[\\\"copyButtonLabel\\\"]],[30,0,[\\\"copySuggestion\\\"]],[28,[32,8],[[30,0,[\\\"suggestion\\\"]]],null]]],null],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[8,[32,4],null,[[\\\"@cancel\\\"],[[30,0,[\\\"cancelAIAction\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"          \\\"],[13],[1,\\\"\\\\n        \\\"]],[]],null]],[]]]],[]]]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showFastEdit\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"ai-post-helper__fast-edit\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,9],null,[[\\\"@initialValue\\\",\\\"@newValue\\\",\\\"@post\\\",\\\"@close\\\"],[[30,2,[\\\"data\\\",\\\"quoteState\\\",\\\"buffer\\\"]],[30,0,[\\\"suggestion\\\"]],[30,2,[\\\"post\\\"]],[30,0,[\\\"closeFastEdit\\\"]]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"option\\\",\\\"@outletArgs\\\",\\\"&default\\\"],false,[\\\"if\\\",\\\"yield\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/post-text-buttons/ai-helper-options-menu.js\",\n    \"scope\": () => [_eq.default, _dButton.default, _aiHelperCustomPrompt.default, _helper.fn, _aiHelperLoading.default, _didInsert.default, _willDestroy.default, _cookText.default, _not.default, _fastEdit.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"messageBus\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"site\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"modal\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"currentUser\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, \"menu\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, \"menuState\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return this.MENU_STATES.triggers;\n    }\n  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, \"loading\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, \"suggestion\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, \"showMainButtons\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return true;\n    }\n  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, \"customPromptValue\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"\";\n    }\n  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, \"copyButtonIcon\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"copy\";\n    }\n  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, \"copyButtonLabel\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return \"discourse_ai.ai_helper.post_options_menu.copy\";\n    }\n  }), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, \"showFastEdit\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor15 = _applyDecoratedDescriptor(_class.prototype, \"showAiButtons\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return true;\n    }\n  }), _descriptor16 = _applyDecoratedDescriptor(_class.prototype, \"_activeAIRequest\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"showAIHelperOptions\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"showAIHelperOptions\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"subscribe\", [_decorators.bind], Object.getOwnPropertyDescriptor(_class.prototype, \"subscribe\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"unsubscribe\", [_decorators.bind], Object.getOwnPropertyDescriptor(_class.prototype, \"unsubscribe\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"_updateResult\", [_decorators.bind], Object.getOwnPropertyDescriptor(_class.prototype, \"_updateResult\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"performAISuggestion\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"performAISuggestion\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"cancelAIAction\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"cancelAIAction\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"copySuggestion\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"copySuggestion\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"closeFastEdit\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"closeFastEdit\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-category-after/ai-category-suggestion\", [\"exports\", \"@glimmer/component\", \"@ember/service\", \"discourse/plugins/discourse-ai/discourse/components/ai-split-topic-suggester\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _service, _aiSplitTopicSuggester, _showAiHelper, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiCategorySuggestion = _exports.default = (_class = (_class2 = class AiCategorySuggestion extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor, this);\n    }\n    static shouldRender(outletArgs1, helper1) {\n      return (0, _showAiHelper.showPostAIHelper)(outletArgs1, helper1);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.siteSettings.ai_embeddings_enabled}}\n        <AiSplitTopicSuggester\n          @selectedPosts={{@outletArgs.selectedPosts}}\n          @mode=\"suggest_category\"\n          @updateAction={{@outletArgs.updateCategoryId}}\n        />\n      {{/if}}\n    \n  */\n  {\n    \"id\": \"4O7HJkah\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"siteSettings\\\",\\\"ai_embeddings_enabled\\\"]],[[[1,\\\"      \\\"],[8,[32,0],null,[[\\\"@selectedPosts\\\",\\\"@mode\\\",\\\"@updateAction\\\"],[[30,1,[\\\"selectedPosts\\\"]],\\\"suggest_category\\\",[30,1,[\\\"updateCategoryId\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"@outletArgs\\\"],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-category-after/ai-category-suggestion.js\",\n    \"scope\": () => [_aiSplitTopicSuggester.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  })), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-tag-after/ai-tag-suggestion\", [\"exports\", \"@glimmer/component\", \"@ember/service\", \"discourse/plugins/discourse-ai/discourse/components/ai-split-topic-suggester\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _service, _aiSplitTopicSuggester, _showAiHelper, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _class2;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let AiTagSuggestion = _exports.default = (_class = (_class2 = class AiTagSuggestion extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"siteSettings\", _descriptor, this);\n    }\n    static shouldRender(outletArgs1, helper1) {\n      return (0, _showAiHelper.showPostAIHelper)(outletArgs1, helper1);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.siteSettings.ai_embeddings_enabled}}\n        <AiSplitTopicSuggester\n          @selectedPosts={{@outletArgs.selectedPosts}}\n          @mode=\"suggest_tags\"\n          @updateAction={{@outletArgs.updateTags}}\n          @currentValue={{@outletArgs.tags}}\n        />\n      {{/if}}\n    \n  */\n  {\n    \"id\": \"jo6+zYZR\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"siteSettings\\\",\\\"ai_embeddings_enabled\\\"]],[[[1,\\\"      \\\"],[8,[32,0],null,[[\\\"@selectedPosts\\\",\\\"@mode\\\",\\\"@updateAction\\\",\\\"@currentValue\\\"],[[30,1,[\\\"selectedPosts\\\"]],\\\"suggest_tags\\\",[30,1,[\\\"updateTags\\\"]],[30,1,[\\\"tags\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"@outletArgs\\\"],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-tag-after/ai-tag-suggestion.js\",\n    \"scope\": () => [_aiSplitTopicSuggester.default],\n    \"isStrictMode\": true\n  }), _class2), _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"siteSettings\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  })), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-title-after/ai-title-suggestion\", [\"exports\", \"@glimmer/component\", \"discourse/plugins/discourse-ai/discourse/components/ai-split-topic-suggester\", \"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _aiSplitTopicSuggester, _showAiHelper, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class;\n  class AiTitleSuggestion extends _component.default {\n    static shouldRender(outletArgs1, helper1) {\n      return (0, _showAiHelper.showPostAIHelper)(outletArgs1, helper1);\n    }\n  }\n  _exports.default = AiTitleSuggestion;\n  _class = AiTitleSuggestion;\n  (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <AiSplitTopicSuggester\n        @selectedPosts={{@outletArgs.selectedPosts}}\n        @mode=\"suggest_title\"\n        @updateAction={{@outletArgs.updateTopicName}}\n      />\n    \n  */\n  {\n    \"id\": \"obhR2Q8M\",\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],null,[[\\\"@selectedPosts\\\",\\\"@mode\\\",\\\"@updateAction\\\"],[[30,1,[\\\"selectedPosts\\\"]],\\\"suggest_title\\\",[30,1,[\\\"updateTopicName\\\"]]]],null],[1,\\\"\\\\n  \\\"]],[\\\"@outletArgs\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/connectors/split-new-topic-title-after/ai-title-suggestion.js\",\n    \"scope\": () => [_aiSplitTopicSuggester.default],\n    \"isStrictMode\": true\n  }), _class);\n});","define(\"discourse/plugins/discourse-ai/discourse/connectors/topic-more-content/related-topics\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"I18n\"], function (_exports, _component, _object, _service, _I18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _class2, _descriptor, _descriptor2, _descriptor3;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  let _class = _exports.default = (_dec = (0, _object.computed)(\"moreTopicsPreferenceTracking.selectedTab\"), (_class2 = class _class2 extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"store\", _descriptor, this);\n      _initializerDefineProperty(this, \"site\", _descriptor2, this);\n      _initializerDefineProperty(this, \"moreTopicsPreferenceTracking\", _descriptor3, this);\n      _defineProperty(this, \"listId\", \"related-topics\");\n    }\n    static shouldRender(args) {\n      return (args.model.related_topics?.length || 0) > 0;\n    }\n    get hidden() {\n      return this.moreTopicsPreferenceTracking.selectedTab !== this.listId;\n    }\n    get relatedTopics() {\n      return this.args.outletArgs.model.related_topics.map(topic => this.store.createRecord(\"topic\", topic));\n    }\n    registerList() {\n      this.moreTopicsPreferenceTracking.registerTopicList({\n        name: _I18n.default.t(\"discourse_ai.related_topics.pill\"),\n        id: this.listId,\n        icon: \"discourse-sparkles\"\n      });\n    }\n    removeList() {\n      this.moreTopicsPreferenceTracking.removeTopicList(this.listId);\n    }\n  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, \"store\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"site\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, \"moreTopicsPreferenceTracking\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _applyDecoratedDescriptor(_class2.prototype, \"hidden\", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, \"hidden\"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, \"registerList\", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, \"registerList\"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, \"removeList\", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, \"removeList\"), _class2.prototype)), _class2));\n});","define(\"discourse/plugins/discourse-ai/discourse/controllers/admin-dashboard-sentiment\", [\"exports\", \"@ember/object\", \"admin/controllers/admin-dashboard-tab\"], function (_exports, _object, _adminDashboardTab) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _class;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  let AdminDashboardSentiment = _exports.default = (_dec = (0, _object.computed)(\"startDate\", \"endDate\"), (_class = class AdminDashboardSentiment extends _adminDashboardTab.default {\n    get filters() {\n      return {\n        startDate: this.startDate,\n        endDate: this.endDate\n      };\n    }\n  }, (_applyDecoratedDescriptor(_class.prototype, \"filters\", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, \"filters\"), _class.prototype)), _class));\n});","define(\"discourse/plugins/discourse-ai/discourse/lib/ai-bot-helper\", [\"exports\", \"discourse/models/composer\", \"I18n\"], function (_exports, _composer, _I18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.composeAiBotMessage = composeAiBotMessage;\n  function composeAiBotMessage(targetBot, composer) {\n    const currentUser = composer.currentUser;\n    let botUsername = currentUser.ai_enabled_chat_bots.find(bot => bot.model_name === targetBot).username;\n    composer.focusComposer({\n      fallbackToNewTopic: true,\n      openOpts: {\n        action: _composer.default.PRIVATE_MESSAGE,\n        recipients: botUsername,\n        topicTitle: _I18n.default.t(\"discourse_ai.ai_bot.default_pm_prefix\"),\n        archetypeId: \"private_message\",\n        draftKey: \"private_message_ai\",\n        hasGroups: false,\n        warningsDisabled: true,\n        skipDraftCheck: true\n      }\n    });\n  }\n});","define(\"discourse/plugins/discourse-ai/discourse/lib/ai-streamer\", [\"exports\", \"@ember/runloop\", \"discourse/lib/load-script\", \"discourse/lib/text\"], function (_exports, _runloop, _loadScript, _text) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.MIN_LETTERS_PER_INTERVAL = void 0;\n  _exports.addProgressDot = addProgressDot;\n  _exports.applyProgress = applyProgress;\n  _exports.default = streamText;\n  const PROGRESS_INTERVAL = 40;\n  const GIVE_UP_INTERVAL = 60000;\n  const MIN_LETTERS_PER_INTERVAL = _exports.MIN_LETTERS_PER_INTERVAL = 6;\n  const MAX_FLUSH_TIME = 800;\n  let progressTimer = null;\n  function lastNonEmptyChild(element) {\n    let lastChild = element.lastChild;\n    while (lastChild && lastChild.nodeType === Node.TEXT_NODE && !/\\S/.test(lastChild.textContent)) {\n      lastChild = lastChild.previousSibling;\n    }\n    return lastChild;\n  }\n  function addProgressDot(element) {\n    let lastBlock = element;\n    while (true) {\n      let lastChild = lastNonEmptyChild(lastBlock);\n      if (!lastChild) {\n        break;\n      }\n      if (lastChild.nodeType === Node.ELEMENT_NODE) {\n        lastBlock = lastChild;\n      } else {\n        break;\n      }\n    }\n    const dotElement = document.createElement(\"span\");\n    dotElement.classList.add(\"progress-dot\");\n    lastBlock.appendChild(dotElement);\n  }\n\n  // this is the interface we need to implement\n  // for a streaming updater\n  class StreamUpdater {\n    set streaming(value) {\n      throw \"not implemented\";\n    }\n    async setCooked() {\n      throw \"not implemented\";\n    }\n    async setRaw() {\n      throw \"not implemented\";\n    }\n    get element() {\n      throw \"not implemented\";\n    }\n    get raw() {\n      throw \"not implemented\";\n    }\n  }\n  class PostUpdater extends StreamUpdater {\n    constructor(postStream, postId) {\n      super();\n      this.postStream = postStream;\n      this.postId = postId;\n      this.post = postStream.findLoadedPost(postId);\n      if (this.post) {\n        this.postElement = document.querySelector(`#post_${this.post.post_number}`);\n      }\n    }\n    get element() {\n      return this.postElement;\n    }\n    set streaming(value) {\n      if (this.postElement) {\n        if (value) {\n          this.postElement.classList.add(\"streaming\");\n        } else {\n          this.postElement.classList.remove(\"streaming\");\n        }\n      }\n    }\n    async setRaw(value, done) {\n      this.post.set(\"raw\", value);\n      const cooked = await (0, _text.cook)(value);\n\n      // resets animation\n      this.element.classList.remove(\"streaming\");\n      void this.element.offsetWidth;\n      this.element.classList.add(\"streaming\");\n      const cookedElement = document.createElement(\"div\");\n      cookedElement.innerHTML = cooked;\n      if (!done) {\n        addProgressDot(cookedElement);\n      }\n      await this.setCooked(cookedElement.innerHTML);\n    }\n    async setCooked(value) {\n      this.post.set(\"cooked\", value);\n      const oldElement = this.postElement.querySelector(\".cooked\");\n      await (0, _loadScript.default)(\"/javascripts/diffhtml.min.js\");\n      window.diff.innerHTML(oldElement, value);\n    }\n    get raw() {\n      return this.post.get(\"raw\") || \"\";\n    }\n  }\n  async function applyProgress(status, updater) {\n    status.startTime = status.startTime || Date.now();\n    if (Date.now() - status.startTime > GIVE_UP_INTERVAL) {\n      updater.streaming = false;\n      return true;\n    }\n    if (!updater.element) {\n      // wait till later\n      return false;\n    }\n    const oldRaw = updater.raw;\n    if (status.raw === oldRaw && !status.done) {\n      const hasProgressDot = updater.element.querySelector(\".progress-dot\");\n      if (hasProgressDot) {\n        return false;\n      }\n    }\n    if (status.raw !== undefined) {\n      let newRaw = status.raw;\n      if (!status.done) {\n        // rush update if we have a </details> tag (function call)\n        if (oldRaw.length === 0 && newRaw.indexOf(\"</details>\") !== -1) {\n          newRaw = status.raw;\n        } else {\n          const diff = newRaw.length - oldRaw.length;\n\n          // progress interval is 40ms\n          // by default we add 6 letters per interval\n          // but ... we want to be done in MAX_FLUSH_TIME\n          let letters = Math.floor(diff / (MAX_FLUSH_TIME / PROGRESS_INTERVAL));\n          if (letters < MIN_LETTERS_PER_INTERVAL) {\n            letters = MIN_LETTERS_PER_INTERVAL;\n          }\n          newRaw = status.raw.substring(0, oldRaw.length + letters);\n        }\n      }\n      await updater.setRaw(newRaw, status.done);\n    }\n    if (status.done) {\n      if (status.cooked) {\n        await updater.setCooked(status.cooked);\n      }\n      updater.streaming = false;\n    }\n    return status.done;\n  }\n  async function handleProgress(postStream) {\n    const status = postStream.aiStreamingStatus;\n    let keepPolling = false;\n    const promises = Object.keys(status).map(async postId => {\n      let postStatus = status[postId];\n      const postUpdater = new PostUpdater(postStream, postStatus.post_id);\n      const done = await applyProgress(postStatus, postUpdater);\n      if (done) {\n        delete status[postId];\n      } else {\n        keepPolling = true;\n      }\n    });\n    await Promise.all(promises);\n    return keepPolling;\n  }\n  function ensureProgress(postStream) {\n    if (!progressTimer) {\n      progressTimer = (0, _runloop.later)(async () => {\n        const keepPolling = await handleProgress(postStream);\n        progressTimer = null;\n        if (keepPolling) {\n          ensureProgress(postStream);\n        }\n      }, PROGRESS_INTERVAL);\n    }\n  }\n  function streamText(postStream, data) {\n    if (data.noop) {\n      return;\n    }\n    let status = postStream.aiStreamingStatus = postStream.aiStreamingStatus || {};\n    status[data.post_id] = data;\n    ensureProgress(postStream);\n  }\n});","define(\"discourse/plugins/discourse-ai/discourse/lib/copy-conversation\", [\"exports\", \"discourse/lib/ajax\", \"discourse/lib/utilities\", \"discourse-i18n\"], function (_exports, _ajax, _utilities, _discourseI18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _default;\n  async function _default(topic, fromPostNumber, toPostNumber) {\n    await (0, _utilities.clipboardCopyAsync)(async () => {\n      const text = await generateClipboard(topic, fromPostNumber, toPostNumber);\n      return new Blob([text], {\n        type: \"text/plain\"\n      });\n    });\n  }\n  async function generateClipboard(topic, fromPostNumber, toPostNumber) {\n    const stream = topic.get(\"postStream\");\n    let postNumbers = [];\n    // simpler to understand than Array.from\n    for (let i = fromPostNumber; i <= toPostNumber; i++) {\n      postNumbers.push(i);\n    }\n    const postIds = postNumbers.map(postNumber => {\n      return stream.findPostIdForPostNumber(postNumber);\n    });\n\n    // we need raw to construct so post stream will not help\n\n    const url = `/t/${topic.id}/posts.json`;\n    const data = {\n      post_ids: postIds,\n      include_raw: true\n    };\n    const response = await (0, _ajax.ajax)(url, {\n      data\n    });\n    let buffer = [];\n    buffer.push(\"<details class='ai-quote'>\");\n    buffer.push(\"<summary>\");\n    buffer.push(`<span>${topic.title}</span>`);\n    buffer.push(`<span title='${_discourseI18n.default.t(\"discourse_ai.ai_bot.ai_title\")}'>${_discourseI18n.default.t(\"discourse_ai.ai_bot.ai_label\")}</span>`);\n    buffer.push(\"</summary>\");\n    response.post_stream.posts.forEach(post => {\n      buffer.push(\"\");\n      buffer.push(`**${post.username}:**`);\n      buffer.push(\"\");\n      buffer.push(post.raw);\n    });\n    buffer.push(\"</details>\");\n    const text = buffer.join(\"\\n\");\n    if (window.discourseAiTestClipboard) {\n      window.discourseAiClipboard = text;\n    }\n    return text;\n  }\n});","define(\"discourse/plugins/discourse-ai/discourse/lib/show-ai-helper\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.showComposerAIHelper = showComposerAIHelper;\n  _exports.showPostAIHelper = showPostAIHelper;\n  function showComposerAIHelper(outletArgs, helper, featureType) {\n    const enableHelper = _helperEnabled(helper.siteSettings);\n    const enableAssistant = helper.currentUser.can_use_assistant;\n    const canShowInPM = helper.siteSettings.ai_helper_allowed_in_pm;\n    const enableFeature = helper.siteSettings.ai_helper_enabled_features.includes(featureType);\n    if (outletArgs?.composer?.privateMessage) {\n      return enableHelper && enableAssistant && canShowInPM && enableFeature;\n    }\n    return enableHelper && enableAssistant && enableFeature;\n  }\n  function showPostAIHelper(outletArgs, helper) {\n    return _helperEnabled(helper.siteSettings) && helper.currentUser.can_use_assistant_in_post;\n  }\n  function _helperEnabled(siteSettings) {\n    return siteSettings.discourse_ai_enabled && siteSettings.composer_ai_helper_enabled;\n  }\n});","define(\"discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-ai-personas-index\", [\"exports\", \"discourse/routes/discourse\"], function (_exports, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = _discourse.default.extend({\n    model() {\n      return this.modelFor(\"adminPlugins.discourse-ai.ai-personas\");\n    }\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-ai-personas-new\", [\"exports\", \"discourse/routes/discourse\"], function (_exports, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = _discourse.default.extend({\n    async model() {\n      const record = this.store.createRecord(\"ai-persona\");\n      // TL0\n      record.set(\"allowed_group_ids\", [10]);\n      return record;\n    },\n    setupController(controller, model) {\n      this._super(controller, model);\n      controller.set(\"allPersonas\", this.modelFor(\"adminPlugins.discourse-ai.ai-personas\"));\n    }\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-ai-personas-show\", [\"exports\", \"discourse/routes/discourse\"], function (_exports, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = _discourse.default.extend({\n    async model(params) {\n      const allPersonas = this.modelFor(\"adminPlugins.discourse-ai.ai-personas\");\n      const id = parseInt(params.id, 10);\n      return allPersonas.findBy(\"id\", id);\n    },\n    setupController(controller, model) {\n      this._super(controller, model);\n      controller.set(\"allPersonas\", this.modelFor(\"adminPlugins.discourse-ai.ai-personas\"));\n    }\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-ai-personas\", [\"exports\", \"discourse/routes/discourse\"], function (_exports, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = _discourse.default.extend({\n    async model() {\n      return this.store.findAll(\"ai-persona\");\n    }\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/routes/admin-plugins-discourse-ai-index\", [\"exports\", \"@ember/service\", \"discourse/routes/discourse\"], function (_exports, _service, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = _discourse.default.extend({\n    router: (0, _service.inject)(),\n    beforeModel() {\n      this.router.transitionTo(\"adminPlugins.discourse-ai.ai-personas\");\n    }\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/templates/admin-dashboard-sentiment\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <div class=\"sentiment section\">\n    <div class=\"period-section\">\n      <div class=\"section-title\">\n        <h2>\n          {{i18n \"discourse_ai.sentiments.dashboard.title\"}}\n        </h2>\n  \n        <DashboardPeriodSelector\n          @period={{this.period}}\n          @setPeriod={{this.setPeriod}}\n          @startDate={{this.startDate}}\n          @endDate={{this.endDate}}\n          @setCustomDateRange={{this.setCustomDateRange}}\n        />\n      </div>\n    </div>\n  \n    <div class=\"section-body\">\n      <div class=\"charts\">\n        <AdminReport\n          @dataSourceName=\"overall_sentiment\"\n          @filters={{this.filters}}\n          @showHeader={{true}}\n        />\n  \n        <AdminReport\n          @dataSourceName=\"post_emotion\"\n          @filters={{this.filters}}\n          @showHeader={{true}}\n        />\n      </div>\n    </div>\n  </div>\n  */\n  {\n    \"id\": \"nGq01/Xy\",\n    \"block\": \"[[[10,0],[14,0,\\\"sentiment section\\\"],[12],[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"period-section\\\"],[12],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"section-title\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"h2\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[28,[35,0],[\\\"discourse_ai.sentiments.dashboard.title\\\"],null]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[8,[39,1],null,[[\\\"@period\\\",\\\"@setPeriod\\\",\\\"@startDate\\\",\\\"@endDate\\\",\\\"@setCustomDateRange\\\"],[[30,0,[\\\"period\\\"]],[30,0,[\\\"setPeriod\\\"]],[30,0,[\\\"startDate\\\"]],[30,0,[\\\"endDate\\\"]],[30,0,[\\\"setCustomDateRange\\\"]]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\\n  \\\"],[10,0],[14,0,\\\"section-body\\\"],[12],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"charts\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[39,2],null,[[\\\"@dataSourceName\\\",\\\"@filters\\\",\\\"@showHeader\\\"],[\\\"overall_sentiment\\\",[30,0,[\\\"filters\\\"]],true]],null],[1,\\\"\\\\n\\\\n      \\\"],[8,[39,2],null,[[\\\"@dataSourceName\\\",\\\"@filters\\\",\\\"@showHeader\\\"],[\\\"post_emotion\\\",[30,0,[\\\"filters\\\"]],true]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"],[13]],[],false,[\\\"i18n\\\",\\\"dashboard-period-selector\\\",\\\"admin-report\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/templates/admin-dashboard-sentiment.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/index\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <AiPersonaListEditor @personas={{this.model}} />\n  */\n  {\n    \"id\": \"+08OpQF9\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@personas\\\"],[[30,0,[\\\"model\\\"]]]],null]],[],false,[\\\"ai-persona-list-editor\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/index.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/new\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <AiPersonaListEditor\n    @personas={{this.allPersonas}}\n    @currentPersona={{this.model}}\n  />\n  */\n  {\n    \"id\": \"4OQ50K5K\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@personas\\\",\\\"@currentPersona\\\"],[[30,0,[\\\"allPersonas\\\"]],[30,0,[\\\"model\\\"]]]],null]],[],false,[\\\"ai-persona-list-editor\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/new.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/show\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <AiPersonaListEditor\n    @personas={{this.allPersonas}}\n    @currentPersona={{this.model}}\n  />\n  */\n  {\n    \"id\": \"4Vqg1JJH\",\n    \"block\": \"[[[8,[39,0],null,[[\\\"@personas\\\",\\\"@currentPersona\\\"],[[30,0,[\\\"allPersonas\\\"]],[30,0,[\\\"model\\\"]]]],null]],[],false,[\\\"ai-persona-list-editor\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/templates/admin-plugins/discourse-ai/ai-personas/show.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/templates/connectors/after-d-editor/ai-helper-context-menu\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <div {{did-insert this.setupContextMenu}}>\n    {{#if this.showContextMenu}}\n      <div class=\"ai-helper-context-menu\">\n        {{#if (eq this.menuState this.CONTEXT_MENU_STATES.triggers)}}\n          <ul class=\"ai-helper-context-menu__trigger\">\n            <li>\n              <DButton\n                @icon=\"discourse-sparkles\"\n                @action={{this.toggleAiHelperOptions}}\n                @label=\"discourse_ai.ai_helper.context_menu.trigger\"\n                class=\"btn-flat\"\n              />\n            </li>\n          </ul>\n  \n        {{else if (eq this.menuState this.CONTEXT_MENU_STATES.options)}}\n          <ul class=\"ai-helper-context-menu__options\">\n            {{#each this.helperOptions as |option|}}\n              {{#if (eq option.name \"custom_prompt\")}}\n                <AiHelperCustomPrompt\n                  @value={{this.customPromptValue}}\n                  @promptArgs={{option}}\n                  @submit={{this.updateSelected}}\n                />\n              {{else}}\n                <li data-name={{option.translated_name}} data-value={{option.id}}>\n                  <DButton\n                    @icon={{option.icon}}\n                    @translatedLabel={{option.translated_name}}\n                    @action={{fn this.updateSelected option}}\n                    class=\"btn-flat\"\n                  />\n                </li>\n              {{/if}}\n            {{/each}}\n          </ul>\n  \n        {{else if (eq this.menuState this.CONTEXT_MENU_STATES.loading)}}\n          <AiHelperLoading @cancel={{this.cancelAIAction}} />\n  \n        {{else if (eq this.menuState this.CONTEXT_MENU_STATES.review)}}\n          <ul class=\"ai-helper-context-menu__review\">\n            <li>\n              <DButton\n                @icon=\"exchange-alt\"\n                @label=\"discourse_ai.ai_helper.context_menu.view_changes\"\n                @action={{this.viewChanges}}\n                class=\"btn-flat view-changes\"\n              />\n            </li>\n            <li>\n              <DButton\n                @icon=\"undo\"\n                @label=\"discourse_ai.ai_helper.context_menu.revert\"\n                @action={{this.undoAIAction}}\n                class=\"btn-flat revert\"\n              />\n            </li>\n            <li>\n              <DButton\n                @icon=\"check\"\n                @label=\"discourse_ai.ai_helper.context_menu.confirm\"\n                @action={{this.confirmChanges}}\n                class=\"btn-flat confirm\"\n              />\n            </li>\n          </ul>\n  \n        {{else if (eq this.menuState this.CONTEXT_MENU_STATES.resets)}}\n          <ul class=\"ai-helper-context-menu__resets\">\n            <li>\n              <DButton\n                @icon=\"undo\"\n                @label=\"discourse_ai.ai_helper.context_menu.undo\"\n                @action={{this.undoAIAction}}\n                class=\"btn-flat undo\"\n              />\n            </li>\n            <li>\n              <DButton\n                @icon=\"discourse-sparkles\"\n                @label=\"discourse_ai.ai_helper.context_menu.regen\"\n                @action={{fn this.updateSelected this.lastUsedOption}}\n                class=\"btn-flat\"\n              />\n            </li>\n          </ul>\n        {{/if}}\n      </div>\n    {{/if}}\n  </div>\n  \n  {{#if this.showDiffModal}}\n    <Modal::DiffModal\n      @confirm={{this.confirmChanges}}\n      @diff={{this.diff}}\n      @oldValue={{this.initialValue}}\n      @newValue={{this.newSelectedText}}\n      @revert={{this.undoAIAction}}\n      @closeModal={{fn (mut this.showDiffModal) false}}\n    />\n  {{/if}}\n  \n  {{#if this.showThumbnailModal}}\n    <Modal::ThumbnailSuggestions\n      @thumbnails={{this.thumbnailSuggestions}}\n      @closeModal={{fn (mut this.showThumbnailModal) false}}\n    />\n  {{/if}}\n  */\n  {\n    \"id\": \"9lPQdG4P\",\n    \"block\": \"[[[11,0],[4,[38,0],[[30,0,[\\\"setupContextMenu\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showContextMenu\\\"]],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"ai-helper-context-menu\\\"],[12],[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"CONTEXT_MENU_STATES\\\",\\\"triggers\\\"]]],null],[[[1,\\\"        \\\"],[10,\\\"ul\\\"],[14,0,\\\"ai-helper-context-menu__trigger\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,3],[[24,0,\\\"btn-flat\\\"]],[[\\\"@icon\\\",\\\"@action\\\",\\\"@label\\\"],[\\\"discourse-sparkles\\\",[30,0,[\\\"toggleAiHelperOptions\\\"]],\\\"discourse_ai.ai_helper.context_menu.trigger\\\"]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"CONTEXT_MENU_STATES\\\",\\\"options\\\"]]],null],[[[1,\\\"        \\\"],[10,\\\"ul\\\"],[14,0,\\\"ai-helper-context-menu__options\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,5],[[28,[37,5],[[30,0,[\\\"helperOptions\\\"]]],null]],null],null,[[[41,[28,[37,2],[[30,1,[\\\"name\\\"]],\\\"custom_prompt\\\"],null],[[[1,\\\"              \\\"],[8,[39,6],null,[[\\\"@value\\\",\\\"@promptArgs\\\",\\\"@submit\\\"],[[30,0,[\\\"customPromptValue\\\"]],[30,1],[30,0,[\\\"updateSelected\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[10,\\\"li\\\"],[15,\\\"data-name\\\",[30,1,[\\\"translated_name\\\"]]],[15,\\\"data-value\\\",[30,1,[\\\"id\\\"]]],[12],[1,\\\"\\\\n                \\\"],[8,[39,3],[[24,0,\\\"btn-flat\\\"]],[[\\\"@icon\\\",\\\"@translatedLabel\\\",\\\"@action\\\"],[[30,1,[\\\"icon\\\"]],[30,1,[\\\"translated_name\\\"]],[28,[37,7],[[30,0,[\\\"updateSelected\\\"]],[30,1]],null]]],null],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]]]],[1]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"CONTEXT_MENU_STATES\\\",\\\"loading\\\"]]],null],[[[1,\\\"        \\\"],[8,[39,8],null,[[\\\"@cancel\\\"],[[30,0,[\\\"cancelAIAction\\\"]]]],null],[1,\\\"\\\\n\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"CONTEXT_MENU_STATES\\\",\\\"review\\\"]]],null],[[[1,\\\"        \\\"],[10,\\\"ul\\\"],[14,0,\\\"ai-helper-context-menu__review\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,3],[[24,0,\\\"btn-flat view-changes\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"exchange-alt\\\",\\\"discourse_ai.ai_helper.context_menu.view_changes\\\",[30,0,[\\\"viewChanges\\\"]]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n          \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,3],[[24,0,\\\"btn-flat revert\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"undo\\\",\\\"discourse_ai.ai_helper.context_menu.revert\\\",[30,0,[\\\"undoAIAction\\\"]]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n          \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,3],[[24,0,\\\"btn-flat confirm\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"check\\\",\\\"discourse_ai.ai_helper.context_menu.confirm\\\",[30,0,[\\\"confirmChanges\\\"]]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,0,[\\\"menuState\\\"]],[30,0,[\\\"CONTEXT_MENU_STATES\\\",\\\"resets\\\"]]],null],[[[1,\\\"        \\\"],[10,\\\"ul\\\"],[14,0,\\\"ai-helper-context-menu__resets\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,3],[[24,0,\\\"btn-flat undo\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"undo\\\",\\\"discourse_ai.ai_helper.context_menu.undo\\\",[30,0,[\\\"undoAIAction\\\"]]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n          \\\"],[10,\\\"li\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[39,3],[[24,0,\\\"btn-flat\\\"]],[[\\\"@icon\\\",\\\"@label\\\",\\\"@action\\\"],[\\\"discourse-sparkles\\\",\\\"discourse_ai.ai_helper.context_menu.regen\\\",[28,[37,7],[[30,0,[\\\"updateSelected\\\"]],[30,0,[\\\"lastUsedOption\\\"]]],null]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"]],[]],null]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"showDiffModal\\\"]],[[[1,\\\"  \\\"],[8,[39,9],null,[[\\\"@confirm\\\",\\\"@diff\\\",\\\"@oldValue\\\",\\\"@newValue\\\",\\\"@revert\\\",\\\"@closeModal\\\"],[[30,0,[\\\"confirmChanges\\\"]],[30,0,[\\\"diff\\\"]],[30,0,[\\\"initialValue\\\"]],[30,0,[\\\"newSelectedText\\\"]],[30,0,[\\\"undoAIAction\\\"]],[28,[37,7],[[28,[37,10],[[30,0,[\\\"showDiffModal\\\"]]],null],false],null]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showThumbnailModal\\\"]],[[[1,\\\"  \\\"],[8,[39,11],null,[[\\\"@thumbnails\\\",\\\"@closeModal\\\"],[[30,0,[\\\"thumbnailSuggestions\\\"]],[28,[37,7],[[28,[37,10],[[30,0,[\\\"showThumbnailModal\\\"]]],null],false],null]]],null],[1,\\\"\\\\n\\\"]],[]],null]],[\\\"option\\\"],false,[\\\"did-insert\\\",\\\"if\\\",\\\"eq\\\",\\\"d-button\\\",\\\"each\\\",\\\"-track-array\\\",\\\"ai-helper-custom-prompt\\\",\\\"fn\\\",\\\"ai-helper-loading\\\",\\\"modal/diff-modal\\\",\\\"mut\\\",\\\"modal/thumbnail-suggestions\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/templates/connectors/after-d-editor/ai-helper-context-menu.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/templates/connectors/after-d-editor/composer-open\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if this.isAiBotChat}}\n    <DSection @bodyClass={{this.aiBotClasses}} />\n    {{#if this.renderChatWarning}}\n      <div class=\"ai-bot-chat-warning\">{{i18n\n          \"discourse_ai.ai_bot.pm_warning\"\n        }}</div>\n    {{/if}}\n  {{/if}}\n  */\n  {\n    \"id\": \"+kLlck0i\",\n    \"block\": \"[[[41,[30,0,[\\\"isAiBotChat\\\"]],[[[1,\\\"  \\\"],[8,[39,1],null,[[\\\"@bodyClass\\\"],[[30,0,[\\\"aiBotClasses\\\"]]]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"renderChatWarning\\\"]],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"ai-bot-chat-warning\\\"],[12],[1,[28,[35,2],[\\\"discourse_ai.ai_bot.pm_warning\\\"],null]],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],null]],[],false,[\\\"if\\\",\\\"d-section\\\",\\\"i18n\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/templates/connectors/after-d-editor/composer-open.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/templates/connectors/topic-more-content/related-topics\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <div\n    id=\"related-topics\"\n    class=\"more-topics__list {{if this.hidden 'hidden'}}\"\n    role=\"complementary\"\n    aria-labelledby=\"related-topics-title\"\n    {{did-insert this.registerList}}\n    {{will-destroy this.removeList}}\n  >\n    <h3 id=\"related-topics-title\" class=\"more-topics__list-title\">\n      {{i18n \"discourse_ai.related_topics.title\"}}\n    </h3>\n    <div class=\"topics\">\n      <BasicTopicList @topics={{this.relatedTopics}} />\n    </div>\n  </div>\n  */\n  {\n    \"id\": \"6Oz8VQA3\",\n    \"block\": \"[[[11,0],[24,1,\\\"related-topics\\\"],[16,0,[29,[\\\"more-topics__list \\\",[52,[30,0,[\\\"hidden\\\"]],\\\"hidden\\\"]]]],[24,\\\"role\\\",\\\"complementary\\\"],[24,\\\"aria-labelledby\\\",\\\"related-topics-title\\\"],[4,[38,1],[[30,0,[\\\"registerList\\\"]]],null],[4,[38,2],[[30,0,[\\\"removeList\\\"]]],null],[12],[1,\\\"\\\\n  \\\"],[10,\\\"h3\\\"],[14,1,\\\"related-topics-title\\\"],[14,0,\\\"more-topics__list-title\\\"],[12],[1,\\\"\\\\n    \\\"],[1,[28,[35,3],[\\\"discourse_ai.related_topics.title\\\"],null]],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"topics\\\"],[12],[1,\\\"\\\\n    \\\"],[8,[39,4],null,[[\\\"@topics\\\"],[[30,0,[\\\"relatedTopics\\\"]]]],null],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"],[13]],[],false,[\\\"if\\\",\\\"did-insert\\\",\\\"will-destroy\\\",\\\"i18n\\\",\\\"basic-topic-list\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-ai/discourse/templates/connectors/topic-more-content/related-topics.hbs\",\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-ai/discourse/widgets/ai-bot-header-panel-wrapper\", [\"exports\", \"@ember/object\", \"discourse/widgets/render-glimmer\", \"discourse/widgets/widget\", \"@ember/template-factory\"], function (_exports, _object, _renderGlimmer, _widget, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  let AiBotHeaderPanelWrapper = _exports.default = (_class = class AiBotHeaderPanelWrapper extends _widget.default {\n    buildAttributes() {\n      return {\n        \"data-click-outside\": true\n      };\n    }\n    html() {\n      return [new _renderGlimmer.default(this, \"div.widget-component-connector\", (0, _templateFactory.createTemplateFactory)(\n      /*\n        <AiBotHeaderPanel @closePanel={{@data.closePanel}} />\n      */\n      {\n        \"id\": \"w7fEG46j\",\n        \"block\": \"[[[8,[39,0],null,[[\\\"@closePanel\\\"],[[30,1,[\\\"closePanel\\\"]]]],null]],[\\\"@data\\\"],false,[\\\"ai-bot-header-panel\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/discourse/widgets/ai-bot-header-panel-wrapper.js\",\n        \"isStrictMode\": false\n      }), {\n        closePanel: this.closePanel\n      })];\n    }\n    closePanel() {\n      this.sendWidgetAction(\"hideAiBotPanel\");\n    }\n    clickOutside() {\n      this.closePanel();\n    }\n  }, (_applyDecoratedDescriptor(_class.prototype, \"closePanel\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"closePanel\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"clickOutside\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"clickOutside\"), _class.prototype)), _class);\n});","define(\"discourse/plugins/discourse-ai/initializers/ai-bot-replies\", [\"exports\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/plugin-api\", \"discourse/widgets/render-glimmer\", \"discourse/plugins/discourse-ai/discourse/lib/ai-bot-helper\", \"discourse/plugins/discourse-ai/discourse/components/modal/share-modal\", \"discourse/plugins/discourse-ai/discourse/lib/ai-streamer\", \"discourse/plugins/discourse-ai/discourse/lib/copy-conversation\", \"@ember/template-factory\"], function (_exports, _ajax, _ajaxError, _pluginApi, _renderGlimmer, _aiBotHelper, _shareModal, _aiStreamer, _copyConversation, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const AUTO_COPY_THRESHOLD = 4;\n  function isGPTBot(user) {\n    return user && [-110, -111, -112, -113, -114, -115, -116].includes(user.id);\n  }\n  function attachHeaderIcon(api) {\n    const settings = api.container.lookup(\"service:site-settings\");\n    const enabledBots = settings.ai_bot_add_to_header ? settings.ai_bot_enabled_chat_bots.split(\"|\").filter(Boolean) : [];\n    if (enabledBots.length > 0) {\n      api.attachWidgetAction(\"header\", \"showAiBotPanel\", function () {\n        this.state.botSelectorVisible = true;\n      });\n      api.attachWidgetAction(\"header\", \"hideAiBotPanel\", function () {\n        this.state.botSelectorVisible = false;\n      });\n      api.decorateWidget(\"header-icons:before\", helper => {\n        return helper.attach(\"header-dropdown\", {\n          title: \"discourse_ai.ai_bot.shortcut_title\",\n          icon: \"robot\",\n          action: \"clickStartAiBotChat\",\n          active: false,\n          classNames: [\"ai-bot-button\"]\n        });\n      });\n      if (enabledBots.length === 1) {\n        api.attachWidgetAction(\"header\", \"clickStartAiBotChat\", function () {\n          (0, _aiBotHelper.composeAiBotMessage)(enabledBots[0], api.container.lookup(\"service:composer\"));\n        });\n      } else {\n        api.attachWidgetAction(\"header\", \"clickStartAiBotChat\", function () {\n          this.sendWidgetAction(\"showAiBotPanel\");\n        });\n      }\n      api.addHeaderPanel(\"ai-bot-header-panel-wrapper\", \"botSelectorVisible\", function () {\n        return {};\n      });\n    }\n  }\n  function initializeAIBotReplies(api) {\n    api.addPostMenuButton(\"cancel-gpt\", post => {\n      if (isGPTBot(post.user)) {\n        return {\n          icon: \"pause\",\n          action: \"cancelStreaming\",\n          title: \"discourse_ai.ai_bot.cancel_streaming\",\n          className: \"btn btn-default cancel-streaming\",\n          position: \"first\"\n        };\n      }\n    });\n    api.attachWidgetAction(\"post\", \"cancelStreaming\", function () {\n      (0, _ajax.ajax)(`/discourse-ai/ai-bot/post/${this.model.id}/stop-streaming`, {\n        type: \"POST\"\n      }).then(() => {\n        document.querySelector(`#post_${this.model.post_number}`).classList.remove(\"streaming\");\n      }).catch(_ajaxError.popupAjaxError);\n    });\n    api.modifyClass(\"controller:topic\", {\n      pluginId: \"discourse-ai\",\n      onAIBotStreamedReply: function (data) {\n        (0, _aiStreamer.default)(this.model.postStream, data);\n      },\n      subscribe: function () {\n        this._super();\n        if (this.model.isPrivateMessage && this.model.details.allowed_users && this.model.details.allowed_users.filter(isGPTBot).length >= 1) {\n          // we attempt to recover the last message in the bus\n          // so we subscribe at -2\n          this.messageBus.subscribe(`discourse-ai/ai-bot/topic/${this.model.id}`, this.onAIBotStreamedReply.bind(this), -2);\n        }\n      },\n      unsubscribe: function () {\n        this.messageBus.unsubscribe(\"discourse-ai/ai-bot/topic/*\");\n        this._super();\n      }\n    });\n  }\n  function initializePersonaDecorator(api) {\n    let topicController = null;\n    api.decorateWidget(`poster-name:after`, dec => {\n      if (!isGPTBot(dec.attrs.user)) {\n        return;\n      }\n      // this is hacky and will need to change\n      // trouble is we need to get the model for the topic\n      // and it is not available in the decorator\n      // long term this will not be a problem once we remove widgets and\n      // have a saner structure for our model\n      topicController = topicController || api.container.lookup(\"controller:topic\");\n      return dec.widget.attach(\"persona-flair\", {\n        topicController\n      });\n    });\n    (0, _renderGlimmer.registerWidgetShim)(\"persona-flair\", \"span.persona-flair\", (0, _templateFactory.createTemplateFactory)(\n    /*\n      {{@data.topicController.model.ai_persona_name}}\n    */\n    {\n      \"id\": \"9jYzNJdM\",\n      \"block\": \"[[[1,[30,1,[\\\"topicController\\\",\\\"model\\\",\\\"ai_persona_name\\\"]]]],[\\\"@data\\\"],false,[]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-ai/initializers/ai-bot-replies.js\",\n      \"isStrictMode\": false\n    }));\n  }\n  function initializeShareButton(api) {\n    const currentUser = api.getCurrentUser();\n    if (!currentUser || !currentUser.ai_enabled_chat_bots) {\n      return;\n    }\n    let shareAiResponse = async function (_ref) {\n      let {\n        post,\n        showFeedback\n      } = _ref;\n      if (post.post_number <= AUTO_COPY_THRESHOLD) {\n        await (0, _copyConversation.default)(post.topic, 1, post.post_number);\n        showFeedback(\"discourse_ai.ai_bot.conversation_shared\");\n      } else {\n        modal.show(_shareModal.default, {\n          model: post\n        });\n      }\n    };\n    api.addPostMenuButton(\"share\", post => {\n      // very hacky and ugly, but there is no `.topic` in attrs\n      if (!currentUser.ai_enabled_chat_bots.any(bot => post.username === bot.username)) {\n        return;\n      }\n      return {\n        action: shareAiResponse,\n        icon: \"share\",\n        className: \"post-action-menu__share\",\n        title: \"discourse_ai.ai_bot.share\",\n        position: \"first\"\n      };\n    });\n    const modal = api.container.lookup(\"service:modal\");\n  }\n  var _default = _exports.default = {\n    name: \"discourse-ai-bot-replies\",\n    initialize(container) {\n      const settings = container.lookup(\"service:site-settings\");\n      const user = container.lookup(\"service:current-user\");\n      if (user?.ai_enabled_chat_bots) {\n        if (settings.ai_bot_add_to_header) {\n          (0, _pluginApi.withPluginApi)(\"1.6.0\", attachHeaderIcon);\n        }\n        (0, _pluginApi.withPluginApi)(\"1.6.0\", initializeAIBotReplies);\n        (0, _pluginApi.withPluginApi)(\"1.6.0\", initializePersonaDecorator);\n        (0, _pluginApi.withPluginApi)(\"1.22.0\", api => initializeShareButton(api, container));\n      }\n    }\n  };\n});","define(\"discourse/plugins/discourse-ai/initializers/ai-semantic-search\", [\"exports\", \"discourse/lib/api\"], function (_exports, _api) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _api.apiInitializer)(\"1.15.0\", api => {\n    api.modifyClass(\"component:search-result-entry\", {\n      pluginId: \"discourse-ai\",\n      classNameBindings: [\"bulkSelectEnabled\", \"post.generatedByAI:ai-result\"]\n    });\n  });\n});","define(\"discourse/plugins/discourse-ai/initializers/related-topics\", [\"exports\", \"discourse/lib/plugin-api\"], function (_exports, _pluginApi) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    name: \"discourse-ai-related-topics\",\n    initialize(container) {\n      const settings = container.lookup(\"service:site-settings\");\n      if (settings.ai_embeddings_enabled && settings.ai_embeddings_semantic_related_topics_enabled) {\n        (0, _pluginApi.withPluginApi)(\"1.1.0\", api => {\n          api.modifyClass(\"model:post-stream\", {\n            pluginId: \"discourse-ai\",\n            _setSuggestedTopics(result) {\n              this._super(...arguments);\n              if (!result.related_topics) {\n                return;\n              }\n              this.topic.setProperties({\n                related_topics: result.related_topics\n              });\n            }\n          });\n        });\n      }\n    }\n  };\n});","define(\"discourse/plugins/discourse-ai/lib/discourse-markdown/ai-tags\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.setup = setup;\n  function setup(helper) {\n    helper.allowList([\"details[class=ai-quote]\"]);\n  }\n});"],"mappings":"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"}