From 4f7bdebdeb962caddf893dd107e4cbf5d13908ca Mon Sep 17 00:00:00 2001 From: Tomas Bulva Date: Thu, 11 Sep 2025 11:48:56 +0200 Subject: [PATCH 1/8] WIP --- .../ai/components/duo_chat_logging_alert.vue | 129 ++++++ ee/app/assets/javascripts/ai/constants.js | 1 + .../ai/duo_agentic_chat/components/app.vue | 12 +- .../javascripts/ai/duo_agentic_chat/index.js | 15 + .../ai/tanuki_bot/components/app.vue | 13 +- .../assets/javascripts/ai/tanuki_bot/index.js | 17 +- .../views/layouts/_tanuki_bot_chat.html.haml | 11 +- .../components/duo_chat_logging_alert_spec.js | 230 +++++++++++ .../duo_agentic_chat/components/app_spec.js | 386 +++++++++++++++++- .../ai/tanuki_bot/components/app_spec.js | 41 +- locale/gitlab.pot | 18 + 11 files changed, 845 insertions(+), 28 deletions(-) create mode 100644 ee/app/assets/javascripts/ai/components/duo_chat_logging_alert.vue create mode 100644 ee/spec/frontend/ai/components/duo_chat_logging_alert_spec.js diff --git a/ee/app/assets/javascripts/ai/components/duo_chat_logging_alert.vue b/ee/app/assets/javascripts/ai/components/duo_chat_logging_alert.vue new file mode 100644 index 00000000000000..883252433d05b9 --- /dev/null +++ b/ee/app/assets/javascripts/ai/components/duo_chat_logging_alert.vue @@ -0,0 +1,129 @@ + + + diff --git a/ee/app/assets/javascripts/ai/constants.js b/ee/app/assets/javascripts/ai/constants.js index 18a76efdd622eb..8cf65cd58b6e85 100644 --- a/ee/app/assets/javascripts/ai/constants.js +++ b/ee/app/assets/javascripts/ai/constants.js @@ -56,3 +56,4 @@ export const DUO_WORKFLOW_ADDITIONAL_CONTEXT_REPOSITORY = 'repository'; export const DUO_CURRENT_WORKFLOW_STORAGE_KEY = 'agenticChat.currentWorkflow'; export const DUO_AGENTIC_CHAT_SELECTED_MODEL_KEY = 'agentic-chat-user-selected-model'; +export const DUO_AGENTIC_CHAT_LOGGING_ALERT = 'duo_agentic_chat_logging_alert'; diff --git a/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue b/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue index 41572df1334389..bdb537d828fbef 100644 --- a/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue +++ b/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue @@ -11,6 +11,7 @@ import { duoChatGlobalState } from '~/super_sidebar/constants'; import { clearDuoChatCommands, setAgenticMode } from 'ee/ai/utils'; import { parseGid, convertToGraphQLId } from '~/graphql_shared/utils'; import { TYPENAME_AI_DUO_WORKFLOW } from '~/graphql_shared/constants'; +import DuoChatLoggingAlert from 'ee/ai/components/duo_chat_logging_alert.vue'; import { GENIE_CHAT_RESET_MESSAGE, GENIE_CHAT_CLEAR_MESSAGE, @@ -42,6 +43,7 @@ export default { AgenticDuoChat, GlToggle, ModelSelectDropdown, + DuoChatLoggingAlert, }, provide() { return { @@ -66,7 +68,7 @@ export default { default: null, }, metadata: { - type: String, + type: Object, required: false, default: null, }, @@ -288,7 +290,7 @@ export default { workflowID: this.workflowId, clientVersion: DUO_WORKFLOW_CLIENT_VERSION, workflowDefinition: DUO_WORKFLOW_CHAT_DEFINITION, - workflowMetadata: this.metadata, + workflowMetadata: this.metadata && JSON.stringify(this.metadata), goal, approval, }, @@ -516,7 +518,11 @@ export default { @thread-selected="onThreadSelected" @back-to-list="onBackToList" @delete-thread="onDeleteThread" - >