@gitlab/duo-ui 10.19.0 → 10.21.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.
Files changed (27) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/agentic_chat/agentic_duo_chat.js +8 -3
  3. package/dist/components/chat/components/duo_chat_header/duo_chat_header.js +28 -3
  4. package/dist/components/chat/components/duo_chat_message_tool_approval/components/create_commit_tool_params.js +148 -0
  5. package/dist/components/chat/components/duo_chat_message_tool_approval/components/create_issue_tool_params.js +88 -0
  6. package/dist/components/chat/components/duo_chat_message_tool_approval/components/create_merge_request_tool_params.js +83 -0
  7. package/dist/components/chat/components/duo_chat_message_tool_approval/components/pre_block.js +38 -0
  8. package/dist/components/chat/components/duo_chat_message_tool_approval/components/run_command_tool_params.js +62 -0
  9. package/dist/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.js +46 -8
  10. package/dist/components/chat/mock_data.js +85 -1
  11. package/dist/components.css +1 -1
  12. package/dist/components.css.map +1 -1
  13. package/dist/tailwind.css +1 -1
  14. package/dist/tailwind.css.map +1 -1
  15. package/dist/utils/object.js +9 -0
  16. package/package.json +4 -4
  17. package/src/components/agentic_chat/agentic_duo_chat.vue +9 -2
  18. package/src/components/chat/components/duo_chat_header/duo_chat_header.vue +64 -12
  19. package/src/components/chat/components/duo_chat_message_tool_approval/components/create_commit_tool_params.vue +155 -0
  20. package/src/components/chat/components/duo_chat_message_tool_approval/components/create_issue_tool_params.vue +80 -0
  21. package/src/components/chat/components/duo_chat_message_tool_approval/components/create_merge_request_tool_params.vue +74 -0
  22. package/src/components/chat/components/duo_chat_message_tool_approval/components/pre_block.vue +5 -0
  23. package/src/components/chat/components/duo_chat_message_tool_approval/components/run_command_tool_params.vue +30 -0
  24. package/src/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.vue +143 -88
  25. package/src/components/chat/mock_data.js +99 -0
  26. package/src/utils/object.js +4 -0
  27. package/translations.js +24 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [10.21.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.20.0...v10.21.0) (2025-09-11)
2
+
3
+
4
+ ### Features
5
+
6
+ * Improve tool approval dialog UI ([d337427](https://gitlab.com/gitlab-org/duo-ui/commit/d33742757bb358add571ed9b2ae39c5c796b31d5))
7
+
8
+ # [10.20.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.19.0...v10.20.0) (2025-09-05)
9
+
10
+
11
+ ### Features
12
+
13
+ * add agent dropdown to duo chat header ([a74a34c](https://gitlab.com/gitlab-org/duo-ui/commit/a74a34c1b7bcc0b557f2a75e08257177425d9174))
14
+
1
15
  # [10.19.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.18.0...v10.19.0) (2025-09-04)
2
16
 
3
17
 
@@ -92,6 +92,11 @@ var script = {
92
92
  minHeight: 400
93
93
  })
94
94
  },
95
+ agents: {
96
+ type: Array,
97
+ required: false,
98
+ default: () => []
99
+ },
95
100
  /**
96
101
  * The title of the chat/feature.
97
102
  */
@@ -415,8 +420,8 @@ var script = {
415
420
  onGoBack() {
416
421
  this.$emit('back-to-list');
417
422
  },
418
- onNewChat() {
419
- this.$emit('new-chat');
423
+ onNewChat(agent) {
424
+ this.$emit('new-chat', agent);
420
425
  this.$nextTick(() => {
421
426
  this.focusChatInput();
422
427
  });
@@ -688,7 +693,7 @@ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=
688
693
  },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:{
689
694
  'resizable-content': _vm.shouldRenderResizable,
690
695
  'duo-chat-drawer': !_vm.shouldRenderResizable,
691
- },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},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('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","disabled":_vm.isPromptEmpty || !_vm.hasValidPrompt,"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,2030360392)},[_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",attrs:{"disabled":!_vm.canSubmit,"data-testid":"chat-prompt-input","placeholder":_vm.inputPlaceholder,"character-count-limit":_vm.maxPromptLength,"textarea-classes":[
696
+ },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('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","disabled":_vm.isPromptEmpty || !_vm.hasValidPrompt,"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,2030360392)},[_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",attrs:{"disabled":!_vm.canSubmit,"data-testid":"chat-prompt-input","placeholder":_vm.inputPlaceholder,"character-count-limit":_vm.maxPromptLength,"textarea-classes":[
692
697
  'gl-absolute',
693
698
  '!gl-h-full',
694
699
  'gl-rounded-br-none',
@@ -1,5 +1,5 @@
1
1
  import Vue from 'vue';
2
- import { GlToast, GlAlert, GlBadge, GlButton, GlDropdown, GlDropdownItem, GlExperimentBadge, GlSafeHtmlDirective, GlTooltipDirective } from '@gitlab/ui';
2
+ import { GlToast, GlAlert, GlBadge, GlButton, GlDropdown, GlDropdownItem, GlExperimentBadge, 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';
@@ -26,7 +26,8 @@ var script = {
26
26
  GlButton,
27
27
  GlDropdown,
28
28
  GlDropdownItem,
29
- GlExperimentBadge
29
+ GlExperimentBadge,
30
+ GlDisclosureDropdown
30
31
  },
31
32
  directives: {
32
33
  SafeHtml: GlSafeHtmlDirective,
@@ -76,14 +77,34 @@ var script = {
76
77
  currentView: {
77
78
  type: String,
78
79
  required: true
80
+ },
81
+ agents: {
82
+ type: Array,
83
+ required: false,
84
+ default: () => []
79
85
  }
80
86
  },
81
87
  computed: {
82
88
  VIEW_TYPES() {
83
89
  return VIEW_TYPES;
90
+ },
91
+ hasManyAgents() {
92
+ return this.agents.length > 1;
93
+ },
94
+ hasAgents() {
95
+ return this.agents.length > 0;
84
96
  }
85
97
  },
86
98
  methods: {
99
+ startNewChat(agent) {
100
+ if (agent) {
101
+ this.$emit('new-chat', agent);
102
+ } else if (this.hasAgents) {
103
+ this.$emit('new-chat', this.agents[0]);
104
+ } else {
105
+ this.$emit('new-chat');
106
+ }
107
+ },
87
108
  async copySessionIdToClipboard() {
88
109
  try {
89
110
  await navigator.clipboard.writeText(this.sessionId);
@@ -100,7 +121,11 @@ var script = {
100
121
  const __vue_script__ = script;
101
122
 
102
123
  /* template */
103
- 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(" "),(_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(),_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)};
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:"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"},[(
125
+ _vm.isMultithreaded && (_vm.activeThreadId || _vm.currentView === _vm.VIEW_TYPES.LIST || _vm.hasManyAgents)
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
+ 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(),_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')}}})],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)};
104
129
  var __vue_staticRenderFns__ = [];
105
130
 
106
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__;
@@ -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__;