plugin-git-manager 1.2.7 → 1.2.8
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/dist/client/{326.03f7202ae14b60ae.js → 326.90c276058682b536.js} +1 -1
- package/dist/client/{878.425af0ab938dd8dc.js → 878.d35dadb55d23e652.js} +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client-v2/index.js +1 -1
- package/dist/externalVersion.js +7 -7
- package/dist/server/actions/review.js +11 -1
- package/package.json +1 -1
- package/src/server/actions/review.ts +16 -6
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
"use strict";(self.webpackChunkplugin_git_manager=self.webpackChunkplugin_git_manager||[]).push([["878"],{205:function(e,t,r){r.d(t,{GitManagerSettings:function(){return e3}});var n=r(155),l=r.n(n),a=r(59),o=r(375),i=r(602),c=r(866),u=r(578);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function m(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){d(a,n,l,o,i,"next",e)}function i(e){d(a,n,l,o,i,"throw",e)}o(void 0)})}}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var h=a.Typography.Text,v=a.Input.Search,b=a.theme.useToken,E={ts:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),tsx:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),js:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),jsx:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),json:l().createElement(o.CodeOutlined,{style:{color:"#5b5b5b"}}),md:l().createElement(o.FileMarkdownOutlined,{style:{color:"#083fa1"}}),html:l().createElement(o.Html5Outlined,{style:{color:"#e34c26"}}),css:l().createElement(o.FileTextOutlined,{style:{color:"#563d7c"}}),py:l().createElement(o.CodeOutlined,{style:{color:"#3572A5"}}),png:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),jpg:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),svg:l().createElement(o.FileImageOutlined,{style:{color:"#ffb13b"}})},w=function(){var e,t=(0,u.k)(),r=b().token,s=(0,c.useApp)().apiClient,d=(0,i.B)(),w=d.selectedRepo,S=d.branches,k=d.currentBranch,x=d.refreshBranches,C=y((0,n.useState)([]),2),I=C[0],O=C[1],A=y((0,n.useState)(!1),2),T=A[0],R=A[1],z=y((0,n.useState)(null),2),B=z[0],j=z[1],P=y((0,n.useState)(null),2),F=P[0],M=P[1],D=y((0,n.useState)("HEAD"),2),L=D[0],q=D[1],N=y((0,n.useState)(""),2),U=N[0],H=N[1],W=y((0,n.useState)(""),2),_=W[0],G=W[1],$=y((0,n.useState)(!1),2),K=$[0],V=$[1],J=(0,n.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:L;return m(function(){var r,n;return g(this,function(a){switch(a.label){case 0:if(!w)return[2,[]];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,s.request({url:"gitManager:fileTree",params:{repositoryId:w.id,ref:t,treePath:e}})];case 2:return[2,(Array.isArray(n=(null==(r=a.sent().data)?void 0:r.data)||r||[])?n:Array.isArray(null==n?void 0:n.data)?n.data:[]).map(function(e){return{key:e.path,title:l().createElement(h,{style:{fontSize:13}},e.name,"blob"===e.type&&e.size>0&&l().createElement(h,{type:"secondary",style:{fontSize:11,marginLeft:8}},e.size>1024?"".concat((e.size/1024).toFixed(1),"KB"):"".concat(e.size,"B"))),icon:function(e,t){if("tree"!==t){var r;return E[(null==(r=e.split(".").pop())?void 0:r.toLowerCase())||""]||l().createElement(o.FileOutlined,null)}}(e.name,e.type),isLeaf:"blob"===e.type,filePath:e.path,fileType:e.type}})];case 3:return console.warn("Failed to load file tree:",a.sent()),[2,[]];case 4:return[2]}})})()},[s,w,L]),Q=(0,n.useCallback)(function(){return m(function(){return g(this,function(e){switch(e.label){case 0:R(!0),e.label=1;case 1:return e.trys.push([1,,3,4]),[4,J("",L)];case 2:return O(e.sent()),[3,4];case 3:return R(!1),[7];case 4:return[2]}})})()},[J,L]);(0,n.useEffect)(function(){(null==w?void 0:w.status)==="connected"?(x(),j(null),M(null)):O([])},[w]),(0,n.useEffect)(function(){k&&"HEAD"===L&&q(k)},[k]),(0,n.useEffect)(function(){(null==w?void 0:w.status)==="connected"&&Q()},[L,w]);var X=(0,n.useRef)();if((0,n.useEffect)(function(){return X.current=setTimeout(function(){return G(U)},300),function(){return clearTimeout(X.current)}},[U]),!w)return l().createElement(a.Empty,{description:t("No repository selected")});if("connected"!==w.status)return l().createElement(a.Empty,{description:t("Repository not cloned yet")});var Y=_?function e(t,r){return t.map(function(t){if(t.children){var n=e(t.children,r);if(n.length>0)return f(p({},t),{children:n})}return(t.filePath||"").toLowerCase().includes(r)?t:null}).filter(Boolean)}(I,_.toLowerCase()):I;return l().createElement("div",{style:{display:"flex",height:"calc(100vh - 280px)",gap:0}},l().createElement("div",{style:{width:320,minWidth:280,borderRight:"1px solid ".concat(r.colorBorderSecondary),display:"flex",flexDirection:"column",background:r.colorBgContainer}},l().createElement("div",{style:{padding:"8px 12px",borderBottom:"1px solid ".concat(r.colorBorderSecondary)}},l().createElement(a.Space,{direction:"vertical",style:{width:"100%"},size:6},l().createElement(a.Select,{size:"small",style:{width:"100%"},value:L,onChange:function(e){q(e),j(null),M(null)},options:S.map(function(e){return{label:e,value:e}}),placeholder:"Branch"}),l().createElement(v,{size:"small",placeholder:"Filter files...",allowClear:!0,onChange:function(e){return H(e.target.value)}}))),l().createElement("div",{style:{flex:1,overflow:"auto",padding:"4px 0"}},T?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement(a.Tree,{showIcon:!0,treeData:Y,loadData:function(e){return m(function(){var t;return g(this,function(r){switch(r.label){case 0:if(e.children)return[2];return[4,J(e.filePath,L)];case 1:return t=r.sent(),O(function(r){return function e(t,r,n){return t.map(function(t){return t.key===r?f(p({},t),{children:n}):t.children?f(p({},t),{children:e(t.children,r,n)}):t})}(r,e.key,t)}),[2]}})})()},onSelect:function(e,t){return m(function(){var e,r,n,l;return g(this,function(a){switch(a.label){case 0:if(!(e=t.node).isLeaf)return[2];V(!0),M(e.filePath),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,s.request({url:"gitManager:fileContent",params:{repositoryId:w.id,ref:L,filePath:e.filePath}})];case 2:return j((null==(l=(null==(n=a.sent().data)||null==(r=n.data)?void 0:r.data)||(null==n?void 0:n.data))?void 0:l.content)||""),[3,5];case 3:return a.sent(),j("// Failed to load file content"),[3,5];case 4:return V(!1),[7];case 5:return[2]}})})()},selectedKeys:F?[F]:[],style:{fontSize:13},blockNode:!0}))),l().createElement("div",{style:{flex:1,display:"flex",flexDirection:"column",background:r.colorBgLayout}},F?l().createElement(l().Fragment,null,l().createElement("div",{style:{padding:"6px 16px",borderBottom:"1px solid ".concat(r.colorBorderSecondary),background:r.colorBgContainer,display:"flex",alignItems:"center",gap:8}},l().createElement(a.Breadcrumb,{items:F.split("/").map(function(e,t,r){return{title:t===r.length-1?l().createElement(h,{strong:!0},e):e}})}),l().createElement(h,{type:"secondary",style:{marginLeft:"auto",fontSize:12}},{ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",md:"markdown",html:"html",css:"css",scss:"scss",py:"python",sh:"bash",yml:"yaml",yaml:"yaml",sql:"sql",xml:"xml",java:"java",go:"go",rs:"rust",rb:"ruby"}[(null==(e=F.split(".").pop())?void 0:e.toLowerCase())||""]||"text")),l().createElement("div",{style:{flex:1,overflow:"auto"}},K?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement("pre",{style:{margin:0,padding:16,fontSize:13,lineHeight:1.6,fontFamily:"'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace",whiteSpace:"pre-wrap",wordBreak:"break-all",background:r.colorBgContainer,minHeight:"100%"}},(B||"").split("\n").map(function(e,t){return l().createElement("div",{key:t,style:{display:"flex"}},l().createElement("span",{style:{display:"inline-block",width:50,textAlign:"right",paddingRight:16,color:r.colorTextQuaternary,userSelect:"none",flexShrink:0}},t+1),l().createElement("span",{style:{flex:1}},e||" "))})))):l().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}},l().createElement(h,{type:"secondary"},"Select a file to view its content"))))},S=r(75);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function x(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function C(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){x(a,n,l,o,i,"next",e)}function i(e){x(a,n,l,o,i,"throw",e)}o(void 0)})}}function I(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||O(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){if(e){if("string"==typeof e)return k(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return k(e,t)}}function A(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var T=function(e){var t,r,i=e.target,s=e.size,d=e.type,m=e.onTriggered,p=(0,u.k)(),f=(0,c.useApp)().apiClient,y=(null==(t=S.useAIConfigRepository)?void 0:t.call(S))||{},g=((null==(r=S.useChatBoxActions)?void 0:r.call(S))||{}).triggerTask,h=I((0,n.useState)(!1),2),v=h[0],b=h[1],E=I((0,n.useState)([]),2),w=E[0],x=E[1],T=I((0,n.useState)(!1),2),R=T[0],z=T[1],B=I((0,n.useState)(!1),2),j=B[0],P=B[1],F=I((0,n.useState)(null),2),M=F[0],D=F[1],L=I(a.Form.useForm(),1)[0],q=(0,n.useCallback)(function(){var e=!1,t={repositoryId:i.repositoryId,targetType:i.type};return"mr"===i.type&&(t.mrIid=i.mrIid),"commit"===i.type&&(t.commitSha=i.commitSha),"branch"===i.type&&(t.branch=i.branch),f.request({url:"gitCodeReviews:list",params:{pageSize:1,sort:["-id"],filter:t}}).then(function(t){if(!e){var r;D(((null==t||null==(r=t.data)?void 0:r.data)||[])[0]||null)}}).catch(function(){}),function(){e=!0}},[f,i]);(0,n.useEffect)(function(){return q()},[q]);var N=(0,n.useCallback)(function(){return C(function(){var e,t;return A(this,function(r){switch(r.label){case 0:return[4,f.request({url:"gitReviewFlows:list",params:{pageSize:100,filter:{enabled:!0,$or:[{repositoryId:i.repositoryId},{repositoryId:null}]}}})];case 1:return x(t=(null==(e=r.sent().data)?void 0:e.data)||[]),[2,t]}})})()},[f,i.repositoryId]),U=(0,n.useCallback)(function(e){var t,r=e.find(function(e){return e.repositoryId===i.repositoryId});return null!=(t=null!=r?r:e[0])?t:null},[i.repositoryId]);(0,n.useEffect)(function(){if(v){var e=!1;return N().then(function(t){if(!e){var r=U(t);(null==r?void 0:r.id)&&L.setFieldValue("flowId",r.id)}}).catch(function(){}),function(){e=!0}}},[v,N,U,L]);var H=function(){var e=i.title||_();return"mr"===i.type?{type:"git-merge-request",uid:"".concat(i.repositoryId,":").concat(i.mrIid),title:e,content:{repositoryId:i.repositoryId,mrIid:i.mrIid,title:e}}:"commit"===i.type?{type:"git-commit",uid:"".concat(i.repositoryId,":").concat(i.commitSha),title:e,content:{repositoryId:i.repositoryId,commitSha:i.commitSha,title:e}}:{type:"git-repository",uid:String(i.repositoryId),title:e,content:{repositoryId:i.repositoryId,branch:i.branch,title:e}}},W=function(){return C(function(){var e,t,r,n,l,o;return A(this,function(c){switch(c.label){case 0:if(!g||!(null==y?void 0:y.getAIEmployees))return a.message.warning(p("AI plugin is not available")),[2];P(!0),c.label=1;case 1:if(c.trys.push([1,9,10,11]),!w.length)return[3,2];return t=w,[3,4];case 2:return[4,N()];case 3:t=c.sent(),c.label=4;case 4:if(!(null==(r=U(t))?void 0:r.aiEmployeeUsername))return a.message.warning(p("No matching flow available")),[2];if(!(null==(e=y.aiEmployees)?void 0:e.length))return[3,5];return n=y.aiEmployees,[3,7];case 5:return[4,y.getAIEmployees()];case 6:n=c.sent(),c.label=7;case 7:if(!(l=n.find(function(e){return e.username===r.aiEmployeeUsername})))return a.message.warning(p("AI employee not found")),[2];return[4,g({aiEmployee:l,tasks:[{title:"".concat(r.name,": ").concat(_()),message:{user:"mr"===i.type?"Please review merge request !".concat(i.mrIid," (").concat(i.title||"untitled","). Use the attached Git merge request context and the available git tools when you need more detail."):"commit"===i.type?"Please review commit ".concat(i.commitSha," (").concat(i.title||"untitled","). Use the attached Git commit context and the available git tools when you need more detail."):"Please help me inspect branch ".concat(i.branch,". Use the attached Git repository context and the available git tools when you need more detail."),system:r.instructions||void 0,workContext:[H()]},model:r.llmService&&r.model?{llmService:r.llmService,model:r.model}:null,autoSend:!1}]})];case 8:return c.sent(),[3,11];case 9:return o=c.sent(),a.message.error((null==o?void 0:o.message)||p("Failed to open AI chat")),[3,11];case 10:return P(!1),[7];case 11:return[2]}})})()},_=function(){return"mr"===i.type?"MR !".concat(i.mrIid):"commit"===i.type?"Commit ".concat(String(i.commitSha).slice(0,7)):"Branch ".concat(i.branch)},G=M&&M.headSha&&M.latestSha&&M.headSha!==M.latestSha,$=!!M&&"pending"!==M.status,K=$?G?p("Re-review (new commits)"):p("Re-run review"):p("Code Review"),V=$?o.ReloadOutlined:o.RobotOutlined,J=(0,n.useMemo)(function(){var e;return[{key:"run",icon:l().createElement(o.ThunderboltOutlined,null),label:$?p("Re-run automated review"):p("Run automated review"),onClick:function(){return b(!0)}}].concat(function(e){if(Array.isArray(e))return k(e)}(e=M?[{key:"view",icon:l().createElement(o.RobotOutlined,null),label:p("Status: ".concat(M.status))+" - "+p("View in Review History tab"),onClick:function(){a.message.info(p('Please switch to the "Review History" tab to see the details.'))}}]:[])||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[{key:"chat",icon:l().createElement(o.MessageOutlined,null),label:p("Ask AI Employee"),onClick:W,disabled:j}])},[$,M,j,W]);return l().createElement(l().Fragment,null,l().createElement(a.Dropdown,{menu:{items:J},placement:"bottomRight",trigger:["click"]},l().createElement(a.Button,{size:void 0===s?"small":s,type:G?"primary":void 0===d?"default":d,icon:l().createElement(V,null),danger:!!G,loading:j},K)),l().createElement(a.Modal,{title:l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),l().createElement("span",null,$?p("Re-run code review"):p("Run code review")),l().createElement("span",{style:{color:"#999",fontSize:12,fontWeight:400}},_())),open:v,onCancel:function(){return b(!1)},onOk:function(){return C(function(){var e,t,r,n,l,o,c,u,s,d,y;return A(this,function(g){switch(g.label){case 0:return g.trys.push([0,3,4,5]),[4,L.validateFields()];case 1:return r=g.sent(),z(!0),n={repositoryId:i.repositoryId,targetType:i.type,flowId:r.flowId,extraInstructions:r.extraInstructions||void 0},"mr"===i.type&&(n.mrIid=i.mrIid),"commit"===i.type&&(n.commitSha=i.commitSha),"branch"===i.type&&(n.branch=i.branch),[4,f.request({url:"gitManager:triggerReview",method:"post",data:n})];case 2:return o=null==(l=g.sent())||null==(t=l.data)||null==(e=t.data)?void 0:e.reviewId,a.message.success(p("Review started")),b(!1),L.resetFields(),q(),null==m||m(o),[3,5];case 3:if(null==(c=g.sent())?void 0:c.errorFields)return[2];return a.message.error((null==c||null==(y=c.response)||null==(d=y.data)||null==(s=d.errors)||null==(u=s[0])?void 0:u.message)||(null==c?void 0:c.message)||p("Failed to trigger review")),[3,5];case 4:return z(!1),[7];case 5:return[2]}})})()},okText:$?p("Re-run"):p("Start Review"),confirmLoading:R,destroyOnClose:!0},$&&l().createElement(a.Alert,{type:G?"warning":"info",showIcon:!0,style:{marginBottom:12},message:G?p("New commits detected since last review. Re-running will overwrite the existing review."):p("A review already exists for this target. Re-running will overwrite it."),description:l().createElement(a.Space,{size:8,wrap:!0,style:{fontSize:12}},(null==M?void 0:M.headSha)&&l().createElement("span",null,p("Reviewed at"),":\xa0",l().createElement(a.Tag,{style:{fontFamily:"monospace"}},String(M.headSha).slice(0,7))),G&&(null==M?void 0:M.latestSha)&&l().createElement("span",null,p("Latest"),":\xa0",l().createElement(a.Tag,{color:"orange",style:{fontFamily:"monospace"}},String(M.latestSha).slice(0,7))))}),l().createElement(a.Form,{form:L,layout:"vertical"},l().createElement(a.Form.Item,{name:"flowId",label:p("Review Flow"),rules:[{required:!0,message:p("Please select a review flow")}],extra:0===w.length?l().createElement(a.Tooltip,{title:p("Create a review flow in the Review Flows tab first")},l().createElement("span",{style:{color:"#faad14"}},p("No enabled flow found for this repository"))):null},l().createElement(a.Select,{options:w.map(function(e){return{value:e.id,label:"".concat(e.name).concat(e.aiEmployeeUsername?" — @".concat(e.aiEmployeeUsername):"").concat(null==e.repositoryId?" (".concat(p("global"),")"):"")}}),placeholder:p("Select a review flow")})),l().createElement(a.Form.Item,{name:"extraInstructions",label:p("Extra instructions (optional)")},l().createElement(a.Input.TextArea,{rows:4,placeholder:p("e.g. Focus on security issues in authentication")})))))};function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function z(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function B(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){z(a,n,l,o,i,"next",e)}function i(e){z(a,n,l,o,i,"throw",e)}o(void 0)})}}function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return R(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return R(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var F=a.Typography.Text,M=a.theme.useToken,D={A:{color:"green",icon:l().createElement(o.PlusCircleOutlined,null),label:"Added"},M:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},D:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},R:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"}},L=function(){var e,t,r=(0,u.k)(),s=M().token,d=(0,c.useApp)().apiClient,m=(0,i.B)(),p=m.selectedRepo,f=m.branches,y=m.currentBranch,g=j((0,n.useState)([]),2),h=g[0],v=g[1],b=j((0,n.useState)(!1),2),E=b[0],w=b[1],S=j((0,n.useState)(null),2),k=S[0],x=S[1],C=j((0,n.useState)(null),2),I=C[0],O=C[1],A=j((0,n.useState)(!1),2),R=A[0],z=A[1],L=j((0,n.useState)(null),2),U=L[0],H=L[1],W=j((0,n.useState)(null),2),_=W[0],G=W[1],$=j((0,n.useState)(""),2),K=$[0],V=$[1],J=(0,n.useCallback)(function(){return B(function(){var e,t,r;return P(this,function(n){switch(n.label){case 0:if(!p)return[2];w(!0),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:log",params:{repositoryId:p.id,maxCount:100}})];case 2:return v((null==(r=(null==(t=n.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data))?void 0:r.all)||[]),[3,5];case 3:return console.warn("Failed to load commit history:",n.sent()),v([]),[3,5];case 4:return w(!1),[7];case 5:return[2]}})})()},[d,p]);(0,n.useEffect)(function(){(null==p?void 0:p.status)==="connected"?J():v([])},[p]);var Q=h.filter(function(e){var t=K.trim().toLowerCase();return!t||String(e.message||e.subject||e.body||"").toLowerCase().includes(t)}),X=function(e){return B(function(){var t,r;return P(this,function(n){switch(n.label){case 0:x(e),z(!0),H(null),G(null),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:commitDetail",params:{repositoryId:p.id,commitHash:e.hash}})];case 2:return O((null==(r=n.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)),[3,5];case 3:return n.sent(),O(null),[3,5];case 4:return z(!1),[7];case 5:return[2]}})})()};if(!p)return l().createElement(a.Empty,{description:r("No repository selected")});if("connected"!==p.status)return l().createElement(a.Empty,{description:r("Repository not cloned yet")});var Y=[{title:"",key:"graph",width:40,render:function(e,t,r){return l().createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",height:"100%"}},l().createElement("div",{style:{width:10,height:10,borderRadius:"50%",background:0===r?s.colorPrimary:s.colorBorder,border:"2px solid ".concat(0===r?s.colorPrimary:s.colorBorder),zIndex:1}}))}},{title:r("Message"),dataIndex:"message",key:"message",render:function(e,t){return l().createElement("div",null,l().createElement(F,{strong:!0,style:{fontSize:13}},e),l().createElement("div",{style:{marginTop:2}},l().createElement(F,{type:"secondary",style:{fontSize:12}},l().createElement(o.UserOutlined,{style:{marginRight:4}}),t.author_name,l().createElement("span",{style:{margin:"0 8px"}},"\xb7"),l().createElement(o.ClockCircleOutlined,{style:{marginRight:4}}),N(t.date))))}},{title:"Hash",dataIndex:"hash",key:"hash",width:100,render:function(e){return l().createElement(F,{code:!0,copyable:!0,style:{fontSize:12}},null==e?void 0:e.substring(0,7))}},{title:"",key:"action",width:80,render:function(e,t){return l().createElement(a.Button,{size:"small",icon:l().createElement(o.DiffOutlined,null),onClick:function(){return X(t)}},"Detail")}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",alignItems:"center",gap:12}},l().createElement(o.BranchesOutlined,null),l().createElement(a.Select,{size:"small",style:{width:200},value:y,options:f.map(function(e){return{label:e,value:e}}),disabled:!0}),l().createElement(a.Input.Search,{allowClear:!0,size:"small",style:{width:280},placeholder:r("Search commit title or message"),value:K,onChange:function(e){return V(e.target.value)}}),l().createElement(F,{type:"secondary"},Q.length," commits")),E?l().createElement(a.Spin,null):l().createElement(a.Table,{dataSource:Q,columns:Y,rowKey:"hash",size:"small",pagination:{pageSize:30,showSizeChanger:!0},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){return X(e)}}}}),l().createElement(a.Drawer,{title:k?l().createElement("div",null,l().createElement(F,{strong:!0},k.message),l().createElement("div",null,l().createElement(F,{type:"secondary",style:{fontSize:12}},null==(e=k.hash)?void 0:e.substring(0,7)," \xb7 ",k.author_name," \xb7 ",N(k.date)))):"Commit Detail",open:!!k,onClose:function(){x(null),O(null),H(null),G(null)},width:800,extra:k&&p?l().createElement(T,{target:{type:"commit",repositoryId:p.id,commitSha:k.hash,title:k.message},size:"small"}):null},R?l().createElement(a.Spin,null):I?l().createElement("div",null,l().createElement(F,{strong:!0},"Changed Files (",(null==(t=I.files)?void 0:t.length)||0,")"),l().createElement(a.List,{size:"small",style:{marginTop:8},dataSource:I.files||[],renderItem:function(e){var t=D[e.status]||D.M,r=_===e.file;return l().createElement(a.List.Item,{style:{cursor:"pointer",background:r?s.colorPrimaryBg:void 0,padding:"6px 12px",borderRadius:4},onClick:function(){var t,r;return t=k.hash,r=e.file,B(function(){var e,n;return P(this,function(l){switch(l.label){case 0:G(r),l.label=1;case 1:return l.trys.push([1,3,,4]),[4,d.request({url:"gitManager:diff",params:{repositoryId:p.id,commitHash:t,file:r}})];case 2:return H((null==(n=l.sent().data)||null==(e=n.data)?void 0:e.data)||(null==n?void 0:n.data)||""),[3,4];case 3:return l.sent(),H("// Failed to load diff"),[3,4];case 4:return[2]}})})()}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:70,textAlign:"center"}},t.icon," ",t.label),l().createElement(F,{style:{fontSize:13}},e.file)))}}),null!==U&&l().createElement("div",{style:{marginTop:16}},l().createElement(F,{strong:!0,style:{display:"block",marginBottom:8}},l().createElement(o.FileTextOutlined,null)," ",_),l().createElement(q,{content:U}))):null))},q=(0,n.memo)(function(e){var t=e.content,r=M().token,n=t.split("\n");return l().createElement("div",{style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:12,lineHeight:1.5,border:"1px solid ".concat(r.colorBorderSecondary),borderRadius:6,overflow:"auto",maxHeight:500}},n.map(function(e,t){var n="transparent",a=r.colorText;return e.startsWith("+")&&!e.startsWith("+++")?(n="rgba(46, 160, 67, 0.12)",a="#2ea043"):e.startsWith("-")&&!e.startsWith("---")?(n="rgba(248, 81, 73, 0.12)",a="#f85149"):e.startsWith("@@")?(n="rgba(56, 139, 253, 0.08)",a="#388bfd"):(e.startsWith("diff")||e.startsWith("index"))&&(a=r.colorTextSecondary),l().createElement("div",{key:t,style:{padding:"0 12px",background:n,color:a,whiteSpace:"pre",minHeight:20}},l().createElement("span",{style:{display:"inline-block",width:40,color:r.colorTextQuaternary,userSelect:"none",textAlign:"right",marginRight:12}},t+1),e)}))});function N(e){if(!e)return"";var t=new Date(e),r=new Date().getTime()-t.getTime(),n=r/36e5;return n<1?"".concat(Math.round(r/6e4),"m ago"):n<24?"".concat(Math.round(n),"h ago"):n<168?"".concat(Math.round(n/24),"d ago"):t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function H(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function W(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){H(a,n,l,o,i,"next",e)}function i(e){H(a,n,l,o,i,"throw",e)}o(void 0)})}}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return U(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return U(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function G(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var $=a.Typography.Text;a.Typography.Paragraph,a.Typography.Title;var K=a.theme.useToken,V={opened:{color:"blue",icon:l().createElement(o.MergeOutlined,null),label:"Open"},merged:{color:"purple",icon:l().createElement(o.CheckCircleOutlined,null),label:"Merged"},closed:{color:"red",icon:l().createElement(o.CloseCircleOutlined,null),label:"Closed"}},J=function(){var e,t,r=(0,u.k)(),s=K().token,d=(0,c.useApp)().apiClient,m=(0,i.B)().selectedRepo,p=_((0,n.useState)([]),2),f=p[0],y=p[1],g=_((0,n.useState)(!1),2),h=g[0],v=g[1],b=_((0,n.useState)("opened"),2),E=b[0],w=b[1],S=_((0,n.useState)(""),2),k=S[0],x=S[1],C=_((0,n.useState)({page:1,perPage:20,total:0,totalPages:0}),2),I=C[0],O=C[1],A=_((0,n.useState)(null),2),R=A[0],z=A[1],B=_((0,n.useState)(null),2),j=B[0],P=B[1],F=_((0,n.useState)(!1),2),M=F[0],D=F[1],L=_((0,n.useState)([]),2),q=L[0],N=L[1],U=_((0,n.useState)(!1),2);U[0],U[1];var H=(0,n.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return W(function(){var t,r;return G(this,function(n){switch(n.label){case 0:if(!m)return[2];v(!0),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:mergeRequests",params:{repositoryId:m.id,state:E,search:k||void 0,page:e,perPage:20}})];case 2:return y((null==(r=(null==(t=n.sent().data)?void 0:t.data)||t)?void 0:r.data)||[]),(null==r?void 0:r.pagination)&&O(r.pagination),[3,5];case 3:return n.sent(),y([]),[3,5];case 4:return v(!1),[7];case 5:return[2]}})})()},[d,m,E,k]);(0,n.useEffect)(function(){(null==m?void 0:m.status)==="connected"?H(1):y([])},[m,E]);var J=function(e){return W(function(){var t,r,n,l,a,o,i,c,u,s;return G(this,function(p){switch(p.label){case 0:z(e),D(!0),N([]),p.label=1;case 1:return p.trys.push([1,3,4,5]),[4,Promise.all([d.request({url:"gitManager:mergeRequestDetail",params:{repositoryId:m.id,mrIid:e.iid}}),d.request({url:"gitManager:mergeRequestNotes",params:{repositoryId:m.id,mrIid:e.iid}})])];case 2:return c=(i=_.apply(void 0,[p.sent(),2]))[0],u=i[1],P((null==c||null==(r=c.data)||null==(t=r.data)?void 0:t.data)||(null==c||null==(n=c.data)?void 0:n.data)),N(Array.isArray(s=(null==u||null==(a=u.data)||null==(l=a.data)?void 0:l.data)||(null==u||null==(o=u.data)?void 0:o.data))?s:[]),[3,5];case 3:return p.sent(),P(null),[3,5];case 4:return D(!1),[7];case 5:return[2]}})})()};if(!m)return l().createElement(a.Empty,{description:r("No repository selected")});if("connected"!==m.status)return l().createElement(a.Empty,{description:r("Repository not cloned yet")});var X=[{title:"",key:"state_icon",width:40,render:function(e,t){var r=V[t.state]||V.opened;return l().createElement(a.Tooltip,{title:r.label},l().createElement("span",{style:{color:s["color".concat("blue"===r.color?"Primary":"purple"===r.color?"PurpleText":"Error")]||r.color,fontSize:16}},r.icon))}},{title:r("Title"),key:"title",render:function(e,t){var n,i;return l().createElement("div",null,l().createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},t.draft&&l().createElement(a.Tag,{color:"default",style:{fontSize:11,lineHeight:"16px"}},"DRAFT"),l().createElement($,{strong:!0,style:{fontSize:13}},t.title),t.hasConflicts&&l().createElement(a.Tooltip,{title:r("Has conflicts")},l().createElement(o.ExclamationCircleOutlined,{style:{color:s.colorWarning}}))),l().createElement("div",{style:{marginTop:2}},l().createElement($,{type:"secondary",style:{fontSize:12}},"!",t.iid,l().createElement("span",{style:{margin:"0 6px"}},"\xb7"),l().createElement(o.UserOutlined,{style:{marginRight:3}}),(null==(n=t.author)?void 0:n.name)||(null==(i=t.author)?void 0:i.username)||"Unknown",l().createElement("span",{style:{margin:"0 6px"}},"\xb7"),l().createElement(o.ClockCircleOutlined,{style:{marginRight:3}}),et(t.updatedAt))))}},{title:"",key:"branches",width:250,render:function(e,t){return l().createElement("div",{style:{fontSize:12}},l().createElement(a.Tag,{color:"blue",style:{fontSize:11}},l().createElement(o.BranchesOutlined,null)," ",t.sourceBranch),l().createElement("span",{style:{margin:"0 4px",color:s.colorTextSecondary}},"→"),l().createElement(a.Tag,{color:"green",style:{fontSize:11}},l().createElement(o.BranchesOutlined,null)," ",t.targetBranch))}},{title:"",key:"labels",width:180,render:function(e,t){var r;return l().createElement(a.Space,{size:2,wrap:!0},(t.labels||[]).slice(0,3).map(function(e){return l().createElement(a.Tag,{key:e,style:{fontSize:11}},e)}),(null==(r=t.labels)?void 0:r.length)>3&&l().createElement($,{type:"secondary",style:{fontSize:11}},"+",t.labels.length-3))}},{title:"",key:"meta",width:120,render:function(e,t){var r;return l().createElement(a.Space,{size:12},t.userNotesCount>0&&l().createElement(a.Tooltip,{title:"".concat(t.userNotesCount," comments")},l().createElement(a.Badge,{count:t.userNotesCount,size:"small",color:s.colorTextSecondary},l().createElement(o.CommentOutlined,{style:{fontSize:14,color:s.colorTextSecondary}}))),(null==(r=t.assignees)?void 0:r.length)>0&&l().createElement(a.Avatar.Group,{size:"small",max:{count:2}},t.assignees.map(function(e){var t;return l().createElement(a.Tooltip,{key:e.username,title:e.name},l().createElement(a.Avatar,{size:"small",src:e.avatarUrl},null==(t=e.name)?void 0:t[0]))})))}},{title:"",key:"actions",width:160,render:function(e,t){return l().createElement(a.Space,{onClick:function(e){return e.stopPropagation()}},l().createElement(T,{target:{type:"mr",repositoryId:m.id,mrIid:t.iid,title:t.title},size:"small"}),l().createElement(a.Tooltip,{title:r("View Details")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.FileTextOutlined,null),onClick:function(e){e.stopPropagation(),J(t)}})),l().createElement(a.Tooltip,{title:r("Open in GitLab")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.ExportOutlined,null),onClick:function(e){e.stopPropagation(),window.open(t.webUrl,"_blank")}})))}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"}},l().createElement(a.Select,{size:"small",style:{width:140},value:E,onChange:function(e){return w(e)},options:[{label:"\uD83D\uDFE2 ".concat(r("Open")),value:"opened"},{label:"\uD83D\uDFE3 ".concat(r("Merged")),value:"merged"},{label:"\uD83D\uDD34 ".concat(r("Closed")),value:"closed"},{label:"\uD83D\uDCCB ".concat(r("All")),value:"all"}]}),l().createElement(a.Input.Search,{size:"small",style:{width:260},placeholder:r("Search merge requests..."),value:k,onChange:function(e){return x(e.target.value)},onSearch:function(){H(1)},allowClear:!0}),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:function(){return H(1)}},r("Refresh")),l().createElement($,{type:"secondary",style:{fontSize:12}},null!=I.total?"".concat(I.total," ").concat(r("total")):"")),h?l().createElement(a.Spin,null):l().createElement(a.Table,{dataSource:f,columns:X,rowKey:"iid",size:"small",pagination:{current:I.page,pageSize:I.perPage,total:I.total||void 0,onChange:function(e){return H(e)},showSizeChanger:!1},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){return J(e)}}}}),l().createElement(a.Drawer,{title:R?l().createElement("div",null,l().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},(e=V[R.state]||V.opened,l().createElement(a.Tag,{color:e.color},e.icon," ",e.label)),R.draft&&l().createElement(a.Tag,null,"DRAFT"),l().createElement($,{strong:!0,style:{fontSize:15}},"!",R.iid)),l().createElement($,{strong:!0,style:{fontSize:16,display:"block",marginTop:4}},R.title)):r("Merge Request"),open:!!R,onClose:function(){z(null),P(null),N([])},width:900,extra:R&&l().createElement(a.Space,null,l().createElement(T,{target:{type:"mr",repositoryId:m.id,mrIid:R.iid,title:R.title},size:"small"}),l().createElement(a.Button,{type:"link",icon:l().createElement(o.ExportOutlined,null),onClick:function(){return window.open(R.webUrl,"_blank")}},r("Open in GitLab")))},M?l().createElement(a.Spin,null):j?l().createElement(a.Tabs,{defaultActiveKey:"overview",items:[{key:"overview",label:r("Overview"),children:l().createElement(Q,{mr:j})},{key:"changes",label:"".concat(r("Changes")," (").concat((null==(t=j.changes)?void 0:t.length)||0,")"),children:l().createElement(Y,{changes:j.changes||[]})},{key:"comments",label:l().createElement(a.Badge,{count:q.length,size:"small",offset:[6,0]},r("Comments")),children:l().createElement(Z,{notes:q})}]}):null))},Q=function(e){var t,r,n,i,c=e.mr,s=(0,u.k)(),d=K().token;return l().createElement("div",null,l().createElement("div",{style:{padding:"12px 16px",background:d.colorBgLayout,borderRadius:8,marginBottom:16,display:"flex",alignItems:"center",gap:8}},l().createElement(a.Tag,{color:"blue"},l().createElement(o.BranchesOutlined,null)," ",c.sourceBranch),l().createElement("span",{style:{color:d.colorTextSecondary,fontSize:16}},"→"),l().createElement(a.Tag,{color:"green"},l().createElement(o.BranchesOutlined,null)," ",c.targetBranch),c.hasConflicts&&l().createElement(a.Tag,{color:"warning",icon:l().createElement(o.ExclamationCircleOutlined,null)},s("Has conflicts"))),c.description&&l().createElement("div",{style:{marginBottom:16}},l().createElement($,{strong:!0},s("Description")),l().createElement("div",{style:{marginTop:8,padding:"12px 16px",background:d.colorBgLayout,borderRadius:8,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:13,lineHeight:1.6}},c.description)),l().createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px 24px",fontSize:13}},l().createElement(X,{label:s("Author"),value:c.author&&l().createElement(a.Space,{size:6},l().createElement(a.Avatar,{size:"small",src:c.author.avatarUrl},null==(t=c.author.name)?void 0:t[0]),l().createElement($,null,c.author.name),l().createElement($,{type:"secondary"},"@",c.author.username))}),l().createElement(X,{label:s("Assignees"),value:(null==(r=c.assignees)?void 0:r.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.assignees.map(function(e){var t;return l().createElement(a.Tooltip,{key:e.username,title:e.name},l().createElement(a.Tag,{icon:l().createElement(a.Avatar,{size:14,src:e.avatarUrl},null==(t=e.name)?void 0:t[0])},e.name))})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Reviewers"),value:(null==(n=c.reviewers)?void 0:n.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.reviewers.map(function(e){return l().createElement(a.Tag,{key:e.username},e.name)})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Labels"),value:(null==(i=c.labels)?void 0:i.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.labels.map(function(e){return l().createElement(a.Tag,{key:e},e)})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Created"),value:l().createElement($,null,er(c.createdAt))}),l().createElement(X,{label:s("Updated"),value:l().createElement($,null,er(c.updatedAt))}),c.mergedBy&&l().createElement(X,{label:s("Merged by"),value:l().createElement($,null,c.mergedBy.name," — ",er(c.mergedAt))}),c.closedBy&&l().createElement(X,{label:s("Closed by"),value:l().createElement($,null,c.closedBy.name," — ",er(c.closedAt))})))},X=function(e){var t=e.label,r=e.value;return l().createElement("div",null,l().createElement($,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:2}},t),l().createElement("div",null,r))},Y=function(e){var t=e.changes,r=K().token,o=(0,u.k)(),i=_((0,n.useState)(null),2),c=i[0],s=i[1];return t.length?l().createElement("div",null,t.map(function(e,t){var n=e.newPath||e.oldPath,o=c===n,i=null;return i=e.newFile?l().createElement(a.Tag,{color:"green"},"NEW"):e.deletedFile?l().createElement(a.Tag,{color:"red"},"DEL"):e.renamedFile?l().createElement(a.Tag,{color:"orange"},"RENAMED"):l().createElement(a.Tag,{color:"blue"},"MOD"),l().createElement("div",{key:t,style:{marginBottom:8}},l().createElement("div",{style:{padding:"6px 12px",background:o?r.colorPrimaryBg:r.colorBgLayout,borderRadius:6,cursor:"pointer",display:"flex",alignItems:"center",gap:8},onClick:function(){return s(o?null:n)}},i,l().createElement($,{style:{fontSize:13,fontFamily:"monospace"}},n),e.renamedFile&&e.oldPath!==e.newPath&&l().createElement($,{type:"secondary",style:{fontSize:11}},"(← ",e.oldPath,")")),o&&e.diff&&l().createElement(ee,{content:e.diff}))})):l().createElement(a.Empty,{description:o("No changes")})},Z=function(e){var t=e.notes,r=K().token,n=(0,u.k)();return t.length?l().createElement("div",null,t.map(function(e){var t,o,i,c,u;return l().createElement("div",{key:e.id,style:{padding:"12px 16px",marginBottom:12,background:r.colorBgLayout,borderRadius:8,borderLeft:"3px solid ".concat(e.resolved?r.colorSuccess:r.colorBorderSecondary)}},l().createElement("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8}},l().createElement(a.Avatar,{size:"small",src:null==(t=e.author)?void 0:t.avatarUrl},null==(i=e.author)||null==(o=i.name)?void 0:o[0]),l().createElement($,{strong:!0,style:{fontSize:13}},null==(c=e.author)?void 0:c.name),l().createElement($,{type:"secondary",style:{fontSize:12}},"@",null==(u=e.author)?void 0:u.username),l().createElement($,{type:"secondary",style:{fontSize:11,marginLeft:"auto"}},et(e.createdAt)),e.resolvable&&l().createElement(a.Tag,{color:e.resolved?"success":"default",style:{fontSize:11}},e.resolved?n("Resolved"):n("Unresolved"))),l().createElement("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:13,lineHeight:1.6}},e.body))})):l().createElement(a.Empty,{description:n("No comments")})},ee=(0,n.memo)(function(e){var t=e.content,r=K().token,n=t.split("\n");return l().createElement("div",{style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:12,lineHeight:1.5,border:"1px solid ".concat(r.colorBorderSecondary),borderRadius:6,overflow:"auto",maxHeight:400,margin:"4px 0"}},n.map(function(e,t){var n="transparent",a=r.colorText;return e.startsWith("+")&&!e.startsWith("+++")?(n="rgba(46, 160, 67, 0.12)",a="#2ea043"):e.startsWith("-")&&!e.startsWith("---")?(n="rgba(248, 81, 73, 0.12)",a="#f85149"):e.startsWith("@@")?(n="rgba(56, 139, 253, 0.08)",a="#388bfd"):(e.startsWith("diff")||e.startsWith("index"))&&(a=r.colorTextSecondary),l().createElement("div",{key:t,style:{padding:"0 12px",background:n,color:a,whiteSpace:"pre",minHeight:20}},l().createElement("span",{style:{display:"inline-block",width:40,color:r.colorTextQuaternary,userSelect:"none",textAlign:"right",marginRight:12}},t+1),e)}))});function et(e){if(!e)return"";var t=new Date(e),r=new Date().getTime()-t.getTime(),n=r/36e5;return n<1?"".concat(Math.round(r/6e4),"m ago"):n<24?"".concat(Math.round(n),"h ago"):n<168?"".concat(Math.round(n/24),"d ago"):t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}function er(e){return e?new Date(e).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function en(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function el(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function ea(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){el(a,n,l,o,i,"next",e)}function i(e){el(a,n,l,o,i,"throw",e)}o(void 0)})}}function eo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||ec(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ei(e){return function(e){if(Array.isArray(e))return en(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ec(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ec(e,t){if(e){if("string"==typeof e)return en(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return en(e,t)}}function eu(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var es=a.Typography.Text,ed=a.theme.useToken,em={not_added:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"New"},modified:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},deleted:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},renamed:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"},conflicted:{color:"red",icon:l().createElement(o.WarningOutlined,null),label:"Conflict"},created:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"Created"}},ep=function(){var e,t,r,s,d,m,p=(0,u.k)(),f=ed().token,y=(0,c.useApp)().apiClient,g=(0,i.B)(),h=g.selectedRepo,v=g.refreshRepos,b=eo((0,n.useState)(null),2),E=b[0],w=b[1],S=eo((0,n.useState)(null),2),k=S[0],x=S[1],C=eo((0,n.useState)(null),2),I=C[0],O=C[1],A=(0,n.useCallback)(function(){return ea(function(){var e,t;return eu(this,function(r){switch(r.label){case 0:if(!h||"connected"!==h.status)return x(null),[2];w("status"),r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,y.request({url:"gitManager:status",method:"post",params:{repositoryId:h.id}})];case 2:return x((null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)),[3,5];case 3:return console.warn("Failed to load git status:",r.sent()),x(null),[3,5];case 4:return w(null),[7];case 5:return[2]}})})()},[y,h]);(0,n.useEffect)(function(){A()},[A]);var T=(0,n.useCallback)(function(e){return ea(function(){var t,r,n,l,o,i,c,u,s;return eu(this,function(d){switch(d.label){case 0:if(!h)return[2];w(e),O(null),d.label=1;case 1:return d.trys.push([1,6,7,8]),[4,y.request({url:"gitManager:".concat(e),method:"post",params:{repositoryId:h.id}})];case 2:if(r=d.sent().data,O({action:e,success:!0,message:p("{{action}} completed successfully",{action:e})}),a.message.success(p("{{action}} completed",{action:e})),n=(null==r||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data),"status"===e&&x(n),"fetch"!==e&&"pull"!==e)return[3,4];return[4,A()];case 3:d.sent(),d.label=4;case 4:return[4,v()];case 5:return d.sent(),[3,8];case 6:return s=(null==(l=d.sent())||null==(u=l.response)||null==(c=u.data)||null==(i=c.errors)||null==(o=i[0])?void 0:o.message)||p("{{action}} failed",{action:e}),O({action:e,success:!1,message:s}),a.message.error(s),[3,8];case 7:return w(null),[7];case 8:return[2]}})})()},[y,h,v,A]);if(!h)return l().createElement(a.Empty,{description:p("No repository selected")});if("connected"!==h.status)return l().createElement(a.Empty,{description:p("Repository not cloned yet")});var R=k?ei((null==(e=k.not_added)?void 0:e.map(function(e){return{file:e,status:"not_added"}}))||[]).concat(ei((null==(t=k.modified)?void 0:t.map(function(e){return{file:e,status:"modified"}}))||[]),ei((null==(r=k.deleted)?void 0:r.map(function(e){return{file:e,status:"deleted"}}))||[]),ei((null==(s=k.renamed)?void 0:s.map(function(e){return{file:"string"==typeof e?e:e.to,status:"renamed"}}))||[]),ei((null==(d=k.conflicted)?void 0:d.map(function(e){return{file:e,status:"conflicted"}}))||[]),ei((null==(m=k.created)?void 0:m.map(function(e){return{file:e,status:"created"}}))||[])):[];return l().createElement("div",null,l().createElement(a.Space,{size:"middle",wrap:!0,style:{marginBottom:24}},l().createElement(a.Button,{size:"large",icon:l().createElement(o.SyncOutlined,null),loading:"fetch"===E,onClick:function(){return T("fetch")}},p("Fetch")),l().createElement(a.Button,{size:"large",type:"primary",icon:l().createElement(o.CloudDownloadOutlined,null),loading:"pull"===E,onClick:function(){return T("pull")}},p("Pull")),l().createElement(a.Button,{size:"large",icon:l().createElement(o.BranchesOutlined,null),loading:"status"===E,onClick:A},p("Status"))),I&&l().createElement(a.Card,{size:"small",style:{marginBottom:16,borderColor:I.success?f.colorSuccessBorder:f.colorErrorBorder}},l().createElement(a.Space,null,I.success?l().createElement(o.CheckCircleOutlined,{style:{color:f.colorSuccess}}):l().createElement(o.WarningOutlined,{style:{color:f.colorError}}),l().createElement(es,{strong:!0},I.action),l().createElement(es,null,I.message))),k&&l().createElement(a.Card,{title:p("Working Directory Status"),size:"small"},l().createElement(a.Descriptions,{column:3,size:"small",style:{marginBottom:16}},l().createElement(a.Descriptions.Item,{label:"Branch"},l().createElement(a.Tag,{icon:l().createElement(o.BranchesOutlined,null),color:"blue"},k.current)),l().createElement(a.Descriptions.Item,{label:"Tracking"},l().createElement(es,null,k.tracking||"N/A")),l().createElement(a.Descriptions.Item,{label:"Changes"},l().createElement(a.Space,null,k.ahead>0&&l().createElement(a.Badge,{count:"".concat(k.ahead," ahead"),style:{backgroundColor:f.colorPrimary}}),k.behind>0&&l().createElement(a.Badge,{count:"".concat(k.behind," behind"),style:{backgroundColor:f.colorWarning}}),0===k.ahead&&0===k.behind&&l().createElement(a.Tag,{color:"green",icon:l().createElement(o.CheckCircleOutlined,null)},"Up to date")))),R.length>0?l().createElement(l().Fragment,null,l().createElement(es,{strong:!0,style:{display:"block",marginBottom:8}},R.length," changed file(s)"),l().createElement(a.List,{size:"small",dataSource:R,renderItem:function(e){var t=em[e.status]||{color:"default",icon:l().createElement(o.QuestionCircleOutlined,null),label:e.status};return l().createElement(a.List.Item,{style:{padding:"4px 0"}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:80,textAlign:"center"}},t.icon," ",t.label),l().createElement(es,{code:!0,style:{fontSize:13}},e.file)))}})):l().createElement(es,{type:"secondary"},"Working directory clean")))};function ef(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ey(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ef(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ef(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eg=function(e){var t=e.value,r=e.onChange,o=e.allowClear,i=e.size,u=e.style,s=e.placeholder,d=(0,c.useApp)().apiClient,m=ey((0,n.useState)([]),2),p=m[0],f=m[1],y=ey((0,n.useState)(!1),2),g=y[0],h=y[1];return(0,n.useEffect)(function(){var e=!1;return h(!0),d.request({url:"aiEmployees:listByUser"}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];f(Array.isArray(n)?n:[])}}).catch(function(){}).finally(function(){e||h(!1)}),function(){e=!0}},[d]),l().createElement(a.Select,{value:t,onChange:r,allowClear:void 0===o||o,loading:g,size:i,style:u,placeholder:s||"Select AI employee",options:p.map(function(e){return{value:e.username,label:"".concat(e.nickname||e.username," (@").concat(e.username,")")}}),showSearch:!0,optionFilterProp:"label"})};function eh(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ev(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eh(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eb=function(e){var t=e.value,r=e.onChange,o=e.allowClear,i=e.size,u=e.style,s=e.placeholder,d=(0,c.useApp)().apiClient,m=ev((0,n.useState)([]),2),p=m[0],f=m[1],y=ev((0,n.useState)(!1),2),g=y[0],h=y[1];return(0,n.useEffect)(function(){var e=!1;return h(!0),d.request({url:"ai:listAllEnabledModels"}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];f(Array.isArray(n)?n:[])}}).catch(function(){}).finally(function(){e||h(!1)}),function(){e=!0}},[d]),l().createElement(a.Select,{value:t,onChange:r,allowClear:void 0===o||o,loading:g,size:i,style:u,placeholder:s||"Select LLM Service",options:p.map(function(e){return{value:e.llmService,label:e.llmServiceTitle||e.llmService}}),showSearch:!0,optionFilterProp:"label"})};function eE(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ew(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eE(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eE(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eS=function(e){var t=e.llmService,r=e.value,o=e.onChange,i=e.allowClear,u=e.size,s=e.style,d=e.placeholder,m=(0,c.useApp)().apiClient,p=ew((0,n.useState)([]),2),f=p[0],y=p[1],g=ew((0,n.useState)(!1),2),h=g[0],v=g[1];return(0,n.useEffect)(function(){var e=!1;return t?(v(!0),m.request({url:"ai:listModels",params:{llmService:t}}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];y(Array.isArray(n)?n:[])}}).catch(function(){e||y([])}).finally(function(){e||v(!1)}),function(){e=!0}):void y([])},[m,t]),l().createElement(a.Select,{value:r,onChange:o,allowClear:void 0===i||i,loading:h,size:u,style:s,placeholder:d||"Select LLM Model",options:f.map(function(e){return{value:e.id,label:e.id}}),showSearch:!0,optionFilterProp:"label",disabled:!t})};function ek(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ex(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function eC(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){ex(a,n,l,o,i,"next",e)}function i(e){ex(a,n,l,o,i,"throw",e)}o(void 0)})}}function eI(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ek(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ek(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eO(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eA={manual:"Manual",onMergeRequestCreated:"On MR Created",both:"Both"},eT={auto:"Auto",manual:"Manual",disabled:"Disabled"},eR=function(){var e=(0,u.k)(),t=(0,c.useApp)().apiClient,r=(0,i.B)().repos,s=eI((0,n.useState)([]),2),d=s[0],m=s[1],p=eI((0,n.useState)(!1),2),f=p[0],y=p[1],g=eI((0,n.useState)(null),2),h=g[0],v=g[1],b=eI((0,n.useState)(!1),2),E=b[0],w=b[1],S=eI(a.Form.useForm(),1)[0],k=(0,n.useCallback)(function(){return eC(function(){var e;return eO(this,function(r){switch(r.label){case 0:y(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,t.request({url:"gitReviewFlows:list",params:{pageSize:100}})];case 2:return m((null==(e=r.sent().data)?void 0:e.data)||[]),[3,4];case 3:return y(!1),[7];case 4:return[2]}})})()},[t]);(0,n.useEffect)(function(){k()},[k]);var x=function(e){v(e),S.setFieldsValue(e),w(!0)},C=[{title:e("Name"),dataIndex:"name",render:function(t,r){return l().createElement(a.Space,null,l().createElement("span",{style:{fontWeight:500}},t),!r.enabled&&l().createElement(a.Tag,{color:"default"},e("Disabled")))}},{title:e("Repository"),dataIndex:"repositoryId",render:function(t){if(null==t)return l().createElement(a.Tag,{color:"purple"},e("Global"));var n=r.find(function(e){return e.id===t});return n?l().createElement(a.Space,{size:4},l().createElement(o.BranchesOutlined,null),n.name):"#".concat(t)}},{title:e("AI Employee"),dataIndex:"aiEmployeeUsername",render:function(e){return e?l().createElement(a.Tag,{color:"blue"},"@",e):l().createElement("span",{style:{color:"#999"}},"—")}},{title:e("Trigger"),dataIndex:"triggerMode",render:function(t){return l().createElement(a.Tag,null,e(eA[t]||t))}},{title:e("Post"),dataIndex:"postMode",render:function(t){return l().createElement(a.Tag,{color:"auto"===t?"green":"manual"===t?"orange":"default"},e(eT[t]||t))}},{title:"",key:"actions",width:100,render:function(r,n){return l().createElement(a.Space,null,l().createElement(a.Tooltip,{title:e("Edit")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.EditOutlined,null),onClick:function(){return x(n)}})),l().createElement(a.Popconfirm,{title:e("Delete this flow?"),onConfirm:function(){var r;return r=n.id,eC(function(){var n;return eO(this,function(l){switch(l.label){case 0:return l.trys.push([0,2,,3]),[4,t.request({url:"gitReviewFlows:destroy",method:"post",params:{filterByTk:r}})];case 1:return l.sent(),a.message.success(e("Flow deleted")),k(),[3,3];case 2:return n=l.sent(),a.message.error((null==n?void 0:n.message)||e("Failed to delete")),[3,3];case 3:return[2]}})})()}},l().createElement(a.Button,{size:"small",danger:!0,icon:l().createElement(o.DeleteOutlined,null)})))}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between"}},l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),onClick:function(){v(null),S.resetFields(),S.setFieldsValue({enabled:!0,triggerMode:"manual",postMode:"manual",instructions:"Please review the code changes with a focus on:\n1. Best Practices & Style:\n - C#/VB.NET: Follow standard naming conventions (PascalCase for methods/properties, camelCase for fields). Ensure proper use of async/await (avoid .Result/.Wait()). Use LINQ efficiently.\n - JS/TS: Use strict equality (===), prefer const/let. Ensure TypeScript types are explicit and avoid 'any'.\n2. Performance: Watch out for N+1 queries, unnecessary loops, and memory leaks.\n3. Security: Identify potential SQL injections, XSS vulnerabilities, and improper data validation.\n4. Maintainability: Check for readability, SOLID principles, and DRY. Ensure meaningful naming.\n5. Error Handling: Verify that exceptions are properly caught, handled, and logged."}),w(!0)}},e("Add Review Flow")),l().createElement(a.Button,{onClick:k,loading:f},e("Refresh"))),l().createElement(a.Table,{size:"small",rowKey:"id",loading:f,dataSource:d,columns:C,locale:{emptyText:l().createElement(a.Empty,{description:e("No review flows yet")})},pagination:{pageSize:20}}),l().createElement(a.Modal,{title:(null==h?void 0:h.id)?e("Edit Review Flow"):e("Add Review Flow"),open:E,onCancel:function(){w(!1),v(null),S.resetFields()},onOk:function(){return eC(function(){var r,n,l,o,i,c;return eO(this,function(u){switch(u.label){case 0:return u.trys.push([0,6,,7]),[4,S.validateFields()];case 1:if((void 0===(r=u.sent()).repositoryId||""===r.repositoryId)&&(r.repositoryId=null),!(null==h?void 0:h.id))return[3,3];return[4,t.request({url:"gitReviewFlows:update",method:"post",params:{filterByTk:h.id},data:r})];case 2:return u.sent(),a.message.success(e("Flow updated")),[3,5];case 3:return[4,t.request({url:"gitReviewFlows:create",method:"post",data:r})];case 4:u.sent(),a.message.success(e("Flow created")),u.label=5;case 5:return w(!1),v(null),S.resetFields(),k(),[3,7];case 6:if(null==(n=u.sent())?void 0:n.errorFields)return[2];return a.message.error((null==n||null==(c=n.response)||null==(i=c.data)||null==(o=i.errors)||null==(l=o[0])?void 0:l.message)||(null==n?void 0:n.message)||e("Failed to save")),[3,7];case 7:return[2]}})})()},width:640,destroyOnClose:!0},l().createElement(a.Form,{form:S,layout:"vertical"},l().createElement(a.Form.Item,{name:"name",label:e("Name"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:e("e.g. Default review flow")})),l().createElement(a.Form.Item,{name:"repositoryId",label:e("Repository"),extra:e("Leave empty to apply to all repositories")},l().createElement(a.Select,{allowClear:!0,placeholder:e("All repositories (global)"),options:r.map(function(e){return{value:e.id,label:e.name}})})),l().createElement(a.Form.Item,{name:"aiEmployeeUsername",label:e("AI Employee"),rules:[{required:!0}]},l().createElement(eg,{placeholder:e("Select an AI employee")})),l().createElement(a.Space.Compact,{style:{width:"100%"}},l().createElement(a.Form.Item,{name:"llmService",label:e("LLM Service (optional)"),style:{flex:1,marginRight:8}},l().createElement(eb,{placeholder:e("Override flow LLM service")})),l().createElement(a.Form.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.llmService!==t.llmService}},function(t){var r=(0,t.getFieldValue)("llmService");return l().createElement(a.Form.Item,{name:"model",label:e("Model (optional)"),style:{flex:1}},r?l().createElement(eS,{llmService:r,placeholder:e("Override LLM model")}):l().createElement(a.Input,{placeholder:e("Select an LLM service first"),disabled:!0}))})),l().createElement(a.Form.Item,{name:"triggerMode",label:e("Trigger Mode"),rules:[{required:!0}],extra:e("Auto modes require enabling Auto Review on the repository")},l().createElement(a.Select,{options:[{value:"manual",label:e("Manual")},{value:"onMergeRequestCreated",label:e("On Merge Request Created")},{value:"both",label:e("Both")}]})),l().createElement(a.Form.Item,{name:"postMode",label:e("Post Mode"),rules:[{required:!0}]},l().createElement(a.Select,{options:[{value:"auto",label:e("Auto post to MR")},{value:"manual",label:e("Manual approval before posting")},{value:"disabled",label:e("Do not post")}]})),l().createElement(a.Form.Item,{name:"branchFilter",label:e("Branch Filter (regex, optional)")},l().createElement(a.Input,{placeholder:"^(feature|hotfix)/.*$"})),l().createElement(a.Form.Item,{name:"instructions",label:e("Additional Instructions (optional)")},l().createElement(a.Input.TextArea,{rows:8,placeholder:e("Extra guidance appended to every review prompt")})),l().createElement(a.Form.Item,{name:"enabled",label:e("Enabled"),valuePropName:"checked"},l().createElement(a.Switch,null)))))},ez=r(786),eB=a.theme.useToken,ej=function(e){var t=e.content,r=e.maxHeight,n=eB().token;return t?l().createElement("div",{style:{fontSize:13,lineHeight:1.65,color:n.colorText,maxHeight:r,overflow:r?"auto":void 0}},l().createElement(ez.oz,{components:{code:function(e){var t,r,a=e.inline,o=e.children,i=function(e,t){if(null==e)return{};var r,n,l,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(l=0,r=Reflect.ownKeys(Object(e));l<r.length;l++)n=r[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}if(a=function(e,t){if(null==e)return{};var r,n,l={},a=Object.getOwnPropertyNames(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r]);return l}(e,t),Object.getOwnPropertySymbols)for(l=0,r=Object.getOwnPropertySymbols(e);l<r.length;l++)n=r[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}(e,["inline","children"]),c=String(o).replace(/\n$/,"");return a?l().createElement("code",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},i),r=r={style:{background:n.colorBgLayout,padding:"1px 6px",borderRadius:4,fontSize:12,fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace"}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),c):l().createElement("pre",{style:{background:n.colorBgLayout,padding:"10px 14px",borderRadius:6,overflowX:"auto",fontSize:12,fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace"}},l().createElement("code",null,c))},blockquote:function(e){var t=e.children;return l().createElement("blockquote",{style:{borderLeft:"3px solid ".concat(n.colorBorder),paddingLeft:12,color:n.colorTextSecondary,margin:"8px 0"}},t)}}},t)):null};function eP(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function eF(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function eM(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){eF(a,n,l,o,i,"next",e)}function i(e){eF(a,n,l,o,i,"throw",e)}o(void 0)})}}function eD(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eP(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eP(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eL(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eq=a.Typography.Text;a.Typography.Title,a.Typography.Paragraph;var eN=a.theme.useToken,eU={pending:"default",running:"blue",completed:"green",failed:"red"},eH={pending_approval:"orange",approved:"cyan",posted:"green",post_failed:"red",skipped:"default",rejected:"red"},eW=function(e){var t=e.initialFilter,r=(0,u.k)();eN().token;var s=(0,c.useApp)().apiClient,d=(0,i.B)().repos,m=eD((0,n.useState)([]),2),p=m[0],f=m[1],y=eD((0,n.useState)(!1),2),g=y[0],h=y[1],v=eD((0,n.useState)("all"),2),b=v[0],E=v[1],w=eD((0,n.useState)("pending_approval"===(void 0===t?"all":t)?"pending_approval":"all"),2),S=w[0],k=w[1],x=eD((0,n.useState)("all"),2),C=x[0],I=x[1],O=eD((0,n.useState)(null),2),A=O[0],T=O[1],R=eD((0,n.useState)(!1),2),z=R[0],B=R[1],j=eD((0,n.useState)(""),2),P=j[0],F=j[1],M=(0,n.useCallback)(function(){return eM(function(){var e,t;return eL(this,function(r){switch(r.label){case 0:h(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),e={},"all"!==b&&(e.status=b),"all"!==S&&(e.postStatus=S),"all"!==C&&(e.triggeredBy=C),[4,s.request({url:"gitCodeReviews:list",params:{pageSize:50,sort:["-id"],filter:Object.keys(e).length?e:void 0}})];case 2:return f((null==(t=r.sent().data)?void 0:t.data)||[]),[3,4];case 3:return h(!1),[7];case 4:return[2]}})})()},[s,b,S,C]);(0,n.useEffect)(function(){M()},[M]),(0,n.useEffect)(function(){if(p.some(function(e){return"running"===e.status||"pending"===e.status})){var e=setInterval(M,4e3);return function(){return clearInterval(e)}}},[p,M]);var D=(0,n.useCallback)(function(e){return eM(function(){var t,r;return eL(this,function(n){switch(n.label){case 0:return[4,s.request({url:"gitCodeReviews:get",params:{filterByTk:e}})];case 1:return(r=null==(t=n.sent().data)?void 0:t.data)&&(f(function(t){return t.map(function(t){return t.id===e?r:t})}),(null==A?void 0:A.id)===e&&T(r)),[2]}})})()},[s,A]),L=(0,n.useMemo)(function(){var e={};return d.forEach(function(t){return e[t.id]=t}),e},[d]),q=[{title:r("Target"),key:"target",render:function(e,t){var r=L[t.repositoryId],n=(null==r?void 0:r.name)||"#".concat(t.repositoryId);return"mr"===t.targetType?l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary"},"!",t.mrIid)):"commit"===t.targetType?l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary",style:{fontFamily:"monospace"}},String(t.commitSha||"").slice(0,7))):l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary"},t.branch))}},{title:r("Type"),dataIndex:"targetType",width:80,render:function(e){return l().createElement(a.Tag,null,r(e.toUpperCase()))}},{title:r("Status"),dataIndex:"status",width:120,render:function(e){var t=eU[e]||"default",n="running"===e?l().createElement(o.ClockCircleOutlined,{spin:!0}):null;return l().createElement(a.Tag,{color:t,icon:n},r(e))}},{title:r("Post Status"),dataIndex:"postStatus",width:140,render:function(e){return l().createElement(a.Tag,{color:eH[e]||"default"},r(e))}},{title:r("Commit"),key:"sha",width:140,render:function(e,t){var n=t.headSha,o=t.latestSha;return n?l().createElement(a.Space,{size:4},l().createElement(a.Tag,{style:{fontFamily:"monospace",fontSize:11}},String(n).slice(0,7)),n&&o&&n!==o&&l().createElement(a.Tooltip,{title:"".concat(r("New commits"),": ").concat(String(o).slice(0,7))},l().createElement(a.Tag,{color:"orange",style:{fontSize:11}},r("new")))):l().createElement(eq,{type:"secondary"},"—")}},{title:r("Trigger"),dataIndex:"triggeredBy",width:90,render:function(e){return l().createElement(a.Tag,{color:"poll"===e?"geekblue":"default",style:{fontSize:11}},"poll"===e?r("Polling"):r("Manual"))}},{title:r("Duration"),dataIndex:"durationMs",width:90,render:function(e){return e?"".concat((e/1e3).toFixed(1),"s"):"—"}},{title:r("Created"),dataIndex:"createdAt",width:160,render:function(e){return e?new Date(e).toLocaleString():""}},{title:"",key:"actions",width:60,render:function(e,t){return l().createElement(a.Tooltip,{title:r("View")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.FileTextOutlined,null),onClick:function(){T(t),B(!1),F(t.reviewMarkdown||"")}}))}}];return l().createElement("div",null,l().createElement(a.Space,{style:{marginBottom:12},wrap:!0},l().createElement(a.Select,{size:"small",style:{width:140},value:b,onChange:E,options:[{value:"all",label:r("All statuses")},{value:"pending",label:r("pending")},{value:"running",label:r("running")},{value:"completed",label:r("completed")},{value:"failed",label:r("failed")}]}),l().createElement(a.Select,{size:"small",style:{width:180},value:S,onChange:k,options:[{value:"all",label:r("All post statuses")},{value:"pending_approval",label:r("pending_approval")},{value:"approved",label:r("approved")},{value:"posted",label:r("posted")},{value:"post_failed",label:r("post_failed")},{value:"skipped",label:r("skipped")},{value:"rejected",label:r("rejected")}]}),l().createElement(a.Select,{size:"small",style:{width:130},value:C,onChange:I,options:[{value:"all",label:r("All triggers")},{value:"manual",label:r("Manual")},{value:"poll",label:r("Polling")}]}),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:M},r("Refresh"))),l().createElement(a.Table,{size:"small",rowKey:"id",loading:g,dataSource:p,columns:q,locale:{emptyText:l().createElement(a.Empty,{description:r("No reviews yet")})},pagination:{pageSize:20},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){T(e),B(!1),F(e.reviewMarkdown||"")}}}}),l().createElement(a.Drawer,{title:A?l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),l().createElement("span",null,r("Code Review")),l().createElement(a.Tag,{color:eU[A.status]},r(A.status)),l().createElement(a.Tag,{color:eH[A.postStatus]},r(A.postStatus))):r("Code Review"),open:!!A,onClose:function(){T(null),B(!1)},width:840,extra:A&&l().createElement(a.Space,null,l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:function(){return D(A.id)}},r("Refresh")),"mr"===A.targetType&&l().createElement(a.Button,{size:"small",icon:l().createElement(o.ExportOutlined,null),onClick:function(){var e,t=L[A.repositoryId],r=null==t||null==(e=t.repoUrl)?void 0:e.replace(/\.git$/,"");r&&A.mrIid&&window.open("".concat(r,"/-/merge_requests/").concat(A.mrIid),"_blank")}},r("Open MR")))},A&&l().createElement(e_,{review:A,editing:z,editedMarkdown:P,onEdit:function(){return B(!0)},onCancelEdit:function(){B(!1),F(A.reviewMarkdown||"")},onChangeMarkdown:F,onApprove:function(e){return eM(function(){var t,n,l,o,i;return eL(this,function(c){switch(c.label){case 0:if(!A)return[2];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,s.request({url:"gitManager:reviewApprovePost",method:"post",data:{reviewId:A.id,editedMarkdown:e}})];case 2:return c.sent(),a.message.success(r("Review posted to merge request")),B(!1),D(A.id),M(),[3,4];case 3:return t=c.sent(),a.message.error((null==t||null==(i=t.response)||null==(o=i.data)||null==(l=o.errors)||null==(n=l[0])?void 0:n.message)||(null==t?void 0:t.message)||r("Failed to post review")),[3,4];case 4:return[2]}})})()},onReject:function(){return eM(function(){var e;return eL(this,function(t){switch(t.label){case 0:if(!A)return[2];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,s.request({url:"gitManager:reviewReject",method:"post",data:{reviewId:A.id}})];case 2:return t.sent(),a.message.success(r("Review rejected")),D(A.id),M(),[3,4];case 3:return e=t.sent(),a.message.error((null==e?void 0:e.message)||r("Failed to reject")),[3,4];case 4:return[2]}})})()}})))},e_=function(e){var t=e.review,r=e.editing,n=e.editedMarkdown,i=e.onEdit,c=e.onCancelEdit,s=e.onChangeMarkdown,d=e.onApprove,m=e.onReject,p=(0,u.k)(),f=eN().token,y="completed"===t.status&&"mr"===t.targetType&&("pending_approval"===t.postStatus||"approved"===t.postStatus||"post_failed"===t.postStatus);return l().createElement("div",null,"running"===t.status&&l().createElement(a.Alert,{type:"info",showIcon:!0,message:p("Review in progress…"),description:p("The AI employee is analyzing the code. This page will refresh automatically."),style:{marginBottom:16}}),"failed"===t.status&&l().createElement(a.Alert,{type:"error",showIcon:!0,message:p("Review failed"),description:l().createElement("pre",{style:{whiteSpace:"pre-wrap",margin:0}},t.error),style:{marginBottom:16}}),"completed"===t.status&&"post_failed"===t.postStatus&&t.error&&l().createElement(a.Alert,{type:"error",showIcon:!0,message:p("Post Failed"),description:l().createElement("pre",{style:{whiteSpace:"pre-wrap",margin:0}},t.error),style:{marginBottom:16}}),y&&l().createElement(a.Space,{style:{marginBottom:16},wrap:!0},r?l().createElement(l().Fragment,null,l().createElement(a.Button,{type:"primary",icon:l().createElement(o.CheckOutlined,null),onClick:function(){return d(n)}},p("Save & Post")),l().createElement(a.Button,{onClick:c},p("Cancel"))):l().createElement(l().Fragment,null,l().createElement(a.Button,{type:"primary",icon:l().createElement(o.CheckOutlined,null),onClick:function(){return d(t.reviewMarkdown)}},p("Approve & Post")),l().createElement(a.Button,{icon:l().createElement(o.EditOutlined,null),onClick:i},p("Edit & Post")),l().createElement(a.Popconfirm,{title:p("Reject this review?"),onConfirm:m},l().createElement(a.Button,{danger:!0,icon:l().createElement(o.CloseOutlined,null)},p("Reject"))))),l().createElement(a.Tabs,{defaultActiveKey:"content",items:[{key:"content",label:p("Review Content"),children:r?l().createElement(a.Input.TextArea,{value:n,onChange:function(e){return s(e.target.value)},autoSize:{minRows:16,maxRows:40},style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:13}}):t.reviewMarkdown?l().createElement("div",{style:{background:f.colorBgLayout,padding:16,borderRadius:8,maxHeight:"70vh",overflowY:"auto"}},l().createElement(ej,{content:t.reviewMarkdown})):l().createElement(a.Empty,{description:p("No content yet")})},{key:"metadata",label:p("Metadata"),children:l().createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 16px",fontSize:13}},l().createElement(eG,{label:p("Status"),value:t.status}),l().createElement(eG,{label:p("Post Status"),value:t.postStatus}),l().createElement(eG,{label:p("Trigger Type"),value:t.targetType}),l().createElement(eG,{label:p("Triggered By"),value:t.triggeredBy}),l().createElement(eG,{label:p("Reviewed SHA"),value:t.headSha||"—"}),l().createElement(eG,{label:p("Latest SHA"),value:t.latestSha||"—"}),l().createElement(eG,{label:p("Started At"),value:t.startedAt&&new Date(t.startedAt).toLocaleString()}),l().createElement(eG,{label:p("Finished At"),value:t.finishedAt&&new Date(t.finishedAt).toLocaleString()}),l().createElement(eG,{label:p("Duration"),value:t.durationMs?"".concat((t.durationMs/1e3).toFixed(1),"s"):"—"}),l().createElement(eG,{label:p("Posted Note ID"),value:t.postedNoteId||"—"}),l().createElement(eG,{label:p("Approved By"),value:t.approvedBy||"—"}),l().createElement(eG,{label:p("Approved At"),value:t.approvedAt&&new Date(t.approvedAt).toLocaleString()}),l().createElement(eG,{label:p("Session ID"),value:t.sessionId||"—"}),l().createElement(eG,{label:p("Flow ID"),value:t.flowId||"—"}))}]}))},eG=function(e){var t=e.label,r=e.value;return l().createElement("div",null,l().createElement(eq,{type:"secondary",style:{fontSize:12,display:"block"}},t),l().createElement("div",{style:{wordBreak:"break-all"}},r||"—"))};function e$(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function eK(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function eV(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){eK(a,n,l,o,i,"next",e)}function i(e){eK(a,n,l,o,i,"throw",e)}o(void 0)})}}function eJ(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return e$(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e$(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eQ(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eX=a.Typography.Text,eY=a.theme.useToken,eZ=function(){var e=(0,u.k)();eY().token;var t=(0,c.useApp)().apiClient,r=(0,i.B)(),s=r.repos,d=r.refreshRepos,m=eJ((0,n.useState)(null),2),p=m[0],f=m[1],y=eJ((0,n.useState)(!1),2),g=y[0],h=y[1],v=eJ((0,n.useState)(null),2),b=v[0],E=v[1],w=eJ((0,n.useState)([]),2),S=w[0],k=w[1],x=(0,n.useCallback)(function(){return eV(function(){var e,r,n,l;return eQ(this,function(a){switch(a.label){case 0:h(!0),a.label=1;case 1:return a.trys.push([1,,4,5]),[4,Promise.all([t.request({url:"gitManager:pollerStatus"}),t.request({url:"gitReviewFlows:list",params:{pageSize:100,filter:{enabled:!0,triggerMode:{$in:["onMergeRequestCreated","both"]}}}})])];case 2:return n=(r=eJ.apply(void 0,[a.sent(),2]))[0].data,l=r[1],f((null==n?void 0:n.data)||null),k((null==l||null==(e=l.data)?void 0:e.data)||[]),[4,d()];case 3:return a.sent(),[3,5];case 4:return h(!1),[7];case 5:return[2]}})})()},[t,d]);(0,n.useEffect)(function(){x()},[x]);var C=s.filter(function(e){return e.autoReview});return l().createElement("div",null,l().createElement(a.Card,{size:"small",style:{marginBottom:16},title:l().createElement(a.Space,null,l().createElement(o.ClockCircleOutlined,null),e("Polling Status")),extra:l().createElement(a.Space,null,l().createElement(a.Button,{size:"small",type:"primary",icon:l().createElement(o.ThunderboltOutlined,null),onClick:function(){return eV(function(){var r,n,l,o,i,c,u,s,d;return eQ(this,function(m){switch(m.label){case 0:E("all"),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,t.request({url:"gitManager:pollNow",method:"post"})];case 2:return o=(null==(l=m.sent().data)?void 0:l.data)||{},a.message.success(e("Polled {{scanned}} MRs, triggered {{triggered}} reviews",{scanned:null!=(r=o.scanned)?r:0,triggered:null!=(n=o.triggered)?n:0})),x(),[3,5];case 3:return i=m.sent(),a.message.error((null==i||null==(d=i.response)||null==(s=d.data)||null==(u=s.errors)||null==(c=u[0])?void 0:c.message)||(null==i?void 0:i.message)||e("Failed")),[3,5];case 4:return E(null),[7];case 5:return[2]}})})()},loading:"all"===b,disabled:0===C.length},e("Poll Now (All)")),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:x,loading:g},e("Refresh")))},l().createElement(a.Space,{direction:"vertical",size:4,style:{width:"100%"}},l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Background poller"),":"),l().createElement(a.Tag,{color:(null==p?void 0:p.running)?"green":"default"},(null==p?void 0:p.running)?e("Running"):e("Stopped")),(null==p?void 0:p.polling)&&l().createElement(a.Tag,{color:"blue"},e("Polling now…"))),l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Interval"),":"),l().createElement(eX,null,(null==p?void 0:p.intervalSec)?"".concat(p.intervalSec,"s"):"—")),l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Last tick"),":"),l().createElement(eX,null,(null==p?void 0:p.lastTickAt)?new Date(p.lastTickAt).toLocaleString():e("Never"))),(null==p?void 0:p.lastError)&&l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Last error"),":"),l().createElement(eX,{type:"danger",style:{fontSize:12}},p.lastError)))),l().createElement(a.Card,{size:"small",title:l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),e("Auto-Review Repositories")),extra:l().createElement(eX,{type:"secondary",style:{fontSize:12}},e("Toggle Auto Review on the Repositories tab to enable polling"))},0===C.length?l().createElement(a.Empty,{description:e("No repositories have Auto Review enabled")}):l().createElement(a.Table,{size:"small",rowKey:"id",dataSource:C,pagination:!1,columns:[{title:e("Repository Name"),dataIndex:"name"},{title:e("Primary Auto Flow"),dataIndex:"autoReviewFlowId",width:220,render:function(t,r){var n=S.find(function(e){return Number(e.id)===Number(t)}),o=S.find(function(e){return e.repositoryId===r.id||null==e.repositoryId});return n?l().createElement(a.Tag,{color:"blue"},n.name):o?l().createElement(a.Tag,{color:"default"},e("Fallback"),": ",o.name):l().createElement(a.Tag,{color:"red"},e("No matching flow available"))}},{title:e("Last Polled At"),dataIndex:"lastPolledAt",width:200,render:function(t){return t?new Date(t).toLocaleString():e("Never")}},{title:"",key:"actions",width:120,render:function(r,n){return l().createElement(a.Tooltip,{title:e("Poll this repository now")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.ThunderboltOutlined,null),onClick:function(){var r;return r=n.id,eV(function(){var n,l,o,i,c,u,s,d,m;return eQ(this,function(p){switch(p.label){case 0:E(r),p.label=1;case 1:return p.trys.push([1,3,4,5]),[4,t.request({url:"gitManager:pollNow",method:"post",data:{repositoryId:r}})];case 2:return i=(null==(o=p.sent().data)?void 0:o.data)||{},a.message.success(e("Polled {{scanned}} MRs, triggered {{triggered}} reviews",{scanned:null!=(n=i.scanned)?n:0,triggered:null!=(l=i.triggered)?l:0})),x(),[3,5];case 3:return c=p.sent(),a.message.error((null==c||null==(m=c.response)||null==(d=m.data)||null==(s=d.errors)||null==(u=s[0])?void 0:u.message)||(null==c?void 0:c.message)||e("Failed")),[3,5];case 4:return E(null),[7];case 5:return[2]}})})()},loading:b===n.id},e("Poll Now")))}}]})))},e0=a.Typography.Text,e1=a.theme.useToken,e2=function(){var e=(0,u.k)(),t=e1().token,r=(0,i.B)(),c=r.repos,s=r.selectedRepo,d=r.setSelectedRepo,m=r.refreshRepos;return(0,n.useEffect)(function(){m()},[]),l().createElement("div",{style:{height:"100%"}},l().createElement("div",{style:{padding:"12px 0",marginBottom:16,display:"flex",alignItems:"center",gap:12,borderBottom:"1px solid ".concat(t.colorBorderSecondary)}},l().createElement(o.DatabaseOutlined,{style:{fontSize:16}}),l().createElement(e0,{strong:!0},"Repository:"),l().createElement(a.Select,{style:{minWidth:250},placeholder:e("Select a repository"),value:null==s?void 0:s.id,onChange:function(e){d(c.find(function(t){return t.id===e})||null)},options:c.map(function(t){return{label:l().createElement(a.Space,null,t.name,l().createElement(a.Tag,{color:"connected"===t.status?"green":"default",style:{fontSize:11}},"connected"===t.status?e("Connected"):e("Disconnected"))),value:t.id}}),allowClear:!0,onClear:function(){return d(null)}}),s&&l().createElement(e0,{type:"secondary",style:{fontSize:12}},s.repoUrl)),l().createElement(a.Tabs,{type:"card",defaultActiveKey:"explorer",destroyInactiveTabPane:!0,items:[{key:"explorer",label:l().createElement("span",null,l().createElement(o.FolderOutlined,null)," ",e("File Explorer")),children:l().createElement(w,null)},{key:"history",label:l().createElement("span",null,l().createElement(o.HistoryOutlined,null)," ",e("History")),children:l().createElement(L,null)},{key:"merge-requests",label:l().createElement("span",null,l().createElement(o.MergeOutlined,null)," ",e("Merge Requests")),children:l().createElement(J,null)},{key:"operations",label:l().createElement("span",null,l().createElement(o.ToolOutlined,null)," ",e("Operations")),children:l().createElement(ep,null)},{key:"review-flows",label:l().createElement("span",null,l().createElement(o.RobotOutlined,null)," ",e("Review Flows")),children:l().createElement(eR,null)},{key:"review-history",label:l().createElement("span",null,l().createElement(o.AuditOutlined,null)," ",e("Review History")),children:l().createElement(eW,null)},{key:"polling",label:l().createElement("span",null,l().createElement(o.ClockCircleOutlined,null)," ",e("Polling")),children:l().createElement(eZ,null)}]}))},e3=function(){return l().createElement(i.N,null,l().createElement(e2,null))}},602:function(e,t,r){r.d(t,{B:function(){return m},N:function(){return p}});var n=r(155),l=r.n(n),a=r(866);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function i(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function c(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){i(a,n,l,o,c,"next",e)}function c(e){i(a,n,l,o,c,"throw",e)}o(void 0)})}}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var d=(0,n.createContext)(null);function m(){return(0,n.useContext)(d)}var p=function(e){var t=e.children,r=(0,a.useApp)().apiClient,o=u((0,n.useState)([]),2),i=o[0],m=o[1],p=u((0,n.useState)(null),2),f=p[0],y=p[1],g=u((0,n.useState)(!1),2),h=g[0],v=g[1],b=u((0,n.useState)([]),2),E=b[0],w=b[1],S=u((0,n.useState)(""),2),k=S[0],x=S[1],C=(0,n.useRef)(f);C.current=f;var I=(0,n.useCallback)(function(){return c(function(){var e,t,n,l;return s(this,function(a){switch(a.label){case 0:if(!(e=C.current)||"connected"!==e.status)return w([]),x(""),[2];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,r.request({url:"gitManager:branches",params:{repositoryId:e.id}})];case 2:return(l=(null==(n=a.sent().data)||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data))&&(w(l.all||[]),x(l.current||"")),[3,4];case 3:return a.sent(),w([]),x(""),[3,4];case 4:return[2]}})})()},[r]),O=(0,n.useCallback)(function(){return c(function(){var e,t,n,l;return s(this,function(a){switch(a.label){case 0:v(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,r.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return m(t=(null==(e=a.sent().data)?void 0:e.data)||[]),(n=C.current)&&(l=t.find(function(e){return e.id===n.id}))&&y(l),[3,4];case 3:return v(!1),[7];case 4:return[2]}})})()},[r]);return l().createElement(d.Provider,{value:{repos:i,selectedRepo:f,loading:h,branches:E,currentBranch:k,setSelectedRepo:y,refreshRepos:O,refreshBranches:I}},t)}},578:function(e,t,r){r.d(t,{k:function(){return l}});var n=r(866);function l(){var e=(0,n.useApp)();return function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-git-manager","client"]},r))}}}}]);
|
|
10
|
+
"use strict";(self.webpackChunkplugin_git_manager=self.webpackChunkplugin_git_manager||[]).push([["878"],{205:function(e,t,r){r.d(t,{GitManagerSettings:function(){return e3}});var n=r(155),l=r.n(n),a=r(59),o=r(375),i=r(602),c=r(866),u=r(578);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function m(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){d(a,n,l,o,i,"next",e)}function i(e){d(a,n,l,o,i,"throw",e)}o(void 0)})}}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var h=a.Typography.Text,v=a.Input.Search,b=a.theme.useToken,E={ts:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),tsx:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),js:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),jsx:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),json:l().createElement(o.CodeOutlined,{style:{color:"#5b5b5b"}}),md:l().createElement(o.FileMarkdownOutlined,{style:{color:"#083fa1"}}),html:l().createElement(o.Html5Outlined,{style:{color:"#e34c26"}}),css:l().createElement(o.FileTextOutlined,{style:{color:"#563d7c"}}),py:l().createElement(o.CodeOutlined,{style:{color:"#3572A5"}}),png:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),jpg:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),svg:l().createElement(o.FileImageOutlined,{style:{color:"#ffb13b"}})},w=function(){var e,t=(0,u.k)(),r=b().token,s=(0,c.useApp)().apiClient,d=(0,i.B)(),w=d.selectedRepo,S=d.branches,k=d.currentBranch,x=d.refreshBranches,C=y((0,n.useState)([]),2),I=C[0],O=C[1],A=y((0,n.useState)(!1),2),T=A[0],R=A[1],z=y((0,n.useState)(null),2),B=z[0],j=z[1],P=y((0,n.useState)(null),2),F=P[0],M=P[1],D=y((0,n.useState)("HEAD"),2),L=D[0],q=D[1],N=y((0,n.useState)(""),2),U=N[0],H=N[1],W=y((0,n.useState)(""),2),_=W[0],G=W[1],$=y((0,n.useState)(!1),2),K=$[0],V=$[1],J=(0,n.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:L;return m(function(){var r,n;return g(this,function(a){switch(a.label){case 0:if(!w)return[2,[]];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,s.request({url:"gitManager:fileTree",params:{repositoryId:w.id,ref:t,treePath:e}})];case 2:return[2,(Array.isArray(n=(null==(r=a.sent().data)?void 0:r.data)||r||[])?n:Array.isArray(null==n?void 0:n.data)?n.data:[]).map(function(e){return{key:e.path,title:l().createElement(h,{style:{fontSize:13}},e.name,"blob"===e.type&&e.size>0&&l().createElement(h,{type:"secondary",style:{fontSize:11,marginLeft:8}},e.size>1024?"".concat((e.size/1024).toFixed(1),"KB"):"".concat(e.size,"B"))),icon:function(e,t){if("tree"!==t){var r;return E[(null==(r=e.split(".").pop())?void 0:r.toLowerCase())||""]||l().createElement(o.FileOutlined,null)}}(e.name,e.type),isLeaf:"blob"===e.type,filePath:e.path,fileType:e.type}})];case 3:return console.warn("Failed to load file tree:",a.sent()),[2,[]];case 4:return[2]}})})()},[s,w,L]),Q=(0,n.useCallback)(function(){return m(function(){return g(this,function(e){switch(e.label){case 0:R(!0),e.label=1;case 1:return e.trys.push([1,,3,4]),[4,J("",L)];case 2:return O(e.sent()),[3,4];case 3:return R(!1),[7];case 4:return[2]}})})()},[J,L]);(0,n.useEffect)(function(){(null==w?void 0:w.status)==="connected"?(x(),j(null),M(null)):O([])},[w]),(0,n.useEffect)(function(){k&&"HEAD"===L&&q(k)},[k]),(0,n.useEffect)(function(){(null==w?void 0:w.status)==="connected"&&Q()},[L,w]);var X=(0,n.useRef)();if((0,n.useEffect)(function(){return X.current=setTimeout(function(){return G(U)},300),function(){return clearTimeout(X.current)}},[U]),!w)return l().createElement(a.Empty,{description:t("No repository selected")});if("connected"!==w.status)return l().createElement(a.Empty,{description:t("Repository not cloned yet")});var Y=_?function e(t,r){return t.map(function(t){if(t.children){var n=e(t.children,r);if(n.length>0)return f(p({},t),{children:n})}return(t.filePath||"").toLowerCase().includes(r)?t:null}).filter(Boolean)}(I,_.toLowerCase()):I;return l().createElement("div",{style:{display:"flex",height:"calc(100vh - 280px)",gap:0}},l().createElement("div",{style:{width:320,minWidth:280,borderRight:"1px solid ".concat(r.colorBorderSecondary),display:"flex",flexDirection:"column",background:r.colorBgContainer}},l().createElement("div",{style:{padding:"8px 12px",borderBottom:"1px solid ".concat(r.colorBorderSecondary)}},l().createElement(a.Space,{direction:"vertical",style:{width:"100%"},size:6},l().createElement(a.Select,{size:"small",style:{width:"100%"},value:L,onChange:function(e){q(e),j(null),M(null)},options:S.map(function(e){return{label:e,value:e}}),placeholder:"Branch"}),l().createElement(v,{size:"small",placeholder:"Filter files...",allowClear:!0,onChange:function(e){return H(e.target.value)}}))),l().createElement("div",{style:{flex:1,overflow:"auto",padding:"4px 0"}},T?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement(a.Tree,{showIcon:!0,treeData:Y,loadData:function(e){return m(function(){var t;return g(this,function(r){switch(r.label){case 0:if(e.children)return[2];return[4,J(e.filePath,L)];case 1:return t=r.sent(),O(function(r){return function e(t,r,n){return t.map(function(t){return t.key===r?f(p({},t),{children:n}):t.children?f(p({},t),{children:e(t.children,r,n)}):t})}(r,e.key,t)}),[2]}})})()},onSelect:function(e,t){return m(function(){var e,r,n,l;return g(this,function(a){switch(a.label){case 0:if(!(e=t.node).isLeaf)return[2];V(!0),M(e.filePath),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,s.request({url:"gitManager:fileContent",params:{repositoryId:w.id,ref:L,filePath:e.filePath}})];case 2:return j((null==(l=(null==(n=a.sent().data)||null==(r=n.data)?void 0:r.data)||(null==n?void 0:n.data))?void 0:l.content)||""),[3,5];case 3:return a.sent(),j("// Failed to load file content"),[3,5];case 4:return V(!1),[7];case 5:return[2]}})})()},selectedKeys:F?[F]:[],style:{fontSize:13},blockNode:!0}))),l().createElement("div",{style:{flex:1,display:"flex",flexDirection:"column",background:r.colorBgLayout}},F?l().createElement(l().Fragment,null,l().createElement("div",{style:{padding:"6px 16px",borderBottom:"1px solid ".concat(r.colorBorderSecondary),background:r.colorBgContainer,display:"flex",alignItems:"center",gap:8}},l().createElement(a.Breadcrumb,{items:F.split("/").map(function(e,t,r){return{title:t===r.length-1?l().createElement(h,{strong:!0},e):e}})}),l().createElement(h,{type:"secondary",style:{marginLeft:"auto",fontSize:12}},{ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",md:"markdown",html:"html",css:"css",scss:"scss",py:"python",sh:"bash",yml:"yaml",yaml:"yaml",sql:"sql",xml:"xml",java:"java",go:"go",rs:"rust",rb:"ruby"}[(null==(e=F.split(".").pop())?void 0:e.toLowerCase())||""]||"text")),l().createElement("div",{style:{flex:1,overflow:"auto"}},K?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement("pre",{style:{margin:0,padding:16,fontSize:13,lineHeight:1.6,fontFamily:"'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace",whiteSpace:"pre-wrap",wordBreak:"break-all",background:r.colorBgContainer,minHeight:"100%"}},(B||"").split("\n").map(function(e,t){return l().createElement("div",{key:t,style:{display:"flex"}},l().createElement("span",{style:{display:"inline-block",width:50,textAlign:"right",paddingRight:16,color:r.colorTextQuaternary,userSelect:"none",flexShrink:0}},t+1),l().createElement("span",{style:{flex:1}},e||" "))})))):l().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}},l().createElement(h,{type:"secondary"},"Select a file to view its content"))))},S=r(75);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function x(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function C(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){x(a,n,l,o,i,"next",e)}function i(e){x(a,n,l,o,i,"throw",e)}o(void 0)})}}function I(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||O(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){if(e){if("string"==typeof e)return k(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return k(e,t)}}function A(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var T=function(e){var t,r,i=e.target,s=e.size,d=e.type,m=e.onTriggered,p=(0,u.k)(),f=(0,c.useApp)().apiClient,y=(null==(t=S.useAIConfigRepository)?void 0:t.call(S))||{},g=((null==(r=S.useChatBoxActions)?void 0:r.call(S))||{}).triggerTask,h=I((0,n.useState)(!1),2),v=h[0],b=h[1],E=I((0,n.useState)([]),2),w=E[0],x=E[1],T=I((0,n.useState)(!1),2),R=T[0],z=T[1],B=I((0,n.useState)(!1),2),j=B[0],P=B[1],F=I((0,n.useState)(null),2),M=F[0],D=F[1],L=I(a.Form.useForm(),1)[0],q=(0,n.useCallback)(function(){var e=!1,t={repositoryId:i.repositoryId,targetType:i.type};return"mr"===i.type&&(t.mrIid=i.mrIid),"commit"===i.type&&(t.commitSha=i.commitSha),"branch"===i.type&&(t.branch=i.branch),f.request({url:"gitCodeReviews:list",params:{pageSize:1,sort:["-id"],filter:t}}).then(function(t){if(!e){var r;D(((null==t||null==(r=t.data)?void 0:r.data)||[])[0]||null)}}).catch(function(){}),function(){e=!0}},[f,i]);(0,n.useEffect)(function(){return q()},[q]);var N=(0,n.useCallback)(function(){return C(function(){var e,t;return A(this,function(r){switch(r.label){case 0:return[4,f.request({url:"gitReviewFlows:list",params:{pageSize:100,filter:{enabled:!0,$or:[{repositoryId:i.repositoryId},{repositoryId:null}]}}})];case 1:return x(t=(null==(e=r.sent().data)?void 0:e.data)||[]),[2,t]}})})()},[f,i.repositoryId]),U=(0,n.useCallback)(function(e){var t,r=e.find(function(e){return e.repositoryId===i.repositoryId});return null!=(t=null!=r?r:e[0])?t:null},[i.repositoryId]);(0,n.useEffect)(function(){if(v){var e=!1;return N().then(function(t){if(!e){var r=U(t);(null==r?void 0:r.id)&&L.setFieldValue("flowId",r.id)}}).catch(function(){}),function(){e=!0}}},[v,N,U,L]);var H=function(){var e=i.title||_();return"mr"===i.type?{type:"git-merge-request",uid:"".concat(i.repositoryId,":").concat(i.mrIid),title:e,content:{repositoryId:i.repositoryId,mrIid:i.mrIid,title:e}}:"commit"===i.type?{type:"git-commit",uid:"".concat(i.repositoryId,":").concat(i.commitSha),title:e,content:{repositoryId:i.repositoryId,commitSha:i.commitSha,title:e}}:{type:"git-repository",uid:String(i.repositoryId),title:e,content:{repositoryId:i.repositoryId,branch:i.branch,title:e}}},W=function(){return C(function(){var e,t,r,n,l,o;return A(this,function(c){switch(c.label){case 0:if(!g||!(null==y?void 0:y.getAIEmployees))return a.message.warning(p("AI plugin is not available")),[2];P(!0),c.label=1;case 1:if(c.trys.push([1,9,10,11]),!w.length)return[3,2];return t=w,[3,4];case 2:return[4,N()];case 3:t=c.sent(),c.label=4;case 4:if(!(null==(r=U(t))?void 0:r.aiEmployeeUsername))return a.message.warning(p("No matching flow available")),[2];if(!(null==(e=y.aiEmployees)?void 0:e.length))return[3,5];return n=y.aiEmployees,[3,7];case 5:return[4,y.getAIEmployees()];case 6:n=c.sent(),c.label=7;case 7:if(!(l=n.find(function(e){return e.username===r.aiEmployeeUsername})))return a.message.warning(p("AI employee not found")),[2];return[4,g({aiEmployee:l,tasks:[{title:"".concat(r.name,": ").concat(_()),message:{user:"mr"===i.type?"Please review merge request !".concat(i.mrIid," (").concat(i.title||"untitled","). Use the attached Git merge request context and the available git tools when you need more detail."):"commit"===i.type?"Please review commit ".concat(i.commitSha," (").concat(i.title||"untitled","). Use the attached Git commit context and the available git tools when you need more detail."):"Please help me inspect branch ".concat(i.branch,". Use the attached Git repository context and the available git tools when you need more detail."),system:r.instructions||void 0,workContext:[H()]},model:r.llmService&&r.model?{llmService:r.llmService,model:r.model}:null,autoSend:!1}]})];case 8:return c.sent(),[3,11];case 9:return o=c.sent(),a.message.error((null==o?void 0:o.message)||p("Failed to open AI chat")),[3,11];case 10:return P(!1),[7];case 11:return[2]}})})()},_=function(){return"mr"===i.type?"MR !".concat(i.mrIid):"commit"===i.type?"Commit ".concat(String(i.commitSha).slice(0,7)):"Branch ".concat(i.branch)},G=M&&M.headSha&&M.latestSha&&M.headSha!==M.latestSha,$=!!M&&"pending"!==M.status,K=$?G?p("Re-review (new commits)"):p("Re-run review"):p("Code Review"),V=$?o.ReloadOutlined:o.RobotOutlined,J=(0,n.useMemo)(function(){var e;return[{key:"run",icon:l().createElement(o.ThunderboltOutlined,null),label:$?p("Re-run automated review"):p("Run automated review"),onClick:function(){return b(!0)}}].concat(function(e){if(Array.isArray(e))return k(e)}(e=M?[{key:"view",icon:l().createElement(o.RobotOutlined,null),label:p("Status: ".concat(M.status))+" - "+p("View in Review History tab"),onClick:function(){a.message.info(p('Please switch to the "Review History" tab to see the details.'))}}]:[])||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[{key:"chat",icon:l().createElement(o.MessageOutlined,null),label:p("Ask AI Employee"),onClick:W,disabled:j}])},[$,M,j,W]);return l().createElement(l().Fragment,null,l().createElement(a.Dropdown,{menu:{items:J},placement:"bottomRight",trigger:["click"]},l().createElement(a.Button,{size:void 0===s?"small":s,type:G?"primary":void 0===d?"default":d,icon:l().createElement(V,null),danger:!!G,loading:j},K)),l().createElement(a.Modal,{title:l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),l().createElement("span",null,$?p("Re-run code review"):p("Run code review")),l().createElement("span",{style:{color:"#999",fontSize:12,fontWeight:400}},_())),open:v,onCancel:function(){return b(!1)},onOk:function(){return C(function(){var e,t,r,n,l,o,c,u,s,d,y;return A(this,function(g){switch(g.label){case 0:return g.trys.push([0,3,4,5]),[4,L.validateFields()];case 1:return r=g.sent(),z(!0),n={repositoryId:i.repositoryId,targetType:i.type,flowId:r.flowId,extraInstructions:r.extraInstructions||void 0},"mr"===i.type&&(n.mrIid=i.mrIid),"commit"===i.type&&(n.commitSha=i.commitSha),"branch"===i.type&&(n.branch=i.branch),[4,f.request({url:"gitManager:triggerReview",method:"post",data:n})];case 2:return o=null==(l=g.sent())||null==(t=l.data)||null==(e=t.data)?void 0:e.reviewId,a.message.success(p("Review started")),b(!1),L.resetFields(),q(),null==m||m(o),[3,5];case 3:if(null==(c=g.sent())?void 0:c.errorFields)return[2];return a.message.error((null==c||null==(y=c.response)||null==(d=y.data)||null==(s=d.errors)||null==(u=s[0])?void 0:u.message)||(null==c?void 0:c.message)||p("Failed to trigger review")),[3,5];case 4:return z(!1),[7];case 5:return[2]}})})()},okText:$?p("Re-run"):p("Start Review"),confirmLoading:R,destroyOnClose:!0},$&&l().createElement(a.Alert,{type:G?"warning":"info",showIcon:!0,style:{marginBottom:12},message:G?p("New commits detected since last review. Re-running will overwrite the existing review."):p("A review already exists for this target. Re-running will overwrite it."),description:l().createElement(a.Space,{size:8,wrap:!0,style:{fontSize:12}},(null==M?void 0:M.headSha)&&l().createElement("span",null,p("Reviewed at"),":\xa0",l().createElement(a.Tag,{style:{fontFamily:"monospace"}},String(M.headSha).slice(0,7))),G&&(null==M?void 0:M.latestSha)&&l().createElement("span",null,p("Latest"),":\xa0",l().createElement(a.Tag,{color:"orange",style:{fontFamily:"monospace"}},String(M.latestSha).slice(0,7))))}),l().createElement(a.Form,{form:L,layout:"vertical"},l().createElement(a.Form.Item,{name:"flowId",label:p("Review Flow"),rules:[{required:!0,message:p("Please select a review flow")}],extra:0===w.length?l().createElement(a.Tooltip,{title:p("Create a review flow in the Review Flows tab first")},l().createElement("span",{style:{color:"#faad14"}},p("No enabled flow found for this repository"))):null},l().createElement(a.Select,{options:w.map(function(e){return{value:e.id,label:"".concat(e.name).concat(e.aiEmployeeUsername?" — @".concat(e.aiEmployeeUsername):"").concat(null==e.repositoryId?" (".concat(p("global"),")"):"")}}),placeholder:p("Select a review flow")})),l().createElement(a.Form.Item,{name:"extraInstructions",label:p("Extra instructions (optional)")},l().createElement(a.Input.TextArea,{rows:4,placeholder:p("e.g. Focus on security issues in authentication")})))))};function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function z(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function B(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){z(a,n,l,o,i,"next",e)}function i(e){z(a,n,l,o,i,"throw",e)}o(void 0)})}}function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return R(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return R(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var F=a.Typography.Text,M=a.theme.useToken,D={A:{color:"green",icon:l().createElement(o.PlusCircleOutlined,null),label:"Added"},M:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},D:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},R:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"}},L=function(){var e,t,r=(0,u.k)(),s=M().token,d=(0,c.useApp)().apiClient,m=(0,i.B)(),p=m.selectedRepo,f=m.branches,y=m.currentBranch,g=j((0,n.useState)([]),2),h=g[0],v=g[1],b=j((0,n.useState)(!1),2),E=b[0],w=b[1],S=j((0,n.useState)(null),2),k=S[0],x=S[1],C=j((0,n.useState)(null),2),I=C[0],O=C[1],A=j((0,n.useState)(!1),2),R=A[0],z=A[1],L=j((0,n.useState)(null),2),U=L[0],H=L[1],W=j((0,n.useState)(null),2),_=W[0],G=W[1],$=j((0,n.useState)(""),2),K=$[0],V=$[1],J=(0,n.useCallback)(function(){return B(function(){var e,t,r;return P(this,function(n){switch(n.label){case 0:if(!p)return[2];w(!0),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:log",params:{repositoryId:p.id,maxCount:100}})];case 2:return v((null==(r=(null==(t=n.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data))?void 0:r.all)||[]),[3,5];case 3:return console.warn("Failed to load commit history:",n.sent()),v([]),[3,5];case 4:return w(!1),[7];case 5:return[2]}})})()},[d,p]);(0,n.useEffect)(function(){(null==p?void 0:p.status)==="connected"?J():v([])},[p]);var Q=h.filter(function(e){var t=K.trim().toLowerCase();return!t||String(e.message||e.subject||e.body||"").toLowerCase().includes(t)}),X=function(e){return B(function(){var t,r;return P(this,function(n){switch(n.label){case 0:x(e),z(!0),H(null),G(null),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:commitDetail",params:{repositoryId:p.id,commitHash:e.hash}})];case 2:return O((null==(r=n.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data)),[3,5];case 3:return n.sent(),O(null),[3,5];case 4:return z(!1),[7];case 5:return[2]}})})()};if(!p)return l().createElement(a.Empty,{description:r("No repository selected")});if("connected"!==p.status)return l().createElement(a.Empty,{description:r("Repository not cloned yet")});var Y=[{title:"",key:"graph",width:40,render:function(e,t,r){return l().createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",height:"100%"}},l().createElement("div",{style:{width:10,height:10,borderRadius:"50%",background:0===r?s.colorPrimary:s.colorBorder,border:"2px solid ".concat(0===r?s.colorPrimary:s.colorBorder),zIndex:1}}))}},{title:r("Message"),dataIndex:"message",key:"message",render:function(e,t){return l().createElement("div",null,l().createElement(F,{strong:!0,style:{fontSize:13}},e),l().createElement("div",{style:{marginTop:2}},l().createElement(F,{type:"secondary",style:{fontSize:12}},l().createElement(o.UserOutlined,{style:{marginRight:4}}),t.author_name,l().createElement("span",{style:{margin:"0 8px"}},"\xb7"),l().createElement(o.ClockCircleOutlined,{style:{marginRight:4}}),N(t.date))))}},{title:"Hash",dataIndex:"hash",key:"hash",width:100,render:function(e){return l().createElement(F,{code:!0,copyable:!0,style:{fontSize:12}},null==e?void 0:e.substring(0,7))}},{title:"",key:"action",width:80,render:function(e,t){return l().createElement(a.Button,{size:"small",icon:l().createElement(o.DiffOutlined,null),onClick:function(){return X(t)}},"Detail")}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",alignItems:"center",gap:12}},l().createElement(o.BranchesOutlined,null),l().createElement(a.Select,{size:"small",style:{width:200},value:y,options:f.map(function(e){return{label:e,value:e}}),disabled:!0}),l().createElement(a.Input.Search,{allowClear:!0,size:"small",style:{width:280},placeholder:r("Search commit title or message"),value:K,onChange:function(e){return V(e.target.value)}}),l().createElement(F,{type:"secondary"},Q.length," commits")),E?l().createElement(a.Spin,null):l().createElement(a.Table,{dataSource:Q,columns:Y,rowKey:"hash",size:"small",pagination:{pageSize:30,showSizeChanger:!0},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){return X(e)}}}}),l().createElement(a.Drawer,{title:k?l().createElement("div",null,l().createElement(F,{strong:!0},k.message),l().createElement("div",null,l().createElement(F,{type:"secondary",style:{fontSize:12}},null==(e=k.hash)?void 0:e.substring(0,7)," \xb7 ",k.author_name," \xb7 ",N(k.date)))):"Commit Detail",open:!!k,onClose:function(){x(null),O(null),H(null),G(null)},width:800,extra:k&&p?l().createElement(T,{target:{type:"commit",repositoryId:p.id,commitSha:k.hash,title:k.message},size:"small"}):null},R?l().createElement(a.Spin,null):I?l().createElement("div",null,l().createElement(F,{strong:!0},"Changed Files (",(null==(t=I.files)?void 0:t.length)||0,")"),l().createElement(a.List,{size:"small",style:{marginTop:8},dataSource:I.files||[],renderItem:function(e){var t=D[e.status]||D.M,r=_===e.file;return l().createElement(a.List.Item,{style:{cursor:"pointer",background:r?s.colorPrimaryBg:void 0,padding:"6px 12px",borderRadius:4},onClick:function(){var t,r;return t=k.hash,r=e.file,B(function(){var e,n;return P(this,function(l){switch(l.label){case 0:G(r),l.label=1;case 1:return l.trys.push([1,3,,4]),[4,d.request({url:"gitManager:diff",params:{repositoryId:p.id,commitHash:t,file:r}})];case 2:return H((null==(n=l.sent().data)||null==(e=n.data)?void 0:e.data)||(null==n?void 0:n.data)||""),[3,4];case 3:return l.sent(),H("// Failed to load diff"),[3,4];case 4:return[2]}})})()}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:70,textAlign:"center"}},t.icon," ",t.label),l().createElement(F,{style:{fontSize:13}},e.file)))}}),null!==U&&l().createElement("div",{style:{marginTop:16}},l().createElement(F,{strong:!0,style:{display:"block",marginBottom:8}},l().createElement(o.FileTextOutlined,null)," ",_),l().createElement(q,{content:U}))):null))},q=(0,n.memo)(function(e){var t=e.content,r=M().token,n=t.split("\n");return l().createElement("div",{style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:12,lineHeight:1.5,border:"1px solid ".concat(r.colorBorderSecondary),borderRadius:6,overflow:"auto",maxHeight:500}},n.map(function(e,t){var n="transparent",a=r.colorText;return e.startsWith("+")&&!e.startsWith("+++")?(n="rgba(46, 160, 67, 0.12)",a="#2ea043"):e.startsWith("-")&&!e.startsWith("---")?(n="rgba(248, 81, 73, 0.12)",a="#f85149"):e.startsWith("@@")?(n="rgba(56, 139, 253, 0.08)",a="#388bfd"):(e.startsWith("diff")||e.startsWith("index"))&&(a=r.colorTextSecondary),l().createElement("div",{key:t,style:{padding:"0 12px",background:n,color:a,whiteSpace:"pre",minHeight:20}},l().createElement("span",{style:{display:"inline-block",width:40,color:r.colorTextQuaternary,userSelect:"none",textAlign:"right",marginRight:12}},t+1),e)}))});function N(e){if(!e)return"";var t=new Date(e),r=new Date().getTime()-t.getTime(),n=r/36e5;return n<1?"".concat(Math.round(r/6e4),"m ago"):n<24?"".concat(Math.round(n),"h ago"):n<168?"".concat(Math.round(n/24),"d ago"):t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function H(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function W(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){H(a,n,l,o,i,"next",e)}function i(e){H(a,n,l,o,i,"throw",e)}o(void 0)})}}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return U(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return U(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function G(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var $=a.Typography.Text;a.Typography.Paragraph,a.Typography.Title;var K=a.theme.useToken,V={opened:{color:"blue",icon:l().createElement(o.MergeOutlined,null),label:"Open"},merged:{color:"purple",icon:l().createElement(o.CheckCircleOutlined,null),label:"Merged"},closed:{color:"red",icon:l().createElement(o.CloseCircleOutlined,null),label:"Closed"}},J=function(){var e,t,r=(0,u.k)(),s=K().token,d=(0,c.useApp)().apiClient,m=(0,i.B)().selectedRepo,p=_((0,n.useState)([]),2),f=p[0],y=p[1],g=_((0,n.useState)(!1),2),h=g[0],v=g[1],b=_((0,n.useState)("opened"),2),E=b[0],w=b[1],S=_((0,n.useState)(""),2),k=S[0],x=S[1],C=_((0,n.useState)({page:1,perPage:20,total:0,totalPages:0}),2),I=C[0],O=C[1],A=_((0,n.useState)(null),2),R=A[0],z=A[1],B=_((0,n.useState)(null),2),j=B[0],P=B[1],F=_((0,n.useState)(!1),2),M=F[0],D=F[1],L=_((0,n.useState)([]),2),q=L[0],N=L[1],U=_((0,n.useState)(!1),2);U[0],U[1];var H=(0,n.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return W(function(){var t,r;return G(this,function(n){switch(n.label){case 0:if(!m)return[2];v(!0),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:mergeRequests",params:{repositoryId:m.id,state:E,search:k||void 0,page:e,perPage:20}})];case 2:return y((null==(r=(null==(t=n.sent().data)?void 0:t.data)||t)?void 0:r.data)||[]),(null==r?void 0:r.pagination)&&O(r.pagination),[3,5];case 3:return n.sent(),y([]),[3,5];case 4:return v(!1),[7];case 5:return[2]}})})()},[d,m,E,k]);(0,n.useEffect)(function(){(null==m?void 0:m.status)==="connected"?H(1):y([])},[m,E]);var J=function(e){return W(function(){var t,r,n,l,a,o,i,c,u,s;return G(this,function(p){switch(p.label){case 0:z(e),D(!0),N([]),p.label=1;case 1:return p.trys.push([1,3,4,5]),[4,Promise.all([d.request({url:"gitManager:mergeRequestDetail",params:{repositoryId:m.id,mrIid:e.iid}}),d.request({url:"gitManager:mergeRequestNotes",params:{repositoryId:m.id,mrIid:e.iid}})])];case 2:return c=(i=_.apply(void 0,[p.sent(),2]))[0],u=i[1],P((null==c||null==(r=c.data)||null==(t=r.data)?void 0:t.data)||(null==c||null==(n=c.data)?void 0:n.data)),N(Array.isArray(s=(null==u||null==(a=u.data)||null==(l=a.data)?void 0:l.data)||(null==u||null==(o=u.data)?void 0:o.data))?s:[]),[3,5];case 3:return p.sent(),P(null),[3,5];case 4:return D(!1),[7];case 5:return[2]}})})()};if(!m)return l().createElement(a.Empty,{description:r("No repository selected")});if("connected"!==m.status)return l().createElement(a.Empty,{description:r("Repository not cloned yet")});var X=[{title:"",key:"state_icon",width:40,render:function(e,t){var r=V[t.state]||V.opened;return l().createElement(a.Tooltip,{title:r.label},l().createElement("span",{style:{color:s["color".concat("blue"===r.color?"Primary":"purple"===r.color?"PurpleText":"Error")]||r.color,fontSize:16}},r.icon))}},{title:r("Title"),key:"title",render:function(e,t){var n,i;return l().createElement("div",null,l().createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},t.draft&&l().createElement(a.Tag,{color:"default",style:{fontSize:11,lineHeight:"16px"}},"DRAFT"),l().createElement($,{strong:!0,style:{fontSize:13}},t.title),t.hasConflicts&&l().createElement(a.Tooltip,{title:r("Has conflicts")},l().createElement(o.ExclamationCircleOutlined,{style:{color:s.colorWarning}}))),l().createElement("div",{style:{marginTop:2}},l().createElement($,{type:"secondary",style:{fontSize:12}},"!",t.iid,l().createElement("span",{style:{margin:"0 6px"}},"\xb7"),l().createElement(o.UserOutlined,{style:{marginRight:3}}),(null==(n=t.author)?void 0:n.name)||(null==(i=t.author)?void 0:i.username)||"Unknown",l().createElement("span",{style:{margin:"0 6px"}},"\xb7"),l().createElement(o.ClockCircleOutlined,{style:{marginRight:3}}),et(t.updatedAt))))}},{title:"",key:"branches",width:250,render:function(e,t){return l().createElement("div",{style:{fontSize:12}},l().createElement(a.Tag,{color:"blue",style:{fontSize:11}},l().createElement(o.BranchesOutlined,null)," ",t.sourceBranch),l().createElement("span",{style:{margin:"0 4px",color:s.colorTextSecondary}},"→"),l().createElement(a.Tag,{color:"green",style:{fontSize:11}},l().createElement(o.BranchesOutlined,null)," ",t.targetBranch))}},{title:"",key:"labels",width:180,render:function(e,t){var r;return l().createElement(a.Space,{size:2,wrap:!0},(t.labels||[]).slice(0,3).map(function(e){return l().createElement(a.Tag,{key:e,style:{fontSize:11}},e)}),(null==(r=t.labels)?void 0:r.length)>3&&l().createElement($,{type:"secondary",style:{fontSize:11}},"+",t.labels.length-3))}},{title:"",key:"meta",width:120,render:function(e,t){var r;return l().createElement(a.Space,{size:12},t.userNotesCount>0&&l().createElement(a.Tooltip,{title:"".concat(t.userNotesCount," comments")},l().createElement(a.Badge,{count:t.userNotesCount,size:"small",color:s.colorTextSecondary},l().createElement(o.CommentOutlined,{style:{fontSize:14,color:s.colorTextSecondary}}))),(null==(r=t.assignees)?void 0:r.length)>0&&l().createElement(a.Avatar.Group,{size:"small",max:{count:2}},t.assignees.map(function(e){var t;return l().createElement(a.Tooltip,{key:e.username,title:e.name},l().createElement(a.Avatar,{size:"small",src:e.avatarUrl},null==(t=e.name)?void 0:t[0]))})))}},{title:"",key:"actions",width:160,render:function(e,t){return l().createElement(a.Space,{onClick:function(e){return e.stopPropagation()}},l().createElement(T,{target:{type:"mr",repositoryId:m.id,mrIid:t.iid,title:t.title},size:"small"}),l().createElement(a.Tooltip,{title:r("View Details")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.FileTextOutlined,null),onClick:function(e){e.stopPropagation(),J(t)}})),l().createElement(a.Tooltip,{title:r("Open in GitLab")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.ExportOutlined,null),onClick:function(e){e.stopPropagation(),window.open(t.webUrl,"_blank")}})))}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"}},l().createElement(a.Select,{size:"small",style:{width:140},value:E,onChange:function(e){return w(e)},options:[{label:"\uD83D\uDFE2 ".concat(r("Open")),value:"opened"},{label:"\uD83D\uDFE3 ".concat(r("Merged")),value:"merged"},{label:"\uD83D\uDD34 ".concat(r("Closed")),value:"closed"},{label:"\uD83D\uDCCB ".concat(r("All")),value:"all"}]}),l().createElement(a.Input.Search,{size:"small",style:{width:260},placeholder:r("Search merge requests..."),value:k,onChange:function(e){return x(e.target.value)},onSearch:function(){H(1)},allowClear:!0}),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:function(){return H(1)}},r("Refresh")),l().createElement($,{type:"secondary",style:{fontSize:12}},null!=I.total?"".concat(I.total," ").concat(r("total")):"")),h?l().createElement(a.Spin,null):l().createElement(a.Table,{dataSource:f,columns:X,rowKey:"iid",size:"small",pagination:{current:I.page,pageSize:I.perPage,total:I.total||void 0,onChange:function(e){return H(e)},showSizeChanger:!1},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){return J(e)}}}}),l().createElement(a.Drawer,{title:R?l().createElement("div",null,l().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},(e=V[R.state]||V.opened,l().createElement(a.Tag,{color:e.color},e.icon," ",e.label)),R.draft&&l().createElement(a.Tag,null,"DRAFT"),l().createElement($,{strong:!0,style:{fontSize:15}},"!",R.iid)),l().createElement($,{strong:!0,style:{fontSize:16,display:"block",marginTop:4}},R.title)):r("Merge Request"),open:!!R,onClose:function(){z(null),P(null),N([])},width:900,extra:R&&l().createElement(a.Space,null,l().createElement(T,{target:{type:"mr",repositoryId:m.id,mrIid:R.iid,title:R.title},size:"small"}),l().createElement(a.Button,{type:"link",icon:l().createElement(o.ExportOutlined,null),onClick:function(){return window.open(R.webUrl,"_blank")}},r("Open in GitLab")))},M?l().createElement(a.Spin,null):j?l().createElement(a.Tabs,{defaultActiveKey:"overview",items:[{key:"overview",label:r("Overview"),children:l().createElement(Q,{mr:j})},{key:"changes",label:"".concat(r("Changes")," (").concat((null==(t=j.changes)?void 0:t.length)||0,")"),children:l().createElement(Y,{changes:j.changes||[]})},{key:"comments",label:l().createElement(a.Badge,{count:q.length,size:"small",offset:[6,0]},r("Comments")),children:l().createElement(Z,{notes:q})}]}):null))},Q=function(e){var t,r,n,i,c=e.mr,s=(0,u.k)(),d=K().token;return l().createElement("div",null,l().createElement("div",{style:{padding:"12px 16px",background:d.colorBgLayout,borderRadius:8,marginBottom:16,display:"flex",alignItems:"center",gap:8}},l().createElement(a.Tag,{color:"blue"},l().createElement(o.BranchesOutlined,null)," ",c.sourceBranch),l().createElement("span",{style:{color:d.colorTextSecondary,fontSize:16}},"→"),l().createElement(a.Tag,{color:"green"},l().createElement(o.BranchesOutlined,null)," ",c.targetBranch),c.hasConflicts&&l().createElement(a.Tag,{color:"warning",icon:l().createElement(o.ExclamationCircleOutlined,null)},s("Has conflicts"))),c.description&&l().createElement("div",{style:{marginBottom:16}},l().createElement($,{strong:!0},s("Description")),l().createElement("div",{style:{marginTop:8,padding:"12px 16px",background:d.colorBgLayout,borderRadius:8,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:13,lineHeight:1.6}},c.description)),l().createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px 24px",fontSize:13}},l().createElement(X,{label:s("Author"),value:c.author&&l().createElement(a.Space,{size:6},l().createElement(a.Avatar,{size:"small",src:c.author.avatarUrl},null==(t=c.author.name)?void 0:t[0]),l().createElement($,null,c.author.name),l().createElement($,{type:"secondary"},"@",c.author.username))}),l().createElement(X,{label:s("Assignees"),value:(null==(r=c.assignees)?void 0:r.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.assignees.map(function(e){var t;return l().createElement(a.Tooltip,{key:e.username,title:e.name},l().createElement(a.Tag,{icon:l().createElement(a.Avatar,{size:14,src:e.avatarUrl},null==(t=e.name)?void 0:t[0])},e.name))})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Reviewers"),value:(null==(n=c.reviewers)?void 0:n.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.reviewers.map(function(e){return l().createElement(a.Tag,{key:e.username},e.name)})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Labels"),value:(null==(i=c.labels)?void 0:i.length)>0?l().createElement(a.Space,{size:4,wrap:!0},c.labels.map(function(e){return l().createElement(a.Tag,{key:e},e)})):l().createElement($,{type:"secondary"},"—")}),l().createElement(X,{label:s("Created"),value:l().createElement($,null,er(c.createdAt))}),l().createElement(X,{label:s("Updated"),value:l().createElement($,null,er(c.updatedAt))}),c.mergedBy&&l().createElement(X,{label:s("Merged by"),value:l().createElement($,null,c.mergedBy.name," — ",er(c.mergedAt))}),c.closedBy&&l().createElement(X,{label:s("Closed by"),value:l().createElement($,null,c.closedBy.name," — ",er(c.closedAt))})))},X=function(e){var t=e.label,r=e.value;return l().createElement("div",null,l().createElement($,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:2}},t),l().createElement("div",null,r))},Y=function(e){var t=e.changes,r=K().token,o=(0,u.k)(),i=_((0,n.useState)(null),2),c=i[0],s=i[1];return t.length?l().createElement("div",null,t.map(function(e,t){var n=e.newPath||e.oldPath,o=c===n,i=null;return i=e.newFile?l().createElement(a.Tag,{color:"green"},"NEW"):e.deletedFile?l().createElement(a.Tag,{color:"red"},"DEL"):e.renamedFile?l().createElement(a.Tag,{color:"orange"},"RENAMED"):l().createElement(a.Tag,{color:"blue"},"MOD"),l().createElement("div",{key:t,style:{marginBottom:8}},l().createElement("div",{style:{padding:"6px 12px",background:o?r.colorPrimaryBg:r.colorBgLayout,borderRadius:6,cursor:"pointer",display:"flex",alignItems:"center",gap:8},onClick:function(){return s(o?null:n)}},i,l().createElement($,{style:{fontSize:13,fontFamily:"monospace"}},n),e.renamedFile&&e.oldPath!==e.newPath&&l().createElement($,{type:"secondary",style:{fontSize:11}},"(← ",e.oldPath,")")),o&&e.diff&&l().createElement(ee,{content:e.diff}))})):l().createElement(a.Empty,{description:o("No changes")})},Z=function(e){var t=e.notes,r=K().token,n=(0,u.k)();return t.length?l().createElement("div",null,t.map(function(e){var t,o,i,c,u;return l().createElement("div",{key:e.id,style:{padding:"12px 16px",marginBottom:12,background:r.colorBgLayout,borderRadius:8,borderLeft:"3px solid ".concat(e.resolved?r.colorSuccess:r.colorBorderSecondary)}},l().createElement("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8}},l().createElement(a.Avatar,{size:"small",src:null==(t=e.author)?void 0:t.avatarUrl},null==(i=e.author)||null==(o=i.name)?void 0:o[0]),l().createElement($,{strong:!0,style:{fontSize:13}},null==(c=e.author)?void 0:c.name),l().createElement($,{type:"secondary",style:{fontSize:12}},"@",null==(u=e.author)?void 0:u.username),l().createElement($,{type:"secondary",style:{fontSize:11,marginLeft:"auto"}},et(e.createdAt)),e.resolvable&&l().createElement(a.Tag,{color:e.resolved?"success":"default",style:{fontSize:11}},e.resolved?n("Resolved"):n("Unresolved"))),l().createElement("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:13,lineHeight:1.6}},e.body))})):l().createElement(a.Empty,{description:n("No comments")})},ee=(0,n.memo)(function(e){var t=e.content,r=K().token,n=t.split("\n");return l().createElement("div",{style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:12,lineHeight:1.5,border:"1px solid ".concat(r.colorBorderSecondary),borderRadius:6,overflow:"auto",maxHeight:400,margin:"4px 0"}},n.map(function(e,t){var n="transparent",a=r.colorText;return e.startsWith("+")&&!e.startsWith("+++")?(n="rgba(46, 160, 67, 0.12)",a="#2ea043"):e.startsWith("-")&&!e.startsWith("---")?(n="rgba(248, 81, 73, 0.12)",a="#f85149"):e.startsWith("@@")?(n="rgba(56, 139, 253, 0.08)",a="#388bfd"):(e.startsWith("diff")||e.startsWith("index"))&&(a=r.colorTextSecondary),l().createElement("div",{key:t,style:{padding:"0 12px",background:n,color:a,whiteSpace:"pre",minHeight:20}},l().createElement("span",{style:{display:"inline-block",width:40,color:r.colorTextQuaternary,userSelect:"none",textAlign:"right",marginRight:12}},t+1),e)}))});function et(e){if(!e)return"";var t=new Date(e),r=new Date().getTime()-t.getTime(),n=r/36e5;return n<1?"".concat(Math.round(r/6e4),"m ago"):n<24?"".concat(Math.round(n),"h ago"):n<168?"".concat(Math.round(n/24),"d ago"):t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}function er(e){return e?new Date(e).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function en(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function el(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function ea(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){el(a,n,l,o,i,"next",e)}function i(e){el(a,n,l,o,i,"throw",e)}o(void 0)})}}function eo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||ec(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ei(e){return function(e){if(Array.isArray(e))return en(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ec(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ec(e,t){if(e){if("string"==typeof e)return en(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return en(e,t)}}function eu(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var es=a.Typography.Text,ed=a.theme.useToken,em={not_added:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"New"},modified:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},deleted:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},renamed:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"},conflicted:{color:"red",icon:l().createElement(o.WarningOutlined,null),label:"Conflict"},created:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"Created"}},ep=function(){var e,t,r,s,d,m,p=(0,u.k)(),f=ed().token,y=(0,c.useApp)().apiClient,g=(0,i.B)(),h=g.selectedRepo,v=g.refreshRepos,b=eo((0,n.useState)(null),2),E=b[0],w=b[1],S=eo((0,n.useState)(null),2),k=S[0],x=S[1],C=eo((0,n.useState)(null),2),I=C[0],O=C[1],A=(0,n.useCallback)(function(){return ea(function(){var e,t;return eu(this,function(r){switch(r.label){case 0:if(!h||"connected"!==h.status)return x(null),[2];w("status"),r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,y.request({url:"gitManager:status",method:"post",params:{repositoryId:h.id}})];case 2:return x((null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data)),[3,5];case 3:return console.warn("Failed to load git status:",r.sent()),x(null),[3,5];case 4:return w(null),[7];case 5:return[2]}})})()},[y,h]);(0,n.useEffect)(function(){A()},[A]);var T=(0,n.useCallback)(function(e){return ea(function(){var t,r,n,l,o,i,c,u,s;return eu(this,function(d){switch(d.label){case 0:if(!h)return[2];w(e),O(null),d.label=1;case 1:return d.trys.push([1,6,7,8]),[4,y.request({url:"gitManager:".concat(e),method:"post",params:{repositoryId:h.id}})];case 2:if(r=d.sent().data,O({action:e,success:!0,message:p("{{action}} completed successfully",{action:e})}),a.message.success(p("{{action}} completed",{action:e})),n=(null==r||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data),"status"===e&&x(n),"fetch"!==e&&"pull"!==e)return[3,4];return[4,A()];case 3:d.sent(),d.label=4;case 4:return[4,v()];case 5:return d.sent(),[3,8];case 6:return s=(null==(l=d.sent())||null==(u=l.response)||null==(c=u.data)||null==(i=c.errors)||null==(o=i[0])?void 0:o.message)||p("{{action}} failed",{action:e}),O({action:e,success:!1,message:s}),a.message.error(s),[3,8];case 7:return w(null),[7];case 8:return[2]}})})()},[y,h,v,A]);if(!h)return l().createElement(a.Empty,{description:p("No repository selected")});if("connected"!==h.status)return l().createElement(a.Empty,{description:p("Repository not cloned yet")});var R=k?ei((null==(e=k.not_added)?void 0:e.map(function(e){return{file:e,status:"not_added"}}))||[]).concat(ei((null==(t=k.modified)?void 0:t.map(function(e){return{file:e,status:"modified"}}))||[]),ei((null==(r=k.deleted)?void 0:r.map(function(e){return{file:e,status:"deleted"}}))||[]),ei((null==(s=k.renamed)?void 0:s.map(function(e){return{file:"string"==typeof e?e:e.to,status:"renamed"}}))||[]),ei((null==(d=k.conflicted)?void 0:d.map(function(e){return{file:e,status:"conflicted"}}))||[]),ei((null==(m=k.created)?void 0:m.map(function(e){return{file:e,status:"created"}}))||[])):[];return l().createElement("div",null,l().createElement(a.Space,{size:"middle",wrap:!0,style:{marginBottom:24}},l().createElement(a.Button,{size:"large",icon:l().createElement(o.SyncOutlined,null),loading:"fetch"===E,onClick:function(){return T("fetch")}},p("Fetch")),l().createElement(a.Button,{size:"large",type:"primary",icon:l().createElement(o.CloudDownloadOutlined,null),loading:"pull"===E,onClick:function(){return T("pull")}},p("Pull")),l().createElement(a.Button,{size:"large",icon:l().createElement(o.BranchesOutlined,null),loading:"status"===E,onClick:A},p("Status"))),I&&l().createElement(a.Card,{size:"small",style:{marginBottom:16,borderColor:I.success?f.colorSuccessBorder:f.colorErrorBorder}},l().createElement(a.Space,null,I.success?l().createElement(o.CheckCircleOutlined,{style:{color:f.colorSuccess}}):l().createElement(o.WarningOutlined,{style:{color:f.colorError}}),l().createElement(es,{strong:!0},I.action),l().createElement(es,null,I.message))),k&&l().createElement(a.Card,{title:p("Working Directory Status"),size:"small"},l().createElement(a.Descriptions,{column:3,size:"small",style:{marginBottom:16}},l().createElement(a.Descriptions.Item,{label:"Branch"},l().createElement(a.Tag,{icon:l().createElement(o.BranchesOutlined,null),color:"blue"},k.current)),l().createElement(a.Descriptions.Item,{label:"Tracking"},l().createElement(es,null,k.tracking||"N/A")),l().createElement(a.Descriptions.Item,{label:"Changes"},l().createElement(a.Space,null,k.ahead>0&&l().createElement(a.Badge,{count:"".concat(k.ahead," ahead"),style:{backgroundColor:f.colorPrimary}}),k.behind>0&&l().createElement(a.Badge,{count:"".concat(k.behind," behind"),style:{backgroundColor:f.colorWarning}}),0===k.ahead&&0===k.behind&&l().createElement(a.Tag,{color:"green",icon:l().createElement(o.CheckCircleOutlined,null)},"Up to date")))),R.length>0?l().createElement(l().Fragment,null,l().createElement(es,{strong:!0,style:{display:"block",marginBottom:8}},R.length," changed file(s)"),l().createElement(a.List,{size:"small",dataSource:R,renderItem:function(e){var t=em[e.status]||{color:"default",icon:l().createElement(o.QuestionCircleOutlined,null),label:e.status};return l().createElement(a.List.Item,{style:{padding:"4px 0"}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:80,textAlign:"center"}},t.icon," ",t.label),l().createElement(es,{code:!0,style:{fontSize:13}},e.file)))}})):l().createElement(es,{type:"secondary"},"Working directory clean")))};function ef(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ey(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ef(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ef(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eg=function(e){var t=e.value,r=e.onChange,o=e.allowClear,i=e.size,u=e.style,s=e.placeholder,d=(0,c.useApp)().apiClient,m=ey((0,n.useState)([]),2),p=m[0],f=m[1],y=ey((0,n.useState)(!1),2),g=y[0],h=y[1];return(0,n.useEffect)(function(){var e=!1;return h(!0),d.request({url:"aiEmployees:listByUser"}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];f(Array.isArray(n)?n:[])}}).catch(function(){}).finally(function(){e||h(!1)}),function(){e=!0}},[d]),l().createElement(a.Select,{value:t,onChange:r,allowClear:void 0===o||o,loading:g,size:i,style:u,placeholder:s||"Select AI employee",options:p.map(function(e){return{value:e.username,label:"".concat(e.nickname||e.username," (@").concat(e.username,")")}}),showSearch:!0,optionFilterProp:"label"})};function eh(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ev(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eh(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eh(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eb=function(e){var t=e.value,r=e.onChange,o=e.allowClear,i=e.size,u=e.style,s=e.placeholder,d=(0,c.useApp)().apiClient,m=ev((0,n.useState)([]),2),p=m[0],f=m[1],y=ev((0,n.useState)(!1),2),g=y[0],h=y[1];return(0,n.useEffect)(function(){var e=!1;return h(!0),d.request({url:"ai:listAllEnabledModels"}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];f(Array.isArray(n)?n:[])}}).catch(function(){}).finally(function(){e||h(!1)}),function(){e=!0}},[d]),l().createElement(a.Select,{value:t,onChange:r,allowClear:void 0===o||o,loading:g,size:i,style:u,placeholder:s||"Select LLM Service",options:p.map(function(e){return{value:e.llmService,label:e.llmServiceTitle||e.llmService}}),showSearch:!0,optionFilterProp:"label"})};function eE(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ew(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eE(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eE(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eS=function(e){var t=e.llmService,r=e.value,o=e.onChange,i=e.allowClear,u=e.size,s=e.style,d=e.placeholder,m=(0,c.useApp)().apiClient,p=ew((0,n.useState)([]),2),f=p[0],y=p[1],g=ew((0,n.useState)(!1),2),h=g[0],v=g[1];return(0,n.useEffect)(function(){var e=!1;return t?(v(!0),m.request({url:"ai:listModels",params:{llmService:t}}).then(function(t){if(!e){var r,n=(null==t||null==(r=t.data)?void 0:r.data)||[];y(Array.isArray(n)?n:[])}}).catch(function(){e||y([])}).finally(function(){e||v(!1)}),function(){e=!0}):void y([])},[m,t]),l().createElement(a.Select,{value:r,onChange:o,allowClear:void 0===i||i,loading:h,size:u,style:s,placeholder:d||"Select LLM Model",options:f.map(function(e){return{value:e.id,label:e.id}}),showSearch:!0,optionFilterProp:"label",disabled:!t})};function ek(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ex(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function eC(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){ex(a,n,l,o,i,"next",e)}function i(e){ex(a,n,l,o,i,"throw",e)}o(void 0)})}}function eI(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ek(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ek(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eO(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eA={manual:"Manual",onMergeRequestCreated:"On MR Created",both:"Both"},eT={auto:"Auto",manual:"Manual",disabled:"Disabled"},eR=function(){var e=(0,u.k)(),t=(0,c.useApp)().apiClient,r=(0,i.B)().repos,s=eI((0,n.useState)([]),2),d=s[0],m=s[1],p=eI((0,n.useState)(!1),2),f=p[0],y=p[1],g=eI((0,n.useState)(null),2),h=g[0],v=g[1],b=eI((0,n.useState)(!1),2),E=b[0],w=b[1],S=eI(a.Form.useForm(),1)[0],k=(0,n.useCallback)(function(){return eC(function(){var e;return eO(this,function(r){switch(r.label){case 0:y(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,t.request({url:"gitReviewFlows:list",params:{pageSize:100}})];case 2:return m((null==(e=r.sent().data)?void 0:e.data)||[]),[3,4];case 3:return y(!1),[7];case 4:return[2]}})})()},[t]);(0,n.useEffect)(function(){k()},[k]);var x=function(e){v(e),S.setFieldsValue(e),w(!0)},C=[{title:e("Name"),dataIndex:"name",render:function(t,r){return l().createElement(a.Space,null,l().createElement("span",{style:{fontWeight:500}},t),!r.enabled&&l().createElement(a.Tag,{color:"default"},e("Disabled")))}},{title:e("Repository"),dataIndex:"repositoryId",render:function(t){if(null==t)return l().createElement(a.Tag,{color:"purple"},e("Global"));var n=r.find(function(e){return e.id===t});return n?l().createElement(a.Space,{size:4},l().createElement(o.BranchesOutlined,null),n.name):"#".concat(t)}},{title:e("AI Employee"),dataIndex:"aiEmployeeUsername",render:function(e){return e?l().createElement(a.Tag,{color:"blue"},"@",e):l().createElement("span",{style:{color:"#999"}},"—")}},{title:e("Trigger"),dataIndex:"triggerMode",render:function(t){return l().createElement(a.Tag,null,e(eA[t]||t))}},{title:e("Post"),dataIndex:"postMode",render:function(t){return l().createElement(a.Tag,{color:"auto"===t?"green":"manual"===t?"orange":"default"},e(eT[t]||t))}},{title:"",key:"actions",width:100,render:function(r,n){return l().createElement(a.Space,null,l().createElement(a.Tooltip,{title:e("Edit")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.EditOutlined,null),onClick:function(){return x(n)}})),l().createElement(a.Popconfirm,{title:e("Delete this flow?"),onConfirm:function(){var r;return r=n.id,eC(function(){var n;return eO(this,function(l){switch(l.label){case 0:return l.trys.push([0,2,,3]),[4,t.request({url:"gitReviewFlows:destroy",method:"post",params:{filterByTk:r}})];case 1:return l.sent(),a.message.success(e("Flow deleted")),k(),[3,3];case 2:return n=l.sent(),a.message.error((null==n?void 0:n.message)||e("Failed to delete")),[3,3];case 3:return[2]}})})()}},l().createElement(a.Button,{size:"small",danger:!0,icon:l().createElement(o.DeleteOutlined,null)})))}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",justifyContent:"space-between"}},l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),onClick:function(){v(null),S.resetFields(),S.setFieldsValue({enabled:!0,triggerMode:"manual",postMode:"manual",instructions:"Please review the code changes with a focus on:\n1. Best Practices & Style:\n - C#/VB.NET: Follow standard naming conventions (PascalCase for methods/properties, camelCase for fields). Ensure proper use of async/await (avoid .Result/.Wait()). Use LINQ efficiently.\n - JS/TS: Use strict equality (===), prefer const/let. Ensure TypeScript types are explicit and avoid 'any'.\n2. Performance: Watch out for N+1 queries, unnecessary loops, and memory leaks.\n3. Security: Identify potential SQL injections, XSS vulnerabilities, and improper data validation.\n4. Maintainability: Check for readability, SOLID principles, and DRY. Ensure meaningful naming.\n5. Error Handling: Verify that exceptions are properly caught, handled, and logged."}),w(!0)}},e("Add Review Flow")),l().createElement(a.Button,{onClick:k,loading:f},e("Refresh"))),l().createElement(a.Table,{size:"small",rowKey:"id",loading:f,dataSource:d,columns:C,locale:{emptyText:l().createElement(a.Empty,{description:e("No review flows yet")})},pagination:{pageSize:20}}),l().createElement(a.Modal,{title:(null==h?void 0:h.id)?e("Edit Review Flow"):e("Add Review Flow"),open:E,onCancel:function(){w(!1),v(null),S.resetFields()},onOk:function(){return eC(function(){var r,n,l,o,i,c;return eO(this,function(u){switch(u.label){case 0:return u.trys.push([0,6,,7]),[4,S.validateFields()];case 1:if((void 0===(r=u.sent()).repositoryId||""===r.repositoryId)&&(r.repositoryId=null),!(null==h?void 0:h.id))return[3,3];return[4,t.request({url:"gitReviewFlows:update",method:"post",params:{filterByTk:h.id},data:r})];case 2:return u.sent(),a.message.success(e("Flow updated")),[3,5];case 3:return[4,t.request({url:"gitReviewFlows:create",method:"post",data:r})];case 4:u.sent(),a.message.success(e("Flow created")),u.label=5;case 5:return w(!1),v(null),S.resetFields(),k(),[3,7];case 6:if(null==(n=u.sent())?void 0:n.errorFields)return[2];return a.message.error((null==n||null==(c=n.response)||null==(i=c.data)||null==(o=i.errors)||null==(l=o[0])?void 0:l.message)||(null==n?void 0:n.message)||e("Failed to save")),[3,7];case 7:return[2]}})})()},width:640,destroyOnClose:!0},l().createElement(a.Form,{form:S,layout:"vertical"},l().createElement(a.Form.Item,{name:"name",label:e("Name"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:e("e.g. Default review flow")})),l().createElement(a.Form.Item,{name:"repositoryId",label:e("Repository"),extra:e("Leave empty to apply to all repositories")},l().createElement(a.Select,{allowClear:!0,placeholder:e("All repositories (global)"),options:r.map(function(e){return{value:e.id,label:e.name}})})),l().createElement(a.Form.Item,{name:"aiEmployeeUsername",label:e("AI Employee"),rules:[{required:!0}]},l().createElement(eg,{placeholder:e("Select an AI employee")})),l().createElement(a.Space.Compact,{style:{width:"100%"}},l().createElement(a.Form.Item,{name:"llmService",label:e("LLM Service (optional)"),style:{flex:1,marginRight:8}},l().createElement(eb,{placeholder:e("Override flow LLM service")})),l().createElement(a.Form.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.llmService!==t.llmService}},function(t){var r=(0,t.getFieldValue)("llmService");return l().createElement(a.Form.Item,{name:"model",label:e("Model (optional)"),style:{flex:1}},r?l().createElement(eS,{llmService:r,placeholder:e("Override LLM model")}):l().createElement(a.Input,{placeholder:e("Select an LLM service first"),disabled:!0}))})),l().createElement(a.Form.Item,{name:"triggerMode",label:e("Trigger Mode"),rules:[{required:!0}],extra:e("Auto modes require enabling Auto Review on the repository")},l().createElement(a.Select,{options:[{value:"manual",label:e("Manual")},{value:"onMergeRequestCreated",label:e("On Merge Request Created")},{value:"both",label:e("Both")}]})),l().createElement(a.Form.Item,{name:"postMode",label:e("Post Mode"),rules:[{required:!0}]},l().createElement(a.Select,{options:[{value:"auto",label:e("Auto post to MR")},{value:"manual",label:e("Manual approval before posting")},{value:"disabled",label:e("Do not post")}]})),l().createElement(a.Form.Item,{name:"branchFilter",label:e("Branch Filter (regex, optional)")},l().createElement(a.Input,{placeholder:"^(feature|hotfix)/.*$"})),l().createElement(a.Form.Item,{name:"instructions",label:e("Additional Instructions (optional)")},l().createElement(a.Input.TextArea,{rows:8,placeholder:e("Extra guidance appended to every review prompt")})),l().createElement(a.Form.Item,{name:"enabled",label:e("Enabled"),valuePropName:"checked"},l().createElement(a.Switch,null)))))},ez=r(405),eB=a.theme.useToken,ej=function(e){var t=e.content,r=e.maxHeight,n=eB().token;return t?l().createElement("div",{style:{fontSize:13,lineHeight:1.65,color:n.colorText,maxHeight:r,overflow:r?"auto":void 0}},l().createElement(ez.oz,{components:{code:function(e){var t,r,a=e.inline,o=e.children,i=function(e,t){if(null==e)return{};var r,n,l,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(l=0,r=Reflect.ownKeys(Object(e));l<r.length;l++)n=r[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}if(a=function(e,t){if(null==e)return{};var r,n,l={},a=Object.getOwnPropertyNames(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r]);return l}(e,t),Object.getOwnPropertySymbols)for(l=0,r=Object.getOwnPropertySymbols(e);l<r.length;l++)n=r[l],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}(e,["inline","children"]),c=String(o).replace(/\n$/,"");return a?l().createElement("code",(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},i),r=r={style:{background:n.colorBgLayout,padding:"1px 6px",borderRadius:4,fontSize:12,fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace"}},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),c):l().createElement("pre",{style:{background:n.colorBgLayout,padding:"10px 14px",borderRadius:6,overflowX:"auto",fontSize:12,fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace"}},l().createElement("code",null,c))},blockquote:function(e){var t=e.children;return l().createElement("blockquote",{style:{borderLeft:"3px solid ".concat(n.colorBorder),paddingLeft:12,color:n.colorTextSecondary,margin:"8px 0"}},t)}}},t)):null};function eP(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function eF(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function eM(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){eF(a,n,l,o,i,"next",e)}function i(e){eF(a,n,l,o,i,"throw",e)}o(void 0)})}}function eD(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eP(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return eP(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eL(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eq=a.Typography.Text;a.Typography.Title,a.Typography.Paragraph;var eN=a.theme.useToken,eU={pending:"default",running:"blue",completed:"green",failed:"red"},eH={pending_approval:"orange",approved:"cyan",posted:"green",post_failed:"red",skipped:"default",rejected:"red"},eW=function(e){var t=e.initialFilter,r=(0,u.k)();eN().token;var s=(0,c.useApp)().apiClient,d=(0,i.B)().repos,m=eD((0,n.useState)([]),2),p=m[0],f=m[1],y=eD((0,n.useState)(!1),2),g=y[0],h=y[1],v=eD((0,n.useState)("all"),2),b=v[0],E=v[1],w=eD((0,n.useState)("pending_approval"===(void 0===t?"all":t)?"pending_approval":"all"),2),S=w[0],k=w[1],x=eD((0,n.useState)("all"),2),C=x[0],I=x[1],O=eD((0,n.useState)(null),2),A=O[0],T=O[1],R=eD((0,n.useState)(!1),2),z=R[0],B=R[1],j=eD((0,n.useState)(""),2),P=j[0],F=j[1],M=(0,n.useCallback)(function(){return eM(function(){var e,t;return eL(this,function(r){switch(r.label){case 0:h(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),e={},"all"!==b&&(e.status=b),"all"!==S&&(e.postStatus=S),"all"!==C&&(e.triggeredBy=C),[4,s.request({url:"gitCodeReviews:list",params:{pageSize:50,sort:["-id"],filter:Object.keys(e).length?e:void 0}})];case 2:return f((null==(t=r.sent().data)?void 0:t.data)||[]),[3,4];case 3:return h(!1),[7];case 4:return[2]}})})()},[s,b,S,C]);(0,n.useEffect)(function(){M()},[M]),(0,n.useEffect)(function(){if(p.some(function(e){return"running"===e.status||"pending"===e.status})){var e=setInterval(M,4e3);return function(){return clearInterval(e)}}},[p,M]);var D=(0,n.useCallback)(function(e){return eM(function(){var t,r;return eL(this,function(n){switch(n.label){case 0:return[4,s.request({url:"gitCodeReviews:get",params:{filterByTk:e}})];case 1:return(r=null==(t=n.sent().data)?void 0:t.data)&&(f(function(t){return t.map(function(t){return t.id===e?r:t})}),(null==A?void 0:A.id)===e&&T(r)),[2]}})})()},[s,A]),L=(0,n.useMemo)(function(){var e={};return d.forEach(function(t){return e[t.id]=t}),e},[d]),q=[{title:r("Target"),key:"target",render:function(e,t){var r=L[t.repositoryId],n=(null==r?void 0:r.name)||"#".concat(t.repositoryId);return"mr"===t.targetType?l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary"},"!",t.mrIid)):"commit"===t.targetType?l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary",style:{fontFamily:"monospace"}},String(t.commitSha||"").slice(0,7))):l().createElement(a.Space,{size:4},l().createElement(eq,{strong:!0},n),l().createElement(eq,{type:"secondary"},t.branch))}},{title:r("Type"),dataIndex:"targetType",width:80,render:function(e){return l().createElement(a.Tag,null,r(e.toUpperCase()))}},{title:r("Status"),dataIndex:"status",width:120,render:function(e){var t=eU[e]||"default",n="running"===e?l().createElement(o.ClockCircleOutlined,{spin:!0}):null;return l().createElement(a.Tag,{color:t,icon:n},r(e))}},{title:r("Post Status"),dataIndex:"postStatus",width:140,render:function(e){return l().createElement(a.Tag,{color:eH[e]||"default"},r(e))}},{title:r("Commit"),key:"sha",width:140,render:function(e,t){var n=t.headSha,o=t.latestSha;return n?l().createElement(a.Space,{size:4},l().createElement(a.Tag,{style:{fontFamily:"monospace",fontSize:11}},String(n).slice(0,7)),n&&o&&n!==o&&l().createElement(a.Tooltip,{title:"".concat(r("New commits"),": ").concat(String(o).slice(0,7))},l().createElement(a.Tag,{color:"orange",style:{fontSize:11}},r("new")))):l().createElement(eq,{type:"secondary"},"—")}},{title:r("Trigger"),dataIndex:"triggeredBy",width:90,render:function(e){return l().createElement(a.Tag,{color:"poll"===e?"geekblue":"default",style:{fontSize:11}},"poll"===e?r("Polling"):r("Manual"))}},{title:r("Duration"),dataIndex:"durationMs",width:90,render:function(e){return e?"".concat((e/1e3).toFixed(1),"s"):"—"}},{title:r("Created"),dataIndex:"createdAt",width:160,render:function(e){return e?new Date(e).toLocaleString():""}},{title:"",key:"actions",width:60,render:function(e,t){return l().createElement(a.Tooltip,{title:r("View")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.FileTextOutlined,null),onClick:function(){T(t),B(!1),F(t.reviewMarkdown||"")}}))}}];return l().createElement("div",null,l().createElement(a.Space,{style:{marginBottom:12},wrap:!0},l().createElement(a.Select,{size:"small",style:{width:140},value:b,onChange:E,options:[{value:"all",label:r("All statuses")},{value:"pending",label:r("pending")},{value:"running",label:r("running")},{value:"completed",label:r("completed")},{value:"failed",label:r("failed")}]}),l().createElement(a.Select,{size:"small",style:{width:180},value:S,onChange:k,options:[{value:"all",label:r("All post statuses")},{value:"pending_approval",label:r("pending_approval")},{value:"approved",label:r("approved")},{value:"posted",label:r("posted")},{value:"post_failed",label:r("post_failed")},{value:"skipped",label:r("skipped")},{value:"rejected",label:r("rejected")}]}),l().createElement(a.Select,{size:"small",style:{width:130},value:C,onChange:I,options:[{value:"all",label:r("All triggers")},{value:"manual",label:r("Manual")},{value:"poll",label:r("Polling")}]}),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:M},r("Refresh"))),l().createElement(a.Table,{size:"small",rowKey:"id",loading:g,dataSource:p,columns:q,locale:{emptyText:l().createElement(a.Empty,{description:r("No reviews yet")})},pagination:{pageSize:20},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){T(e),B(!1),F(e.reviewMarkdown||"")}}}}),l().createElement(a.Drawer,{title:A?l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),l().createElement("span",null,r("Code Review")),l().createElement(a.Tag,{color:eU[A.status]},r(A.status)),l().createElement(a.Tag,{color:eH[A.postStatus]},r(A.postStatus))):r("Code Review"),open:!!A,onClose:function(){T(null),B(!1)},width:840,extra:A&&l().createElement(a.Space,null,l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:function(){return D(A.id)}},r("Refresh")),"mr"===A.targetType&&l().createElement(a.Button,{size:"small",icon:l().createElement(o.ExportOutlined,null),onClick:function(){var e,t=L[A.repositoryId],r=null==t||null==(e=t.repoUrl)?void 0:e.replace(/\.git$/,"");r&&A.mrIid&&window.open("".concat(r,"/-/merge_requests/").concat(A.mrIid),"_blank")}},r("Open MR")))},A&&l().createElement(e_,{review:A,editing:z,editedMarkdown:P,onEdit:function(){return B(!0)},onCancelEdit:function(){B(!1),F(A.reviewMarkdown||"")},onChangeMarkdown:F,onApprove:function(e){return eM(function(){var t,n,l,o,i;return eL(this,function(c){switch(c.label){case 0:if(!A)return[2];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,s.request({url:"gitManager:reviewApprovePost",method:"post",data:{reviewId:A.id,editedMarkdown:e}})];case 2:return c.sent(),a.message.success(r("Review posted to merge request")),B(!1),D(A.id),M(),[3,4];case 3:return t=c.sent(),a.message.error((null==t||null==(i=t.response)||null==(o=i.data)||null==(l=o.errors)||null==(n=l[0])?void 0:n.message)||(null==t?void 0:t.message)||r("Failed to post review")),[3,4];case 4:return[2]}})})()},onReject:function(){return eM(function(){var e;return eL(this,function(t){switch(t.label){case 0:if(!A)return[2];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,s.request({url:"gitManager:reviewReject",method:"post",data:{reviewId:A.id}})];case 2:return t.sent(),a.message.success(r("Review rejected")),D(A.id),M(),[3,4];case 3:return e=t.sent(),a.message.error((null==e?void 0:e.message)||r("Failed to reject")),[3,4];case 4:return[2]}})})()}})))},e_=function(e){var t=e.review,r=e.editing,n=e.editedMarkdown,i=e.onEdit,c=e.onCancelEdit,s=e.onChangeMarkdown,d=e.onApprove,m=e.onReject,p=(0,u.k)(),f=eN().token,y="completed"===t.status&&"mr"===t.targetType&&("pending_approval"===t.postStatus||"approved"===t.postStatus||"post_failed"===t.postStatus);return l().createElement("div",null,"running"===t.status&&l().createElement(a.Alert,{type:"info",showIcon:!0,message:p("Review in progress…"),description:p("The AI employee is analyzing the code. This page will refresh automatically."),style:{marginBottom:16}}),"failed"===t.status&&l().createElement(a.Alert,{type:"error",showIcon:!0,message:p("Review failed"),description:l().createElement("pre",{style:{whiteSpace:"pre-wrap",margin:0}},t.error),style:{marginBottom:16}}),"completed"===t.status&&"post_failed"===t.postStatus&&t.error&&l().createElement(a.Alert,{type:"error",showIcon:!0,message:p("Post Failed"),description:l().createElement("pre",{style:{whiteSpace:"pre-wrap",margin:0}},t.error),style:{marginBottom:16}}),y&&l().createElement(a.Space,{style:{marginBottom:16},wrap:!0},r?l().createElement(l().Fragment,null,l().createElement(a.Button,{type:"primary",icon:l().createElement(o.CheckOutlined,null),onClick:function(){return d(n)}},p("Save & Post")),l().createElement(a.Button,{onClick:c},p("Cancel"))):l().createElement(l().Fragment,null,l().createElement(a.Button,{type:"primary",icon:l().createElement(o.CheckOutlined,null),onClick:function(){return d(t.reviewMarkdown)}},p("Approve & Post")),l().createElement(a.Button,{icon:l().createElement(o.EditOutlined,null),onClick:i},p("Edit & Post")),l().createElement(a.Popconfirm,{title:p("Reject this review?"),onConfirm:m},l().createElement(a.Button,{danger:!0,icon:l().createElement(o.CloseOutlined,null)},p("Reject"))))),l().createElement(a.Tabs,{defaultActiveKey:"content",items:[{key:"content",label:p("Review Content"),children:r?l().createElement(a.Input.TextArea,{value:n,onChange:function(e){return s(e.target.value)},autoSize:{minRows:16,maxRows:40},style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:13}}):t.reviewMarkdown?l().createElement("div",{style:{background:f.colorBgLayout,padding:16,borderRadius:8,maxHeight:"70vh",overflowY:"auto"}},l().createElement(ej,{content:t.reviewMarkdown})):l().createElement(a.Empty,{description:p("No content yet")})},{key:"metadata",label:p("Metadata"),children:l().createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 16px",fontSize:13}},l().createElement(eG,{label:p("Status"),value:t.status}),l().createElement(eG,{label:p("Post Status"),value:t.postStatus}),l().createElement(eG,{label:p("Trigger Type"),value:t.targetType}),l().createElement(eG,{label:p("Triggered By"),value:t.triggeredBy}),l().createElement(eG,{label:p("Reviewed SHA"),value:t.headSha||"—"}),l().createElement(eG,{label:p("Latest SHA"),value:t.latestSha||"—"}),l().createElement(eG,{label:p("Started At"),value:t.startedAt&&new Date(t.startedAt).toLocaleString()}),l().createElement(eG,{label:p("Finished At"),value:t.finishedAt&&new Date(t.finishedAt).toLocaleString()}),l().createElement(eG,{label:p("Duration"),value:t.durationMs?"".concat((t.durationMs/1e3).toFixed(1),"s"):"—"}),l().createElement(eG,{label:p("Posted Note ID"),value:t.postedNoteId||"—"}),l().createElement(eG,{label:p("Approved By"),value:t.approvedBy||"—"}),l().createElement(eG,{label:p("Approved At"),value:t.approvedAt&&new Date(t.approvedAt).toLocaleString()}),l().createElement(eG,{label:p("Session ID"),value:t.sessionId||"—"}),l().createElement(eG,{label:p("Flow ID"),value:t.flowId||"—"}))}]}))},eG=function(e){var t=e.label,r=e.value;return l().createElement("div",null,l().createElement(eq,{type:"secondary",style:{fontSize:12,display:"block"}},t),l().createElement("div",{style:{wordBreak:"break-all"}},r||"—"))};function e$(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function eK(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function eV(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){eK(a,n,l,o,i,"next",e)}function i(e){eK(a,n,l,o,i,"throw",e)}o(void 0)})}}function eJ(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return e$(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e$(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function eQ(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eX=a.Typography.Text,eY=a.theme.useToken,eZ=function(){var e=(0,u.k)();eY().token;var t=(0,c.useApp)().apiClient,r=(0,i.B)(),s=r.repos,d=r.refreshRepos,m=eJ((0,n.useState)(null),2),p=m[0],f=m[1],y=eJ((0,n.useState)(!1),2),g=y[0],h=y[1],v=eJ((0,n.useState)(null),2),b=v[0],E=v[1],w=eJ((0,n.useState)([]),2),S=w[0],k=w[1],x=(0,n.useCallback)(function(){return eV(function(){var e,r,n,l;return eQ(this,function(a){switch(a.label){case 0:h(!0),a.label=1;case 1:return a.trys.push([1,,4,5]),[4,Promise.all([t.request({url:"gitManager:pollerStatus"}),t.request({url:"gitReviewFlows:list",params:{pageSize:100,filter:{enabled:!0,triggerMode:{$in:["onMergeRequestCreated","both"]}}}})])];case 2:return n=(r=eJ.apply(void 0,[a.sent(),2]))[0].data,l=r[1],f((null==n?void 0:n.data)||null),k((null==l||null==(e=l.data)?void 0:e.data)||[]),[4,d()];case 3:return a.sent(),[3,5];case 4:return h(!1),[7];case 5:return[2]}})})()},[t,d]);(0,n.useEffect)(function(){x()},[x]);var C=s.filter(function(e){return e.autoReview});return l().createElement("div",null,l().createElement(a.Card,{size:"small",style:{marginBottom:16},title:l().createElement(a.Space,null,l().createElement(o.ClockCircleOutlined,null),e("Polling Status")),extra:l().createElement(a.Space,null,l().createElement(a.Button,{size:"small",type:"primary",icon:l().createElement(o.ThunderboltOutlined,null),onClick:function(){return eV(function(){var r,n,l,o,i,c,u,s,d;return eQ(this,function(m){switch(m.label){case 0:E("all"),m.label=1;case 1:return m.trys.push([1,3,4,5]),[4,t.request({url:"gitManager:pollNow",method:"post"})];case 2:return o=(null==(l=m.sent().data)?void 0:l.data)||{},a.message.success(e("Polled {{scanned}} MRs, triggered {{triggered}} reviews",{scanned:null!=(r=o.scanned)?r:0,triggered:null!=(n=o.triggered)?n:0})),x(),[3,5];case 3:return i=m.sent(),a.message.error((null==i||null==(d=i.response)||null==(s=d.data)||null==(u=s.errors)||null==(c=u[0])?void 0:c.message)||(null==i?void 0:i.message)||e("Failed")),[3,5];case 4:return E(null),[7];case 5:return[2]}})})()},loading:"all"===b,disabled:0===C.length},e("Poll Now (All)")),l().createElement(a.Button,{size:"small",icon:l().createElement(o.ReloadOutlined,null),onClick:x,loading:g},e("Refresh")))},l().createElement(a.Space,{direction:"vertical",size:4,style:{width:"100%"}},l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Background poller"),":"),l().createElement(a.Tag,{color:(null==p?void 0:p.running)?"green":"default"},(null==p?void 0:p.running)?e("Running"):e("Stopped")),(null==p?void 0:p.polling)&&l().createElement(a.Tag,{color:"blue"},e("Polling now…"))),l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Interval"),":"),l().createElement(eX,null,(null==p?void 0:p.intervalSec)?"".concat(p.intervalSec,"s"):"—")),l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Last tick"),":"),l().createElement(eX,null,(null==p?void 0:p.lastTickAt)?new Date(p.lastTickAt).toLocaleString():e("Never"))),(null==p?void 0:p.lastError)&&l().createElement(a.Space,null,l().createElement(eX,{type:"secondary"},e("Last error"),":"),l().createElement(eX,{type:"danger",style:{fontSize:12}},p.lastError)))),l().createElement(a.Card,{size:"small",title:l().createElement(a.Space,null,l().createElement(o.RobotOutlined,null),e("Auto-Review Repositories")),extra:l().createElement(eX,{type:"secondary",style:{fontSize:12}},e("Toggle Auto Review on the Repositories tab to enable polling"))},0===C.length?l().createElement(a.Empty,{description:e("No repositories have Auto Review enabled")}):l().createElement(a.Table,{size:"small",rowKey:"id",dataSource:C,pagination:!1,columns:[{title:e("Repository Name"),dataIndex:"name"},{title:e("Primary Auto Flow"),dataIndex:"autoReviewFlowId",width:220,render:function(t,r){var n=S.find(function(e){return Number(e.id)===Number(t)}),o=S.find(function(e){return e.repositoryId===r.id||null==e.repositoryId});return n?l().createElement(a.Tag,{color:"blue"},n.name):o?l().createElement(a.Tag,{color:"default"},e("Fallback"),": ",o.name):l().createElement(a.Tag,{color:"red"},e("No matching flow available"))}},{title:e("Last Polled At"),dataIndex:"lastPolledAt",width:200,render:function(t){return t?new Date(t).toLocaleString():e("Never")}},{title:"",key:"actions",width:120,render:function(r,n){return l().createElement(a.Tooltip,{title:e("Poll this repository now")},l().createElement(a.Button,{size:"small",icon:l().createElement(o.ThunderboltOutlined,null),onClick:function(){var r;return r=n.id,eV(function(){var n,l,o,i,c,u,s,d,m;return eQ(this,function(p){switch(p.label){case 0:E(r),p.label=1;case 1:return p.trys.push([1,3,4,5]),[4,t.request({url:"gitManager:pollNow",method:"post",data:{repositoryId:r}})];case 2:return i=(null==(o=p.sent().data)?void 0:o.data)||{},a.message.success(e("Polled {{scanned}} MRs, triggered {{triggered}} reviews",{scanned:null!=(n=i.scanned)?n:0,triggered:null!=(l=i.triggered)?l:0})),x(),[3,5];case 3:return c=p.sent(),a.message.error((null==c||null==(m=c.response)||null==(d=m.data)||null==(s=d.errors)||null==(u=s[0])?void 0:u.message)||(null==c?void 0:c.message)||e("Failed")),[3,5];case 4:return E(null),[7];case 5:return[2]}})})()},loading:b===n.id},e("Poll Now")))}}]})))},e0=a.Typography.Text,e1=a.theme.useToken,e2=function(){var e=(0,u.k)(),t=e1().token,r=(0,i.B)(),c=r.repos,s=r.selectedRepo,d=r.setSelectedRepo,m=r.refreshRepos;return(0,n.useEffect)(function(){m()},[]),l().createElement("div",{style:{height:"100%"}},l().createElement("div",{style:{padding:"12px 0",marginBottom:16,display:"flex",alignItems:"center",gap:12,borderBottom:"1px solid ".concat(t.colorBorderSecondary)}},l().createElement(o.DatabaseOutlined,{style:{fontSize:16}}),l().createElement(e0,{strong:!0},"Repository:"),l().createElement(a.Select,{style:{minWidth:250},placeholder:e("Select a repository"),value:null==s?void 0:s.id,onChange:function(e){d(c.find(function(t){return t.id===e})||null)},options:c.map(function(t){return{label:l().createElement(a.Space,null,t.name,l().createElement(a.Tag,{color:"connected"===t.status?"green":"default",style:{fontSize:11}},"connected"===t.status?e("Connected"):e("Disconnected"))),value:t.id}}),allowClear:!0,onClear:function(){return d(null)}}),s&&l().createElement(e0,{type:"secondary",style:{fontSize:12}},s.repoUrl)),l().createElement(a.Tabs,{type:"card",defaultActiveKey:"explorer",destroyInactiveTabPane:!0,items:[{key:"explorer",label:l().createElement("span",null,l().createElement(o.FolderOutlined,null)," ",e("File Explorer")),children:l().createElement(w,null)},{key:"history",label:l().createElement("span",null,l().createElement(o.HistoryOutlined,null)," ",e("History")),children:l().createElement(L,null)},{key:"merge-requests",label:l().createElement("span",null,l().createElement(o.MergeOutlined,null)," ",e("Merge Requests")),children:l().createElement(J,null)},{key:"operations",label:l().createElement("span",null,l().createElement(o.ToolOutlined,null)," ",e("Operations")),children:l().createElement(ep,null)},{key:"review-flows",label:l().createElement("span",null,l().createElement(o.RobotOutlined,null)," ",e("Review Flows")),children:l().createElement(eR,null)},{key:"review-history",label:l().createElement("span",null,l().createElement(o.AuditOutlined,null)," ",e("Review History")),children:l().createElement(eW,null)},{key:"polling",label:l().createElement("span",null,l().createElement(o.ClockCircleOutlined,null)," ",e("Polling")),children:l().createElement(eZ,null)}]}))},e3=function(){return l().createElement(i.N,null,l().createElement(e2,null))}},602:function(e,t,r){r.d(t,{B:function(){return m},N:function(){return p}});var n=r(155),l=r.n(n),a=r(866);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function i(e,t,r,n,l,a,o){try{var i=e[a](o),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,l)}function c(e){return function(){var t=this,r=arguments;return new Promise(function(n,l){var a=e.apply(t,r);function o(e){i(a,n,l,o,c,"next",e)}function c(e){i(a,n,l,o,c,"throw",e)}o(void 0)})}}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){i=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){var r,n,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:c(0)}),i(o,"throw",{value:c(1)}),i(o,"return",{value:c(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function c(i){return function(c){var u=[i,c];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(a=0)),a;)try{if(r=1,n&&(l=2&u[0]?n.return:u[0]?n.throw||((l=n.return)&&l.call(n),0):n.next)&&!(l=l.call(n,u[1])).done)return l;switch(n=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,n=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){a.label=u[1];break}if(6===u[0]&&a.label<l[1]){a.label=l[1],l=u;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(u);break}l[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],n=0}finally{r=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var d=(0,n.createContext)(null);function m(){return(0,n.useContext)(d)}var p=function(e){var t=e.children,r=(0,a.useApp)().apiClient,o=u((0,n.useState)([]),2),i=o[0],m=o[1],p=u((0,n.useState)(null),2),f=p[0],y=p[1],g=u((0,n.useState)(!1),2),h=g[0],v=g[1],b=u((0,n.useState)([]),2),E=b[0],w=b[1],S=u((0,n.useState)(""),2),k=S[0],x=S[1],C=(0,n.useRef)(f);C.current=f;var I=(0,n.useCallback)(function(){return c(function(){var e,t,n,l;return s(this,function(a){switch(a.label){case 0:if(!(e=C.current)||"connected"!==e.status)return w([]),x(""),[2];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,r.request({url:"gitManager:branches",params:{repositoryId:e.id}})];case 2:return(l=(null==(n=a.sent().data)||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data))&&(w(l.all||[]),x(l.current||"")),[3,4];case 3:return a.sent(),w([]),x(""),[3,4];case 4:return[2]}})})()},[r]),O=(0,n.useCallback)(function(){return c(function(){var e,t,n,l;return s(this,function(a){switch(a.label){case 0:v(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,r.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return m(t=(null==(e=a.sent().data)?void 0:e.data)||[]),(n=C.current)&&(l=t.find(function(e){return e.id===n.id}))&&y(l),[3,4];case 3:return v(!1),[7];case 4:return[2]}})})()},[r]);return l().createElement(d.Provider,{value:{repos:i,selectedRepo:f,loading:h,branches:E,currentBranch:k,setSelectedRepo:y,refreshRepos:O,refreshBranches:I}},t)}},578:function(e,t,r){r.d(t,{k:function(){return l}});var n=r(866);function l(){var e=(0,n.useApp)();return function(t,r){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({ns:["plugin-git-manager","client"]},r))}}}}]);
|