@gitlab/duo-ui 10.11.0 → 10.12.1
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 +14 -0
- package/dist/components/agentic_chat/agentic_duo_chat.js +3 -3
- package/dist/components/agentic_chat/components/agentic_tool_approval_flow/agentic_tool_approval_modal/agentic_tool_approval_modal.js +1 -1
- package/dist/components/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.js +1 -1
- package/dist/components/chat/components/duo_chat_header/duo_chat_header.js +1 -1
- package/dist/components/chat/components/duo_chat_message/duo_chat_message.js +4 -4
- package/dist/components/chat/components/duo_chat_message/message_types/message_base.js +1 -1
- package/dist/components/chat/components/duo_chat_message/message_types/message_tool.js +1 -1
- package/dist/components/chat/components/duo_chat_message/message_types/message_user.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_predefined_prompts/duo_chat_predefined_prompts.js +1 -1
- package/dist/components/chat/components/duo_chat_threads/duo_chat_threads.js +6 -3
- package/dist/components/chat/components/duo_chat_threads/duo_chat_threads_empty.js +1 -1
- package/dist/components/chat/duo_chat.js +2 -2
- package/dist/components/chat/mock_data.js +112 -1
- package/dist/components/ui/duo_navigation_bar/duo_navigation_bar.js +1 -1
- package/dist/components/ui/duo_recent_collapsible/duo_recent_collapsible.js +1 -1
- package/dist/components/ui/duo_terminal_command/duo_terminal_command.js +1 -1
- package/package.json +2 -1
- package/src/components/agentic_chat/agentic_duo_chat.vue +9 -10
- package/src/components/agentic_chat/components/agentic_tool_approval_flow/agentic_tool_approval_modal/agentic_tool_approval_modal.vue +2 -2
- package/src/components/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.vue +2 -2
- package/src/components/chat/components/duo_chat_header/duo_chat_header.vue +2 -2
- package/src/components/chat/components/duo_chat_message/duo_chat_message.vue +4 -4
- package/src/components/chat/components/duo_chat_message/message_types/message_base.vue +1 -1
- package/src/components/chat/components/duo_chat_message/message_types/message_tool.vue +4 -4
- package/src/components/chat/components/duo_chat_message/message_types/message_user.vue +1 -1
- package/src/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.vue +6 -6
- package/src/components/chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.vue +0 -1
- package/src/components/chat/components/duo_chat_threads/duo_chat_threads.vue +11 -7
- package/src/components/chat/components/duo_chat_threads/duo_chat_threads_empty.vue +2 -2
- package/src/components/chat/duo_chat.vue +4 -4
- package/src/components/chat/mock_data.js +133 -0
- package/src/components/ui/duo_navigation_bar/duo_navigation_bar.vue +1 -1
- package/src/components/ui/duo_recent_collapsible/duo_recent_collapsible.vue +1 -1
- package/src/components/ui/duo_terminal_command/duo_terminal_command.vue +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [10.12.1](https://gitlab.com/gitlab-org/duo-ui/compare/v10.12.0...v10.12.1) (2025-07-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* Remove question icon from DuoChatPredefinedPrompts ([8e55188](https://gitlab.com/gitlab-org/duo-ui/commit/8e5518879108163e66c07bb3a1948e162f4f9089))
|
|
7
|
+
|
|
8
|
+
# [10.12.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.11.0...v10.12.0) (2025-07-22)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* introduce support for the agentic chat history ([f95b16f](https://gitlab.com/gitlab-org/duo-ui/commit/f95b16f9c09570a0b81939339da2776814c54bf5))
|
|
14
|
+
|
|
1
15
|
# [10.11.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.10.0...v10.11.0) (2025-07-21)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -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);
|
|
@@ -642,10 +642,10 @@ const __vue_script__ = script;
|
|
|
642
642
|
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.shouldRenderResizable ? 'vue-resizable' : 'div',{tag:"component",class:{
|
|
643
643
|
'duo-chat-resizable': _vm.shouldRenderResizable,
|
|
644
644
|
'non-resizable-wrapper': !_vm.shouldRenderResizable,
|
|
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
|
|
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-flex gl-max-h-full 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-
|
|
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-flex gl-flex-1 gl-flex-grow gl-flex-col gl-overflow-y-auto gl-overscroll-contain gl-bg-inherit",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-mt-auto gl-p-5",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-relative gl-z-2 gl-shrink-0 gl-border-0 gl-bg-default gl-pb-3",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 */
|
|
@@ -101,7 +101,7 @@ var script = {
|
|
|
101
101
|
const __vue_script__ = script;
|
|
102
102
|
|
|
103
103
|
/* template */
|
|
104
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-modal',{attrs:{"visible":_vm.visible,"modal-id":"agentic-tool-approval-modal","title":_vm.$options.i18n.TITLE,"action-primary":_vm.approveAction,"action-cancel":_vm.denyAction,"no-close-on-backdrop":true,"no-close-on-esc":true,"data-testid":"agentic-tool-approval-modal"},on:{"primary":_vm.handleApprove,"canceled":_vm.handleDeny,"hide":_vm.handleModalHide}},[_c('div',{staticClass:"gl-mb-4"},[_c('p',{staticClass:"gl-mb-3",attrs:{"data-testid":"approval-description"}},[_vm._v("\n "+_vm._s(_vm.description)+"\n ")]),_vm._v(" "),(_vm.toolDetails)?_c('div',{staticClass:"gl-
|
|
104
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-modal',{attrs:{"visible":_vm.visible,"modal-id":"agentic-tool-approval-modal","title":_vm.$options.i18n.TITLE,"action-primary":_vm.approveAction,"action-cancel":_vm.denyAction,"no-close-on-backdrop":true,"no-close-on-esc":true,"data-testid":"agentic-tool-approval-modal"},on:{"primary":_vm.handleApprove,"canceled":_vm.handleDeny,"hide":_vm.handleModalHide}},[_c('div',{staticClass:"gl-mb-4"},[_c('p',{staticClass:"gl-mb-3",attrs:{"data-testid":"approval-description"}},[_vm._v("\n "+_vm._s(_vm.description)+"\n ")]),_vm._v(" "),(_vm.toolDetails)?_c('div',{staticClass:"gl-mb-3 gl-rounded-base gl-bg-gray-10 gl-p-3",attrs:{"data-testid":"tool-details"}},[_c('strong',[_vm._v(_vm._s(_vm.$options.i18n.TOOL_LABEL)+" "+_vm._s(_vm.toolName))]),_vm._v(" "),(_vm.toolDetails.parameters)?_c('pre',{staticClass:"gl-mb-0 gl-mt-2 gl-text-inherit",attrs:{"data-testid":"tool-parameters"}},[_vm._v(_vm._s(JSON.stringify(_vm.toolDetails.parameters, null, 2)))]):_vm._e()]):_vm._e()])])};
|
|
105
105
|
var __vue_staticRenderFns__ = [];
|
|
106
106
|
|
|
107
107
|
/* style */
|
|
@@ -233,7 +233,7 @@ var script = {
|
|
|
233
233
|
const __vue_script__ = script;
|
|
234
234
|
|
|
235
235
|
/* template */
|
|
236
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.selections.length)?_c('duo-chat-context-item-selections',{staticClass:"gl-mb-3",attrs:{"selections":_vm.selections,"removable":true,"title":_vm.$options.i18n.selectedContextItemsTitle,"default-collapsed":false,"data-testid":"primary-context-item-selections"},on:{"remove":_vm.removeItem,"get-content":_vm.onGetContextItemContent}}):_vm._e(),_vm._v(" "),(_vm.open)?_c('div',{attrs:{"tabindex":"0","data-testid":"context-item-menu-wrapper"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }return _vm.handleEsc.apply(null, arguments)}}},[_c('gl-card',{staticClass:"slash-commands !gl-absolute gl-bottom-0 gl-w-full gl-pl-0 gl-shadow-md",attrs:{"body-class":"!gl-p-2","data-testid":"context-item-menu"}},[_c('div',{staticClass:"gl-
|
|
236
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.selections.length)?_c('duo-chat-context-item-selections',{staticClass:"gl-mb-3",attrs:{"selections":_vm.selections,"removable":true,"title":_vm.$options.i18n.selectedContextItemsTitle,"default-collapsed":false,"data-testid":"primary-context-item-selections"},on:{"remove":_vm.removeItem,"get-content":_vm.onGetContextItemContent}}):_vm._e(),_vm._v(" "),(_vm.open)?_c('div',{attrs:{"tabindex":"0","data-testid":"context-item-menu-wrapper"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }return _vm.handleEsc.apply(null, arguments)}}},[_c('gl-card',{staticClass:"slash-commands !gl-absolute gl-bottom-0 gl-w-full gl-pl-0 gl-shadow-md",attrs:{"body-class":"!gl-p-2","data-testid":"context-item-menu"}},[_c('div',{staticClass:"gl-mb-2 gl-flex"},[(_vm.selectedCategory)?_c('gl-button',{staticClass:"!gl-shadow-none",attrs:{"size":"small","icon":"chevron-lg-left","aria-label":"Go back","data-testid":"context-item-menu-back-button"},on:{"click":function($event){return _vm.handleEsc()}}}):_vm._e(),_vm._v(" "),_c('gl-button',{staticClass:"gl-ml-auto !gl-shadow-none",attrs:{"size":"small","icon":"close","aria-label":"Close menu","data-testid":"context-item-menu-close-button"},on:{"click":function($event){return _vm.closeMenu()}}})],1),_vm._v(" "),(_vm.showCategorySelection)?_c('duo-chat-context-item-menu-category-items',{attrs:{"active-index":_vm.activeIndex,"categories":_vm.categories},on:{"select":_vm.selectCategory,"active-index-change":function($event){_vm.activeIndex = $event;}}}):_c('duo-chat-context-item-menu-search-items',{attrs:{"active-index":_vm.activeIndex,"category":_vm.selectedCategory,"loading":_vm.loading,"error":_vm.error,"results":_vm.results},on:{"select":_vm.selectItem,"keyup":_vm.handleKeyUp,"active-index-change":function($event){_vm.activeIndex = $event;}},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v;},expression:"searchQuery"}}),_vm._v(" "),(_vm.selections.length)?_c('duo-chat-context-item-selections',{staticClass:"!gl-mb-0 gl-mt-2 gl-max-h-13 gl-overflow-y-auto",attrs:{"selections":_vm.selections,"removable":true,"title":_vm.$options.i18n.selectedContextItemsTitle,"default-collapsed":false,"data-testid":"in-menu-context-item-selections"},on:{"remove":_vm.removeItem,"get-content":_vm.onGetContextItemContent}}):_vm._e()],1)],1):_vm._e()],1)};
|
|
237
237
|
var __vue_staticRenderFns__ = [];
|
|
238
238
|
|
|
239
239
|
/* style */
|
|
@@ -76,7 +76,7 @@ var script = {
|
|
|
76
76
|
const __vue_script__ = script;
|
|
77
77
|
|
|
78
78
|
/* template */
|
|
79
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:"gl-border-b gl-
|
|
79
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:"gl-border-b gl-shrink-0 gl-bg-default gl-p-0",attrs:{"data-testid":"chat-header"}},[_c('div',{staticClass:"drawer-title gl-flex gl-items-center gl-justify-start gl-p-5"},[_c('div',{staticClass:"gl-flex-1 gl-overflow-hidden"},[_c('div',{staticClass:"gl-flex gl-items-center"},[_c('h3',{staticClass:"gl-my-0 gl-text-size-h2"},[_vm._v(_vm._s(_vm.title))]),_vm._v(" "),(_vm.badgeType)?_c('gl-experiment-badge',{attrs:{"type":_vm.badgeType,"container-id":"chat-component"}}):_vm._e()],1),_vm._v(" "),(_vm.subtitle)?_c('h4',{staticClass:"gl-mb-0 gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap gl-pr-3 gl-text-sm gl-font-normal gl-text-subtle",attrs:{"data-testid":"chat-subtitle"}},[_vm._v("\n "+_vm._s(_vm.subtitle)+"\n ")]):_vm._e()]),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-gap-3"},[(_vm.isMultithreaded && (_vm.activeThreadId || _vm.currentView === _vm.VIEW_TYPES.LIST))?_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"title":_vm.$options.i18n.CHAT_NEW_TOOLTIP,"data-testid":"chat-new-button","variant":"confirm","category":"tertiary","size":"small","icon":"duo-chat-new","aria-label":_vm.$options.i18n.CHAT_NEW_LABEL},on:{"click":function($event){return _vm.$emit('new-chat')}}}):_vm._e(),_vm._v(" "),(_vm.isMultithreaded && _vm.currentView === _vm.VIEW_TYPES.CHAT)?_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"title":_vm.$options.i18n.CHAT_HISTORY_TOOLTIP,"data-testid":"go-back-to-list-button","category":"tertiary","size":"small","icon":"history","aria-label":_vm.$options.i18n.CHAT_BACK_LABEL},on:{"click":function($event){return _vm.$emit('go-back')}}}):_vm._e(),_vm._v(" "),(_vm.isMultithreaded && _vm.activeThreadId && _vm.currentView === _vm.VIEW_TYPES.LIST)?_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"title":_vm.$options.i18n.CHAT_BACK_TO_CHAT_TOOLTIP,"data-testid":"go-back-to-chat-button","category":"tertiary","size":"small","icon":"go-back","aria-label":_vm.$options.i18n.CHAT_BACK_TO_CHAT_TOOLTIP},on:{"click":function($event){return _vm.$emit('go-back-to-chat')}}}):_vm._e(),_vm._v(" "),_c('gl-button',{staticClass:"gl-ml-auto",attrs:{"category":"tertiary","variant":"default","icon":"close","size":"small","data-testid":"chat-close-button","aria-label":_vm.$options.i18n.CHAT_CLOSE_LABEL},on:{"click":function($event){return _vm.$emit('close')}}})],1)]),_vm._v(" "),_vm._t("subheader"),_vm._v(" "),(_vm.error)?_c('gl-alert',{key:"error",staticClass:"!gl-pl-9",attrs:{"dismissible":false,"variant":"danger","role":"alert","data-testid":"chat-error"}},[_c('span',{directives:[{name:"safe-html",rawName:"v-safe-html",value:(_vm.error),expression:"error"}]})]):_vm._e()],2)};
|
|
80
80
|
var __vue_staticRenderFns__ = [];
|
|
81
81
|
|
|
82
82
|
/* style */
|
|
@@ -288,12 +288,12 @@ var script = {
|
|
|
288
288
|
const __vue_script__ = script;
|
|
289
289
|
|
|
290
290
|
/* template */
|
|
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
|
|
292
|
-
_vm.copied = false;}}},[(_vm.isAssistantMessage || _vm.isUserMessage)?[_c('div',{staticClass:"duo-chat-message gl-leading-20 gl-break-anywhere
|
|
293
|
-
'gl-ml-auto gl-
|
|
291
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"duo-chat-message-container gl-flex gl-flex-row gl-items-end",on:{"mouseenter":function($event){_vm.hovered = true;},"mouseleave":function($event){_vm.hovered = false;
|
|
292
|
+
_vm.copied = false;}}},[(_vm.isAssistantMessage || _vm.isUserMessage)?[_c('div',{staticClass:"duo-chat-message md gl-w-full gl-leading-20 gl-break-anywhere",class:{
|
|
293
|
+
'gl-ml-auto gl-bg-feedback-info gl-p-3 gl-text-feedback-info': _vm.isUserMessage,
|
|
294
294
|
'gl-text-default': _vm.isAssistantMessage && !_vm.error,
|
|
295
295
|
'duo-chat-message-with-error gl-bg-feedback-danger gl-p-3': _vm.error,
|
|
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:"
|
|
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:"duo-chat-message-actions gl-rounded-br-lg gl-rounded-tr-lg gl-bg-subtle"},[_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)};
|
|
297
297
|
var __vue_staticRenderFns__ = [];
|
|
298
298
|
|
|
299
299
|
/* style */
|
|
@@ -72,7 +72,7 @@ const __vue_script__ = script;
|
|
|
72
72
|
|
|
73
73
|
/* template */
|
|
74
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
|
-
'gl-
|
|
75
|
+
'gl-items-top gl-flex': _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__ = [];
|
|
78
78
|
|
|
@@ -98,7 +98,7 @@ const __vue_script__ = script;
|
|
|
98
98
|
/* template */
|
|
99
99
|
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-message',{attrs:{"message":_vm.message},scopedSlots:_vm._u([{key:"message",fn:function(ref){
|
|
100
100
|
var content = ref.content;
|
|
101
|
-
return [_c('div',{staticClass:"gl-flex gl-items-baseline !gl-text-subtle"},[_c('div',{staticClass:"gl-mr-3 gl-flex-shrink-0"},[_c('gl-icon',{attrs:{"name":_vm.iconName}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex-1"},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{attrs:{"data-testid":"tool-message-content"}},[_vm._v(_vm._s(content))])]),_vm._v(" "),(_vm.projectId)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-project-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.PROJECT_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-project-id"}},[_vm._v(_vm._s(_vm.projectId))])]):_vm._e(),_vm._v(" "),(_vm.branchName)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-branch-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.BRANCH_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-branch-name"}},[_vm._v(_vm._s(_vm.branchName))])]):_vm._e(),_vm._v(" "),(_vm.startBranch)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-start-branch-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.START_BRANCH_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-start-branch-name"}},[_vm._v(_vm._s(_vm.startBranch))])]):_vm._e(),_vm._v(" "),(_vm.commitMessage)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-commit-message-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.COMMIT_MESSAGE_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-commit-message-text"}},[_vm._v(_vm._s(_vm.commitMessage))])]):_vm._e(),_vm._v(" "),(_vm.hasActions)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-actions-section"}},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold",attrs:{"data-testid":"tool-message-actions-label"}},[_vm._v(_vm._s(_vm.$options.i18n.ACTION_LABEL)+"s:")])]),_vm._v(" "),_vm._l((_vm.toolArgs.actions),function(action,index){return _c('div',{key:index,staticClass:"gl-
|
|
101
|
+
return [_c('div',{staticClass:"gl-flex gl-items-baseline !gl-text-subtle"},[_c('div',{staticClass:"gl-mr-3 gl-flex-shrink-0"},[_c('gl-icon',{attrs:{"name":_vm.iconName}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex-1"},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{attrs:{"data-testid":"tool-message-content"}},[_vm._v(_vm._s(content))])]),_vm._v(" "),(_vm.projectId)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-project-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.PROJECT_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-project-id"}},[_vm._v(_vm._s(_vm.projectId))])]):_vm._e(),_vm._v(" "),(_vm.branchName)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-branch-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.BRANCH_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-branch-name"}},[_vm._v(_vm._s(_vm.branchName))])]):_vm._e(),_vm._v(" "),(_vm.startBranch)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-start-branch-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.START_BRANCH_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-start-branch-name"}},[_vm._v(_vm._s(_vm.startBranch))])]):_vm._e(),_vm._v(" "),(_vm.commitMessage)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-commit-message-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.COMMIT_MESSAGE_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-commit-message-text"}},[_vm._v(_vm._s(_vm.commitMessage))])]):_vm._e(),_vm._v(" "),(_vm.hasActions)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-actions-section"}},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold",attrs:{"data-testid":"tool-message-actions-label"}},[_vm._v(_vm._s(_vm.$options.i18n.ACTION_LABEL)+"s:")])]),_vm._v(" "),_vm._l((_vm.toolArgs.actions),function(action,index){return _c('div',{key:index,staticClass:"gl-rounded gl-border gl-mb-3 gl-ml-4 gl-border-subtle gl-p-3",attrs:{"data-testid":"tool-message-action-item"}},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold",attrs:{"data-testid":"tool-message-action-type"}},[_vm._v(_vm._s(action.action))])]),_vm._v(" "),(action.file_path)?_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.FILE_PATH_LABEL)+":")]),_vm._v(" "),_c('gl-link',{staticClass:"gl-markdown file-path-link gl-ml-2 gl-break-all",attrs:{"data-testid":"tool-message-action-file-path-link"},on:{"click":function($event){$event.preventDefault();return _vm.onOpenFilePath(action.file_path)}}},[_c('code',[_vm._v(_vm._s(action.file_path))])])],1):_vm._e(),_vm._v(" "),(action.content)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-action-content"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.CONTENT_LABEL)+":")]),_vm._v(" "),_c('pre',{staticClass:"gl-rounded gl-mt-2 gl-overflow-auto gl-bg-subtle gl-p-2 gl-text-sm",attrs:{"data-testid":"tool-message-action-content-text"}},[_vm._v(_vm._s(action.content))])]):_vm._e()])})],2):(_vm.messageFilePath)?_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.FILE_PATH_LABEL)+":")]),_vm._v(" "),_c('gl-link',{staticClass:"gl-markdown file-path-link gl-ml-2 gl-break-all",attrs:{"data-testid":"tool-message-file-path-link"},on:{"click":function($event){$event.preventDefault();return _vm.onOpenFilePath(_vm.messageFilePath)}}},[_c('code',[_vm._v(_vm._s(_vm.messageFilePath))])])],1):_vm._e()])])]}}])})};
|
|
102
102
|
var __vue_staticRenderFns__ = [];
|
|
103
103
|
|
|
104
104
|
/* style */
|
|
@@ -18,7 +18,7 @@ var script = {
|
|
|
18
18
|
const __vue_script__ = script;
|
|
19
19
|
|
|
20
20
|
/* template */
|
|
21
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-message',{staticClass:"gl-ml-auto gl-bg-blue-100 gl-text-blue-900
|
|
21
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-message',{staticClass:"gl-ml-auto gl-bg-blue-100 gl-p-4 gl-text-blue-900",attrs:{"message":_vm.message}})};
|
|
22
22
|
var __vue_staticRenderFns__ = [];
|
|
23
23
|
|
|
24
24
|
/* style */
|
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-
|
|
121
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"md gl-border gl-rounded-bl-none gl-border-1 gl-border-solid gl-border-transparent gl-bg-subtle gl-p-4 gl-leading-20 gl-text-default gl-break-anywhere"},[_c('p',{staticClass:"gl-mb-3 gl-text-gray-700"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.TOOL_APPROVAL_TITLE)+"\n ")]),_vm._v(" "),_c('div',{staticClass:"gl-mb-3 gl-flex gl-items-center gl-gap-2"},[_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-mb-4 gl-rounded-base gl-border-gray-200 gl-bg-gray-50 gl-p-3"},[_c('p',{staticClass:"gl-mb-1 gl-text-sm gl-text-gray-500"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.REQUEST_TEXT)+"\n ")]),_vm._v(" "),(_vm.hasToolParameters)?_c('code',{staticClass:"gl-whitespace-pre-wrap gl-text-sm gl-text-default gl-font-monospace",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 */
|
package/dist/components/chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.js
CHANGED
|
@@ -29,7 +29,7 @@ var script = {
|
|
|
29
29
|
const __vue_script__ = script;
|
|
30
30
|
|
|
31
31
|
/* template */
|
|
32
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-mt-5 gl-flex gl-flex-col gl-items-start gl-gap-3"},_vm._l((_vm.prompts),function(prompt,index){return _c('gl-button',{key:("question-" + index),staticClass:"duo-chat-suggestion-button gl-text-left",attrs:{"category":"secondary","variant":"default"
|
|
32
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-mt-5 gl-flex gl-flex-col gl-items-start gl-gap-3"},_vm._l((_vm.prompts),function(prompt,index){return _c('gl-button',{key:("question-" + index),staticClass:"duo-chat-suggestion-button gl-text-left",attrs:{"category":"secondary","variant":"default"},on:{"click":function($event){return _vm.handleClick(prompt)}}},[_c('span',{staticClass:"gl-whitespace-normal"},[_vm._v(_vm._s(prompt))])])}),1)};
|
|
33
33
|
var __vue_staticRenderFns__ = [];
|
|
34
34
|
|
|
35
35
|
/* 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-
|
|
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-mb-5 gl-rounded-base gl-bg-gray-50 gl-p-4 gl-text-gray-500",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-neutral-900 gl-my-4 gl-font-bold",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-align-center gl-flex"},[_c('gl-button',{staticClass:"justify-content-start gl-w-full gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap gl-rounded-base gl-p-4 !gl-text-default hover:gl-bg-gray-50",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 */
|
|
@@ -17,7 +17,7 @@ var script = {
|
|
|
17
17
|
const __vue_script__ = script;
|
|
18
18
|
|
|
19
19
|
/* template */
|
|
20
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-
|
|
20
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-align-center gl-flex gl-h-full gl-flex-col gl-items-center gl-justify-center"},[_c('img',{staticClass:"gl-mb-5",attrs:{"src":_vm.$options.ScheduleIllustration,"alt":_vm.$options.i18n.EMPTY_HISTORY_ALT,"data-testid":"empty-state-illustration"}}),_vm._v(" "),_c('h3',{staticClass:"gl-neutral-900 gl-mb-4 gl-font-bold",attrs:{"data-testid":"empty-state-title"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.EMPTY_HISTORY_TITLE)+"\n ")]),_vm._v(" "),_c('p',{staticClass:"gl-align-center",attrs:{"data-testid":"empty-state-description"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.EMPTY_HISTORY_COPY)+"\n ")])])};
|
|
21
21
|
var __vue_staticRenderFns__ = [];
|
|
22
22
|
|
|
23
23
|
/* style */
|
|
@@ -627,10 +627,10 @@ const __vue_script__ = script;
|
|
|
627
627
|
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.shouldRenderResizable ? 'vue-resizable' : 'div',{tag:"component",class:{
|
|
628
628
|
'duo-chat-resizable': _vm.shouldRenderResizable,
|
|
629
629
|
'non-resizable-wrapper': !_vm.shouldRenderResizable,
|
|
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
|
|
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-flex gl-max-h-full 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-
|
|
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-flex gl-flex-1 gl-flex-grow gl-flex-col gl-overflow-y-auto gl-overscroll-contain gl-bg-inherit",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-mt-auto gl-p-5",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-relative gl-z-2 gl-shrink-0 gl-border-0 gl-bg-default gl-pb-3",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 */
|
|
@@ -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 };
|