@gitlab/duo-ui 10.20.0 → 10.22.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 +14 -0
- package/dist/components/agentic_chat/agentic_duo_chat.js +18 -37
- package/dist/components/chat/components/duo_chat_header/duo_chat_header.js +4 -4
- package/dist/components/chat/components/duo_chat_message_tool_approval/components/create_commit_tool_params.js +148 -0
- package/dist/components/chat/components/duo_chat_message_tool_approval/components/create_issue_tool_params.js +88 -0
- package/dist/components/chat/components/duo_chat_message_tool_approval/components/create_merge_request_tool_params.js +83 -0
- package/dist/components/chat/components/duo_chat_message_tool_approval/components/pre_block.js +38 -0
- package/dist/components/chat/components/duo_chat_message_tool_approval/components/run_command_tool_params.js +62 -0
- package/dist/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.js +46 -8
- package/dist/components/chat/duo_chat.js +35 -54
- package/dist/components/chat/mock_data.js +85 -1
- package/dist/components/ui/duo_layout/duo_layout.js +100 -0
- package/dist/components/ui/side_rail/side_rail.js +67 -0
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/index.js +2 -0
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/dist/utils/object.js +9 -0
- package/package.json +5 -4
- package/src/components/agentic_chat/agentic_duo_chat.vue +210 -244
- package/src/components/chat/components/duo_chat_header/duo_chat_header.vue +24 -22
- package/src/components/chat/components/duo_chat_message_tool_approval/components/create_commit_tool_params.vue +155 -0
- package/src/components/chat/components/duo_chat_message_tool_approval/components/create_issue_tool_params.vue +80 -0
- package/src/components/chat/components/duo_chat_message_tool_approval/components/create_merge_request_tool_params.vue +74 -0
- package/src/components/chat/components/duo_chat_message_tool_approval/components/pre_block.vue +5 -0
- package/src/components/chat/components/duo_chat_message_tool_approval/components/run_command_tool_params.vue +30 -0
- package/src/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.vue +143 -88
- package/src/components/chat/duo_chat.scss +1 -2
- package/src/components/chat/duo_chat.vue +214 -238
- package/src/components/chat/mock_data.js +99 -0
- package/src/components/ui/duo_layout/duo_layout.md +0 -0
- package/src/components/ui/duo_layout/duo_layout.vue +95 -0
- package/src/components/ui/side_rail/side_rail.vue +56 -0
- package/src/index.js +2 -0
- package/src/utils/object.js +4 -0
- package/translations.js +29 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [10.22.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.21.0...v10.22.0) (2025-09-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **siderail:** added chat layout and siderail ([17c61cc](https://gitlab.com/gitlab-org/duo-ui/commit/17c61cc9c523294242cccdb6f6296f9a5a555f73))
|
|
7
|
+
|
|
8
|
+
# [10.21.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.20.0...v10.21.0) (2025-09-11)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* Improve tool approval dialog UI ([d337427](https://gitlab.com/gitlab-org/duo-ui/commit/d33742757bb358add571ed9b2ae39c5c796b31d5))
|
|
14
|
+
|
|
1
15
|
# [10.20.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.19.0...v10.20.0) (2025-09-05)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import throttle from 'lodash/throttle';
|
|
2
|
-
import
|
|
3
|
-
import { GlButton, GlAlert, GlFormInputGroup, GlFormTextarea, GlForm, GlExperimentBadge, GlCard, GlDropdownItem, GlSafeHtmlDirective } from '@gitlab/ui';
|
|
2
|
+
import { GlButton, GlFormTextarea, GlForm, GlCard, GlDropdownItem, GlSafeHtmlDirective } from '@gitlab/ui';
|
|
4
3
|
import { translate, sprintf, translatePlural } from '@gitlab/ui/dist/utils/i18n';
|
|
5
4
|
import { badgeTypes, badgeTypeValidator, MAX_PROMPT_LENGTH, PROMPT_LENGTH_WARNING, CHAT_RESET_MESSAGE, CHAT_INCLUDE_MESSAGE, MESSAGE_MODEL_ROLES, CHAT_BASE_COMMANDS } from '../chat/constants';
|
|
6
5
|
import { VIEW_TYPES } from '../chat/components/duo_chat_header/constants';
|
|
@@ -14,9 +13,10 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
14
13
|
const i18n = {
|
|
15
14
|
CHAT_DEFAULT_TITLE: translate('AgenticDuoChat.chatDefaultTitle', 'GitLab Duo Agentic Chat'),
|
|
16
15
|
CHAT_HISTORY_TITLE: translate('AgenticDuoChat.chatHistoryTitle', 'Chat history'),
|
|
17
|
-
CHAT_DISCLAMER: translate('AgenticDuoChat.chatDisclamer', '
|
|
16
|
+
CHAT_DISCLAMER: translate('AgenticDuoChat.chatDisclamer', 'Responses may be inaccurate. Verify before use.'),
|
|
18
17
|
CHAT_EMPTY_STATE_TITLE: translate('AgenticDuoChat.chatEmptyStateTitle', '👋 I am GitLab Duo Agentic Chat, your personal AI-powered assistant. How can I help you today?'),
|
|
19
|
-
CHAT_PROMPT_PLACEHOLDER_DEFAULT: translate('AgenticDuoChat.chatPromptPlaceholderDefault', '
|
|
18
|
+
CHAT_PROMPT_PLACEHOLDER_DEFAULT: translate('AgenticDuoChat.chatPromptPlaceholderDefault', "Let's work through this together..."),
|
|
19
|
+
CHAT_MODEL_PLACEHOLDER: translate('AgenticDuoChat.chatModelPlaceholder', 'GitLab Duo Agentic Chat'),
|
|
20
20
|
CHAT_PROMPT_PLACEHOLDER_WITH_COMMANDS: translate('AgenticDuoChat.chatPromptPlaceholderWithCommands', 'Type /help to learn more'),
|
|
21
21
|
CHAT_SUBMIT_LABEL: translate('AgenticDuoChat.chatSubmitLabel', 'Send chat message.'),
|
|
22
22
|
CHAT_CANCEL_LABEL: translate('AgenticDuoChat.chatCancelLabel', 'Cancel'),
|
|
@@ -45,19 +45,15 @@ var script = {
|
|
|
45
45
|
name: 'DuoChat',
|
|
46
46
|
components: {
|
|
47
47
|
GlButton,
|
|
48
|
-
GlAlert,
|
|
49
|
-
GlFormInputGroup,
|
|
50
48
|
GlFormTextarea,
|
|
51
49
|
GlForm,
|
|
52
|
-
GlExperimentBadge,
|
|
53
50
|
DuoChatLoader,
|
|
54
51
|
DuoChatPredefinedPrompts,
|
|
55
52
|
DuoChatConversation,
|
|
56
53
|
DuoChatHeader,
|
|
57
54
|
DuoChatThreads,
|
|
58
55
|
GlCard,
|
|
59
|
-
GlDropdownItem
|
|
60
|
-
VueResizable
|
|
56
|
+
GlDropdownItem
|
|
61
57
|
},
|
|
62
58
|
directives: {
|
|
63
59
|
SafeHtml: GlSafeHtmlDirective
|
|
@@ -283,7 +279,6 @@ var script = {
|
|
|
283
279
|
},
|
|
284
280
|
data() {
|
|
285
281
|
return {
|
|
286
|
-
isHidden: false,
|
|
287
282
|
prompt: '',
|
|
288
283
|
scrolledToBottom: true,
|
|
289
284
|
activeCommandIndex: 0,
|
|
@@ -387,7 +382,6 @@ var script = {
|
|
|
387
382
|
if (!loading && !this.isStreaming) {
|
|
388
383
|
this.canSubmit = true; // Re-enable submit button when loading stops
|
|
389
384
|
}
|
|
390
|
-
this.isHidden = false;
|
|
391
385
|
},
|
|
392
386
|
isStreaming(streaming) {
|
|
393
387
|
if (!streaming && !this.isLoading) {
|
|
@@ -426,14 +420,10 @@ var script = {
|
|
|
426
420
|
this.focusChatInput();
|
|
427
421
|
});
|
|
428
422
|
},
|
|
429
|
-
updateSize(e) {
|
|
430
|
-
this.$emit('chat-resize', e);
|
|
431
|
-
},
|
|
432
423
|
compositionEnd() {
|
|
433
424
|
this.compositionJustEnded = true;
|
|
434
425
|
},
|
|
435
426
|
hideChat() {
|
|
436
|
-
this.isHidden = true;
|
|
437
427
|
/**
|
|
438
428
|
* Emitted when clicking the cross in the title and the chat gets closed.
|
|
439
429
|
*/
|
|
@@ -687,28 +677,19 @@ var script = {
|
|
|
687
677
|
const __vue_script__ = script;
|
|
688
678
|
|
|
689
679
|
/* template */
|
|
690
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.shouldRenderResizable ? '
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
'!gl-shadow-none',
|
|
704
|
-
'form-control',
|
|
705
|
-
'gl-form-input',
|
|
706
|
-
'gl-form-textarea',
|
|
707
|
-
{ 'gl-truncate': !_vm.prompt } ],"aria-label":"Chat prompt input","autofocus":""},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if($event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.handleUndo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey){ return null; }return _vm.handleUndo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if(!$event.shiftKey){ return null; }if($event.altKey||$event.metaKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if(!$event.shiftKey){ return null; }if($event.ctrlKey||$event.altKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"y",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if($event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"y",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey){ return null; }return _vm.handleRedo.apply(null, arguments)}],"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)}},scopedSlots:_vm._u([{key:"remaining-character-count-text",fn:function(ref){
|
|
708
|
-
var count = ref.count;
|
|
709
|
-
return [(count <= _vm.promptLengthWarningCount)?_c('span',{staticClass:"gl-absolute gl-bottom-[-25px] gl-right-px gl-pr-3"},[_vm._v("\n "+_vm._s(_vm.remainingCharacterCountMessage(count))+"\n ")]):_vm._e()]}},{key:"character-count-over-limit-text",fn:function(ref){
|
|
710
|
-
var count = ref.count;
|
|
711
|
-
return [_c('span',{staticClass:"gl-absolute gl-bottom-[-25px] gl-right-px gl-pr-3"},[_vm._v(_vm._s(_vm.overLimitCharacterCountMessage(count)))])]}}],null,false,578626568),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",class:{ 'gl-mt-6 sm:gl-mt-3 sm:gl-max-w-1/2': _vm.prompt.length >= _vm.maxPromptLengthWarning }},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_DISCLAMER)+"\n ")])],2):_vm._e()],1):_vm._e()])};
|
|
680
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"markdown-code-block duo-chat gl-bottom-0 gl-flex gl-max-h-full gl-flex-col",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,"session-id":_vm.sessionId,"agents":_vm.agents},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,"working-directory":_vm.workingDirectory},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('div',{staticClass:"duo-chat-input gl-min-h-8 gl-max-w-full gl-grow gl-flex-col gl-rounded-bl-[12px] gl-rounded-br-[18px] gl-rounded-tl-[12px] gl-rounded-tr-[12px] gl-align-top"},[_c('div',{staticClass:"gl-flex gl-justify-between gl-border-0 gl-border-b-1 gl-border-solid gl-border-[#DCDCDE] gl-px-4 gl-py-4"},[_c('div',[_vm._v(_vm._s(_vm.$options.i18n.CHAT_MODEL_PLACEHOLDER))]),_vm._v(" "),_c('div',[_vm._t("agentic-switch")],2)]),_vm._v(" "),_c('div',{staticClass:"gl-h-[40px] gl-grow",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",attrs:{"disabled":!_vm.canSubmit,"data-testid":"chat-prompt-input","placeholder":_vm.inputPlaceholder,"character-count-limit":_vm.maxPromptLength,"textarea-classes":[
|
|
681
|
+
'!gl-h-full',
|
|
682
|
+
'!gl-bg-transparent',
|
|
683
|
+
'!gl-py-4',
|
|
684
|
+
'!gl-shadow-none',
|
|
685
|
+
'form-control',
|
|
686
|
+
'gl-form-input',
|
|
687
|
+
'gl-form-textarea',
|
|
688
|
+
{ 'gl-truncate': !_vm.prompt } ],"aria-label":"Chat prompt input","autofocus":""},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if($event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.handleUndo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey){ return null; }return _vm.handleUndo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if(!$event.shiftKey){ return null; }if($event.altKey||$event.metaKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if(!$event.shiftKey){ return null; }if($event.ctrlKey||$event.altKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"y",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if($event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"y",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey){ return null; }return _vm.handleRedo.apply(null, arguments)}],"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)}},scopedSlots:_vm._u([{key:"remaining-character-count-text",fn:function(ref){
|
|
689
|
+
var count = ref.count;
|
|
690
|
+
return [(count <= _vm.promptLengthWarningCount)?_c('span',{staticClass:"gl-absolute gl-bottom-[-25px] gl-right-px gl-pr-3"},[_vm._v("\n "+_vm._s(_vm.remainingCharacterCountMessage(count))+"\n ")]):_vm._e()]}},{key:"character-count-over-limit-text",fn:function(ref){
|
|
691
|
+
var count = ref.count;
|
|
692
|
+
return [_c('span',{staticClass:"gl-absolute gl-bottom-[-25px] gl-right-px gl-pr-3"},[_vm._v(_vm._s(_vm.overLimitCharacterCountMessage(count)))])]}}],null,false,839584904),model:{value:(_vm.prompt),callback:function ($$v) {_vm.prompt=$$v;},expression:"prompt"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-justify-end gl-px-3 gl-pb-3"},[(_vm.canSubmit)?_c('gl-button',{staticClass:"gl-bottom-2 gl-right-2 gl-ml-auto !gl-rounded-full",attrs:{"icon":"paper-airplane","category":"primary","variant":"confirm","type":"submit","disabled":_vm.isPromptEmpty || !_vm.hasValidPrompt,"data-testid":"chat-prompt-submit-button","aria-label":_vm.$options.i18n.CHAT_SUBMIT_LABEL}}):_c('gl-button',{staticClass:"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}})],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",class:{ 'gl-mt-6 sm:gl-mt-3 sm:gl-max-w-1/2': _vm.prompt.length >= _vm.maxPromptLengthWarning }},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_DISCLAMER)+"\n ")])],2):_vm._e()],1)};
|
|
712
693
|
var __vue_staticRenderFns__ = [];
|
|
713
694
|
|
|
714
695
|
/* style */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Vue from 'vue';
|
|
2
|
-
import { GlToast, GlAlert, GlBadge, GlButton, GlDropdown, GlDropdownItem,
|
|
2
|
+
import { GlToast, GlAlert, GlBadge, GlAvatar, GlButton, GlDropdown, GlDropdownItem, GlDisclosureDropdown, GlSafeHtmlDirective, GlTooltipDirective } from '@gitlab/ui';
|
|
3
3
|
import { translate } from '../../../../utils/i18n';
|
|
4
4
|
import { VIEW_TYPES } from './constants';
|
|
5
5
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
@@ -23,10 +23,10 @@ var script = {
|
|
|
23
23
|
components: {
|
|
24
24
|
GlAlert,
|
|
25
25
|
GlBadge,
|
|
26
|
+
GlAvatar,
|
|
26
27
|
GlButton,
|
|
27
28
|
GlDropdown,
|
|
28
29
|
GlDropdownItem,
|
|
29
|
-
GlExperimentBadge,
|
|
30
30
|
GlDisclosureDropdown
|
|
31
31
|
},
|
|
32
32
|
directives: {
|
|
@@ -121,11 +121,11 @@ var script = {
|
|
|
121
121
|
const __vue_script__ = script;
|
|
122
122
|
|
|
123
123
|
/* template */
|
|
124
|
-
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:"
|
|
124
|
+
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:"gl-border-b gl-flex gl-w-full gl-items-center gl-px-5 gl-py-3"},[(_vm.subtitle)?_c('h4',{staticClass:"gl-mb-0 gl-shrink-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('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(" "),_c('div',{staticClass:"drawer-title gl-flex gl-items-center gl-justify-start gl-p-5"},[_c('div',{staticClass:"gl-flex gl-flex-1 gl-overflow-hidden"},[_c('gl-avatar',{staticClass:"gl-mr-3",attrs:{"size":32,"entity-name":_vm.title,"shape":"circle"}}),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-items-center"},[_c('h3',{staticClass:"gl-my-0 gl-text-[0.875rem]"},[_vm._v(_vm._s(_vm.title))])])],1),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-gap-3"},[(
|
|
125
125
|
_vm.isMultithreaded && (_vm.activeThreadId || _vm.currentView === _vm.VIEW_TYPES.LIST || _vm.hasManyAgents)
|
|
126
126
|
)?[(_vm.hasManyAgents)?_c('gl-disclosure-dropdown',{attrs:{"title":_vm.$options.i18n.CHAT_NEW_TOOLTIP,"toggle-text":_vm.$options.i18n.CHAT_NEW_TOOLTIP,"items":_vm.agents,"data-testid":"chat-new-button","variant":"confirm","category":"tertiary","size":"small","icon":"duo-chat-new","text-sr-only":"","aria-label":_vm.$options.i18n.CHAT_NEW_LABEL,"no-caret":""},on:{"action":_vm.startNewChat},scopedSlots:_vm._u([{key:"list-item",fn:function(ref){
|
|
127
127
|
var item = ref.item;
|
|
128
|
-
return [_c('span',{staticClass:"gl-flex gl-flex-col"},[_c('span',{attrs:{"clas":"gl-block"}},[_vm._v(_vm._s(item.name))]),_vm._v(" "),_c('span',{staticClass:"gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap gl-text-sm"},[_vm._v(_vm._s(item.description))])])]}}],null,false,117082970)}):_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":_vm.startNewChat}})]:_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(" "),(_vm.sessionId)?_c('gl-dropdown',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip.hover",modifiers:{"hover":true}}],attrs:{"icon":"ellipsis_v","category":"tertiary","text-sr-only":"","size":"small","text":_vm.$options.i18n.CHAT_DROPDOWN_MORE_OPTIONS,"title":_vm.$options.i18n.CHAT_DROPDOWN_MORE_OPTIONS,"no-caret":""}},[_c('gl-dropdown-item',{on:{"click":function($event){return _vm.copySessionIdToClipboard()}}},[_c('span',{staticClass:"gl-flex gl-items-center gl-gap-2"},[_c('span',{staticClass:"gl-flex-shrink-0"},[_vm._v(_vm._s(_vm.$options.i18n.CHAT_COPY_TOOLTIP))]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-flex-shrink"},[_c('span',{staticClass:"gl-max-w-12 gl-truncate",attrs:{"title":_vm.sessionId}},[_vm._v("\n "+_vm._s(_vm.sessionId)+"\n ")])])],1)])],1):_vm._e()
|
|
128
|
+
return [_c('span',{staticClass:"gl-flex gl-flex-col"},[_c('span',{attrs:{"clas":"gl-block"}},[_vm._v(_vm._s(item.name))]),_vm._v(" "),_c('span',{staticClass:"gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap gl-text-sm"},[_vm._v(_vm._s(item.description))])])]}}],null,false,117082970)}):_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":_vm.startNewChat}})]:_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(" "),(_vm.sessionId)?_c('gl-dropdown',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip.hover",modifiers:{"hover":true}}],attrs:{"icon":"ellipsis_v","category":"tertiary","text-sr-only":"","size":"small","text":_vm.$options.i18n.CHAT_DROPDOWN_MORE_OPTIONS,"title":_vm.$options.i18n.CHAT_DROPDOWN_MORE_OPTIONS,"no-caret":""}},[_c('gl-dropdown-item',{on:{"click":function($event){return _vm.copySessionIdToClipboard()}}},[_c('span',{staticClass:"gl-flex gl-items-center gl-gap-2"},[_c('span',{staticClass:"gl-flex-shrink-0"},[_vm._v(_vm._s(_vm.$options.i18n.CHAT_COPY_TOOLTIP))]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-flex-shrink"},[_c('span',{staticClass:"gl-max-w-12 gl-truncate",attrs:{"title":_vm.sessionId}},[_vm._v("\n "+_vm._s(_vm.sessionId)+"\n ")])])],1)])],1):_vm._e()],2)]),_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)};
|
|
129
129
|
var __vue_staticRenderFns__ = [];
|
|
130
130
|
|
|
131
131
|
/* style */
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { GlSprintf, GlAccordion, GlAccordionItem } from '@gitlab/ui';
|
|
2
|
+
import { sprintf, translatePlural, translate } from '../../../../../utils/i18n';
|
|
3
|
+
import PreBlock from './pre_block';
|
|
4
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
5
|
+
|
|
6
|
+
var script = {
|
|
7
|
+
name: 'CreateCommitToolParams',
|
|
8
|
+
components: {
|
|
9
|
+
GlSprintf,
|
|
10
|
+
GlAccordion,
|
|
11
|
+
GlAccordionItem,
|
|
12
|
+
PreBlock
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
projectId: {
|
|
16
|
+
type: [String, Number],
|
|
17
|
+
required: true
|
|
18
|
+
},
|
|
19
|
+
projectPath: {
|
|
20
|
+
type: String,
|
|
21
|
+
required: false,
|
|
22
|
+
default: ''
|
|
23
|
+
},
|
|
24
|
+
branch: {
|
|
25
|
+
type: String,
|
|
26
|
+
required: true
|
|
27
|
+
},
|
|
28
|
+
startBranch: {
|
|
29
|
+
type: String,
|
|
30
|
+
required: false,
|
|
31
|
+
default: ''
|
|
32
|
+
},
|
|
33
|
+
commitMessage: {
|
|
34
|
+
type: String,
|
|
35
|
+
required: true
|
|
36
|
+
},
|
|
37
|
+
actions: {
|
|
38
|
+
type: Array,
|
|
39
|
+
required: true
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
computed: {
|
|
43
|
+
actionsCount() {
|
|
44
|
+
return this.actions.length;
|
|
45
|
+
},
|
|
46
|
+
actionsCountMessage() {
|
|
47
|
+
return sprintf(translatePlural('CreateCommitToolParams.actionsCountMessage', 'The commit contains %{count} file change.', 'The commit contains %{count} file changes.')(this.actionsCount), {
|
|
48
|
+
count: this.actionsCount
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
methods: {
|
|
53
|
+
getActionTitle(_ref) {
|
|
54
|
+
let {
|
|
55
|
+
action,
|
|
56
|
+
file_path: filePath,
|
|
57
|
+
previous_path: previousPath
|
|
58
|
+
} = _ref;
|
|
59
|
+
switch (action) {
|
|
60
|
+
case 'create':
|
|
61
|
+
return sprintf(this.$options.i18n.CREATE_FILE_ACTION_LABEL, {
|
|
62
|
+
filePath
|
|
63
|
+
});
|
|
64
|
+
case 'update':
|
|
65
|
+
return sprintf(this.$options.i18n.UPDATE_FILE_ACTION_LABEL, {
|
|
66
|
+
filePath
|
|
67
|
+
});
|
|
68
|
+
case 'delete':
|
|
69
|
+
return sprintf(this.$options.i18n.DELETE_FILE_ACTION_LABEL, {
|
|
70
|
+
filePath
|
|
71
|
+
});
|
|
72
|
+
case 'move':
|
|
73
|
+
return sprintf(this.$options.i18n.MOVE_FILE_ACTION_LABEL, {
|
|
74
|
+
filePath: previousPath
|
|
75
|
+
});
|
|
76
|
+
case 'chmod':
|
|
77
|
+
return sprintf(this.$options.i18n.CHMOD_FILE_ACTION_LABEL, {
|
|
78
|
+
filePath
|
|
79
|
+
});
|
|
80
|
+
default:
|
|
81
|
+
return sprintf(this.$options.i18n.UNKNOWN_FILE_ACTION_LABEL, {
|
|
82
|
+
filePath
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
getActionContent(_ref2) {
|
|
87
|
+
let {
|
|
88
|
+
action,
|
|
89
|
+
content,
|
|
90
|
+
encoding
|
|
91
|
+
} = _ref2;
|
|
92
|
+
if (!['create', 'update'].includes(action)) {
|
|
93
|
+
return this.$options.i18n.ACTION_WITH_NO_CONTENT;
|
|
94
|
+
}
|
|
95
|
+
return (!encoding || encoding === 'text') && content ? content : '';
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
i18n: {
|
|
99
|
+
COMMIT_SUMMARY_MESSAGE: translate('CreateCommitToolParams.commitSummaryMessage', 'Create a commit in the branch %{branch} and project %{project}.'),
|
|
100
|
+
READ_COMMIT_MESSAGE: translate('CreateCommitToolParams.readCommitMessage', 'Read commit message'),
|
|
101
|
+
CREATE_FILE_ACTION_LABEL: translate('CreateCommitToolParams.createFileActionLabel', 'Create file %{filePath}'),
|
|
102
|
+
UPDATE_FILE_ACTION_LABEL: translate('CreateCommitToolParams.updateFileActionLabel', 'Update file %{filePath}'),
|
|
103
|
+
DELETE_FILE_ACTION_LABEL: translate('CreateCommitToolParams.deleteFileActionLabel', 'Delete file %{filePath}'),
|
|
104
|
+
MOVE_FILE_ACTION_LABEL: translate('CreateCommitToolParams.moveFileActionLabel', 'Move file %{filePath}'),
|
|
105
|
+
CHMOD_FILE_ACTION_LABEL: translate('CreateCommitToolParams.chmodFileActionLabel', 'Change permissions for file %{filePath}'),
|
|
106
|
+
UNKNOWN_FILE_ACTION_LABEL: translate('CreateCommitToolParams.unknownFileActionLabel', 'Modify file %{filePath}'),
|
|
107
|
+
ACTION_WITH_NO_CONTENT: translate('CreateCommitToolParams.actionWithNoContent', 'This action does not have any content.'),
|
|
108
|
+
EXPAND_CHANGES: translate('CreateCommitToolParams.expandFileChanges', 'Expand file changes')
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
/* script */
|
|
113
|
+
const __vue_script__ = script;
|
|
114
|
+
|
|
115
|
+
/* template */
|
|
116
|
+
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-col"},[_c('div',[_c('gl-sprintf',{attrs:{"message":_vm.$options.i18n.COMMIT_SUMMARY_MESSAGE},scopedSlots:_vm._u([{key:"project",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.projectPath || _vm.projectId))])]},proxy:true},{key:"branch",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.branch))])]},proxy:true}])}),_vm._v("\n "+_vm._s(_vm.actionsCountMessage)+"\n ")],1),_vm._v(" "),_c('gl-accordion',{staticClass:"-gl-ml-2 gl-mt-3",attrs:{"header-level":3}},[_c('gl-accordion-item',{attrs:{"title":_vm.$options.i18n.READ_COMMIT_MESSAGE}},[_c('pre-block',[_vm._v(_vm._s(_vm.commitMessage))])],1),_vm._v(" "),_c('gl-accordion-item',{attrs:{"title":_vm.$options.i18n.EXPAND_CHANGES}},[_c('gl-accordion',{attrs:{"header-level":4}},_vm._l((_vm.actions),function(action,index){return _c('gl-accordion-item',{key:index,attrs:{"title":_vm.getActionTitle(action)}},[_c('pre-block',[_vm._v(_vm._s(_vm.getActionContent(action)))])],1)}),1)],1)],1)],1)};
|
|
117
|
+
var __vue_staticRenderFns__ = [];
|
|
118
|
+
|
|
119
|
+
/* style */
|
|
120
|
+
const __vue_inject_styles__ = undefined;
|
|
121
|
+
/* scoped */
|
|
122
|
+
const __vue_scope_id__ = undefined;
|
|
123
|
+
/* module identifier */
|
|
124
|
+
const __vue_module_identifier__ = undefined;
|
|
125
|
+
/* functional template */
|
|
126
|
+
const __vue_is_functional_template__ = false;
|
|
127
|
+
/* style inject */
|
|
128
|
+
|
|
129
|
+
/* style inject SSR */
|
|
130
|
+
|
|
131
|
+
/* style inject shadow dom */
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
const __vue_component__ = __vue_normalize__(
|
|
136
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
137
|
+
__vue_inject_styles__,
|
|
138
|
+
__vue_script__,
|
|
139
|
+
__vue_scope_id__,
|
|
140
|
+
__vue_is_functional_template__,
|
|
141
|
+
__vue_module_identifier__,
|
|
142
|
+
false,
|
|
143
|
+
undefined,
|
|
144
|
+
undefined,
|
|
145
|
+
undefined
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
export default __vue_component__;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { GlSprintf, GlAccordion, GlAccordionItem } from '@gitlab/ui';
|
|
2
|
+
import { translate } from '../../../../../utils/i18n';
|
|
3
|
+
import PreBlock from './pre_block';
|
|
4
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
5
|
+
|
|
6
|
+
var script = {
|
|
7
|
+
name: 'CreateIssueToolParams',
|
|
8
|
+
components: {
|
|
9
|
+
GlSprintf,
|
|
10
|
+
GlAccordion,
|
|
11
|
+
GlAccordionItem,
|
|
12
|
+
PreBlock
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
projectId: {
|
|
16
|
+
type: [String, Number],
|
|
17
|
+
required: true
|
|
18
|
+
},
|
|
19
|
+
projectPath: {
|
|
20
|
+
type: String,
|
|
21
|
+
required: false,
|
|
22
|
+
default: ''
|
|
23
|
+
},
|
|
24
|
+
title: {
|
|
25
|
+
type: String,
|
|
26
|
+
required: true
|
|
27
|
+
},
|
|
28
|
+
description: {
|
|
29
|
+
type: String,
|
|
30
|
+
required: true
|
|
31
|
+
},
|
|
32
|
+
labels: {
|
|
33
|
+
type: String,
|
|
34
|
+
required: false,
|
|
35
|
+
default: ''
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
computed: {
|
|
39
|
+
issueMessage() {
|
|
40
|
+
const baseMessage = this.$options.i18n.ISSUE_SUMMARY_MESSAGE_BASE;
|
|
41
|
+
const labelsMessage = this.$options.i18n.ISSUE_SUMMARY_MESSAGE_WITH_LABELS;
|
|
42
|
+
return this.labels ? `${baseMessage} ${labelsMessage}` : baseMessage;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
i18n: {
|
|
46
|
+
ISSUE_SUMMARY_MESSAGE_BASE: translate('CreateIssueToolParams.ISSUE_SUMMARY_MESSAGE_BASE', 'Open an issue with title "%{title}" in project %{project}.'),
|
|
47
|
+
ISSUE_SUMMARY_MESSAGE_WITH_LABELS: translate('CreateIssueToolParams.ISSUE_SUMMARY_MESSAGE_WITH_LABELS', 'Assign the labels %{labels}.'),
|
|
48
|
+
ACCORDION_TITLE: translate('CreateIssueToolParams.ACCORDION_TITLE', 'Read description')
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/* script */
|
|
53
|
+
const __vue_script__ = script;
|
|
54
|
+
|
|
55
|
+
/* template */
|
|
56
|
+
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-col"},[_c('div',[_c('gl-sprintf',{attrs:{"message":_vm.issueMessage},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('em',[_vm._v(_vm._s(_vm.title))])]},proxy:true},{key:"project",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.projectPath || _vm.projectId))])]},proxy:true},{key:"labels",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.labels))])]},proxy:true}])})],1),_vm._v(" "),_c('gl-accordion',{staticClass:"-gl-ml-2 gl-mt-3",attrs:{"header-level":3}},[_c('gl-accordion-item',{attrs:{"title":_vm.$options.i18n.ACCORDION_TITLE}},[_c('pre-block',[_vm._v(_vm._s(_vm.description))])],1)],1)],1)};
|
|
57
|
+
var __vue_staticRenderFns__ = [];
|
|
58
|
+
|
|
59
|
+
/* style */
|
|
60
|
+
const __vue_inject_styles__ = undefined;
|
|
61
|
+
/* scoped */
|
|
62
|
+
const __vue_scope_id__ = undefined;
|
|
63
|
+
/* module identifier */
|
|
64
|
+
const __vue_module_identifier__ = undefined;
|
|
65
|
+
/* functional template */
|
|
66
|
+
const __vue_is_functional_template__ = false;
|
|
67
|
+
/* style inject */
|
|
68
|
+
|
|
69
|
+
/* style inject SSR */
|
|
70
|
+
|
|
71
|
+
/* style inject shadow dom */
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
const __vue_component__ = __vue_normalize__(
|
|
76
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
77
|
+
__vue_inject_styles__,
|
|
78
|
+
__vue_script__,
|
|
79
|
+
__vue_scope_id__,
|
|
80
|
+
__vue_is_functional_template__,
|
|
81
|
+
__vue_module_identifier__,
|
|
82
|
+
false,
|
|
83
|
+
undefined,
|
|
84
|
+
undefined,
|
|
85
|
+
undefined
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
export default __vue_component__;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { GlSprintf, GlAccordion, GlAccordionItem } from '@gitlab/ui';
|
|
2
|
+
import { translate } from '../../../../../utils/i18n';
|
|
3
|
+
import PreBlock from './pre_block';
|
|
4
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
5
|
+
|
|
6
|
+
var script = {
|
|
7
|
+
name: 'CreateMergeRequestToolParams',
|
|
8
|
+
components: {
|
|
9
|
+
GlSprintf,
|
|
10
|
+
GlAccordion,
|
|
11
|
+
GlAccordionItem,
|
|
12
|
+
PreBlock
|
|
13
|
+
},
|
|
14
|
+
props: {
|
|
15
|
+
projectId: {
|
|
16
|
+
type: [String, Number],
|
|
17
|
+
required: true
|
|
18
|
+
},
|
|
19
|
+
projectPath: {
|
|
20
|
+
type: String,
|
|
21
|
+
required: false,
|
|
22
|
+
default: ''
|
|
23
|
+
},
|
|
24
|
+
title: {
|
|
25
|
+
type: String,
|
|
26
|
+
required: true
|
|
27
|
+
},
|
|
28
|
+
sourceBranch: {
|
|
29
|
+
type: String,
|
|
30
|
+
required: true
|
|
31
|
+
},
|
|
32
|
+
targetBranch: {
|
|
33
|
+
type: String,
|
|
34
|
+
required: true
|
|
35
|
+
},
|
|
36
|
+
description: {
|
|
37
|
+
type: String,
|
|
38
|
+
required: true
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
i18n: {
|
|
42
|
+
MERGE_REQUEST_SUMMARY_MESSAGE: translate('CreateMergeRequestToolParams.MERGE_REQUEST_SUMMARY_MESSAGE', 'Open a merge request with title "%{title}" in project %{project} from branch %{sourceBranch} to branch %{targetBranch}.'),
|
|
43
|
+
ACCORDION_TITLE: translate('CreateMergeRequestToolParams.ACCORDION_TITLE', 'Read description')
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/* script */
|
|
48
|
+
const __vue_script__ = script;
|
|
49
|
+
|
|
50
|
+
/* template */
|
|
51
|
+
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-col"},[_c('div',[_c('gl-sprintf',{attrs:{"message":_vm.$options.i18n.MERGE_REQUEST_SUMMARY_MESSAGE},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('em',[_vm._v(_vm._s(_vm.title))])]},proxy:true},{key:"project",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.projectPath || _vm.projectId))])]},proxy:true},{key:"sourceBranch",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.sourceBranch))])]},proxy:true},{key:"targetBranch",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.targetBranch))])]},proxy:true}])})],1),_vm._v(" "),_c('gl-accordion',{staticClass:"-gl-ml-2 gl-mt-3",attrs:{"header-level":3}},[_c('gl-accordion-item',{attrs:{"title":_vm.$options.i18n.ACCORDION_TITLE}},[_c('pre-block',[_vm._v(_vm._s(_vm.description))])],1)],1)],1)};
|
|
52
|
+
var __vue_staticRenderFns__ = [];
|
|
53
|
+
|
|
54
|
+
/* style */
|
|
55
|
+
const __vue_inject_styles__ = undefined;
|
|
56
|
+
/* scoped */
|
|
57
|
+
const __vue_scope_id__ = undefined;
|
|
58
|
+
/* module identifier */
|
|
59
|
+
const __vue_module_identifier__ = undefined;
|
|
60
|
+
/* functional template */
|
|
61
|
+
const __vue_is_functional_template__ = false;
|
|
62
|
+
/* style inject */
|
|
63
|
+
|
|
64
|
+
/* style inject SSR */
|
|
65
|
+
|
|
66
|
+
/* style inject shadow dom */
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
const __vue_component__ = __vue_normalize__(
|
|
71
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
72
|
+
__vue_inject_styles__,
|
|
73
|
+
__vue_script__,
|
|
74
|
+
__vue_scope_id__,
|
|
75
|
+
__vue_is_functional_template__,
|
|
76
|
+
__vue_module_identifier__,
|
|
77
|
+
false,
|
|
78
|
+
undefined,
|
|
79
|
+
undefined,
|
|
80
|
+
undefined
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
export default __vue_component__;
|
package/dist/components/chat/components/duo_chat_message_tool_approval/components/pre_block.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
2
|
+
|
|
3
|
+
/* script */
|
|
4
|
+
|
|
5
|
+
/* template */
|
|
6
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pre',{staticClass:"gl-border gl-grid gl-text-pretty gl-rounded-lg gl-border-strong gl-bg-strong gl-p-5 gl-font-monospace"},[_c('code',[_vm._t("default")],2)])};
|
|
7
|
+
var __vue_staticRenderFns__ = [];
|
|
8
|
+
|
|
9
|
+
/* style */
|
|
10
|
+
const __vue_inject_styles__ = undefined;
|
|
11
|
+
/* scoped */
|
|
12
|
+
const __vue_scope_id__ = undefined;
|
|
13
|
+
/* module identifier */
|
|
14
|
+
const __vue_module_identifier__ = undefined;
|
|
15
|
+
/* functional template */
|
|
16
|
+
const __vue_is_functional_template__ = false;
|
|
17
|
+
/* style inject */
|
|
18
|
+
|
|
19
|
+
/* style inject SSR */
|
|
20
|
+
|
|
21
|
+
/* style inject shadow dom */
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
const __vue_component__ = __vue_normalize__(
|
|
26
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
27
|
+
__vue_inject_styles__,
|
|
28
|
+
{},
|
|
29
|
+
__vue_scope_id__,
|
|
30
|
+
__vue_is_functional_template__,
|
|
31
|
+
__vue_module_identifier__,
|
|
32
|
+
false,
|
|
33
|
+
undefined,
|
|
34
|
+
undefined,
|
|
35
|
+
undefined
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
export default __vue_component__;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { GlIcon } from '@gitlab/ui';
|
|
2
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
3
|
+
|
|
4
|
+
var script = {
|
|
5
|
+
name: 'RunCommandToolParams',
|
|
6
|
+
components: {
|
|
7
|
+
GlIcon
|
|
8
|
+
},
|
|
9
|
+
props: {
|
|
10
|
+
program: {
|
|
11
|
+
type: String,
|
|
12
|
+
required: true
|
|
13
|
+
},
|
|
14
|
+
args: {
|
|
15
|
+
type: String,
|
|
16
|
+
required: true
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
computed: {
|
|
20
|
+
formattedCommand() {
|
|
21
|
+
return `${this.program} ${this.args}`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/* script */
|
|
27
|
+
const __vue_script__ = script;
|
|
28
|
+
|
|
29
|
+
/* template */
|
|
30
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-flex gl-items-center gl-gap-3"},[_c('gl-icon',{attrs:{"name":"terminal"}}),_vm._v(" "),_c('code',[_vm._v(_vm._s(_vm.formattedCommand))])],1)};
|
|
31
|
+
var __vue_staticRenderFns__ = [];
|
|
32
|
+
|
|
33
|
+
/* style */
|
|
34
|
+
const __vue_inject_styles__ = undefined;
|
|
35
|
+
/* scoped */
|
|
36
|
+
const __vue_scope_id__ = undefined;
|
|
37
|
+
/* module identifier */
|
|
38
|
+
const __vue_module_identifier__ = undefined;
|
|
39
|
+
/* functional template */
|
|
40
|
+
const __vue_is_functional_template__ = false;
|
|
41
|
+
/* style inject */
|
|
42
|
+
|
|
43
|
+
/* style inject SSR */
|
|
44
|
+
|
|
45
|
+
/* style inject shadow dom */
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
const __vue_component__ = __vue_normalize__(
|
|
50
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
51
|
+
__vue_inject_styles__,
|
|
52
|
+
__vue_script__,
|
|
53
|
+
__vue_scope_id__,
|
|
54
|
+
__vue_is_functional_template__,
|
|
55
|
+
__vue_module_identifier__,
|
|
56
|
+
false,
|
|
57
|
+
undefined,
|
|
58
|
+
undefined,
|
|
59
|
+
undefined
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
export default __vue_component__;
|