@gitlab/duo-ui 10.10.0 → 10.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/components/agentic_chat/agentic_duo_chat.js +2 -2
- package/dist/components/chat/components/duo_chat_message/duo_chat_message.js +8 -3
- package/dist/components/chat/components/duo_chat_message/message_types/message_base.js +1 -1
- package/dist/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.js +1 -1
- package/dist/components/chat/components/duo_chat_threads/duo_chat_threads.js +6 -3
- package/dist/components/chat/duo_chat.js +1 -1
- package/dist/components/chat/mock_data.js +114 -3
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/package.json +1 -1
- package/src/components/agentic_chat/agentic_duo_chat.vue +6 -7
- package/src/components/chat/components/duo_chat_message/duo_chat_message.vue +20 -5
- package/src/components/chat/components/duo_chat_message/message_types/message_base.vue +1 -1
- package/src/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.vue +1 -1
- package/src/components/chat/components/duo_chat_threads/duo_chat_threads.vue +7 -3
- package/src/components/chat/duo_chat.vue +1 -1
- package/src/components/chat/mock_data.js +136 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
# [10.12.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.11.0...v10.12.0) (2025-07-22)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* introduce support for the agentic chat history ([f95b16f](https://gitlab.com/gitlab-org/duo-ui/commit/f95b16f9c09570a0b81939339da2776814c54bf5))
|
|
7
|
+
|
|
8
|
+
# [10.11.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.10.0...v10.11.0) (2025-07-21)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* removed border and padding from the empty state ([de66b96](https://gitlab.com/gitlab-org/duo-ui/commit/de66b96d65d459eed78e98367e00f00fbff655e7))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* improved spacing and styling of avatar ([c801120](https://gitlab.com/gitlab-org/duo-ui/commit/c801120cea89e52cf70f7ac9a064893485252afc))
|
|
19
|
+
* render user avatar on the User messages in chat ([3f46886](https://gitlab.com/gitlab-org/duo-ui/commit/3f46886d78a9c7bc4c9d349619c88ced83df04a1))
|
|
20
|
+
|
|
1
21
|
# [10.10.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.9.0...v10.10.0) (2025-07-21)
|
|
2
22
|
|
|
3
23
|
|
|
@@ -29,7 +29,7 @@ const isSlashCommand = command => Boolean(command) && (command === null || comma
|
|
|
29
29
|
const itemsValidator = items => items.every(isMessage);
|
|
30
30
|
// eslint-disable-next-line unicorn/no-array-callback-reference
|
|
31
31
|
const slashCommandsValidator = commands => commands.every(isSlashCommand);
|
|
32
|
-
const isThread = thread => typeof thread === 'object' && typeof thread.id === 'string' && typeof thread.lastUpdatedAt === 'string'
|
|
32
|
+
const isThread = thread => typeof thread === 'object' && typeof thread.id === 'string' && typeof thread.lastUpdatedAt === 'string' || typeof thread.updatedAt === 'string' && (thread.title === null || typeof thread.title === 'string' || typeof thread.goal === 'string');
|
|
33
33
|
|
|
34
34
|
// eslint-disable-next-line unicorn/no-array-callback-reference
|
|
35
35
|
const threadListValidator = threads => threads.every(isThread);
|
|
@@ -645,7 +645,7 @@ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=
|
|
|
645
645
|
},attrs:{"width":_vm.shouldRenderResizable ? _vm.dimensions.width : null,"height":_vm.shouldRenderResizable ? _vm.dimensions.height : null,"max-width":_vm.shouldRenderResizable ? _vm.dimensions.maxWidth : null,"max-height":_vm.shouldRenderResizable ? _vm.dimensions.maxHeight : null,"min-width":_vm.shouldRenderResizable ? _vm.dimensions.minWidth : null,"left":_vm.shouldRenderResizable ? _vm.dimensions.left : null,"top":_vm.shouldRenderResizable ? _vm.dimensions.top : null,"fit-parent":true,"min-height":_vm.shouldRenderResizable ? _vm.dimensions.minHeight : null,"active":_vm.shouldRenderResizable ? ['l', 't', 'lt'] : null},on:{"resize:end":_vm.updateSize}},[(!_vm.isHidden)?_c('aside',{staticClass:"markdown-code-block duo-chat gl-bottom-0 gl-max-h-full gl-flex gl-flex-col",class:{
|
|
646
646
|
'resizable-content': _vm.shouldRenderResizable,
|
|
647
647
|
'duo-chat-drawer': !_vm.shouldRenderResizable,
|
|
648
|
-
},attrs:{"id":"chat-component","role":"complementary","data-testid":"chat-component"}},[(_vm.showHeader)?_c('duo-chat-header',{ref:"header",attrs:{"active-thread-id":_vm.activeThreadId,"title":_vm.isMultithreaded && _vm.currentView === 'list' ? _vm.$options.i18n.CHAT_HISTORY_TITLE : _vm.title,"subtitle":_vm.activeThreadTitleForView,"error":_vm.error,"is-multithreaded":_vm.isMultithreaded,"current-view":_vm.currentView,"should-render-resizable":_vm.shouldRenderResizable,"badge-type":_vm.isMultithreaded ? null : _vm.badgeType},on:{"go-back":_vm.onGoBack,"new-chat":_vm.onNewChat,"close":_vm.hideChat},scopedSlots:_vm._u([{key:"subheader",fn:function(){return [_vm._t("subheader")]},proxy:true}],null,true)}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"gl-overflow-y-auto gl-flex gl-flex-col gl-flex-1 gl-flex-grow gl-bg-inherit gl-overscroll-contain",attrs:{"data-testid":"chat-history"},on:{"scroll":_vm.handleScrollingThrottled}},[(_vm.shouldShowThreadList)?_c('duo-chat-threads',{attrs:{"threads":_vm.threadList,"preferred-locale":_vm.preferredLocale},on:{"new-chat":_vm.onNewChat,"select-thread":_vm.onSelectThread,"delete-thread":_vm.onDeleteThread,"close":_vm.hideChat}}):_c('transition-group',{staticClass:"duo-chat-history gl-p-5 gl-mt-auto",attrs:{"mode":"out-in","tag":"section","name":"message"}},[_vm._l((_vm.conversations),function(conversation,index){return _c('duo-chat-conversation',{key:("conversation-" + index),attrs:{"enable-code-insertion":_vm.enableCodeInsertion,"messages":conversation,"show-delimiter":index > 0,"with-feedback":_vm.withFeedback,"is-tool-approval-processing":_vm.isToolApprovalProcessing},on:{"track-feedback":_vm.onTrackFeedback,"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet,"copy-message":_vm.onCopyMessage,"get-context-item-content":_vm.onGetContextItemContent,"approve-tool":_vm.onApproveToolCall,"deny-tool":_vm.onDenyToolCall,"open-file-path":_vm.onOpenFilePath}})}),_vm._v(" "),(!_vm.hasMessages && !_vm.isLoading)?[_c('div',{key:"empty-state-message",staticClass:"duo-chat-message gl-rounded-bl-none gl-
|
|
648
|
+
},attrs:{"id":"chat-component","role":"complementary","data-testid":"chat-component"}},[(_vm.showHeader)?_c('duo-chat-header',{ref:"header",attrs:{"active-thread-id":_vm.activeThreadId,"title":_vm.isMultithreaded && _vm.currentView === 'list' ? _vm.$options.i18n.CHAT_HISTORY_TITLE : _vm.title,"subtitle":_vm.activeThreadTitleForView,"error":_vm.error,"is-multithreaded":_vm.isMultithreaded,"current-view":_vm.currentView,"should-render-resizable":_vm.shouldRenderResizable,"badge-type":_vm.isMultithreaded ? null : _vm.badgeType},on:{"go-back":_vm.onGoBack,"new-chat":_vm.onNewChat,"close":_vm.hideChat},scopedSlots:_vm._u([{key:"subheader",fn:function(){return [_vm._t("subheader")]},proxy:true}],null,true)}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"gl-overflow-y-auto gl-flex gl-flex-col gl-flex-1 gl-flex-grow gl-bg-inherit gl-overscroll-contain",attrs:{"data-testid":"chat-history"},on:{"scroll":_vm.handleScrollingThrottled}},[(_vm.shouldShowThreadList)?_c('duo-chat-threads',{attrs:{"threads":_vm.threadList,"preferred-locale":_vm.preferredLocale},on:{"new-chat":_vm.onNewChat,"select-thread":_vm.onSelectThread,"delete-thread":_vm.onDeleteThread,"close":_vm.hideChat}}):_c('transition-group',{staticClass:"duo-chat-history gl-p-5 gl-mt-auto",attrs:{"mode":"out-in","tag":"section","name":"message"}},[_vm._l((_vm.conversations),function(conversation,index){return _c('duo-chat-conversation',{key:("conversation-" + index),attrs:{"enable-code-insertion":_vm.enableCodeInsertion,"messages":conversation,"show-delimiter":index > 0,"with-feedback":_vm.withFeedback,"is-tool-approval-processing":_vm.isToolApprovalProcessing},on:{"track-feedback":_vm.onTrackFeedback,"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet,"copy-message":_vm.onCopyMessage,"get-context-item-content":_vm.onGetContextItemContent,"approve-tool":_vm.onApproveToolCall,"deny-tool":_vm.onDenyToolCall,"open-file-path":_vm.onOpenFilePath}})}),_vm._v(" "),(!_vm.hasMessages && !_vm.isLoading)?[_c('div',{key:"empty-state-message",staticClass:"duo-chat-message gl-rounded-bl-none gl-leading-20 gl-text-gray-900 gl-break-anywhere",attrs:{"data-testid":"gl-duo-chat-empty-state"}},[(_vm.emptyStateTitle)?_c('p',{staticClass:"gl-m-0",attrs:{"data-testid":"gl-duo-chat-empty-state-title"}},[_vm._v("\n "+_vm._s(_vm.emptyStateTitle)+"\n ")]):_vm._e(),_vm._v(" "),_c('duo-chat-predefined-prompts',{key:"predefined-prompts",attrs:{"prompts":_vm.predefinedPrompts},on:{"click":_vm.sendPredefinedPrompt}})],1)]:_vm._e(),_vm._v(" "),(_vm.isLoading)?_c('duo-chat-loader',{key:"loader",attrs:{"tool-name":_vm.toolName}}):_vm._e(),_vm._v(" "),_c('div',{key:"anchor",ref:"anchor",staticClass:"scroll-anchor"})],2)],1),_vm._v(" "),(_vm.isChatAvailable && !_vm.shouldShowThreadList)?_c('footer',{staticClass:"duo-chat-drawer-footer gl-border-0 gl-bg-default gl-pb-3 gl-shrink-0 gl-relative gl-z-2",class:{ 'duo-chat-drawer-body-scrim-on-footer': !_vm.scrolledToBottom },attrs:{"data-testid":"chat-footer"}},[_c('gl-form',{attrs:{"data-testid":"chat-prompt-form"},on:{"submit":function($event){$event.stopPropagation();$event.preventDefault();return _vm.sendChatPrompt.apply(null, arguments)}}},[_c('div',{staticClass:"gl-relative gl-max-w-full"},[_vm._t("context-items-menu",null,{"isOpen":_vm.contextItemsMenuIsOpen,"onClose":_vm.closeContextItemsMenuOpen,"setRef":_vm.setContextItemsMenuRef,"focusPrompt":_vm.focusChatInput})],2),_vm._v(" "),_c('gl-form-input-group',{scopedSlots:_vm._u([{key:"append",fn:function(){return [(_vm.canSubmit)?_c('gl-button',{staticClass:"!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full",attrs:{"icon":"paper-airplane","category":"primary","variant":"confirm","type":"submit","data-testid":"chat-prompt-submit-button","aria-label":_vm.$options.i18n.CHAT_SUBMIT_LABEL}}):_c('gl-button',{staticClass:"!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full",attrs:{"icon":"stop","category":"primary","variant":"default","data-testid":"chat-prompt-cancel-button","aria-label":_vm.$options.i18n.CHAT_CANCEL_LABEL},on:{"click":_vm.cancelPrompt}})]},proxy:true}],null,false,3738248012)},[_c('div',{staticClass:"duo-chat-input gl-min-h-8 gl-max-w-full gl-grow gl-align-top",attrs:{"data-value":_vm.prompt}},[(_vm.shouldShowSlashCommands)?_c('gl-card',{ref:"commands",staticClass:"slash-commands !gl-absolute gl-w-full -gl-translate-y-full gl-list-none gl-pl-0 gl-shadow-md",attrs:{"body-class":"!gl-p-2"}},_vm._l((_vm.filteredSlashCommands),function(command,index){return _c('gl-dropdown-item',{key:command.name,class:{ 'active-command': index === _vm.activeCommandIndex },on:{"click":function($event){return _vm.selectSlashCommand(index)}},nativeOn:{"mouseenter":function($event){_vm.activeCommandIndex = index;}}},[_c('span',{staticClass:"gl-flex gl-justify-between"},[_c('span',{staticClass:"gl-block"},[_vm._v(_vm._s(command.name))]),_vm._v(" "),_c('small',{staticClass:"gl-pl-3 gl-text-right gl-italic gl-text-subtle"},[_vm._v(_vm._s(command.description))])])])}),1):_vm._e(),_vm._v(" "),_c('gl-form-textarea',{ref:"prompt",staticClass:"gl-absolute !gl-h-full gl-rounded-br-none gl-rounded-tr-none !gl-bg-transparent !gl-py-4 !gl-shadow-none",class:{ 'gl-truncate': !_vm.prompt },attrs:{"disabled":!_vm.canSubmit,"data-testid":"chat-prompt-input","placeholder":_vm.inputPlaceholder,"autofocus":""},on:{"compositionend":_vm.compositionEnd},nativeOn:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();},"keyup":function($event){return _vm.onInputKeyup.apply(null, arguments)}},model:{value:(_vm.prompt),callback:function ($$v) {_vm.prompt=$$v;},expression:"prompt"}})],1)])],1),_vm._v(" "),_vm._t("footer-controls"),_vm._v(" "),_c('p',{staticClass:"gl-mb-0 gl-mt-3 gl-px-4 gl-text-sm gl-text-secondary"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_DISCLAMER)+"\n ")])],2):_vm._e()],1):_vm._e()])};
|
|
649
649
|
var __vue_staticRenderFns__ = [];
|
|
650
650
|
|
|
651
651
|
/* style */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GlIcon, GlAnimatedLoaderIcon, GlButton, GlSafeHtmlDirective, GlTooltipDirective } from '@gitlab/ui';
|
|
1
|
+
import { GlAvatar, GlIcon, GlAnimatedLoaderIcon, GlButton, GlSafeHtmlDirective, GlTooltipDirective } from '@gitlab/ui';
|
|
2
2
|
import { translate, translatePlural, sprintf } from '@gitlab/ui/dist/utils/i18n';
|
|
3
3
|
import throttle from 'lodash/throttle';
|
|
4
4
|
import DuoChatContextItemSelections from '../duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections';
|
|
@@ -26,6 +26,7 @@ var script = {
|
|
|
26
26
|
ADD_TAGS: ['copy-code', 'insert-code-snippet']
|
|
27
27
|
},
|
|
28
28
|
components: {
|
|
29
|
+
GlAvatar,
|
|
29
30
|
DocumentationSources,
|
|
30
31
|
DuoChatContextItemSelections,
|
|
31
32
|
MessageFeedback,
|
|
@@ -52,6 +53,10 @@ var script = {
|
|
|
52
53
|
renderMarkdown: {
|
|
53
54
|
from: 'renderMarkdown',
|
|
54
55
|
default: () => renderDuoChatMarkdownPreview
|
|
56
|
+
},
|
|
57
|
+
avatarUrl: {
|
|
58
|
+
from: 'avatarUrl',
|
|
59
|
+
default: () => ''
|
|
55
60
|
}
|
|
56
61
|
},
|
|
57
62
|
props: {
|
|
@@ -285,10 +290,10 @@ const __vue_script__ = script;
|
|
|
285
290
|
/* template */
|
|
286
291
|
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-flex gl-flex-row gl-items-end duo-chat-message-container",on:{"mouseenter":function($event){_vm.hovered = true;},"mouseleave":function($event){_vm.hovered = false;
|
|
287
292
|
_vm.copied = false;}}},[(_vm.isAssistantMessage || _vm.isUserMessage)?[_c('div',{staticClass:"duo-chat-message gl-leading-20 gl-break-anywhere md gl-w-full",class:{
|
|
288
|
-
'gl-ml-auto gl-
|
|
293
|
+
'gl-ml-auto gl-p-3 gl-bg-feedback-info gl-text-feedback-info': _vm.isUserMessage,
|
|
289
294
|
'gl-text-default': _vm.isAssistantMessage && !_vm.error,
|
|
290
295
|
'duo-chat-message-with-error gl-bg-feedback-danger gl-p-3': _vm.error,
|
|
291
|
-
},on:{"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet}},[(_vm.showA11yFromText)?_c('div',{staticClass:"gl-sr-only"},[_vm._v("\n "+_vm._s(_vm.isUserMessage ? _vm.$options.i18n.FROM_ME : _vm.$options.i18n.FROM_DUO)+"\n ")]):_vm._e(),_vm._v(" "),_c('div',{ref:"content-wrapper",class:{ 'has-error': _vm.error }},[(_vm.displaySelectedContextItems && _vm.isAssistantMessage)?_c('duo-chat-context-item-selections',{attrs:{"selections":_vm.selectedContextItems,"title":_vm.selectedContextItemsTitle,"default-collapsed":_vm.selectedContextItemsDefaultCollapsed,"variant":"assistant"},on:{"get-content":_vm.onGetContextItemContent}}):_vm._e(),_vm._v(" "),(_vm.error)?_c('div',{staticClass:"gl-flex"},[(_vm.error)?_c('gl-icon',{staticClass:"error-icon gl-mr-3 gl-mt-1 gl-shrink-0 gl-text-danger",attrs:{"aria-label":_vm.$options.i18n.MESSAGE_ERROR,"name":"error","size":16,"data-testid":"error"}}):_vm._e(),_vm._v(" "),_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html:[$options.safeHtmlConfigExtension]",value:(_vm.renderedError),expression:"renderedError",arg:_vm.$options.safeHtmlConfigExtension}],ref:"error-message"})],1):_c('div',[_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html:[$options.safeHtmlConfigExtension]",value:(_vm.messageContent),expression:"messageContent",arg:_vm.$options.safeHtmlConfigExtension}],ref:"content"}),_vm._v(" "),(_vm.isAssistantMessage)?[(_vm.sources)?_c('documentation-sources',{attrs:{"sources":_vm.sources}}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"duo-chat-message-feedback gl-mt-4 gl-flex gl-items-end"},[(_vm.isChunkAndNotCancelled)?_c('gl-animated-loader-icon',{attrs:{"is-on":true}}):_vm._e(),_vm._v(" "),(_vm.shouldShowFeedbackLink)?_c('message-feedback',{attrs:{"has-feedback":_vm.hasFeedback},on:{"feedback":_vm.logEvent}}):_vm._e()],1)]:_vm._e()],2),_vm._v(" "),(_vm.displaySelectedContextItems && _vm.isUserMessage)?_c('duo-chat-context-item-selections',{attrs:{"selections":_vm.selectedContextItems,"title":_vm.selectedContextItemsTitle,"default-collapsed":_vm.selectedContextItemsDefaultCollapsed,"variant":"user"},on:{"get-content":_vm.onGetContextItemContent}}):_vm._e()],1)]),_vm._v(" "),_c('transition',{attrs:{"name":"duo-chat-message-actions"}},[(_vm.shouldShowCopyAction)?_c('div',{staticClass:"gl-bg-subtle duo-chat-message-actions gl-rounded-tr-lg gl-rounded-br-lg"},[_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip.hover",modifiers:{"hover":true}}],class:{ '!gl-text-success': _vm.copied },attrs:{"title":_vm.copied ? _vm.$options.i18n.CHAT_MESSAGE_COPIED : _vm.$options.i18n.CHAT_MESSAGE_COPY,"icon":_vm.copied ? 'check-circle-filled' : 'copy-to-clipboard',"category":"tertiary"},on:{"click":_vm.copyMessage}})],1):_vm._e()])]:_c('message-map',{attrs:{"message":_vm.message,"with-feedback":_vm.withFeedback,"data-testid":"workflow-message"},on:{"open-file-path":_vm.onOpenFilePath,"feedback":_vm.logEvent,"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet}})],2)};
|
|
296
|
+
},on:{"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet}},[(_vm.showA11yFromText)?_c('div',{staticClass:"gl-sr-only"},[_vm._v("\n "+_vm._s(_vm.isUserMessage ? _vm.$options.i18n.FROM_ME : _vm.$options.i18n.FROM_DUO)+"\n ")]):_vm._e(),_vm._v(" "),_c('div',{ref:"content-wrapper",class:{ 'has-error': _vm.error }},[(_vm.displaySelectedContextItems && _vm.isAssistantMessage)?_c('duo-chat-context-item-selections',{attrs:{"selections":_vm.selectedContextItems,"title":_vm.selectedContextItemsTitle,"default-collapsed":_vm.selectedContextItemsDefaultCollapsed,"variant":"assistant"},on:{"get-content":_vm.onGetContextItemContent}}):_vm._e(),_vm._v(" "),(_vm.error)?_c('div',{staticClass:"gl-flex"},[(_vm.error)?_c('gl-icon',{staticClass:"error-icon gl-mr-3 gl-mt-1 gl-shrink-0 gl-text-danger",attrs:{"aria-label":_vm.$options.i18n.MESSAGE_ERROR,"name":"error","size":16,"data-testid":"error"}}):_vm._e(),_vm._v(" "),_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html:[$options.safeHtmlConfigExtension]",value:(_vm.renderedError),expression:"renderedError",arg:_vm.$options.safeHtmlConfigExtension}],ref:"error-message"})],1):_c('div',[_c('div',{staticClass:"gl-flex"},[(_vm.isUserMessage)?_c('gl-avatar',{staticClass:"gl-mr-3 gl-mt-1",attrs:{"size":16,"entity-name":"User","src":_vm.avatarUrl}}):_vm._e(),_vm._v(" "),_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html:[$options.safeHtmlConfigExtension]",value:(_vm.messageContent),expression:"messageContent",arg:_vm.$options.safeHtmlConfigExtension}],ref:"content"})],1),_vm._v(" "),(_vm.isAssistantMessage)?[(_vm.sources)?_c('documentation-sources',{attrs:{"sources":_vm.sources}}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"duo-chat-message-feedback gl-mt-4 gl-flex gl-items-end"},[(_vm.isChunkAndNotCancelled)?_c('gl-animated-loader-icon',{attrs:{"is-on":true}}):_vm._e(),_vm._v(" "),(_vm.shouldShowFeedbackLink)?_c('message-feedback',{attrs:{"has-feedback":_vm.hasFeedback},on:{"feedback":_vm.logEvent}}):_vm._e()],1)]:_vm._e()],2),_vm._v(" "),(_vm.displaySelectedContextItems && _vm.isUserMessage)?_c('duo-chat-context-item-selections',{attrs:{"selections":_vm.selectedContextItems,"title":_vm.selectedContextItemsTitle,"default-collapsed":_vm.selectedContextItemsDefaultCollapsed,"variant":"user"},on:{"get-content":_vm.onGetContextItemContent}}):_vm._e()],1)]),_vm._v(" "),_c('transition',{attrs:{"name":"duo-chat-message-actions"}},[(_vm.shouldShowCopyAction)?_c('div',{staticClass:"gl-bg-subtle duo-chat-message-actions gl-rounded-tr-lg gl-rounded-br-lg"},[_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip.hover",modifiers:{"hover":true}}],class:{ '!gl-text-success': _vm.copied },attrs:{"title":_vm.copied ? _vm.$options.i18n.CHAT_MESSAGE_COPIED : _vm.$options.i18n.CHAT_MESSAGE_COPY,"icon":_vm.copied ? 'check-circle-filled' : 'copy-to-clipboard',"category":"tertiary"},on:{"click":_vm.copyMessage}})],1):_vm._e()])]:_c('message-map',{attrs:{"message":_vm.message,"with-feedback":_vm.withFeedback,"data-testid":"workflow-message"},on:{"open-file-path":_vm.onOpenFilePath,"feedback":_vm.logEvent,"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet}})],2)};
|
|
292
297
|
var __vue_staticRenderFns__ = [];
|
|
293
298
|
|
|
294
299
|
/* style */
|
|
@@ -71,7 +71,7 @@ var script = {
|
|
|
71
71
|
const __vue_script__ = script;
|
|
72
72
|
|
|
73
73
|
/* template */
|
|
74
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"duo-chat-message gl-
|
|
74
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"duo-chat-message gl-leading-20 gl-break-anywhere",class:{
|
|
75
75
|
'gl-flex gl-items-top': _vm.hasError,
|
|
76
76
|
}},[(_vm.hasError)?_c('gl-icon',{staticClass:"error-icon gl-border gl-mr-3 gl-mt-2 gl-shrink-0 gl-rounded-full gl-border-red-500 gl-text-red-600",attrs:{"name":"status_warning_borderless","size":16,"data-testid":"error"}}):_vm._e(),_vm._v(" "),_c('div',{ref:"content-wrapper",class:{ 'has-error': _vm.hasError }},[(_vm.hasError)?_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html",value:(_vm.renderedError),expression:"renderedError"}],ref:"error-message"}):_c('div',[_vm._t("message",function(){return [_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html",value:(_vm.messageContent),expression:"messageContent"}],ref:"content"})]},null,{ content: _vm.message.content, htmlContent: _vm.messageContent })],2)])],1)};
|
|
77
77
|
var __vue_staticRenderFns__ = [];
|
package/dist/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.js
CHANGED
|
@@ -118,7 +118,7 @@ var script = {
|
|
|
118
118
|
const __vue_script__ = script;
|
|
119
119
|
|
|
120
120
|
/* template */
|
|
121
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-border gl-border-transparent gl-p-4 gl-leading-20 gl-break-anywhere md gl-rounded-bl-none gl-border-1 gl-border-solid gl-
|
|
121
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-border gl-border-transparent gl-p-4 gl-leading-20 gl-break-anywhere md gl-rounded-bl-none gl-border-1 gl-border-solid gl-text-default gl-bg-subtle"},[_c('p',{staticClass:"gl-text-gray-700 gl-mb-3"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.TOOL_APPROVAL_TITLE)+"\n ")]),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-items-center gl-gap-2 gl-mb-3"},[_c('gl-icon',{staticClass:"gl-text-gray-500",attrs:{"name":"work-item-maintenance"}}),_vm._v(" "),_c('strong',[_vm._v(_vm._s(_vm.toolName))])],1),_vm._v(" "),_c('div',{staticClass:"gl-border gl-border-gray-200 gl-rounded-base gl-bg-gray-50 gl-p-3 gl-mb-4"},[_c('p',{staticClass:"gl-text-sm gl-text-gray-500 gl-mb-1"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.REQUEST_TEXT)+"\n ")]),_vm._v(" "),(_vm.hasToolParameters)?_c('code',{staticClass:"gl-text-sm gl-font-monospace gl-whitespace-pre-wrap gl-text-default",attrs:{"data-testid":"tool-parameters"}},[_vm._v(_vm._s(JSON.stringify(_vm.toolParameters, null, 2)))]):_c('span',{staticClass:"gl-text-sm gl-text-gray-500",attrs:{"data-testid":"no-parameters-message"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.NO_PARAMETERS_TEXT)+"\n ")])]),_vm._v(" "),(!_vm.showDenialReason)?_c('div',{staticClass:"gl-flex gl-justify-between"},[_c('gl-button',{attrs:{"variant":"danger","size":"small","icon":"cancel","data-testid":"deny-tool-inline","disabled":_vm.buttonsDisabled,"loading":_vm.isDenying},on:{"click":_vm.handleDeny}},[_vm._v("\n "+_vm._s(_vm.denyButtonText)+"\n ")]),_vm._v(" "),_c('gl-button',{attrs:{"variant":"confirm","size":"small","icon":"play","data-testid":"approve-tool-inline","disabled":_vm.buttonsDisabled,"loading":_vm.isApproving},on:{"click":_vm.handleApprove}},[_vm._v("\n "+_vm._s(_vm.approveButtonText)+"\n ")])],1):_c('div',{staticClass:"gl-mt-3"},[_c('gl-form-group',{staticClass:"gl-mb-3",attrs:{"label":_vm.$options.i18n.DENIAL_REASON_LABEL,"label-for":"inline-rejection-reason","optional":true}},[_c('gl-form-textarea',{attrs:{"id":"inline-rejection-reason","placeholder":_vm.$options.i18n.DENIAL_REASON_PLACEHOLDER,"rows":2,"no-resize":true,"submit-on-enter":false,"disabled":_vm.buttonsDisabled,"data-testid":"denial-reason-textarea","autofocus":""},on:{"submit":_vm.submitDenial},model:{value:(_vm.denialReason),callback:function ($$v) {_vm.denialReason=$$v;},expression:"denialReason"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-gap-3"},[_c('gl-button',{attrs:{"size":"small","data-testid":"cancel-denial","disabled":_vm.buttonsDisabled},on:{"click":_vm.cancelDenial}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CANCEL_TEXT)+"\n ")]),_vm._v(" "),_c('gl-button',{attrs:{"variant":"danger","size":"small","icon":"cancel","data-testid":"submit-denial","disabled":_vm.buttonsDisabled,"loading":_vm.isDenying},on:{"click":_vm.submitDenial}},[_vm._v("\n "+_vm._s(_vm.denyButtonText)+"\n ")])],1)],1)])};
|
|
122
122
|
var __vue_staticRenderFns__ = [];
|
|
123
123
|
|
|
124
124
|
/* style */
|
|
@@ -30,8 +30,9 @@ var script = {
|
|
|
30
30
|
if (!this.hasThreads) {
|
|
31
31
|
return {};
|
|
32
32
|
}
|
|
33
|
-
return this.threads.slice().sort((a, b) => this.compareThreadDates(b.lastUpdatedAt, a.lastUpdatedAt)).reduce((grouped, thread) => {
|
|
34
|
-
const
|
|
33
|
+
return this.threads.slice().sort((a, b) => this.compareThreadDates(b.updatedAt, a.updatedAt)).sort((a, b) => this.compareThreadDates(b.lastUpdatedAt, a.lastUpdatedAt)).reduce((grouped, thread) => {
|
|
34
|
+
const dateField = thread.updatedAt || thread.lastUpdatedAt;
|
|
35
|
+
const dateKey = this.getDateKey(dateField);
|
|
35
36
|
return {
|
|
36
37
|
...grouped,
|
|
37
38
|
[dateKey]: [...(grouped[dateKey] || []), thread]
|
|
@@ -75,7 +76,9 @@ var script = {
|
|
|
75
76
|
const __vue_script__ = script;
|
|
76
77
|
|
|
77
78
|
/* template */
|
|
78
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-p-5"},[_c('div',{staticClass:"gl-bg-gray-50 gl-text-gray-500 gl-p-4 gl-mb-5 gl-rounded-base",attrs:{"data-testid":"chat-threads-info-banner"}},[_c('p',{staticClass:"gl-m-0 gl-flex"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_HISTORY_INFO)+"\n ")])]),_vm._v(" "),(_vm.hasThreads)?_vm._l((_vm.groupedThreads),function(threadsForDate,date){return _c('div',{key:date},[_c('div',{staticClass:"gl-font-bold gl-neutral-900 gl-my-4",attrs:{"data-testid":"chat-threads-date-header"}},[_vm._v("\n "+_vm._s(_vm.formattedLocalDate(date))+"\n ")]),_vm._v(" "),_c('div',_vm._l((threadsForDate),function(thread){return _c('div',{key:thread.id,staticClass:"gl-flex gl-align-center"},[_c('gl-button',{staticClass:"hover:gl-bg-gray-50 gl-text-ellipsis !gl-text-default justify-content-start gl-overflow-hidden gl-rounded-base gl-p-4 gl-w-full gl-whitespace-nowrap",attrs:{"data-testid":"chat-threads-thread-box","category":"tertiary","aria-label":_vm.sprintf(_vm.$options.i18n.OPEN_CHAT_LABEL, {
|
|
79
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-p-5"},[_c('div',{staticClass:"gl-bg-gray-50 gl-text-gray-500 gl-p-4 gl-mb-5 gl-rounded-base",attrs:{"data-testid":"chat-threads-info-banner"}},[_c('p',{staticClass:"gl-m-0 gl-flex"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_HISTORY_INFO)+"\n ")])]),_vm._v(" "),(_vm.hasThreads)?_vm._l((_vm.groupedThreads),function(threadsForDate,date){return _c('div',{key:date},[_c('div',{staticClass:"gl-font-bold gl-neutral-900 gl-my-4",attrs:{"data-testid":"chat-threads-date-header"}},[_vm._v("\n "+_vm._s(_vm.formattedLocalDate(date))+"\n ")]),_vm._v(" "),_c('div',_vm._l((threadsForDate),function(thread){return _c('div',{key:thread.id,staticClass:"gl-flex gl-align-center"},[_c('gl-button',{staticClass:"hover:gl-bg-gray-50 gl-text-ellipsis !gl-text-default justify-content-start gl-overflow-hidden gl-rounded-base gl-p-4 gl-w-full gl-whitespace-nowrap",attrs:{"data-testid":"chat-threads-thread-box","category":"tertiary","aria-label":_vm.sprintf(_vm.$options.i18n.OPEN_CHAT_LABEL, {
|
|
80
|
+
title: thread.title || thread.goal || 'Untitled Chat',
|
|
81
|
+
})},on:{"click":function($event){return _vm.onSelectThread(thread)}}},[_vm._v("\n "+_vm._s(thread.title || thread.goal || 'Untitled Chat')+"\n ")]),_vm._v(" "),_c('gl-button',{staticClass:"gl-neutral-900 !gl-px-3",attrs:{"data-testid":"chat-threads-delete-thread-button","icon":"remove","category":"tertiary","size":"small","title":_vm.$options.i18n.THREAD_DELETE_LABEL,"aria-label":_vm.$options.i18n.THREAD_DELETE_LABEL},on:{"click":function($event){return _vm.$emit('delete-thread', thread.id)}}})],1)}),0)])}):_c('duo-chat-threads-empty')],2)};
|
|
79
82
|
var __vue_staticRenderFns__ = [];
|
|
80
83
|
|
|
81
84
|
/* style */
|
|
@@ -630,7 +630,7 @@ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=
|
|
|
630
630
|
},attrs:{"width":_vm.shouldRenderResizable ? _vm.dimensions.width : null,"height":_vm.shouldRenderResizable ? _vm.dimensions.height : null,"max-width":_vm.shouldRenderResizable ? _vm.dimensions.maxWidth : null,"max-height":_vm.shouldRenderResizable ? _vm.dimensions.maxHeight : null,"min-width":_vm.shouldRenderResizable ? _vm.dimensions.minWidth : null,"left":_vm.shouldRenderResizable ? _vm.dimensions.left : null,"top":_vm.shouldRenderResizable ? _vm.dimensions.top : null,"fit-parent":true,"min-height":_vm.shouldRenderResizable ? _vm.dimensions.minHeight : null,"active":_vm.shouldRenderResizable ? ['l', 't', 'lt'] : null},on:{"resize:end":_vm.updateSize}},[(!_vm.isHidden)?_c('aside',{staticClass:"markdown-code-block duo-chat gl-bottom-0 gl-max-h-full gl-flex gl-flex-col",class:{
|
|
631
631
|
'resizable-content': _vm.shouldRenderResizable,
|
|
632
632
|
'duo-chat-drawer': !_vm.shouldRenderResizable,
|
|
633
|
-
},attrs:{"id":"chat-component","role":"complementary","data-testid":"chat-component"}},[(_vm.showHeader)?_c('duo-chat-header',{ref:"header",attrs:{"active-thread-id":_vm.activeThreadId,"title":_vm.isMultithreaded && _vm.currentView === 'list' ? _vm.$options.i18n.CHAT_HISTORY_TITLE : _vm.title,"subtitle":_vm.activeThreadTitleForView,"is-multithreaded":_vm.isMultithreaded,"current-view":_vm.currentView,"should-render-resizable":_vm.shouldRenderResizable,"badge-type":_vm.isMultithreaded ? null : _vm.badgeType},on:{"go-back":_vm.onGoBack,"go-back-to-chat":_vm.onGoBackToChat,"new-chat":_vm.onNewChat,"close":_vm.hideChat},scopedSlots:_vm._u([{key:"subheader",fn:function(){return [_vm._t("subheader")]},proxy:true}],null,true)}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"gl-overflow-y-auto gl-flex gl-flex-col gl-flex-1 gl-flex-grow gl-bg-inherit gl-overscroll-contain",attrs:{"data-testid":"chat-history"},on:{"scroll":_vm.handleScrollingThrottled}},[(_vm.shouldShowThreadList)?_c('duo-chat-threads',{attrs:{"threads":_vm.threadList,"preferred-locale":_vm.preferredLocale},on:{"new-chat":_vm.onNewChat,"select-thread":_vm.onSelectThread,"delete-thread":_vm.onDeleteThread,"close":_vm.hideChat}}):_c('transition-group',{staticClass:"duo-chat-history gl-p-5 gl-mt-auto",attrs:{"mode":"out-in","tag":"section","name":"message"}},[_vm._l((_vm.conversations),function(conversation,index){return _c('duo-chat-conversation',{key:("conversation-" + index),attrs:{"enable-code-insertion":_vm.enableCodeInsertion,"messages":conversation,"canceled-request-ids":_vm.canceledRequestIds,"show-delimiter":index > 0,"trusted-urls":_vm.trustedUrls},on:{"track-feedback":_vm.onTrackFeedback,"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet,"copy-message":_vm.onCopyMessage,"get-context-item-content":_vm.onGetContextItemContent,"open-file-path":_vm.onOpenFilePath}})}),_vm._v(" "),(!_vm.hasMessages && !_vm.isLoading)?[_c('div',{key:"empty-state-message",staticClass:"duo-chat-message gl-rounded-bl-none gl-
|
|
633
|
+
},attrs:{"id":"chat-component","role":"complementary","data-testid":"chat-component"}},[(_vm.showHeader)?_c('duo-chat-header',{ref:"header",attrs:{"active-thread-id":_vm.activeThreadId,"title":_vm.isMultithreaded && _vm.currentView === 'list' ? _vm.$options.i18n.CHAT_HISTORY_TITLE : _vm.title,"subtitle":_vm.activeThreadTitleForView,"is-multithreaded":_vm.isMultithreaded,"current-view":_vm.currentView,"should-render-resizable":_vm.shouldRenderResizable,"badge-type":_vm.isMultithreaded ? null : _vm.badgeType},on:{"go-back":_vm.onGoBack,"go-back-to-chat":_vm.onGoBackToChat,"new-chat":_vm.onNewChat,"close":_vm.hideChat},scopedSlots:_vm._u([{key:"subheader",fn:function(){return [_vm._t("subheader")]},proxy:true}],null,true)}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"gl-overflow-y-auto gl-flex gl-flex-col gl-flex-1 gl-flex-grow gl-bg-inherit gl-overscroll-contain",attrs:{"data-testid":"chat-history"},on:{"scroll":_vm.handleScrollingThrottled}},[(_vm.shouldShowThreadList)?_c('duo-chat-threads',{attrs:{"threads":_vm.threadList,"preferred-locale":_vm.preferredLocale},on:{"new-chat":_vm.onNewChat,"select-thread":_vm.onSelectThread,"delete-thread":_vm.onDeleteThread,"close":_vm.hideChat}}):_c('transition-group',{staticClass:"duo-chat-history gl-p-5 gl-mt-auto",attrs:{"mode":"out-in","tag":"section","name":"message"}},[_vm._l((_vm.conversations),function(conversation,index){return _c('duo-chat-conversation',{key:("conversation-" + index),attrs:{"enable-code-insertion":_vm.enableCodeInsertion,"messages":conversation,"canceled-request-ids":_vm.canceledRequestIds,"show-delimiter":index > 0,"trusted-urls":_vm.trustedUrls},on:{"track-feedback":_vm.onTrackFeedback,"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet,"copy-message":_vm.onCopyMessage,"get-context-item-content":_vm.onGetContextItemContent,"open-file-path":_vm.onOpenFilePath}})}),_vm._v(" "),(!_vm.hasMessages && !_vm.isLoading)?[_c('div',{key:"empty-state-message",staticClass:"duo-chat-message gl-rounded-bl-none gl-p-4 gl-leading-20 gl-text-gray-900 gl-break-anywhere",attrs:{"data-testid":"gl-duo-chat-empty-state"}},[(_vm.emptyStateTitle)?_c('p',{staticClass:"gl-m-0",attrs:{"data-testid":"gl-duo-chat-empty-state-title"}},[_vm._v("\n "+_vm._s(_vm.emptyStateTitle)+"\n ")]):_vm._e(),_vm._v(" "),_c('duo-chat-predefined-prompts',{key:"predefined-prompts",attrs:{"prompts":_vm.predefinedPrompts},on:{"click":_vm.sendPredefinedPrompt}})],1)]:_vm._e(),_vm._v(" "),(_vm.isLoading)?_c('duo-chat-loader',{key:"loader",attrs:{"tool-name":_vm.toolName}}):_vm._e(),_vm._v(" "),_c('div',{key:"anchor",ref:"anchor",staticClass:"scroll-anchor"})],2)],1),_vm._v(" "),(_vm.isChatAvailable && !_vm.shouldShowThreadList)?_c('footer',{staticClass:"duo-chat-drawer-footer gl-border-0 gl-bg-default gl-pb-3 gl-shrink-0 gl-relative gl-z-2",class:{ 'duo-chat-drawer-body-scrim-on-footer': !_vm.scrolledToBottom },attrs:{"data-testid":"chat-footer"}},[_c('gl-form',{attrs:{"data-testid":"chat-prompt-form"},on:{"submit":function($event){$event.stopPropagation();$event.preventDefault();return _vm.sendChatPrompt.apply(null, arguments)}}},[_c('div',{staticClass:"gl-relative gl-max-w-full"},[_vm._t("context-items-menu",null,{"isOpen":_vm.contextItemsMenuIsOpen,"onClose":_vm.closeContextItemsMenuOpen,"setRef":_vm.setContextItemsMenuRef,"focusPrompt":_vm.focusChatInput})],2),_vm._v(" "),_c('gl-form-input-group',{scopedSlots:_vm._u([{key:"append",fn:function(){return [(_vm.displaySubmitButton)?_c('gl-button',{staticClass:"!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full",attrs:{"icon":"paper-airplane","category":"primary","variant":"confirm","type":"submit","data-testid":"chat-prompt-submit-button","aria-label":_vm.$options.i18n.CHAT_SUBMIT_LABEL}}):_c('gl-button',{staticClass:"!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full",attrs:{"icon":"stop","category":"primary","variant":"default","data-testid":"chat-prompt-cancel-button","aria-label":_vm.$options.i18n.CHAT_CANCEL_LABEL},on:{"click":_vm.cancelPrompt}})]},proxy:true}],null,false,608602988)},[_c('div',{staticClass:"duo-chat-input gl-min-h-8 gl-max-w-full gl-grow gl-align-top",attrs:{"data-value":_vm.prompt}},[(_vm.shouldShowSlashCommands)?_c('gl-card',{ref:"commands",staticClass:"slash-commands !gl-absolute gl-w-full -gl-translate-y-full gl-list-none gl-pl-0 gl-shadow-md",attrs:{"body-class":"!gl-p-2"}},_vm._l((_vm.filteredSlashCommands),function(command,index){return _c('gl-dropdown-item',{key:command.name,class:{ 'active-command': index === _vm.activeCommandIndex },on:{"click":function($event){return _vm.selectSlashCommand(index)}},nativeOn:{"mouseenter":function($event){_vm.activeCommandIndex = index;}}},[_c('span',{staticClass:"gl-flex gl-justify-between"},[_c('span',{staticClass:"gl-block"},[_vm._v(_vm._s(command.name))]),_vm._v(" "),_c('small',{staticClass:"gl-pl-3 gl-text-right gl-italic gl-text-subtle"},[_vm._v(_vm._s(command.description))])])])}),1):_vm._e(),_vm._v(" "),_c('gl-form-textarea',{ref:"prompt",staticClass:"gl-absolute !gl-h-full gl-rounded-br-none gl-rounded-tr-none !gl-bg-transparent !gl-py-4 !gl-shadow-none",class:{ 'gl-truncate': !_vm.prompt },attrs:{"data-testid":"chat-prompt-input","placeholder":_vm.inputPlaceholder,"autofocus":""},on:{"compositionend":_vm.compositionEnd},nativeOn:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();},"keyup":function($event){return _vm.onInputKeyup.apply(null, arguments)}},model:{value:(_vm.prompt),callback:function ($$v) {_vm.prompt=$$v;},expression:"prompt"}})],1)])],1),_vm._v(" "),_vm._t("footer-controls"),_vm._v(" "),_c('p',{staticClass:"gl-mb-0 gl-mt-3 gl-px-4 gl-text-sm gl-text-secondary"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_DISCLAMER)+"\n ")])],2):_vm._e()],1):_vm._e()])};
|
|
634
634
|
var __vue_staticRenderFns__ = [];
|
|
635
635
|
|
|
636
636
|
/* style */
|
|
@@ -236,8 +236,8 @@ function generateMockResponseChunks() {
|
|
|
236
236
|
const MOCK_USER_PROMPT_MESSAGE = {
|
|
237
237
|
id: '456',
|
|
238
238
|
chunkId: null,
|
|
239
|
-
content: '
|
|
240
|
-
contentHtml: '<p>
|
|
239
|
+
content: 'Help me write a simple python function to calculate a factorial of a number.',
|
|
240
|
+
contentHtml: '<p>Help me write a simple python function to calculate a factorial of a number.</p>',
|
|
241
241
|
role: MESSAGE_MODEL_ROLES.user,
|
|
242
242
|
requestId: '987',
|
|
243
243
|
errors: [],
|
|
@@ -346,5 +346,116 @@ const THREADLIST = [{
|
|
|
346
346
|
conversationType: 'DUO_CHAT',
|
|
347
347
|
title: 'Before the Configuration Committee'
|
|
348
348
|
}];
|
|
349
|
+
const AGENTIC_THREADLIST = [{
|
|
350
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1031434',
|
|
351
|
+
projectId: 'gid://gitlab/Project/62039593',
|
|
352
|
+
humanStatus: 'input required',
|
|
353
|
+
updatedAt: '2025-01-24T19:27:15Z',
|
|
354
|
+
goal: 'Help me migrate the legacy duo_chat_component to the modern tech stack of the current project. If there are ways to simplify it (remove unnecessary CSS, functionality, etc) and rely more on the default shadcn-ui components, please suggest those simplifications. If you need to install any shadcn-ui component, feel free to do so',
|
|
355
|
+
stalled: false,
|
|
356
|
+
archived: false,
|
|
357
|
+
firstCheckpoint: {
|
|
358
|
+
checkpoint: '{"v":3,"id":"1f0659ae-d2f8-6230-bfff-fea961e0365f","ts":"2025-07-20T18:54:12.716786+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":62039593,"name":"Duo UI","web_url":"https://gitlab.com/gitlab-org/duo-ui","languages":[{"name":"JavaScript","share":72.16},{"name":"Vue","share":22.06},{"name":"SCSS","share":2.68},{"name":"Ruby","share":1.54},{"name":"TypeScript","share":0.6}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"Help me migrate the legacy duo_chat_component to the modern tech stack of the current project. If there are ways to simplify it (remove unnecessary CSS, functionality, etc) and rely more on the default shadcn-ui components, please suggest those simplifications. If you need to install any shadcn-ui component, feel free to do so","timestamp":"2025-07-20T18:54:12.429236+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"1","type":"AdditionalContext","content":"The user wants you to adhere to these rules:\\nThe project is built with Vue 3, Typescript, Tailwind, shadcn-vue and other modern technologies.\\n\\nFor some transient time, this project is used to migrate legacy Vue 2 + JS + gitlab-ui components to the new tech stack. While migrating components all of the gitlab-ui components should be replaced with the shadcn-ui analogues or explicitly agreed with the user. If you see any better analogue in shadcn-ui or better way to implement functionality, speak up and ask for user\'s confirmation on what path to take.\\n\\nEvery component should have a story and a test spec alongside itself.","category":"user_rule","metadata":{"icon":"user","title":"User instruction","enabled":true,"subType":"user_rule","subTypeLabel":"User instruction","secondaryText":"chat-rules.md"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"Help me migrate the legacy duo_chat_component to the modern tech stack of the current project. If there are ways to simplify it (remove unnecessary CSS, functionality, etc) and rely more on the default shadcn-ui components, please suggest those simplifications. If you need to install any shadcn-ui component, feel free to do so","example":false,"additional_kwargs":{"additional_context":[{"id":"1","content":"The user wants you to adhere to these rules:\\nThe project is built with Vue 3, Typescript, Tailwind, shadcn-vue and other modern technologies.\\n\\nFor some transient time, this project is used to migrate legacy Vue 2 + JS + gitlab-ui components to the new tech stack. While migrating components all of the gitlab-ui components should be replaced with the shadcn-ui analogues or explicitly agreed with the user. If you see any better analogue in shadcn-ui or better way to implement functionality, speak up and ask for user\'s confirmation on what path to take.\\n\\nEvery component should have a story and a test spec alongside itself.","category":"user_rule","metadata":{"icon":"user","title":"User instruction","enabled":true,"subType":"user_rule","subTypeLabel":"User instruction","secondaryText":"chat-rules.md"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
359
|
+
}
|
|
360
|
+
}, {
|
|
361
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1031775',
|
|
362
|
+
projectId: 'gid://gitlab/Project/278964',
|
|
363
|
+
humanStatus: 'input required',
|
|
364
|
+
updatedAt: '2025-01-31T12:20:31Z',
|
|
365
|
+
goal: 'I have the following data structure: "edges": [\n {\n "node": {\n "id": "gid://gitlab/Ai::DuoWorkflows::Workflow/1031434",\n "projectId": "gid://gitlab/Project/62039593",\n "humanStatus": "input required",\n "updatedAt": "2025-07-20T19:27:15Z",\n "createdAt": "2025-07-20T18:51:44Z",\n "goal": "Hel",\n "stalled": false,\n "archived": false\n }\n },\n {\n "node": {\n "id": "gid://gitlab/Ai::DuoWorkflows::Workflow/1031206",\n "projectId": "gid://gitlab/Project/62039593",\n "humanStatus": "input required",\n "updatedAt": "2025-07-19T12:20:31Z",\n "createdAt": "2025-07-19T12:15:49Z",\n "goal": "Hel",\n "stalled": false,\n "archived": false\n }\n },]\n\nHow can I "unwrap" nodes so that, let\'s say a constant `nodes` would contain an array of nodes like: [\n {\n "id": "gid://gitlab/Ai::DuoWorkflows::Workflow/1031434",\n "projectId": "gid://gitlab/Project/62039593",\n "humanStatus": "input required",\n "updatedAt": "2025-07-20T19:27:15Z",\n "createdAt": "2025-07-20T18:51:44Z",\n "goal": "Hel",\n "stalled": false,\n "archived": false\n },\n {\n "id": "gid://gitlab/Ai::DuoWorkflows::Workflow/1031206",\n "projectId": "gid://gitlab/Project/62039593",\n "humanStatus": "input required",\n "updatedAt": "2025-07-19T12:20:31Z",\n "createdAt": "2025-07-19T12:15:49Z",\n "goal": "Hel",\n "stalled": false,\n "archived": false\n },]?',
|
|
366
|
+
stalled: false,
|
|
367
|
+
archived: false,
|
|
368
|
+
firstCheckpoint: {
|
|
369
|
+
checkpoint: '{"v":3,"id":"1f0660ac-f31d-611f-bfff-989cc966f3d3","ts":"2025-07-21T08:15:06.033987+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":278964,"name":"GitLab","web_url":"https://gitlab.com/gitlab-org/gitlab","languages":[{"name":"Ruby","share":68.37},{"name":"JavaScript","share":19.23},{"name":"Vue","share":8.04},{"name":"PLpgSQL","share":1.86},{"name":"Haml","share":1.22}],"description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"I have the following data structure: \\"edges\\": [\\n {\\n \\"node\\": {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031434\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-20T19:27:15Z\\",\\n \\"createdAt\\": \\"2025-07-20T18:51:44Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n }\\n },\\n {\\n \\"node\\": {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031206\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-19T12:20:31Z\\",\\n \\"createdAt\\": \\"2025-07-19T12:15:49Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n }\\n },]\\n\\nHow can I \\"unwrap\\" nodes so that, let\'s say a constant `nodes` would contain an array of nodes like: [\\n {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031434\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-20T19:27:15Z\\",\\n \\"createdAt\\": \\"2025-07-20T18:51:44Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n },\\n {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031206\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-19T12:20:31Z\\",\\n \\"createdAt\\": \\"2025-07-19T12:15:49Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n },]?","timestamp":"2025-07-21T08:15:05.647932+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"I have the following data structure: \\"edges\\": [\\n {\\n \\"node\\": {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031434\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-20T19:27:15Z\\",\\n \\"createdAt\\": \\"2025-07-20T18:51:44Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n }\\n },\\n {\\n \\"node\\": {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031206\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-19T12:20:31Z\\",\\n \\"createdAt\\": \\"2025-07-19T12:15:49Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n }\\n },]\\n\\nHow can I \\"unwrap\\" nodes so that, let\'s say a constant `nodes` would contain an array of nodes like: [\\n {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031434\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-20T19:27:15Z\\",\\n \\"createdAt\\": \\"2025-07-20T18:51:44Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n },\\n {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031206\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-19T12:20:31Z\\",\\n \\"createdAt\\": \\"2025-07-19T12:15:49Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n },]?","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
370
|
+
}
|
|
371
|
+
}, {
|
|
372
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1031206',
|
|
373
|
+
projectId: 'gid://gitlab/Project/62039593',
|
|
374
|
+
humanStatus: 'input required',
|
|
375
|
+
updatedAt: '2025-01-31T08:15:32Z',
|
|
376
|
+
goal: 'Help me introduce translation support for the selected string using the Vue-18n dependency',
|
|
377
|
+
stalled: false,
|
|
378
|
+
archived: false,
|
|
379
|
+
firstCheckpoint: {
|
|
380
|
+
checkpoint: '{"v":3,"id":"1f0649a2-cee3-6c86-bfff-b35ddd3c4901","ts":"2025-07-19T12:16:19.003703+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":62039593,"name":"Duo UI","web_url":"https://gitlab.com/gitlab-org/duo-ui","languages":[{"name":"JavaScript","share":72.16},{"name":"Vue","share":22.06},{"name":"SCSS","share":2.68},{"name":"Ruby","share":1.54},{"name":"TypeScript","share":0.6}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"Help me introduce translation support for the selected string using the Vue-18n dependency","timestamp":"2025-07-19T12:16:18.708768+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"editor_selection:src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue_893edb37-6d20-4f81-83eb-2f5fbb290609","type":"AdditionalContext","content":" return count === 1 ? \'Source\' : \'Sources\';","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue","enabled":true,"subType":"snippet","fileName":"src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue","subTypeLabel":"Editor Selection","secondaryText":"src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue"}},{"id":"1","type":"AdditionalContext","content":"The user wants you to adhere to these rules:\\nThe project is built with Vue 3, Typescript, Tailwind, shadcn-vue and other modern technologies.\\n\\nFor some transient time, this project is used to migrate legacy Vue 2 + JS + gitlab-ui components to the new tech stack. While migrating components all of the gitlab-ui components should be replaced with the shadcn-ui analogues or explicitly agreed with the user. If you see any better analogue in shadcn-ui or better way to implement functionality, speak up and ask for user\'s confirmation on what path to take.\\n\\nEvery string that is meant to be output in the UI, should be translated. The package is using Vue-18 dependency for translations.\\n\\nEvery component should have a story and a test spec alongside itself.","category":"user_rule","metadata":{"icon":"user","title":"User instruction","enabled":true,"subType":"user_rule","subTypeLabel":"User instruction","secondaryText":"chat-rules.md"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"Help me introduce translation support for the selected string using the Vue-18n dependency","example":false,"additional_kwargs":{"additional_context":[{"id":"editor_selection:src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue_893edb37-6d20-4f81-83eb-2f5fbb290609","content":" return count === 1 ? \'Source\' : \'Sources\';","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue","enabled":true,"subType":"snippet","fileName":"src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue","subTypeLabel":"Editor Selection","secondaryText":"src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue"}},{"id":"1","content":"The user wants you to adhere to these rules:\\nThe project is built with Vue 3, Typescript, Tailwind, shadcn-vue and other modern technologies.\\n\\nFor some transient time, this project is used to migrate legacy Vue 2 + JS + gitlab-ui components to the new tech stack. While migrating components all of the gitlab-ui components should be replaced with the shadcn-ui analogues or explicitly agreed with the user. If you see any better analogue in shadcn-ui or better way to implement functionality, speak up and ask for user\'s confirmation on what path to take.\\n\\nEvery string that is meant to be output in the UI, should be translated. The package is using Vue-18 dependency for translations.\\n\\nEvery component should have a story and a test spec alongside itself.","category":"user_rule","metadata":{"icon":"user","title":"User instruction","enabled":true,"subType":"user_rule","subTypeLabel":"User instruction","secondaryText":"chat-rules.md"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
381
|
+
}
|
|
382
|
+
}, {
|
|
383
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1031041',
|
|
384
|
+
projectId: 'gid://gitlab/Project/62039593',
|
|
385
|
+
humanStatus: 'failed',
|
|
386
|
+
updatedAt: '2025-01-15T20:35:23Z',
|
|
387
|
+
goal: 'I need your help migrating the src/components/custom/duo_chat_message_sources folder (component, story, and the test), that were copied over from a legacy project to the tech stack used in this project. Can you help?',
|
|
388
|
+
stalled: false,
|
|
389
|
+
archived: false,
|
|
390
|
+
firstCheckpoint: {
|
|
391
|
+
checkpoint: '{"v":3,"id":"1f064155-71df-6f90-bfff-eaa94aa27ec1","ts":"2025-07-18T20:25:26.715981+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":62039593,"name":"Duo UI","web_url":"https://gitlab.com/gitlab-org/duo-ui","languages":[{"name":"JavaScript","share":72.16},{"name":"Vue","share":22.06},{"name":"SCSS","share":2.68},{"name":"Ruby","share":1.54},{"name":"TypeScript","share":0.6}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"I need your help migrating the src/components/custom/duo_chat_message_sources folder (component, story, and the test), that were copied over from a legacy project to the tech stack used in this project. Can you help?","timestamp":"2025-07-18T20:25:26.401616+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"I need your help migrating the src/components/custom/duo_chat_message_sources folder (component, story, and the test), that were copied over from a legacy project to the tech stack used in this project. Can you help?","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
392
|
+
}
|
|
393
|
+
}, {
|
|
394
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1030377',
|
|
395
|
+
projectId: 'gid://gitlab/Project/46519181',
|
|
396
|
+
humanStatus: 'input required',
|
|
397
|
+
updatedAt: '2025-01-15T12:03:06Z',
|
|
398
|
+
goal: "How should I update the CSP derectives to allow images from `https://secure.gravatar.com/avatar/`? I've tried with the selected update, but it doesn't work - I get the \"The source list for the Content Security Policy directive 'img-src' contains an invalid source: ''secure.gravatar.com''. It will be ignored.\" error. Can you help me fix this and allow images from that domain?",
|
|
399
|
+
stalled: false,
|
|
400
|
+
archived: false,
|
|
401
|
+
firstCheckpoint: {
|
|
402
|
+
checkpoint: '{"v":3,"id":"1f063cf2-1522-60d4-bfff-b222b997066b","ts":"2025-07-18T12:02:51.689588+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":46519181,"name":"GitLab Language Server","web_url":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp","languages":[{"name":"TypeScript","share":79.66},{"name":"JavaScript","share":12.25},{"name":"Vue","share":5.62},{"name":"SCSS","share":2.01},{"name":"Shell","share":0.38}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"How should I update the CSP derectives to allow images from `https://secure.gravatar.com/avatar/`? I\'ve tried with the selected update, but it doesn\'t work - I get the \\"The source list for the Content Security Policy directive \'img-src\' contains an invalid source: \'\'secure.gravatar.com\'\'. It will be ignored.\\" error. Can you help me fix this and allow images from that domain?","timestamp":"2025-07-18T12:02:51.347774+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"editor_selection:src/common/webview/html/utils/csp_builder.ts_cd5c7d74-f642-4b6f-ac74-5aacff408dd6","type":"AdditionalContext","content":" \'img-src\': [\\"\'self\'\\", \\"\'secure.gravatar.com\'\\"],","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/common/webview/html/utils/csp_builder.ts","enabled":true,"subType":"snippet","fileName":"src/common/webview/html/utils/csp_builder.ts","subTypeLabel":"Editor Selection","secondaryText":"src/common/webview/html/utils/csp_builder.ts"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"How should I update the CSP derectives to allow images from `https://secure.gravatar.com/avatar/`? I\'ve tried with the selected update, but it doesn\'t work - I get the \\"The source list for the Content Security Policy directive \'img-src\' contains an invalid source: \'\'secure.gravatar.com\'\'. It will be ignored.\\" error. Can you help me fix this and allow images from that domain?","example":false,"additional_kwargs":{"additional_context":[{"id":"editor_selection:src/common/webview/html/utils/csp_builder.ts_cd5c7d74-f642-4b6f-ac74-5aacff408dd6","content":" \'img-src\': [\\"\'self\'\\", \\"\'secure.gravatar.com\'\\"],","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/common/webview/html/utils/csp_builder.ts","enabled":true,"subType":"snippet","fileName":"src/common/webview/html/utils/csp_builder.ts","subTypeLabel":"Editor Selection","secondaryText":"src/common/webview/html/utils/csp_builder.ts"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
403
|
+
}
|
|
404
|
+
}, {
|
|
405
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1029369',
|
|
406
|
+
projectId: 'gid://gitlab/Project/7071551',
|
|
407
|
+
humanStatus: 'input required',
|
|
408
|
+
updatedAt: '2025-01-08T15:55:58Z',
|
|
409
|
+
goal: 'explain this to me',
|
|
410
|
+
stalled: false,
|
|
411
|
+
archived: false,
|
|
412
|
+
firstCheckpoint: {
|
|
413
|
+
checkpoint: '{"v":3,"id":"1f063217-75c6-6ace-bfff-9c250f04abb6","ts":"2025-07-17T15:19:43.610124+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":7071551,"name":"gitlab-ui","web_url":"https://gitlab.com/gitlab-org/gitlab-ui","languages":[{"name":"JavaScript","share":56.13},{"name":"Vue","share":19.71},{"name":"SCSS","share":15.81},{"name":"CSS","share":7.21},{"name":"Ruby","share":0.39}],"description":"Development of this project has moved to https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com.\\r\\n\\r\\nSee https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues/2035 for more information.","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"foo bar","timestamp":"2025-07-17T15:19:43.272681+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"foo bar","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
414
|
+
}
|
|
415
|
+
}, {
|
|
416
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1029334',
|
|
417
|
+
projectId: 'gid://gitlab/Project/7071551',
|
|
418
|
+
humanStatus: 'input required',
|
|
419
|
+
updatedAt: '2025-01-08T15:19:49Z',
|
|
420
|
+
goal: 'foo bar',
|
|
421
|
+
stalled: false,
|
|
422
|
+
archived: false,
|
|
423
|
+
firstCheckpoint: {
|
|
424
|
+
checkpoint: '{"v":3,"id":"1f063217-75c6-6ace-bfff-9c250f04abb6","ts":"2025-07-17T15:19:43.610124+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":7071551,"name":"gitlab-ui","web_url":"https://gitlab.com/gitlab-org/gitlab-ui","languages":[{"name":"JavaScript","share":56.13},{"name":"Vue","share":19.71},{"name":"SCSS","share":15.81},{"name":"CSS","share":7.21},{"name":"Ruby","share":0.39}],"description":"Development of this project has moved to https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com.\\r\\n\\r\\nSee https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues/2035 for more information.","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"foo bar","timestamp":"2025-07-17T15:19:43.272681+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"foo bar","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
425
|
+
}
|
|
426
|
+
}, {
|
|
427
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1029330',
|
|
428
|
+
projectId: 'gid://gitlab/Project/7071551',
|
|
429
|
+
humanStatus: 'input required',
|
|
430
|
+
updatedAt: '2025-01-08T15:17:28Z',
|
|
431
|
+
goal: 'test me',
|
|
432
|
+
stalled: false,
|
|
433
|
+
archived: false,
|
|
434
|
+
firstCheckpoint: {
|
|
435
|
+
checkpoint: '{"v":3,"id":"1f063212-2bac-68c0-bfff-fc55ae272eb1","ts":"2025-07-17T15:17:21.622232+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":7071551,"name":"gitlab-ui","web_url":"https://gitlab.com/gitlab-org/gitlab-ui","languages":[{"name":"JavaScript","share":56.13},{"name":"Vue","share":19.71},{"name":"SCSS","share":15.81},{"name":"CSS","share":7.21},{"name":"Ruby","share":0.39}],"description":"Development of this project has moved to https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com.\\r\\n\\r\\nSee https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues/2035 for more information.","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"test me","timestamp":"2025-07-17T15:17:21.275711+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"test me","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
436
|
+
}
|
|
437
|
+
}, {
|
|
438
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1028684',
|
|
439
|
+
projectId: 'gid://gitlab/Project/46519181',
|
|
440
|
+
humanStatus: 'input required',
|
|
441
|
+
updatedAt: '2025-01-08T22:16:28Z',
|
|
442
|
+
goal: 'In the `packages/lib_webview_agentic_chat/src/app/common/chat.test.js` file, help me fill out the "provides avatarUrl to the underlying components" and the "provides renderGFM to the underlying components" test placeholders based on the implementation in `packages/lib_webview_agentic_chat/src/app/common/chat.vue`',
|
|
443
|
+
stalled: false,
|
|
444
|
+
archived: false,
|
|
445
|
+
firstCheckpoint: {
|
|
446
|
+
checkpoint: '{"v":3,"id":"1f062927-1357-6124-bfff-af05cc284fdb","ts":"2025-07-16T22:15:55.256032+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":46519181,"name":"GitLab Language Server","web_url":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp","languages":[{"name":"TypeScript","share":79.68},{"name":"JavaScript","share":12.26},{"name":"Vue","share":5.33},{"name":"SCSS","share":2.26},{"name":"Shell","share":0.38}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"In the `packages/lib_webview_agentic_chat/src/app/common/chat.test.js` file, help me fill out the \\"provides avatarUrl to the underlying components\\" and the \\"provides renderGFM to the underlying components\\" test placeholders based on the implementation in `packages/lib_webview_agentic_chat/src/app/common/chat.vue`","timestamp":"2025-07-16T22:15:54.359309+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"editor_selection:packages/lib_webview_agentic_chat/src/app/common/chat.test.js_b5815a3e-099c-466d-9ef0-f48536f69ddd","type":"AdditionalContext","content":"provides renderGFM to the underlying components","category":"snippet","metadata":{"icon":"selection","title":"Selected text in packages/lib_webview_agentic_chat/src/app/common/chat.test.js","enabled":true,"subType":"snippet","fileName":"packages/lib_webview_agentic_chat/src/app/common/chat.test.js","subTypeLabel":"Editor Selection","secondaryText":"packages/lib_webview_agentic_chat/src/app/common/chat.test.js"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"In the `packages/lib_webview_agentic_chat/src/app/common/chat.test.js` file, help me fill out the \\"provides avatarUrl to the underlying components\\" and the \\"provides renderGFM to the underlying components\\" test placeholders based on the implementation in `packages/lib_webview_agentic_chat/src/app/common/chat.vue`","example":false,"additional_kwargs":{"additional_context":[{"id":"editor_selection:packages/lib_webview_agentic_chat/src/app/common/chat.test.js_b5815a3e-099c-466d-9ef0-f48536f69ddd","content":"provides renderGFM to the underlying components","category":"snippet","metadata":{"icon":"selection","title":"Selected text in packages/lib_webview_agentic_chat/src/app/common/chat.test.js","enabled":true,"subType":"snippet","fileName":"packages/lib_webview_agentic_chat/src/app/common/chat.test.js","subTypeLabel":"Editor Selection","secondaryText":"packages/lib_webview_agentic_chat/src/app/common/chat.test.js"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
447
|
+
}
|
|
448
|
+
}, {
|
|
449
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1028594',
|
|
450
|
+
projectId: 'gid://gitlab/Project/46519181',
|
|
451
|
+
humanStatus: 'tool call approval required',
|
|
452
|
+
updatedAt: '2025-01-08T20:03:24Z',
|
|
453
|
+
goal: "In the current project I need to ensure that a webview in packages/lib_webview_agentic_chat has information about `avatarUrl` of the currently logged in user. The GraphQl query to get that information is in user_service (src/common/core/services/user_service.ts). Can you help me connect that service to the webview somehow? I would need to get that information sent down to the webview as part of the `pluginToWebview` communication channel, I guess. But please analyze all the options and let's see how far we can get",
|
|
454
|
+
stalled: false,
|
|
455
|
+
archived: false,
|
|
456
|
+
firstCheckpoint: {
|
|
457
|
+
checkpoint: '{"v":3,"id":"1f0627f5-1510-677c-bfff-624b1a456de4","ts":"2025-07-16T19:59:01.311877+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":46519181,"name":"GitLab Language Server","web_url":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp","languages":[{"name":"TypeScript","share":79.68},{"name":"JavaScript","share":12.26},{"name":"Vue","share":5.33},{"name":"SCSS","share":2.26},{"name":"Shell","share":0.38}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"In the current project I need to ensure that a webview in packages/lib_webview_agentic_chat has information about `avatarUrl` of the currently logged in user. The GraphQl query to get that information is in user_service (src/common/core/services/user_service.ts). Can you help me connect that service to the webview somehow? I would need to get that information sent down to the webview as part of the `pluginToWebview` communication channel, I guess. But please analyze all the options and let\'s see how far we can get","timestamp":"2025-07-16T19:59:00.775754+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"editor_selection:src/common/core/services/user_service.ts_22d20969-dfd7-4b78-9dac-c63de2f559ea","type":"AdditionalContext","content":"DefaultUserService","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/common/core/services/user_service.ts","enabled":true,"subType":"snippet","fileName":"src/common/core/services/user_service.ts","subTypeLabel":"Editor Selection","secondaryText":"src/common/core/services/user_service.ts"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"In the current project I need to ensure that a webview in packages/lib_webview_agentic_chat has information about `avatarUrl` of the currently logged in user. The GraphQl query to get that information is in user_service (src/common/core/services/user_service.ts). Can you help me connect that service to the webview somehow? I would need to get that information sent down to the webview as part of the `pluginToWebview` communication channel, I guess. But please analyze all the options and let\'s see how far we can get","example":false,"additional_kwargs":{"additional_context":[{"id":"editor_selection:src/common/core/services/user_service.ts_22d20969-dfd7-4b78-9dac-c63de2f559ea","content":"DefaultUserService","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/common/core/services/user_service.ts","enabled":true,"subType":"snippet","fileName":"src/common/core/services/user_service.ts","subTypeLabel":"Editor Selection","secondaryText":"src/common/core/services/user_service.ts"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}'
|
|
458
|
+
}
|
|
459
|
+
}];
|
|
349
460
|
|
|
350
|
-
export { INCLUDE_SLASH_COMMAND, MOCK_AGENT_MESSAGE, MOCK_REQUEST_MESSAGE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_PARAMS, MOCK_RESPONSE_MESSAGE, MOCK_RESPONSE_MESSAGE_FOR_STREAMING, MOCK_TOOL_MESSAGE, MOCK_TOOL_MESSAGE_WITH_LINK, MOCK_USER_PROMPT_MESSAGE, MOCK_WORKFLOW_END_MESSAGE, SLASH_COMMANDS, THREADLIST, generateMockResponseChunks, generateSeparateChunks, renderGFM, renderMarkdown };
|
|
461
|
+
export { AGENTIC_THREADLIST, INCLUDE_SLASH_COMMAND, MOCK_AGENT_MESSAGE, MOCK_REQUEST_MESSAGE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_PARAMS, MOCK_RESPONSE_MESSAGE, MOCK_RESPONSE_MESSAGE_FOR_STREAMING, MOCK_TOOL_MESSAGE, MOCK_TOOL_MESSAGE_WITH_LINK, MOCK_USER_PROMPT_MESSAGE, MOCK_WORKFLOW_END_MESSAGE, SLASH_COMMANDS, THREADLIST, generateMockResponseChunks, generateSeparateChunks, renderGFM, renderMarkdown };
|
package/dist/tailwind.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.gl-animate-skeleton-loader{background-color:var(--gl-skeleton-loader-background-color);background-image:linear-gradient(to right,var(--gl-skeleton-loader-background-color) 0,var(--gl-skeleton-loader-shimmer-color) 23%,var(--gl-skeleton-loader-shimmer-color) 27%,var(--gl-skeleton-loader-background-color) 50%);background-position:-32rem 0;background-repeat:no-repeat;background-size:32rem 100%;max-width:32rem;overflow:hidden}@media (prefers-reduced-motion:no-preference){.gl-animate-skeleton-loader{animation:gl-keyframes-skeleton-loader 2.5s linear;animation-delay:inherit;animation-iteration-count:3}}@keyframes gl-keyframes-skeleton-loader{0%{background-position-x:-32rem}to{background-position-x:32rem}}.gl-border{border-color:var(--gl-border-color-default);border-style:solid}.gl-border-t{border-top-color:var(--gl-border-color-default);border-top-style:solid}.gl-border-b{border-bottom-color:var(--gl-border-color-default);border-bottom-style:solid}.gl-heading-4{font-size:1rem}.gl-heading-3,.gl-heading-4{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:0}.gl-heading-3{font-size:clamp(1.125rem,.9027777778rem + .462962963vw,1.25rem)}.gl-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.gl-pointer-events-none{pointer-events:none}.gl-pointer-events-auto{pointer-events:auto}.gl-invisible{visibility:hidden}.gl-collapse{visibility:collapse}.gl-static{position:static}.gl-fixed{position:fixed}.\!gl-absolute{position:absolute!important}.gl-absolute{position:absolute}.gl-relative{position:relative}.gl-sticky{position:sticky}.gl-bottom-0{bottom:0}.gl-bottom-2{bottom:.25rem}.gl-left-0{left:0}.gl-right-2{right:.25rem}.gl-right-3{right:.5rem}.gl-top-0{top:0}.\!gl-z-9999{z-index:9999!important}.gl-z-2{z-index:2}.gl-z-9999{z-index:9999}.gl-float-right{float:right}.\!gl-m-0{margin:0!important}.gl-m-0{margin:0}.gl-m-3{margin:.5rem}.gl-m-auto{margin:auto}.\!gl-mx-2{margin-left:.25rem!important;margin-right:.25rem!important}.-gl-mx-1{margin-left:-.125rem;margin-right:-.125rem}.-gl-mx-4{margin-left:-.75rem;margin-right:-.75rem}.-gl-my-1{margin-bottom:-.125rem;margin-top:-.125rem}.-gl-my-3{margin-bottom:-.5rem;margin-top:-.5rem}.gl-mx-2{margin-left:.25rem;margin-right:.25rem}.gl-mx-3{margin-left:.5rem;margin-right:.5rem}.gl-mx-4{margin-left:.75rem;margin-right:.75rem}.gl-mx-auto{margin-left:auto;margin-right:auto}.gl-my-0{margin-bottom:0;margin-top:0}.gl-my-3{margin-bottom:.5rem;margin-top:.5rem}.gl-my-4{margin-bottom:.75rem;margin-top:.75rem}.gl-my-5{margin-bottom:1rem;margin-top:1rem}.\!gl-mb-0{margin-bottom:0!important}.\!gl-mb-4{margin-bottom:.75rem!important}.-gl-ml-2{margin-left:-.25rem}.-gl-mr-3{margin-right:-.5rem}.-gl-mt-2{margin-top:-.25rem}.gl-mb-0{margin-bottom:0}.gl-mb-1{margin-bottom:.125rem}.gl-mb-2{margin-bottom:.25rem}.gl-mb-3{margin-bottom:.5rem}.gl-mb-4{margin-bottom:.75rem}.gl-mb-5{margin-bottom:1rem}.gl-ml-1{margin-left:.125rem}.gl-ml-2{margin-left:.25rem}.gl-ml-3{margin-left:.5rem}.gl-ml-4{margin-left:.75rem}.gl-ml-5{margin-left:1rem}.gl-ml-6{margin-left:1.5rem}.gl-ml-auto{margin-left:auto}.gl-mr-1{margin-right:.125rem}.gl-mr-2{margin-right:.25rem}.gl-mr-3{margin-right:.5rem}.gl-mr-auto{margin-right:auto}.gl-mt-0{margin-top:0}.gl-mt-1{margin-top:.125rem}.gl-mt-2{margin-top:.25rem}.gl-mt-3{margin-top:.5rem}.gl-mt-4{margin-top:.75rem}.gl-mt-5{margin-top:1rem}.gl-mt-auto{margin-top:auto}.\!gl-block{display:block!important}.gl-block{display:block}.gl-inline-block{display:inline-block}.gl-flex{display:flex}.gl-inline-flex{display:inline-flex}.gl-table{display:table}.gl-hidden{display:none}.\!gl-h-full{height:100%!important}.gl-h-0{height:0}.gl-h-4{height:.75rem}.gl-h-5{height:1rem}.gl-h-auto{height:auto}.gl-h-full{height:100%}.gl-max-h-13{max-height:6rem}.gl-max-h-31{max-height:15.5rem}.gl-max-h-full{max-height:100%}.gl-min-h-8{min-height:2.5rem}.\!gl-w-31{width:15.5rem!important}.\!gl-w-auto{width:auto!important}.gl-w-1\/2{width:50%}.gl-w-3\/4{width:75%}.gl-w-4\/10{width:40%}.gl-w-5{width:1rem}.gl-w-auto{width:auto}.gl-w-full{width:100%}.gl-min-w-0{min-width:0}.gl-min-w-\[33\%\]{min-width:33%}.gl-max-w-1\/2{max-width:50%}.gl-max-w-full{max-width:100%}.gl-flex-1{flex:1 1 0%}.gl-flex-auto{flex:1 1 auto}.gl-flex-shrink-0,.gl-shrink-0{flex-shrink:0}.gl-flex-grow,.gl-grow{flex-grow:1}.gl-basis-0{flex-basis:0}.-gl-translate-y-full{--tw-translate-y:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!gl-cursor-not-allowed{cursor:not-allowed!important}.\!gl-cursor-text{cursor:text!important}.gl-cursor-default{cursor:default}.gl-cursor-not-allowed{cursor:not-allowed}.gl-cursor-pointer{cursor:pointer}.gl-cursor-text{cursor:text}.gl-list-none{list-style-type:none}.gl-flex-row{flex-direction:row}.gl-flex-col{flex-direction:column}.gl-flex-wrap{flex-wrap:wrap}.gl-flex-nowrap{flex-wrap:nowrap}.gl-content-center{align-content:center}.gl-items-start{align-items:flex-start}.gl-items-end{align-items:flex-end}.gl-items-center{align-items:center}.gl-items-baseline{align-items:baseline}.\!gl-justify-start{justify-content:flex-start!important}.gl-justify-start{justify-content:flex-start}.gl-justify-end{justify-content:flex-end}.gl-justify-center{justify-content:center}.gl-justify-between{justify-content:space-between}.gl-gap-1{gap:.125rem}.gl-gap-2{gap:.25rem}.gl-gap-3{gap:.5rem}.gl-gap-4{gap:.75rem}.gl-gap-5{gap:1rem}.gl-self-start{align-self:flex-start}.gl-self-center{align-self:center}.gl-overflow-auto{overflow:auto}.gl-overflow-hidden{overflow:hidden}.\!gl-overflow-visible{overflow:visible!important}.gl-overflow-visible{overflow:visible}.gl-overflow-y-auto{overflow-y:auto}.gl-overflow-x-hidden{overflow-x:hidden}.gl-overflow-y-scroll{overflow-y:scroll}.gl-overscroll-contain{overscroll-behavior:contain}.gl-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!gl-text-ellipsis{text-overflow:ellipsis!important}.gl-text-ellipsis{text-overflow:ellipsis}.\!gl-whitespace-normal{white-space:normal!important}.gl-whitespace-normal{white-space:normal}.gl-whitespace-nowrap{white-space:nowrap}.gl-whitespace-pre-wrap{white-space:pre-wrap}.gl-break-words{overflow-wrap:break-word}.gl-break-all{word-break:break-all}.\!gl-rounded-base{border-radius:.25rem!important}.\!gl-rounded-full{border-radius:50%!important}.\!gl-rounded-none{border-radius:0!important}.gl-rounded-base{border-radius:.25rem}.gl-rounded-full{border-radius:50%}.gl-rounded-t-base{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.gl-rounded-bl-none{border-bottom-left-radius:0}.gl-rounded-br-lg{border-bottom-right-radius:.5rem}.gl-rounded-br-none{border-bottom-right-radius:0}.gl-rounded-tr-lg{border-top-right-radius:.5rem}.gl-rounded-tr-none{border-top-right-radius:0}.gl-border{border-width:1px}.gl-border-0{border-width:0}.gl-border-1{border-width:1px}.\!gl-border-b-0{border-bottom-width:0!important}.gl-border-b,.gl-border-b-1{border-bottom-width:1px}.gl-border-t,.gl-border-t-1{border-top-width:1px}.gl-border-t-2{border-top-width:2px}.gl-border-solid{border-style:solid}.gl-border-dashed{border-style:dashed}.gl-border-none{border-style:none}.gl-border-dropdown{border-color:var(--gl-dropdown-border-color,var(--gl-border-color-strong,#bfbfc3))}.gl-border-gray-100{border-color:var(--gray-100,#dcdcde)}.gl-border-gray-200{border-color:var(--gray-200,#bfbfc3)}.gl-border-gray-50{border-color:var(--gray-50,#ececef)}.gl-border-gray-500{border-color:var(--gray-500,#737278)}.gl-border-neutral-600{border-color:var(--gl-color-neutral-600,#626168)}.gl-border-red-500{border-color:var(--red-500,#dd2b0e)}.gl-border-subtle{border-color:var(--gl-border-color-subtle,var(--gl-color-neutral-50,#ececef))}.gl-border-transparent{border-color:var(--gl-border-color-transparent,var(--gl-color-alpha-0,#0000))}.gl-border-b-dropdown-divider{border-bottom-color:var(--gl-dropdown-divider-color,var(--gl-border-color-default,#dcdcde))}.gl-border-t-dropdown-divider{border-top-color:var(--gl-dropdown-divider-color,var(--gl-border-color-default,#dcdcde))}.\!gl-bg-gray-10{background-color:var(--gray-10,#fbfafd)!important}.\!gl-bg-transparent{background-color:initial!important}.gl-bg-black{background-color:var(--black,#050506)}.gl-bg-blue-100{background-color:var(--blue-100,#cbe2f9)}.gl-bg-blue-50{background-color:var(--blue-50,#e9f3fc)}.gl-bg-default{background-color:var(--gl-background-color-default,var(--gl-color-neutral-0,#fff))}.gl-bg-dropdown{background-color:var(--gl-dropdown-background-color,var(--gl-background-color-overlap,#fff))}.gl-bg-feedback-danger{background-color:var(--gl-feedback-danger-background-color,var(--gl-color-red-50,#fcf1ef))}.gl-bg-feedback-info{background-color:var(--gl-feedback-info-background-color,var(--gl-color-blue-50,#e9f3fc))}.gl-bg-gray-10{background-color:var(--gray-10,#fbfafd)}.gl-bg-gray-50{background-color:var(--gray-50,#ececef)}.gl-bg-inherit{background-color:inherit}.gl-bg-status-neutral{background-color:var(--gl-status-neutral-background-color,var(--gl-color-neutral-100,#dcdcde))}.gl-bg-subtle{background-color:var(--gl-background-color-subtle,var(--gl-color-neutral-10,#fbfafd))}.gl-bg-transparent{background-color:initial}.gl-bg-white{background-color:var(--white,#fff)}.gl-fill-current{fill:currentColor}.gl-fill-gray-100{fill:var(--gray-100,#dcdcde)}.gl-fill-icon-danger{fill:var(--gl-icon-color-danger,var(--gl-text-color-danger,#c02f12))}.gl-fill-icon-default{fill:var(--gl-icon-color-default,var(--gl-text-color-default,#3a383f))}.gl-fill-icon-disabled{fill:var(--gl-icon-color-disabled,var(--gl-text-color-disabled,#89888d))}.gl-fill-icon-info{fill:var(--gl-icon-color-info,var(--gl-color-blue-700,#2f5ca0))}.gl-fill-icon-link{fill:var(--gl-icon-color-link,var(--gl-text-color-link,#2f5ca0))}.gl-fill-icon-strong{fill:var(--gl-icon-color-strong,var(--gl-text-color-strong,#18171d))}.gl-fill-icon-subtle{fill:var(--gl-icon-color-subtle,var(--gl-text-color-subtle,#626168))}.gl-fill-icon-success{fill:var(--gl-icon-color-success,var(--gl-text-color-success,#2f7549))}.gl-fill-icon-warning{fill:var(--gl-icon-color-warning,var(--gl-text-color-warning,#995715))}.\!gl-p-0{padding:0!important}.\!gl-p-2{padding:.25rem!important}.\!gl-p-4{padding:.75rem!important}.gl-p-0{padding:0}.gl-p-1{padding:.125rem}.gl-p-2{padding:.25rem}.gl-p-3{padding:.5rem}.gl-p-4{padding:.75rem}.gl-p-5{padding:1rem}.\!gl-px-2{padding-left:.25rem!important;padding-right:.25rem!important}.\!gl-px-3{padding-left:.5rem!important;padding-right:.5rem!important}.\!gl-py-2{padding-bottom:.25rem!important;padding-top:.25rem!important}.\!gl-py-4{padding-bottom:.75rem!important;padding-top:.75rem!important}.gl-px-1{padding-left:.125rem;padding-right:.125rem}.gl-px-2{padding-left:.25rem;padding-right:.25rem}.gl-px-3{padding-left:.5rem;padding-right:.5rem}.gl-px-4{padding-left:.75rem;padding-right:.75rem}.gl-px-5{padding-left:1rem;padding-right:1rem}.gl-py-2{padding-bottom:.25rem;padding-top:.25rem}.gl-py-3{padding-bottom:.5rem;padding-top:.5rem}.gl-py-5{padding-bottom:1rem;padding-top:1rem}.gl-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.\!gl-pl-9{padding-left:3rem!important}.\!gl-pr-7{padding-right:2rem!important}.\!gl-pr-9{padding-right:3rem!important}.\!gl-pt-0{padding-top:0!important}.gl-pb-2{padding-bottom:.25rem}.gl-pb-3{padding-bottom:.5rem}.gl-pl-0{padding-left:0}.gl-pl-2{padding-left:.25rem}.gl-pl-3{padding-left:.5rem}.gl-pl-4{padding-left:.75rem}.gl-pl-5{padding-left:1rem}.gl-pl-6{padding-left:1.5rem}.gl-pl-7{padding-left:2rem}.gl-pr-2{padding-right:.25rem}.gl-pr-3{padding-right:.5rem}.gl-pr-5{padding-right:1rem}.gl-pr-6{padding-right:1.5rem}.gl-pr-8{padding-right:2.5rem}.gl-pt-1{padding-top:.125rem}.gl-pt-2{padding-top:.25rem}.gl-pt-3{padding-top:.5rem}.gl-pt-4{padding-top:.75rem}.\!gl-text-left{text-align:left!important}.gl-text-left{text-align:left}.gl-text-center{text-align:center}.gl-text-right{text-align:right}.gl-align-top{vertical-align:top}.gl-align-middle{vertical-align:middle}.gl-align-bottom{vertical-align:bottom}.\!gl-align-text-bottom{vertical-align:text-bottom!important}.gl-font-regular{font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.\!gl-text-sm{font-size:.75rem!important}.gl-text-base{font-size:.875rem}.gl-text-size-h-display{font-size:1.75rem}.gl-text-size-h2{font-size:1.1875rem}.gl-text-sm{font-size:.75rem}.gl-text-xs{font-size:.625rem}.gl-font-bold{font-weight:600}.gl-font-normal{font-weight:400}.gl-lowercase{text-transform:lowercase}.gl-italic{font-style:italic}.gl-leading-1{line-height:1}.gl-leading-20{line-height:1.25rem}.gl-leading-36{line-height:2.25rem}.gl-leading-normal{line-height:1rem}.\!gl-text-default{color:var(--gl-text-color-default,var(--gl-color-neutral-800,#3a383f))!important}.\!gl-text-subtle{color:var(--gl-text-color-subtle,var(--gl-color-neutral-600,#626168))!important}.\!gl-text-success{color:var(--gl-text-color-success,var(--gl-color-green-600,#2f7549))!important}.gl-text-blue-100{color:var(--blue-100,#cbe2f9)}.gl-text-blue-500{color:var(--blue-500,#1f75cb)}.gl-text-blue-600{color:var(--blue-600,#2f68b4)}.gl-text-blue-700{color:var(--blue-700,#2f5ca0)}.gl-text-blue-900{color:var(--blue-900,#213454)}.gl-text-danger{color:var(--gl-text-color-danger,var(--gl-color-red-600,#c02f12))}.gl-text-default{color:var(--gl-text-color-default,var(--gl-color-neutral-800,#3a383f))}.gl-text-feedback-info{color:var(--gl-feedback-info-text-color,var(--gl-color-blue-700,#2f5ca0))}.gl-text-gray-500{color:var(--gray-500,#737278)}.gl-text-gray-700{color:var(--gray-700,#4c4b51)}.gl-text-gray-900{color:var(--gray-900,#28272d)}.gl-text-gray-950{color:var(--gray-950,#18171d)}.gl-text-green-500{color:var(--green-500,#108548)}.gl-text-inherit{color:inherit}.gl-text-orange-500{color:var(--orange-500,#ab6100)}.gl-text-red-500{color:var(--red-500,#dd2b0e)}.gl-text-red-600{color:var(--red-600,#c02f12)}.gl-text-secondary{color:var(--gl-text-secondary,#737278)}.gl-text-strong{color:var(--gl-text-color-strong,var(--gl-color-neutral-950,#18171d))}.gl-text-subtle{color:var(--gl-text-color-subtle,var(--gl-color-neutral-600,#626168))}.gl-text-white{color:var(--white,#fff)}.\!gl-opacity-0{opacity:0!important}.gl-opacity-10{opacity:1}.\!gl-shadow-inner-1-gray-100{--tw-shadow:inset 0 0 0 1px var(--gray-100,#dcdcde)!important;--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color)!important}.\!gl-shadow-inner-1-gray-100,.\!gl-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.\!gl-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important}.gl-shadow-md{--tw-shadow:0 0 1px var(--gl-shadow-color-default,#05050629),0 0 2px var(--gl-shadow-color-default,#05050629),0 2px 8px var(--gl-shadow-color-default,#05050629);--tw-shadow-colored:0 0 1px var(--tw-shadow-color),0 0 2px var(--tw-shadow-color),0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.gl-outline-none{outline:2px solid #0000;outline-offset:2px}.gl-transition-all{transition-duration:.2s;transition-property:all;transition-timing-function:ease}.gl-font-monospace{font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.gl-break-anywhere{overflow-wrap:anywhere;word-break:normal}.gl-border-b-solid{border-bottom-style:solid}.gl-border-t-solid{border-top-style:solid}.focus-within\:\!gl-shadow-none:focus-within{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.hover\:\!gl-cursor-not-allowed:hover{cursor:not-allowed!important}.hover\:gl-cursor-pointer:hover{cursor:pointer}.hover\:gl-bg-gray-50:hover{background-color:var(--gray-50,#ececef)}.hover\:gl-no-underline:hover{text-decoration-line:none}.focus\:\!gl-focus-inset:focus{box-shadow:inset 0 0 0 2px var(--gl-focus-ring-outer-color),inset 0 0 0 3px var(--gl-focus-ring-inner-color),inset 0 0 0 1px var(--gl-focus-ring-inner-color)!important;outline:none!important}@media (min-width:576px){.sm\:gl-block{display:block}.sm\:\!gl-hidden{display:none!important}.sm\:gl-flex-nowrap{flex-wrap:nowrap}.sm\:gl-gap-3{gap:.5rem}}.\[\&\>button\]\:focus-within\:\!gl-shadow-none:focus-within>button{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.gl-animate-skeleton-loader{background-color:var(--gl-skeleton-loader-background-color);background-image:linear-gradient(to right,var(--gl-skeleton-loader-background-color) 0,var(--gl-skeleton-loader-shimmer-color) 23%,var(--gl-skeleton-loader-shimmer-color) 27%,var(--gl-skeleton-loader-background-color) 50%);background-position:-32rem 0;background-repeat:no-repeat;background-size:32rem 100%;max-width:32rem;overflow:hidden}@media (prefers-reduced-motion:no-preference){.gl-animate-skeleton-loader{animation:gl-keyframes-skeleton-loader 2.5s linear;animation-delay:inherit;animation-iteration-count:3}}@keyframes gl-keyframes-skeleton-loader{0%{background-position-x:-32rem}to{background-position-x:32rem}}.gl-border{border-color:var(--gl-border-color-default);border-style:solid}.gl-border-t{border-top-color:var(--gl-border-color-default);border-top-style:solid}.gl-border-b{border-bottom-color:var(--gl-border-color-default);border-bottom-style:solid}.gl-heading-4{font-size:1rem}.gl-heading-3,.gl-heading-4{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:0}.gl-heading-3{font-size:clamp(1.125rem,.9027777778rem + .462962963vw,1.25rem)}.gl-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.gl-pointer-events-none{pointer-events:none}.gl-pointer-events-auto{pointer-events:auto}.gl-invisible{visibility:hidden}.gl-collapse{visibility:collapse}.gl-static{position:static}.gl-fixed{position:fixed}.\!gl-absolute{position:absolute!important}.gl-absolute{position:absolute}.gl-relative{position:relative}.gl-sticky{position:sticky}.gl-bottom-0{bottom:0}.gl-bottom-2{bottom:.25rem}.gl-left-0{left:0}.gl-right-2{right:.25rem}.gl-right-3{right:.5rem}.gl-top-0{top:0}.\!gl-z-9999{z-index:9999!important}.gl-z-2{z-index:2}.gl-z-9999{z-index:9999}.gl-float-right{float:right}.\!gl-m-0{margin:0!important}.gl-m-0{margin:0}.gl-m-3{margin:.5rem}.gl-m-auto{margin:auto}.\!gl-mx-2{margin-left:.25rem!important;margin-right:.25rem!important}.-gl-mx-1{margin-left:-.125rem;margin-right:-.125rem}.-gl-mx-4{margin-left:-.75rem;margin-right:-.75rem}.-gl-my-1{margin-bottom:-.125rem;margin-top:-.125rem}.-gl-my-3{margin-bottom:-.5rem;margin-top:-.5rem}.gl-mx-2{margin-left:.25rem;margin-right:.25rem}.gl-mx-3{margin-left:.5rem;margin-right:.5rem}.gl-mx-4{margin-left:.75rem;margin-right:.75rem}.gl-mx-auto{margin-left:auto;margin-right:auto}.gl-my-0{margin-bottom:0;margin-top:0}.gl-my-3{margin-bottom:.5rem;margin-top:.5rem}.gl-my-4{margin-bottom:.75rem;margin-top:.75rem}.gl-my-5{margin-bottom:1rem;margin-top:1rem}.\!gl-mb-0{margin-bottom:0!important}.\!gl-mb-4{margin-bottom:.75rem!important}.-gl-ml-2{margin-left:-.25rem}.-gl-mr-3{margin-right:-.5rem}.-gl-mt-2{margin-top:-.25rem}.gl-mb-0{margin-bottom:0}.gl-mb-1{margin-bottom:.125rem}.gl-mb-2{margin-bottom:.25rem}.gl-mb-3{margin-bottom:.5rem}.gl-mb-4{margin-bottom:.75rem}.gl-mb-5{margin-bottom:1rem}.gl-ml-1{margin-left:.125rem}.gl-ml-2{margin-left:.25rem}.gl-ml-3{margin-left:.5rem}.gl-ml-4{margin-left:.75rem}.gl-ml-5{margin-left:1rem}.gl-ml-6{margin-left:1.5rem}.gl-ml-auto{margin-left:auto}.gl-mr-1{margin-right:.125rem}.gl-mr-2{margin-right:.25rem}.gl-mr-3{margin-right:.5rem}.gl-mr-auto{margin-right:auto}.gl-mt-0{margin-top:0}.gl-mt-1{margin-top:.125rem}.gl-mt-2{margin-top:.25rem}.gl-mt-3{margin-top:.5rem}.gl-mt-4{margin-top:.75rem}.gl-mt-5{margin-top:1rem}.gl-mt-auto{margin-top:auto}.\!gl-block{display:block!important}.gl-block{display:block}.gl-inline-block{display:inline-block}.gl-flex{display:flex}.gl-inline-flex{display:inline-flex}.gl-table{display:table}.gl-hidden{display:none}.\!gl-h-full{height:100%!important}.gl-h-0{height:0}.gl-h-4{height:.75rem}.gl-h-5{height:1rem}.gl-h-auto{height:auto}.gl-h-full{height:100%}.gl-max-h-13{max-height:6rem}.gl-max-h-31{max-height:15.5rem}.gl-max-h-full{max-height:100%}.gl-min-h-8{min-height:2.5rem}.\!gl-w-31{width:15.5rem!important}.\!gl-w-auto{width:auto!important}.gl-w-1\/2{width:50%}.gl-w-3\/4{width:75%}.gl-w-4\/10{width:40%}.gl-w-5{width:1rem}.gl-w-auto{width:auto}.gl-w-full{width:100%}.gl-min-w-0{min-width:0}.gl-min-w-\[33\%\]{min-width:33%}.gl-max-w-1\/2{max-width:50%}.gl-max-w-full{max-width:100%}.gl-flex-1{flex:1 1 0%}.gl-flex-auto{flex:1 1 auto}.gl-flex-shrink-0,.gl-shrink-0{flex-shrink:0}.gl-flex-grow,.gl-grow{flex-grow:1}.gl-basis-0{flex-basis:0}.-gl-translate-y-full{--tw-translate-y:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!gl-cursor-not-allowed{cursor:not-allowed!important}.\!gl-cursor-text{cursor:text!important}.gl-cursor-default{cursor:default}.gl-cursor-not-allowed{cursor:not-allowed}.gl-cursor-pointer{cursor:pointer}.gl-cursor-text{cursor:text}.gl-list-none{list-style-type:none}.gl-flex-row{flex-direction:row}.gl-flex-col{flex-direction:column}.gl-flex-wrap{flex-wrap:wrap}.gl-flex-nowrap{flex-wrap:nowrap}.gl-content-center{align-content:center}.gl-items-start{align-items:flex-start}.gl-items-end{align-items:flex-end}.gl-items-center{align-items:center}.gl-items-baseline{align-items:baseline}.\!gl-justify-start{justify-content:flex-start!important}.gl-justify-start{justify-content:flex-start}.gl-justify-end{justify-content:flex-end}.gl-justify-center{justify-content:center}.gl-justify-between{justify-content:space-between}.gl-gap-1{gap:.125rem}.gl-gap-2{gap:.25rem}.gl-gap-3{gap:.5rem}.gl-gap-4{gap:.75rem}.gl-gap-5{gap:1rem}.gl-self-start{align-self:flex-start}.gl-self-center{align-self:center}.gl-overflow-auto{overflow:auto}.gl-overflow-hidden{overflow:hidden}.\!gl-overflow-visible{overflow:visible!important}.gl-overflow-visible{overflow:visible}.gl-overflow-y-auto{overflow-y:auto}.gl-overflow-x-hidden{overflow-x:hidden}.gl-overflow-y-scroll{overflow-y:scroll}.gl-overscroll-contain{overscroll-behavior:contain}.gl-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!gl-text-ellipsis{text-overflow:ellipsis!important}.gl-text-ellipsis{text-overflow:ellipsis}.\!gl-whitespace-normal{white-space:normal!important}.gl-whitespace-normal{white-space:normal}.gl-whitespace-nowrap{white-space:nowrap}.gl-whitespace-pre-wrap{white-space:pre-wrap}.gl-break-words{overflow-wrap:break-word}.gl-break-all{word-break:break-all}.\!gl-rounded-base{border-radius:.25rem!important}.\!gl-rounded-full{border-radius:50%!important}.\!gl-rounded-none{border-radius:0!important}.gl-rounded-base{border-radius:.25rem}.gl-rounded-full{border-radius:50%}.gl-rounded-t-base{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.gl-rounded-bl-none{border-bottom-left-radius:0}.gl-rounded-br-lg{border-bottom-right-radius:.5rem}.gl-rounded-br-none{border-bottom-right-radius:0}.gl-rounded-tr-lg{border-top-right-radius:.5rem}.gl-rounded-tr-none{border-top-right-radius:0}.gl-border{border-width:1px}.gl-border-0{border-width:0}.gl-border-1{border-width:1px}.\!gl-border-b-0{border-bottom-width:0!important}.gl-border-b,.gl-border-b-1{border-bottom-width:1px}.gl-border-t,.gl-border-t-1{border-top-width:1px}.gl-border-t-2{border-top-width:2px}.gl-border-solid{border-style:solid}.gl-border-dashed{border-style:dashed}.gl-border-none{border-style:none}.gl-border-dropdown{border-color:var(--gl-dropdown-border-color,var(--gl-border-color-strong,#bfbfc3))}.gl-border-gray-100{border-color:var(--gray-100,#dcdcde)}.gl-border-gray-200{border-color:var(--gray-200,#bfbfc3)}.gl-border-gray-500{border-color:var(--gray-500,#737278)}.gl-border-neutral-600{border-color:var(--gl-color-neutral-600,#626168)}.gl-border-red-500{border-color:var(--red-500,#dd2b0e)}.gl-border-subtle{border-color:var(--gl-border-color-subtle,var(--gl-color-neutral-50,#ececef))}.gl-border-transparent{border-color:var(--gl-border-color-transparent,var(--gl-color-alpha-0,#0000))}.gl-border-b-dropdown-divider{border-bottom-color:var(--gl-dropdown-divider-color,var(--gl-border-color-default,#dcdcde))}.gl-border-t-dropdown-divider{border-top-color:var(--gl-dropdown-divider-color,var(--gl-border-color-default,#dcdcde))}.\!gl-bg-gray-10{background-color:var(--gray-10,#fbfafd)!important}.\!gl-bg-transparent{background-color:initial!important}.gl-bg-black{background-color:var(--black,#050506)}.gl-bg-blue-100{background-color:var(--blue-100,#cbe2f9)}.gl-bg-blue-50{background-color:var(--blue-50,#e9f3fc)}.gl-bg-default{background-color:var(--gl-background-color-default,var(--gl-color-neutral-0,#fff))}.gl-bg-dropdown{background-color:var(--gl-dropdown-background-color,var(--gl-background-color-overlap,#fff))}.gl-bg-feedback-danger{background-color:var(--gl-feedback-danger-background-color,var(--gl-color-red-50,#fcf1ef))}.gl-bg-feedback-info{background-color:var(--gl-feedback-info-background-color,var(--gl-color-blue-50,#e9f3fc))}.gl-bg-gray-10{background-color:var(--gray-10,#fbfafd)}.gl-bg-gray-50{background-color:var(--gray-50,#ececef)}.gl-bg-inherit{background-color:inherit}.gl-bg-status-neutral{background-color:var(--gl-status-neutral-background-color,var(--gl-color-neutral-100,#dcdcde))}.gl-bg-subtle{background-color:var(--gl-background-color-subtle,var(--gl-color-neutral-10,#fbfafd))}.gl-bg-transparent{background-color:initial}.gl-bg-white{background-color:var(--white,#fff)}.gl-fill-current{fill:currentColor}.gl-fill-gray-100{fill:var(--gray-100,#dcdcde)}.gl-fill-icon-danger{fill:var(--gl-icon-color-danger,var(--gl-text-color-danger,#c02f12))}.gl-fill-icon-default{fill:var(--gl-icon-color-default,var(--gl-text-color-default,#3a383f))}.gl-fill-icon-disabled{fill:var(--gl-icon-color-disabled,var(--gl-text-color-disabled,#89888d))}.gl-fill-icon-info{fill:var(--gl-icon-color-info,var(--gl-color-blue-700,#2f5ca0))}.gl-fill-icon-link{fill:var(--gl-icon-color-link,var(--gl-text-color-link,#2f5ca0))}.gl-fill-icon-strong{fill:var(--gl-icon-color-strong,var(--gl-text-color-strong,#18171d))}.gl-fill-icon-subtle{fill:var(--gl-icon-color-subtle,var(--gl-text-color-subtle,#626168))}.gl-fill-icon-success{fill:var(--gl-icon-color-success,var(--gl-text-color-success,#2f7549))}.gl-fill-icon-warning{fill:var(--gl-icon-color-warning,var(--gl-text-color-warning,#995715))}.\!gl-p-0{padding:0!important}.\!gl-p-2{padding:.25rem!important}.\!gl-p-4{padding:.75rem!important}.gl-p-0{padding:0}.gl-p-1{padding:.125rem}.gl-p-2{padding:.25rem}.gl-p-3{padding:.5rem}.gl-p-4{padding:.75rem}.gl-p-5{padding:1rem}.\!gl-px-2{padding-left:.25rem!important;padding-right:.25rem!important}.\!gl-px-3{padding-left:.5rem!important;padding-right:.5rem!important}.\!gl-py-2{padding-bottom:.25rem!important;padding-top:.25rem!important}.\!gl-py-4{padding-bottom:.75rem!important;padding-top:.75rem!important}.gl-px-1{padding-left:.125rem;padding-right:.125rem}.gl-px-2{padding-left:.25rem;padding-right:.25rem}.gl-px-3{padding-left:.5rem;padding-right:.5rem}.gl-px-4{padding-left:.75rem;padding-right:.75rem}.gl-px-5{padding-left:1rem;padding-right:1rem}.gl-py-2{padding-bottom:.25rem;padding-top:.25rem}.gl-py-3{padding-bottom:.5rem;padding-top:.5rem}.gl-py-5{padding-bottom:1rem;padding-top:1rem}.gl-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.\!gl-pl-9{padding-left:3rem!important}.\!gl-pr-7{padding-right:2rem!important}.\!gl-pr-9{padding-right:3rem!important}.\!gl-pt-0{padding-top:0!important}.gl-pb-2{padding-bottom:.25rem}.gl-pb-3{padding-bottom:.5rem}.gl-pl-0{padding-left:0}.gl-pl-2{padding-left:.25rem}.gl-pl-3{padding-left:.5rem}.gl-pl-4{padding-left:.75rem}.gl-pl-5{padding-left:1rem}.gl-pl-6{padding-left:1.5rem}.gl-pl-7{padding-left:2rem}.gl-pr-2{padding-right:.25rem}.gl-pr-3{padding-right:.5rem}.gl-pr-5{padding-right:1rem}.gl-pr-6{padding-right:1.5rem}.gl-pr-8{padding-right:2.5rem}.gl-pt-1{padding-top:.125rem}.gl-pt-2{padding-top:.25rem}.gl-pt-3{padding-top:.5rem}.gl-pt-4{padding-top:.75rem}.\!gl-text-left{text-align:left!important}.gl-text-left{text-align:left}.gl-text-center{text-align:center}.gl-text-right{text-align:right}.gl-align-top{vertical-align:top}.gl-align-middle{vertical-align:middle}.gl-align-bottom{vertical-align:bottom}.\!gl-align-text-bottom{vertical-align:text-bottom!important}.gl-font-regular{font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.\!gl-text-sm{font-size:.75rem!important}.gl-text-base{font-size:.875rem}.gl-text-size-h-display{font-size:1.75rem}.gl-text-size-h2{font-size:1.1875rem}.gl-text-sm{font-size:.75rem}.gl-text-xs{font-size:.625rem}.gl-font-bold{font-weight:600}.gl-font-normal{font-weight:400}.gl-lowercase{text-transform:lowercase}.gl-italic{font-style:italic}.gl-leading-1{line-height:1}.gl-leading-20{line-height:1.25rem}.gl-leading-36{line-height:2.25rem}.gl-leading-normal{line-height:1rem}.\!gl-text-default{color:var(--gl-text-color-default,var(--gl-color-neutral-800,#3a383f))!important}.\!gl-text-subtle{color:var(--gl-text-color-subtle,var(--gl-color-neutral-600,#626168))!important}.\!gl-text-success{color:var(--gl-text-color-success,var(--gl-color-green-600,#2f7549))!important}.gl-text-blue-100{color:var(--blue-100,#cbe2f9)}.gl-text-blue-500{color:var(--blue-500,#1f75cb)}.gl-text-blue-600{color:var(--blue-600,#2f68b4)}.gl-text-blue-700{color:var(--blue-700,#2f5ca0)}.gl-text-blue-900{color:var(--blue-900,#213454)}.gl-text-danger{color:var(--gl-text-color-danger,var(--gl-color-red-600,#c02f12))}.gl-text-default{color:var(--gl-text-color-default,var(--gl-color-neutral-800,#3a383f))}.gl-text-feedback-info{color:var(--gl-feedback-info-text-color,var(--gl-color-blue-700,#2f5ca0))}.gl-text-gray-500{color:var(--gray-500,#737278)}.gl-text-gray-700{color:var(--gray-700,#4c4b51)}.gl-text-gray-900{color:var(--gray-900,#28272d)}.gl-text-gray-950{color:var(--gray-950,#18171d)}.gl-text-green-500{color:var(--green-500,#108548)}.gl-text-inherit{color:inherit}.gl-text-orange-500{color:var(--orange-500,#ab6100)}.gl-text-red-500{color:var(--red-500,#dd2b0e)}.gl-text-red-600{color:var(--red-600,#c02f12)}.gl-text-secondary{color:var(--gl-text-secondary,#737278)}.gl-text-strong{color:var(--gl-text-color-strong,var(--gl-color-neutral-950,#18171d))}.gl-text-subtle{color:var(--gl-text-color-subtle,var(--gl-color-neutral-600,#626168))}.gl-text-white{color:var(--white,#fff)}.\!gl-opacity-0{opacity:0!important}.gl-opacity-10{opacity:1}.\!gl-shadow-inner-1-gray-100{--tw-shadow:inset 0 0 0 1px var(--gray-100,#dcdcde)!important;--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color)!important}.\!gl-shadow-inner-1-gray-100,.\!gl-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.\!gl-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important}.gl-shadow-md{--tw-shadow:0 0 1px var(--gl-shadow-color-default,#05050629),0 0 2px var(--gl-shadow-color-default,#05050629),0 2px 8px var(--gl-shadow-color-default,#05050629);--tw-shadow-colored:0 0 1px var(--tw-shadow-color),0 0 2px var(--tw-shadow-color),0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.gl-outline-none{outline:2px solid #0000;outline-offset:2px}.gl-transition-all{transition-duration:.2s;transition-property:all;transition-timing-function:ease}.gl-font-monospace{font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.gl-break-anywhere{overflow-wrap:anywhere;word-break:normal}.gl-border-b-solid{border-bottom-style:solid}.gl-border-t-solid{border-top-style:solid}.focus-within\:\!gl-shadow-none:focus-within{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.hover\:\!gl-cursor-not-allowed:hover{cursor:not-allowed!important}.hover\:gl-cursor-pointer:hover{cursor:pointer}.hover\:gl-bg-gray-50:hover{background-color:var(--gray-50,#ececef)}.hover\:gl-no-underline:hover{text-decoration-line:none}.focus\:\!gl-focus-inset:focus{box-shadow:inset 0 0 0 2px var(--gl-focus-ring-outer-color),inset 0 0 0 3px var(--gl-focus-ring-inner-color),inset 0 0 0 1px var(--gl-focus-ring-inner-color)!important;outline:none!important}@media (min-width:576px){.sm\:gl-block{display:block}.sm\:\!gl-hidden{display:none!important}.sm\:gl-flex-nowrap{flex-wrap:nowrap}.sm\:gl-gap-3{gap:.5rem}}.\[\&\>button\]\:focus-within\:\!gl-shadow-none:focus-within>button{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}
|
|
2
2
|
/*# sourceMappingURL=tailwind.css.map */
|
package/dist/tailwind.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tailwind.css"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["tailwind.css"],"names":[],"mappings":"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","file":"tailwind.css","sourcesContent":["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n"]}
|
package/package.json
CHANGED
|
@@ -78,12 +78,11 @@ const itemsValidator = (items) => items.every(isMessage);
|
|
|
78
78
|
const slashCommandsValidator = (commands) => commands.every(isSlashCommand);
|
|
79
79
|
|
|
80
80
|
const isThread = (thread) =>
|
|
81
|
-
typeof thread === 'object' &&
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
typeof thread.
|
|
85
|
-
|
|
86
|
-
(thread.title === null || typeof thread.title === 'string');
|
|
81
|
+
(typeof thread === 'object' &&
|
|
82
|
+
typeof thread.id === 'string' &&
|
|
83
|
+
typeof thread.lastUpdatedAt === 'string') ||
|
|
84
|
+
(typeof thread.updatedAt === 'string' &&
|
|
85
|
+
(thread.title === null || typeof thread.title === 'string' || typeof thread.goal === 'string'));
|
|
87
86
|
|
|
88
87
|
// eslint-disable-next-line unicorn/no-array-callback-reference
|
|
89
88
|
const threadListValidator = (threads) => threads.every(isThread);
|
|
@@ -795,7 +794,7 @@ export default {
|
|
|
795
794
|
<template v-if="!hasMessages && !isLoading">
|
|
796
795
|
<div
|
|
797
796
|
key="empty-state-message"
|
|
798
|
-
class="duo-chat-message gl-rounded-bl-none gl-
|
|
797
|
+
class="duo-chat-message gl-rounded-bl-none gl-leading-20 gl-text-gray-900 gl-break-anywhere"
|
|
799
798
|
data-testid="gl-duo-chat-empty-state"
|
|
800
799
|
>
|
|
801
800
|
<p v-if="emptyStateTitle" data-testid="gl-duo-chat-empty-state-title" class="gl-m-0">
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import {
|
|
3
|
+
GlAvatar,
|
|
3
4
|
GlButton,
|
|
4
5
|
GlIcon,
|
|
5
6
|
GlAnimatedLoaderIcon,
|
|
@@ -40,6 +41,7 @@ export default {
|
|
|
40
41
|
ADD_TAGS: ['copy-code', 'insert-code-snippet'],
|
|
41
42
|
},
|
|
42
43
|
components: {
|
|
44
|
+
GlAvatar,
|
|
43
45
|
DocumentationSources,
|
|
44
46
|
DuoChatContextItemSelections,
|
|
45
47
|
MessageFeedback,
|
|
@@ -67,6 +69,10 @@ export default {
|
|
|
67
69
|
from: 'renderMarkdown',
|
|
68
70
|
default: () => renderDuoChatMarkdownPreview,
|
|
69
71
|
},
|
|
72
|
+
avatarUrl: {
|
|
73
|
+
from: 'avatarUrl',
|
|
74
|
+
default: () => '',
|
|
75
|
+
},
|
|
70
76
|
},
|
|
71
77
|
props: {
|
|
72
78
|
/**
|
|
@@ -324,7 +330,7 @@ export default {
|
|
|
324
330
|
<div
|
|
325
331
|
class="duo-chat-message gl-leading-20 gl-break-anywhere md gl-w-full"
|
|
326
332
|
:class="{
|
|
327
|
-
'gl-ml-auto gl-
|
|
333
|
+
'gl-ml-auto gl-p-3 gl-bg-feedback-info gl-text-feedback-info': isUserMessage,
|
|
328
334
|
'gl-text-default': isAssistantMessage && !error,
|
|
329
335
|
'duo-chat-message-with-error gl-bg-feedback-danger gl-p-3': error,
|
|
330
336
|
}"
|
|
@@ -358,10 +364,19 @@ export default {
|
|
|
358
364
|
></div>
|
|
359
365
|
</div>
|
|
360
366
|
<div v-else>
|
|
361
|
-
<div
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
367
|
+
<div class="gl-flex">
|
|
368
|
+
<gl-avatar
|
|
369
|
+
v-if="isUserMessage"
|
|
370
|
+
:size="16"
|
|
371
|
+
entity-name="User"
|
|
372
|
+
:src="avatarUrl"
|
|
373
|
+
class="gl-mr-3 gl-mt-1"
|
|
374
|
+
/>
|
|
375
|
+
<div
|
|
376
|
+
ref="content"
|
|
377
|
+
v-safe-html:[$options.safeHtmlConfigExtension]="messageContent"
|
|
378
|
+
></div>
|
|
379
|
+
</div>
|
|
365
380
|
|
|
366
381
|
<template v-if="isAssistantMessage">
|
|
367
382
|
<documentation-sources v-if="sources" :sources="sources" />
|
package/src/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.vue
CHANGED
|
@@ -132,7 +132,7 @@ export default {
|
|
|
132
132
|
|
|
133
133
|
<template>
|
|
134
134
|
<div
|
|
135
|
-
class="gl-border gl-border-transparent gl-p-4 gl-leading-20 gl-break-anywhere md gl-rounded-bl-none gl-border-1 gl-border-solid gl-
|
|
135
|
+
class="gl-border gl-border-transparent gl-p-4 gl-leading-20 gl-break-anywhere md gl-rounded-bl-none gl-border-1 gl-border-solid gl-text-default gl-bg-subtle"
|
|
136
136
|
>
|
|
137
137
|
<p class="gl-text-gray-700 gl-mb-3">
|
|
138
138
|
{{ $options.i18n.TOOL_APPROVAL_TITLE }}
|
|
@@ -40,9 +40,11 @@ export default {
|
|
|
40
40
|
|
|
41
41
|
return this.threads
|
|
42
42
|
.slice()
|
|
43
|
+
.sort((a, b) => this.compareThreadDates(b.updatedAt, a.updatedAt))
|
|
43
44
|
.sort((a, b) => this.compareThreadDates(b.lastUpdatedAt, a.lastUpdatedAt))
|
|
44
45
|
.reduce((grouped, thread) => {
|
|
45
|
-
const
|
|
46
|
+
const dateField = thread.updatedAt || thread.lastUpdatedAt;
|
|
47
|
+
const dateKey = this.getDateKey(dateField);
|
|
46
48
|
return {
|
|
47
49
|
...grouped,
|
|
48
50
|
[dateKey]: [...(grouped[dateKey] || []), thread],
|
|
@@ -108,11 +110,13 @@ export default {
|
|
|
108
110
|
category="tertiary"
|
|
109
111
|
class="hover:gl-bg-gray-50 gl-text-ellipsis !gl-text-default justify-content-start gl-overflow-hidden gl-rounded-base gl-p-4 gl-w-full gl-whitespace-nowrap"
|
|
110
112
|
:aria-label="
|
|
111
|
-
sprintf($options.i18n.OPEN_CHAT_LABEL, {
|
|
113
|
+
sprintf($options.i18n.OPEN_CHAT_LABEL, {
|
|
114
|
+
title: thread.title || thread.goal || 'Untitled Chat',
|
|
115
|
+
})
|
|
112
116
|
"
|
|
113
117
|
@click="onSelectThread(thread)"
|
|
114
118
|
>
|
|
115
|
-
{{ thread.title || 'Untitled Chat' }}
|
|
119
|
+
{{ thread.title || thread.goal || 'Untitled Chat' }}
|
|
116
120
|
</gl-button>
|
|
117
121
|
|
|
118
122
|
<gl-button
|
|
@@ -783,7 +783,7 @@ export default {
|
|
|
783
783
|
<template v-if="!hasMessages && !isLoading">
|
|
784
784
|
<div
|
|
785
785
|
key="empty-state-message"
|
|
786
|
-
class="duo-chat-message gl-rounded-bl-none gl-
|
|
786
|
+
class="duo-chat-message gl-rounded-bl-none gl-p-4 gl-leading-20 gl-text-gray-900 gl-break-anywhere"
|
|
787
787
|
data-testid="gl-duo-chat-empty-state"
|
|
788
788
|
>
|
|
789
789
|
<p v-if="emptyStateTitle" data-testid="gl-duo-chat-empty-state-title" class="gl-m-0">
|
|
@@ -259,8 +259,9 @@ export async function* generateMockResponseChunks(requestId = 1) {
|
|
|
259
259
|
export const MOCK_USER_PROMPT_MESSAGE = {
|
|
260
260
|
id: '456',
|
|
261
261
|
chunkId: null,
|
|
262
|
-
content: '
|
|
263
|
-
contentHtml:
|
|
262
|
+
content: 'Help me write a simple python function to calculate a factorial of a number.',
|
|
263
|
+
contentHtml:
|
|
264
|
+
'<p>Help me write a simple python function to calculate a factorial of a number.</p>',
|
|
264
265
|
role: MESSAGE_MODEL_ROLES.user,
|
|
265
266
|
requestId: '987',
|
|
266
267
|
errors: [],
|
|
@@ -390,3 +391,136 @@ export const THREADLIST = [
|
|
|
390
391
|
title: 'Before the Configuration Committee',
|
|
391
392
|
},
|
|
392
393
|
];
|
|
394
|
+
|
|
395
|
+
export const AGENTIC_THREADLIST = [
|
|
396
|
+
{
|
|
397
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1031434',
|
|
398
|
+
projectId: 'gid://gitlab/Project/62039593',
|
|
399
|
+
humanStatus: 'input required',
|
|
400
|
+
updatedAt: '2025-01-24T19:27:15Z',
|
|
401
|
+
goal: 'Help me migrate the legacy duo_chat_component to the modern tech stack of the current project. If there are ways to simplify it (remove unnecessary CSS, functionality, etc) and rely more on the default shadcn-ui components, please suggest those simplifications. If you need to install any shadcn-ui component, feel free to do so',
|
|
402
|
+
stalled: false,
|
|
403
|
+
archived: false,
|
|
404
|
+
firstCheckpoint: {
|
|
405
|
+
checkpoint:
|
|
406
|
+
'{"v":3,"id":"1f0659ae-d2f8-6230-bfff-fea961e0365f","ts":"2025-07-20T18:54:12.716786+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":62039593,"name":"Duo UI","web_url":"https://gitlab.com/gitlab-org/duo-ui","languages":[{"name":"JavaScript","share":72.16},{"name":"Vue","share":22.06},{"name":"SCSS","share":2.68},{"name":"Ruby","share":1.54},{"name":"TypeScript","share":0.6}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"Help me migrate the legacy duo_chat_component to the modern tech stack of the current project. If there are ways to simplify it (remove unnecessary CSS, functionality, etc) and rely more on the default shadcn-ui components, please suggest those simplifications. If you need to install any shadcn-ui component, feel free to do so","timestamp":"2025-07-20T18:54:12.429236+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"1","type":"AdditionalContext","content":"The user wants you to adhere to these rules:\\nThe project is built with Vue 3, Typescript, Tailwind, shadcn-vue and other modern technologies.\\n\\nFor some transient time, this project is used to migrate legacy Vue 2 + JS + gitlab-ui components to the new tech stack. While migrating components all of the gitlab-ui components should be replaced with the shadcn-ui analogues or explicitly agreed with the user. If you see any better analogue in shadcn-ui or better way to implement functionality, speak up and ask for user\'s confirmation on what path to take.\\n\\nEvery component should have a story and a test spec alongside itself.","category":"user_rule","metadata":{"icon":"user","title":"User instruction","enabled":true,"subType":"user_rule","subTypeLabel":"User instruction","secondaryText":"chat-rules.md"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"Help me migrate the legacy duo_chat_component to the modern tech stack of the current project. If there are ways to simplify it (remove unnecessary CSS, functionality, etc) and rely more on the default shadcn-ui components, please suggest those simplifications. If you need to install any shadcn-ui component, feel free to do so","example":false,"additional_kwargs":{"additional_context":[{"id":"1","content":"The user wants you to adhere to these rules:\\nThe project is built with Vue 3, Typescript, Tailwind, shadcn-vue and other modern technologies.\\n\\nFor some transient time, this project is used to migrate legacy Vue 2 + JS + gitlab-ui components to the new tech stack. While migrating components all of the gitlab-ui components should be replaced with the shadcn-ui analogues or explicitly agreed with the user. If you see any better analogue in shadcn-ui or better way to implement functionality, speak up and ask for user\'s confirmation on what path to take.\\n\\nEvery component should have a story and a test spec alongside itself.","category":"user_rule","metadata":{"icon":"user","title":"User instruction","enabled":true,"subType":"user_rule","subTypeLabel":"User instruction","secondaryText":"chat-rules.md"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
407
|
+
},
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1031775',
|
|
411
|
+
projectId: 'gid://gitlab/Project/278964',
|
|
412
|
+
humanStatus: 'input required',
|
|
413
|
+
updatedAt: '2025-01-31T12:20:31Z',
|
|
414
|
+
goal: 'I have the following data structure: "edges": [\n {\n "node": {\n "id": "gid://gitlab/Ai::DuoWorkflows::Workflow/1031434",\n "projectId": "gid://gitlab/Project/62039593",\n "humanStatus": "input required",\n "updatedAt": "2025-07-20T19:27:15Z",\n "createdAt": "2025-07-20T18:51:44Z",\n "goal": "Hel",\n "stalled": false,\n "archived": false\n }\n },\n {\n "node": {\n "id": "gid://gitlab/Ai::DuoWorkflows::Workflow/1031206",\n "projectId": "gid://gitlab/Project/62039593",\n "humanStatus": "input required",\n "updatedAt": "2025-07-19T12:20:31Z",\n "createdAt": "2025-07-19T12:15:49Z",\n "goal": "Hel",\n "stalled": false,\n "archived": false\n }\n },]\n\nHow can I "unwrap" nodes so that, let\'s say a constant `nodes` would contain an array of nodes like: [\n {\n "id": "gid://gitlab/Ai::DuoWorkflows::Workflow/1031434",\n "projectId": "gid://gitlab/Project/62039593",\n "humanStatus": "input required",\n "updatedAt": "2025-07-20T19:27:15Z",\n "createdAt": "2025-07-20T18:51:44Z",\n "goal": "Hel",\n "stalled": false,\n "archived": false\n },\n {\n "id": "gid://gitlab/Ai::DuoWorkflows::Workflow/1031206",\n "projectId": "gid://gitlab/Project/62039593",\n "humanStatus": "input required",\n "updatedAt": "2025-07-19T12:20:31Z",\n "createdAt": "2025-07-19T12:15:49Z",\n "goal": "Hel",\n "stalled": false,\n "archived": false\n },]?',
|
|
415
|
+
stalled: false,
|
|
416
|
+
archived: false,
|
|
417
|
+
firstCheckpoint: {
|
|
418
|
+
checkpoint:
|
|
419
|
+
'{"v":3,"id":"1f0660ac-f31d-611f-bfff-989cc966f3d3","ts":"2025-07-21T08:15:06.033987+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":278964,"name":"GitLab","web_url":"https://gitlab.com/gitlab-org/gitlab","languages":[{"name":"Ruby","share":68.37},{"name":"JavaScript","share":19.23},{"name":"Vue","share":8.04},{"name":"PLpgSQL","share":1.86},{"name":"Haml","share":1.22}],"description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"I have the following data structure: \\"edges\\": [\\n {\\n \\"node\\": {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031434\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-20T19:27:15Z\\",\\n \\"createdAt\\": \\"2025-07-20T18:51:44Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n }\\n },\\n {\\n \\"node\\": {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031206\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-19T12:20:31Z\\",\\n \\"createdAt\\": \\"2025-07-19T12:15:49Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n }\\n },]\\n\\nHow can I \\"unwrap\\" nodes so that, let\'s say a constant `nodes` would contain an array of nodes like: [\\n {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031434\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-20T19:27:15Z\\",\\n \\"createdAt\\": \\"2025-07-20T18:51:44Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n },\\n {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031206\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-19T12:20:31Z\\",\\n \\"createdAt\\": \\"2025-07-19T12:15:49Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n },]?","timestamp":"2025-07-21T08:15:05.647932+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"I have the following data structure: \\"edges\\": [\\n {\\n \\"node\\": {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031434\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-20T19:27:15Z\\",\\n \\"createdAt\\": \\"2025-07-20T18:51:44Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n }\\n },\\n {\\n \\"node\\": {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031206\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-19T12:20:31Z\\",\\n \\"createdAt\\": \\"2025-07-19T12:15:49Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n }\\n },]\\n\\nHow can I \\"unwrap\\" nodes so that, let\'s say a constant `nodes` would contain an array of nodes like: [\\n {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031434\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-20T19:27:15Z\\",\\n \\"createdAt\\": \\"2025-07-20T18:51:44Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n },\\n {\\n \\"id\\": \\"gid://gitlab/Ai::DuoWorkflows::Workflow/1031206\\",\\n \\"projectId\\": \\"gid://gitlab/Project/62039593\\",\\n \\"humanStatus\\": \\"input required\\",\\n \\"updatedAt\\": \\"2025-07-19T12:20:31Z\\",\\n \\"createdAt\\": \\"2025-07-19T12:15:49Z\\",\\n \\"goal\\": \\"Hel\\",\\n \\"stalled\\": false,\\n \\"archived\\": false\\n },]?","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
420
|
+
},
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1031206',
|
|
424
|
+
projectId: 'gid://gitlab/Project/62039593',
|
|
425
|
+
humanStatus: 'input required',
|
|
426
|
+
updatedAt: '2025-01-31T08:15:32Z',
|
|
427
|
+
goal: 'Help me introduce translation support for the selected string using the Vue-18n dependency',
|
|
428
|
+
stalled: false,
|
|
429
|
+
archived: false,
|
|
430
|
+
firstCheckpoint: {
|
|
431
|
+
checkpoint:
|
|
432
|
+
'{"v":3,"id":"1f0649a2-cee3-6c86-bfff-b35ddd3c4901","ts":"2025-07-19T12:16:19.003703+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":62039593,"name":"Duo UI","web_url":"https://gitlab.com/gitlab-org/duo-ui","languages":[{"name":"JavaScript","share":72.16},{"name":"Vue","share":22.06},{"name":"SCSS","share":2.68},{"name":"Ruby","share":1.54},{"name":"TypeScript","share":0.6}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"Help me introduce translation support for the selected string using the Vue-18n dependency","timestamp":"2025-07-19T12:16:18.708768+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"editor_selection:src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue_893edb37-6d20-4f81-83eb-2f5fbb290609","type":"AdditionalContext","content":" return count === 1 ? \'Source\' : \'Sources\';","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue","enabled":true,"subType":"snippet","fileName":"src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue","subTypeLabel":"Editor Selection","secondaryText":"src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue"}},{"id":"1","type":"AdditionalContext","content":"The user wants you to adhere to these rules:\\nThe project is built with Vue 3, Typescript, Tailwind, shadcn-vue and other modern technologies.\\n\\nFor some transient time, this project is used to migrate legacy Vue 2 + JS + gitlab-ui components to the new tech stack. While migrating components all of the gitlab-ui components should be replaced with the shadcn-ui analogues or explicitly agreed with the user. If you see any better analogue in shadcn-ui or better way to implement functionality, speak up and ask for user\'s confirmation on what path to take.\\n\\nEvery string that is meant to be output in the UI, should be translated. The package is using Vue-18 dependency for translations.\\n\\nEvery component should have a story and a test spec alongside itself.","category":"user_rule","metadata":{"icon":"user","title":"User instruction","enabled":true,"subType":"user_rule","subTypeLabel":"User instruction","secondaryText":"chat-rules.md"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"Help me introduce translation support for the selected string using the Vue-18n dependency","example":false,"additional_kwargs":{"additional_context":[{"id":"editor_selection:src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue_893edb37-6d20-4f81-83eb-2f5fbb290609","content":" return count === 1 ? \'Source\' : \'Sources\';","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue","enabled":true,"subType":"snippet","fileName":"src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue","subTypeLabel":"Editor Selection","secondaryText":"src/components/custom/duo_chat_message_sources/duo_chat_message_sources.vue"}},{"id":"1","content":"The user wants you to adhere to these rules:\\nThe project is built with Vue 3, Typescript, Tailwind, shadcn-vue and other modern technologies.\\n\\nFor some transient time, this project is used to migrate legacy Vue 2 + JS + gitlab-ui components to the new tech stack. While migrating components all of the gitlab-ui components should be replaced with the shadcn-ui analogues or explicitly agreed with the user. If you see any better analogue in shadcn-ui or better way to implement functionality, speak up and ask for user\'s confirmation on what path to take.\\n\\nEvery string that is meant to be output in the UI, should be translated. The package is using Vue-18 dependency for translations.\\n\\nEvery component should have a story and a test spec alongside itself.","category":"user_rule","metadata":{"icon":"user","title":"User instruction","enabled":true,"subType":"user_rule","subTypeLabel":"User instruction","secondaryText":"chat-rules.md"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
433
|
+
},
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1031041',
|
|
437
|
+
projectId: 'gid://gitlab/Project/62039593',
|
|
438
|
+
humanStatus: 'failed',
|
|
439
|
+
updatedAt: '2025-01-15T20:35:23Z',
|
|
440
|
+
goal: 'I need your help migrating the src/components/custom/duo_chat_message_sources folder (component, story, and the test), that were copied over from a legacy project to the tech stack used in this project. Can you help?',
|
|
441
|
+
stalled: false,
|
|
442
|
+
archived: false,
|
|
443
|
+
firstCheckpoint: {
|
|
444
|
+
checkpoint:
|
|
445
|
+
'{"v":3,"id":"1f064155-71df-6f90-bfff-eaa94aa27ec1","ts":"2025-07-18T20:25:26.715981+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":62039593,"name":"Duo UI","web_url":"https://gitlab.com/gitlab-org/duo-ui","languages":[{"name":"JavaScript","share":72.16},{"name":"Vue","share":22.06},{"name":"SCSS","share":2.68},{"name":"Ruby","share":1.54},{"name":"TypeScript","share":0.6}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"I need your help migrating the src/components/custom/duo_chat_message_sources folder (component, story, and the test), that were copied over from a legacy project to the tech stack used in this project. Can you help?","timestamp":"2025-07-18T20:25:26.401616+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"I need your help migrating the src/components/custom/duo_chat_message_sources folder (component, story, and the test), that were copied over from a legacy project to the tech stack used in this project. Can you help?","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
446
|
+
},
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1030377',
|
|
450
|
+
projectId: 'gid://gitlab/Project/46519181',
|
|
451
|
+
humanStatus: 'input required',
|
|
452
|
+
updatedAt: '2025-01-15T12:03:06Z',
|
|
453
|
+
goal: "How should I update the CSP derectives to allow images from `https://secure.gravatar.com/avatar/`? I've tried with the selected update, but it doesn't work - I get the \"The source list for the Content Security Policy directive 'img-src' contains an invalid source: ''secure.gravatar.com''. It will be ignored.\" error. Can you help me fix this and allow images from that domain?",
|
|
454
|
+
stalled: false,
|
|
455
|
+
archived: false,
|
|
456
|
+
firstCheckpoint: {
|
|
457
|
+
checkpoint:
|
|
458
|
+
'{"v":3,"id":"1f063cf2-1522-60d4-bfff-b222b997066b","ts":"2025-07-18T12:02:51.689588+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":46519181,"name":"GitLab Language Server","web_url":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp","languages":[{"name":"TypeScript","share":79.66},{"name":"JavaScript","share":12.25},{"name":"Vue","share":5.62},{"name":"SCSS","share":2.01},{"name":"Shell","share":0.38}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"How should I update the CSP derectives to allow images from `https://secure.gravatar.com/avatar/`? I\'ve tried with the selected update, but it doesn\'t work - I get the \\"The source list for the Content Security Policy directive \'img-src\' contains an invalid source: \'\'secure.gravatar.com\'\'. It will be ignored.\\" error. Can you help me fix this and allow images from that domain?","timestamp":"2025-07-18T12:02:51.347774+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"editor_selection:src/common/webview/html/utils/csp_builder.ts_cd5c7d74-f642-4b6f-ac74-5aacff408dd6","type":"AdditionalContext","content":" \'img-src\': [\\"\'self\'\\", \\"\'secure.gravatar.com\'\\"],","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/common/webview/html/utils/csp_builder.ts","enabled":true,"subType":"snippet","fileName":"src/common/webview/html/utils/csp_builder.ts","subTypeLabel":"Editor Selection","secondaryText":"src/common/webview/html/utils/csp_builder.ts"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"How should I update the CSP derectives to allow images from `https://secure.gravatar.com/avatar/`? I\'ve tried with the selected update, but it doesn\'t work - I get the \\"The source list for the Content Security Policy directive \'img-src\' contains an invalid source: \'\'secure.gravatar.com\'\'. It will be ignored.\\" error. Can you help me fix this and allow images from that domain?","example":false,"additional_kwargs":{"additional_context":[{"id":"editor_selection:src/common/webview/html/utils/csp_builder.ts_cd5c7d74-f642-4b6f-ac74-5aacff408dd6","content":" \'img-src\': [\\"\'self\'\\", \\"\'secure.gravatar.com\'\\"],","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/common/webview/html/utils/csp_builder.ts","enabled":true,"subType":"snippet","fileName":"src/common/webview/html/utils/csp_builder.ts","subTypeLabel":"Editor Selection","secondaryText":"src/common/webview/html/utils/csp_builder.ts"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
459
|
+
},
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1029369',
|
|
463
|
+
projectId: 'gid://gitlab/Project/7071551',
|
|
464
|
+
humanStatus: 'input required',
|
|
465
|
+
updatedAt: '2025-01-08T15:55:58Z',
|
|
466
|
+
goal: 'explain this to me',
|
|
467
|
+
stalled: false,
|
|
468
|
+
archived: false,
|
|
469
|
+
firstCheckpoint: {
|
|
470
|
+
checkpoint:
|
|
471
|
+
'{"v":3,"id":"1f063217-75c6-6ace-bfff-9c250f04abb6","ts":"2025-07-17T15:19:43.610124+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":7071551,"name":"gitlab-ui","web_url":"https://gitlab.com/gitlab-org/gitlab-ui","languages":[{"name":"JavaScript","share":56.13},{"name":"Vue","share":19.71},{"name":"SCSS","share":15.81},{"name":"CSS","share":7.21},{"name":"Ruby","share":0.39}],"description":"Development of this project has moved to https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com.\\r\\n\\r\\nSee https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues/2035 for more information.","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"foo bar","timestamp":"2025-07-17T15:19:43.272681+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"foo bar","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
472
|
+
},
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1029334',
|
|
476
|
+
projectId: 'gid://gitlab/Project/7071551',
|
|
477
|
+
humanStatus: 'input required',
|
|
478
|
+
updatedAt: '2025-01-08T15:19:49Z',
|
|
479
|
+
goal: 'foo bar',
|
|
480
|
+
stalled: false,
|
|
481
|
+
archived: false,
|
|
482
|
+
firstCheckpoint: {
|
|
483
|
+
checkpoint:
|
|
484
|
+
'{"v":3,"id":"1f063217-75c6-6ace-bfff-9c250f04abb6","ts":"2025-07-17T15:19:43.610124+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":7071551,"name":"gitlab-ui","web_url":"https://gitlab.com/gitlab-org/gitlab-ui","languages":[{"name":"JavaScript","share":56.13},{"name":"Vue","share":19.71},{"name":"SCSS","share":15.81},{"name":"CSS","share":7.21},{"name":"Ruby","share":0.39}],"description":"Development of this project has moved to https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com.\\r\\n\\r\\nSee https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues/2035 for more information.","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"foo bar","timestamp":"2025-07-17T15:19:43.272681+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"foo bar","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
485
|
+
},
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1029330',
|
|
489
|
+
projectId: 'gid://gitlab/Project/7071551',
|
|
490
|
+
humanStatus: 'input required',
|
|
491
|
+
updatedAt: '2025-01-08T15:17:28Z',
|
|
492
|
+
goal: 'test me',
|
|
493
|
+
stalled: false,
|
|
494
|
+
archived: false,
|
|
495
|
+
firstCheckpoint: {
|
|
496
|
+
checkpoint:
|
|
497
|
+
'{"v":3,"id":"1f063212-2bac-68c0-bfff-fc55ae272eb1","ts":"2025-07-17T15:17:21.622232+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":7071551,"name":"gitlab-ui","web_url":"https://gitlab.com/gitlab-org/gitlab-ui","languages":[{"name":"JavaScript","share":56.13},{"name":"Vue","share":19.71},{"name":"SCSS","share":15.81},{"name":"CSS","share":7.21},{"name":"Ruby","share":0.39}],"description":"Development of this project has moved to https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com.\\r\\n\\r\\nSee https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues/2035 for more information.","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-ui.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"test me","timestamp":"2025-07-17T15:17:21.275711+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":null}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"test me","example":false,"additional_kwargs":{"additional_context":null},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
498
|
+
},
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1028684',
|
|
502
|
+
projectId: 'gid://gitlab/Project/46519181',
|
|
503
|
+
humanStatus: 'input required',
|
|
504
|
+
updatedAt: '2025-01-08T22:16:28Z',
|
|
505
|
+
goal: 'In the `packages/lib_webview_agentic_chat/src/app/common/chat.test.js` file, help me fill out the "provides avatarUrl to the underlying components" and the "provides renderGFM to the underlying components" test placeholders based on the implementation in `packages/lib_webview_agentic_chat/src/app/common/chat.vue`',
|
|
506
|
+
stalled: false,
|
|
507
|
+
archived: false,
|
|
508
|
+
firstCheckpoint: {
|
|
509
|
+
checkpoint:
|
|
510
|
+
'{"v":3,"id":"1f062927-1357-6124-bfff-af05cc284fdb","ts":"2025-07-16T22:15:55.256032+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":46519181,"name":"GitLab Language Server","web_url":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp","languages":[{"name":"TypeScript","share":79.68},{"name":"JavaScript","share":12.26},{"name":"Vue","share":5.33},{"name":"SCSS","share":2.26},{"name":"Shell","share":0.38}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"In the `packages/lib_webview_agentic_chat/src/app/common/chat.test.js` file, help me fill out the \\"provides avatarUrl to the underlying components\\" and the \\"provides renderGFM to the underlying components\\" test placeholders based on the implementation in `packages/lib_webview_agentic_chat/src/app/common/chat.vue`","timestamp":"2025-07-16T22:15:54.359309+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"editor_selection:packages/lib_webview_agentic_chat/src/app/common/chat.test.js_b5815a3e-099c-466d-9ef0-f48536f69ddd","type":"AdditionalContext","content":"provides renderGFM to the underlying components","category":"snippet","metadata":{"icon":"selection","title":"Selected text in packages/lib_webview_agentic_chat/src/app/common/chat.test.js","enabled":true,"subType":"snippet","fileName":"packages/lib_webview_agentic_chat/src/app/common/chat.test.js","subTypeLabel":"Editor Selection","secondaryText":"packages/lib_webview_agentic_chat/src/app/common/chat.test.js"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"In the `packages/lib_webview_agentic_chat/src/app/common/chat.test.js` file, help me fill out the \\"provides avatarUrl to the underlying components\\" and the \\"provides renderGFM to the underlying components\\" test placeholders based on the implementation in `packages/lib_webview_agentic_chat/src/app/common/chat.vue`","example":false,"additional_kwargs":{"additional_context":[{"id":"editor_selection:packages/lib_webview_agentic_chat/src/app/common/chat.test.js_b5815a3e-099c-466d-9ef0-f48536f69ddd","content":"provides renderGFM to the underlying components","category":"snippet","metadata":{"icon":"selection","title":"Selected text in packages/lib_webview_agentic_chat/src/app/common/chat.test.js","enabled":true,"subType":"snippet","fileName":"packages/lib_webview_agentic_chat/src/app/common/chat.test.js","subTypeLabel":"Editor Selection","secondaryText":"packages/lib_webview_agentic_chat/src/app/common/chat.test.js"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
511
|
+
},
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
id: 'gid://gitlab/Ai::DuoWorkflows::Workflow/1028594',
|
|
515
|
+
projectId: 'gid://gitlab/Project/46519181',
|
|
516
|
+
humanStatus: 'tool call approval required',
|
|
517
|
+
updatedAt: '2025-01-08T20:03:24Z',
|
|
518
|
+
goal: "In the current project I need to ensure that a webview in packages/lib_webview_agentic_chat has information about `avatarUrl` of the currently logged in user. The GraphQl query to get that information is in user_service (src/common/core/services/user_service.ts). Can you help me connect that service to the webview somehow? I would need to get that information sent down to the webview as part of the `pluginToWebview` communication channel, I guess. But please analyze all the options and let's see how far we can get",
|
|
519
|
+
stalled: false,
|
|
520
|
+
archived: false,
|
|
521
|
+
firstCheckpoint: {
|
|
522
|
+
checkpoint:
|
|
523
|
+
'{"v":3,"id":"1f0627f5-1510-677c-bfff-624b1a456de4","ts":"2025-07-16T19:59:01.311877+00:00","pending_sends":[],"versions_seen":{"__input__":{}},"channel_values":{"__start__":{"plan":{"steps":[]},"status":"Not Started","project":{"id":46519181,"name":"GitLab Language Server","web_url":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp","languages":[{"name":"TypeScript","share":79.68},{"name":"JavaScript","share":12.26},{"name":"Vue","share":5.33},{"name":"SCSS","share":2.26},{"name":"Shell","share":0.38}],"description":"","http_url_to_repo":"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp.git"},"approval":null,"ui_chat_log":[{"status":"success","content":"In the current project I need to ensure that a webview in packages/lib_webview_agentic_chat has information about `avatarUrl` of the currently logged in user. The GraphQl query to get that information is in user_service (src/common/core/services/user_service.ts). Can you help me connect that service to the webview somehow? I would need to get that information sent down to the webview as part of the `pluginToWebview` communication channel, I guess. But please analyze all the options and let\'s see how far we can get","timestamp":"2025-07-16T19:59:00.775754+00:00","tool_info":null,"message_type":"user","correlation_id":null,"message_sub_type":null,"additional_context":[{"id":"editor_selection:src/common/core/services/user_service.ts_22d20969-dfd7-4b78-9dac-c63de2f559ea","type":"AdditionalContext","content":"DefaultUserService","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/common/core/services/user_service.ts","enabled":true,"subType":"snippet","fileName":"src/common/core/services/user_service.ts","subTypeLabel":"Editor Selection","secondaryText":"src/common/core/services/user_service.ts"}}]}],"last_human_input":null,"conversation_history":{"Chat Agent":[{"id":null,"name":null,"type":"HumanMessage","content":"In the current project I need to ensure that a webview in packages/lib_webview_agentic_chat has information about `avatarUrl` of the currently logged in user. The GraphQl query to get that information is in user_service (src/common/core/services/user_service.ts). Can you help me connect that service to the webview somehow? I would need to get that information sent down to the webview as part of the `pluginToWebview` communication channel, I guess. But please analyze all the options and let\'s see how far we can get","example":false,"additional_kwargs":{"additional_context":[{"id":"editor_selection:src/common/core/services/user_service.ts_22d20969-dfd7-4b78-9dac-c63de2f559ea","content":"DefaultUserService","category":"snippet","metadata":{"icon":"selection","title":"Selected text in src/common/core/services/user_service.ts","enabled":true,"subType":"snippet","fileName":"src/common/core/services/user_service.ts","subTypeLabel":"Editor Selection","secondaryText":"src/common/core/services/user_service.ts"}}]},"response_metadata":{}}]}}},"channel_versions":{"__start__":1}}',
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
];
|