@kb-labs/commit-entry 2.28.0 → 2.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/widgets/@mf-types.zip +0 -0
- package/dist/widgets/__federation_expose_CommitOverview.js +1 -1
- package/dist/widgets/__federation_expose_CommitOverview.js.map +1 -1
- package/dist/widgets/mf-manifest.json +5 -5
- package/dist/widgets/mf-stats.json +5 -5
- package/dist/widgets/remoteEntry.js +3 -3
- package/dist/widgets/remoteEntry.js.map +1 -1
- package/package.json +6 -6
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_kb_labs_commit_entry=self.webpackChunk_kb_labs_commit_entry||[]).push([["715"],{572(e,t,n){var r=n(5259),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)l.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:i,type:e,key:c,ref:u,props:o,_owner:a.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},8048(e,t,n){e.exports=n(572)},9346(e,t,n){n.r(t),n.d(t,{default:()=>k});var r=n(8048),i=n(5259),o=n(2383),l=n(1349);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(e,t)||c(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 c(e,t){if(e){if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}}var u=n(4984).theme.useToken,d=l.UITypographyText,p={feat:"green",fix:"red",docs:"blue",style:"purple",refactor:"cyan",test:"magenta",chore:"default",perf:"gold",ci:"blue",build:"geekblue"};function f(e){var t,n,f,m,y,g=e.scope,h=u().token,x=(0,o.useNotification)(),j=s((0,i.useState)(new Set),2),b=j[0],v=j[1],I=s((0,i.useState)(new Set),2),S=I[0],U=I[1],k=s((0,i.useState)(null),2),w=k[0],O=k[1],C=s((0,i.useState)(""),2),A=C[0],P=C[1],z=s((0,i.useState)(null),2),T=z[0],E=z[1],B=s((0,i.useState)(!1),2),D=B[0],R=B[1],_=(0,o.useData)("/v1/plugins/commit/status",{params:{scope:g},enabled:!!g}),L=_.data,M=_.isLoading,F=_.refetch,N=(0,o.useData)("/v1/plugins/commit/plan",{params:{scope:g},enabled:!!g}),H=N.data,$=N.refetch,G=function(){F(),$()},W=(0,o.useMutateData)("/v1/plugins/commit/generate"),K=(0,o.useMutateData)("/v1/plugins/commit/apply"),V=(0,o.useMutateData)("/v1/plugins/commit/push"),Y=(0,o.useMutateData)("/v1/plugins/commit/plan","DELETE"),q=(0,o.useMutateData)("/v1/plugins/commit/plan","PATCH"),J=(0,o.useMutateData)("/v1/plugins/commit/regenerate-commit"),Q=null!=(t=null==L?void 0:L.filesChanged)?t:0,X=null!=(n=null==H||null==(y=H.plan)?void 0:y.commits)?n:[],Z=X.length>0,ee=Z?null!=(f=null==L?void 0:L.planStatus)?f:"ready":"idle",et=W.isLoading||K.isLoading||V.isLoading||Y.isLoading,en=function(){D?(0,l.UIModalConfirm)({title:"Allow Secrets?",icon:(0,r.jsx)(l.UIIcon,{name:"ExclamationCircleOutlined"}),content:"Files may contain secrets. This bypasses security checks.",okText:"Proceed",okType:"danger",onOk:function(){return W.mutate({scope:g,allowSecrets:!0,autoConfirm:!0},{onSuccess:G})}}):W.mutate({scope:g,allowSecrets:!1,autoConfirm:!1},{onSuccess:function(e){G(),e.secretsDetected&&e.secrets&&(0,l.UIModalError)({title:"Secrets Detected",width:600,content:(0,r.jsxs)("div",{children:[(0,r.jsx)(l.UIAlert,{message:e.message,variant:"error",showIcon:!0,style:{marginBottom:16}}),(0,r.jsxs)(d,{strong:!0,children:[e.secrets.length," potential secret(s) found."]}),(0,r.jsx)("div",{style:{maxHeight:300,overflow:"auto",marginTop:8},children:e.secrets.map(function(e,t){return(0,r.jsxs)(l.UICard,{size:"small",style:{marginBottom:8},children:[(0,r.jsxs)(d,{style:{fontFamily:"monospace",fontSize:12},children:[e.file,":",e.line]}),(0,r.jsx)("br",{}),(0,r.jsxs)(d,{type:"secondary",children:[e.type,": ",e.matched]})]},t)})})]})})}})},er=function(e){K.mutate({scope:g,commitIds:e},{onSuccess:function(e){var t;G(),(null==(t=e.result)?void 0:t.success)&&(x.success("".concat(e.result.appliedCommits.length," commit(s) applied")),U(new Set))},onError:function(e){return x.error("Apply failed: ".concat(e.message))}})},ei=function(e){q.mutate({scope:g,commitId:e,message:A},{onSuccess:function(){$(),O(null),x.success("Message updated")},onError:function(e){return x.error("Update failed: ".concat(e.message))}})},eo=function(e){E(e),J.mutate({scope:g,commitId:e},{onSuccess:function(){$(),E(null),x.success("Commit regenerated")},onError:function(e){E(null),x.error("Regenerate failed: ".concat(e.message))}})},el=function(e,t){var n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n};if(!g)return(0,r.jsx)(l.UIEmptyState,{description:"Select a repository to continue"});if(M)return(0,r.jsx)(l.UISpin,{size:"large",style:{display:"block",margin:"48px auto"}});var ea={idle:{text:"No Plan",status:"default"},ready:{text:"Ready to Apply",status:"processing"},applied:{text:"Applied",status:"success"},pushed:{text:"Pushed",status:"success"}},es=null!=(m=ea[ee])?m:ea.idle;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:h.marginSM},children:[(0,r.jsx)(l.UICard,{size:"small",children:(0,r.jsxs)(l.UIFlex,{justify:"between",align:"center",children:[(0,r.jsxs)(l.UISpace,{size:24,children:[(0,r.jsx)(l.UIBadge,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},es)),(0,r.jsxs)(d,{type:"secondary",children:[X.length," commit",1!==X.length?"s":""]}),(0,r.jsxs)(d,{type:"secondary",children:[Q," file",1!==Q?"s":""," changed"]})]}),Z&&(0,r.jsxs)(l.UISpace,{size:8,children:["ready"===ee&&(S.size>0?(0,r.jsxs)(l.UIButton,{variant:"primary",size:"small",onClick:function(){return er(function(e){if(Array.isArray(e))return a(e)}(S)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(S)||c(S)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())},loading:K.isLoading,disabled:et,children:["Apply Selected (",S.size,")"]}):(0,r.jsx)(l.UIButton,{variant:"primary",size:"small",onClick:function(){return er()},loading:K.isLoading,disabled:et,children:"Apply All"})),("applied"===ee||"pushed"===ee)&&(0,r.jsx)(l.UIButton,{size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"CloudUploadOutlined"}),onClick:function(){V.mutate({scope:g},{onSuccess:function(e){var t,n,r;F(),(null==(t=e.result)?void 0:t.success)?x.success("Pushed ".concat(e.result.commitsPushed," commit(s) to ").concat(e.result.remote,"/").concat(e.result.branch)):x.error(null!=(n=null==(r=e.result)?void 0:r.error)?n:"Push failed")},onError:function(e){return x.error("Push failed: ".concat(e.message))}})},loading:V.isLoading,disabled:et,children:"Push"}),(0,r.jsx)(l.UIButton,{size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"ReloadOutlined"}),onClick:en,loading:W.isLoading,disabled:et,children:"Regenerate"}),(0,r.jsx)(l.UIPopconfirm,{title:"Reset commit plan?",description:"This deletes the current plan.",onConfirm:function(){Y.mutate({scope:g},{onSuccess:function(){G(),x.success("Plan reset"),U(new Set),v(new Set)},onError:function(e){return x.error("Reset failed: ".concat(e.message))}})},okText:"Reset",okType:"danger",children:(0,r.jsx)("span",{children:(0,r.jsx)(l.UIButton,{size:"small",danger:!0,icon:(0,r.jsx)(l.UIIcon,{name:"DeleteOutlined"}),loading:Y.isLoading,disabled:et,children:"Reset"})})})]})]})}),W.isLoading&&(0,r.jsxs)(l.UICard,{style:{textAlign:"center",padding:"48px 0"},children:[(0,r.jsx)(l.UISpin,{size:"large"}),(0,r.jsx)("div",{style:{marginTop:16},children:(0,r.jsxs)(d,{type:"secondary",children:["Analyzing ",Q," files..."]})})]}),(!Z||0===X.length)&&!W.isLoading&&(0,r.jsx)(l.UICard,{children:(0,r.jsx)(l.UIEmptyState,{icon:(0,r.jsx)(l.UIIcon,{name:"FileOutlined"}),title:"No commit plan yet",description:Q>0?"".concat(Q," file").concat(1!==Q?"s":""," changed"):void 0,children:(0,r.jsxs)(l.UISpace,{direction:"vertical",align:"center",children:[(0,r.jsx)(l.UICheckbox,{checked:D,onChange:function(e){return R(e)},children:(0,r.jsx)(d,{type:"secondary",style:{fontSize:13},children:"Allow secrets"})}),(0,r.jsx)(l.UIButton,{variant:"primary",icon:(0,r.jsx)(l.UIIcon,{name:"ThunderboltOutlined"}),onClick:en,disabled:0===Q,children:"Generate Plan"})]})})}),!W.isLoading&&X.length>0&&X.map(function(e){var t,n,i,o,a,s,c=b.has(e.id),u=w===e.id,f=T===e.id,m=S.has(e.id),y=null!=(t=p[e.type])?t:"default";return(0,r.jsxs)(l.UICard,{size:"small",style:{opacity:f?.6:1},children:[(0,r.jsxs)(l.UIFlex,{align:"center",gap:8,style:{marginBottom:c?h.marginSM:0},children:["ready"===ee&&(0,r.jsx)("span",{onClick:function(e){return e.stopPropagation()},children:(0,r.jsx)(l.UICheckbox,{checked:m,onChange:function(){return U(el(S,e.id))}})}),(0,r.jsx)(l.UIIcon,{name:"RightOutlined",style:{fontSize:11,cursor:"pointer",color:h.colorTextTertiary,transform:c?"rotate(90deg)":void 0,transition:"transform 0.2s"},onClick:function(){return v(el(b,e.id))}}),(0,r.jsx)(l.UITag,{color:y,style:{margin:0},children:e.type}),(0,r.jsx)("div",{style:{flex:1,cursor:"pointer",minWidth:0},onClick:function(){return v(el(b,e.id))},children:u?(0,r.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},onClick:function(e){return e.stopPropagation()},children:[(0,r.jsx)(l.UIInput,{size:"small",value:A,onChange:function(e){return P(e)},onPressEnter:function(){return ei(e.id)},autoFocus:!0,style:{flex:1}}),(0,r.jsx)(l.UIButton,{size:"small",variant:"text",icon:(0,r.jsx)(l.UIIcon,{name:"CheckOutlined"}),onClick:function(){return ei(e.id)},loading:q.isLoading}),(0,r.jsx)(l.UIButton,{size:"small",variant:"text",icon:(0,r.jsx)(l.UIIcon,{name:"CloseOutlined"}),onClick:function(){return O(null)}})]}):(0,r.jsxs)(d,{ellipsis:!0,children:[e.scope&&(0,r.jsxs)(d,{type:"secondary",children:["(",e.scope,")"," "]}),e.message]})}),e.breaking&&(0,r.jsx)(l.UITag,{color:"red",style:{margin:0},children:"BREAKING"}),(0,r.jsx)(l.UITooltip,{title:"".concat(null!=(n=null==(o=e.files)?void 0:o.length)?n:0," files"),children:(0,r.jsxs)(d,{type:"secondary",style:{fontSize:12,whiteSpace:"nowrap"},children:[null!=(i=null==(a=e.files)?void 0:a.length)?i:0," files"]})}),(null==(s=e.reasoning)?void 0:s.confidence)!==void 0&&(0,r.jsx)(l.UITooltip,{title:"AI confidence",children:(0,r.jsxs)(d,{type:"secondary",style:{fontSize:12},children:[(100*e.reasoning.confidence).toFixed(0),"%"]})}),"ready"===ee&&!u&&(0,r.jsx)(l.UIDropdown,{trigger:["click"],menu:{items:[{key:"edit",label:"Edit message",icon:(0,r.jsx)(l.UIIcon,{name:"EditOutlined"}),onClick:function(){O(e.id),P(e.message)}},{key:"regen",label:"Regenerate",icon:(0,r.jsx)(l.UIIcon,{name:"ReloadOutlined"}),onClick:function(){return eo(e.id)}}]},children:(0,r.jsx)(l.UIButton,{variant:"text",size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"MoreOutlined"}),onClick:function(e){return e.stopPropagation()}})})]}),c&&(0,r.jsxs)("div",{style:{paddingTop:h.paddingSM},children:[f&&(0,r.jsxs)(l.UIFlex,{justify:"center",style:{padding:h.padding},children:[(0,r.jsx)(l.UISpin,{size:"small"}),(0,r.jsx)(d,{type:"secondary",style:{marginLeft:8},children:"Regenerating..."})]}),e.body&&(0,r.jsx)(d,{type:"secondary",style:{whiteSpace:"pre-wrap",display:"block",marginBottom:h.marginSM},children:e.body}),e.files&&e.files.length>0&&(0,r.jsxs)("div",{style:{marginBottom:h.marginSM},children:[(0,r.jsxs)(d,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:4},children:[e.files.length," file",1!==e.files.length?"s":""]}),(0,r.jsx)(l.UICard,{size:"small",style:{background:h.colorFillAlter},children:e.files.map(function(e,t){return(0,r.jsx)("div",{style:{padding:"2px 0",fontFamily:"monospace",fontSize:12},children:e},t)})})]}),e.reasoning&&(0,r.jsx)(l.UIAlert,{message:"AI Reasoning",description:(0,r.jsxs)(d,{type:"secondary",children:[e.reasoning.explanation,void 0!==e.reasoning.confidence&&(0,r.jsxs)(r.Fragment,{children:[" (",(100*e.reasoning.confidence).toFixed(0),"% confidence)"]})]}),variant:"info"})]})]},e.id)})]})}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t,n,r,i,o,l){try{var a=e[o](l),s=a.value}catch(e){n(e);return}a.done?t(s):Promise.resolve(s).then(r,i)}function g(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function l(e){y(o,r,i,l,a,"next",e)}function a(e){y(o,r,i,l,a,"throw",e)}l(void 0)})}}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){h(e,t,n[t])})}return e}function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(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 b(e,t){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),a=Object.defineProperty;return a(l,"next",{value:s(0)}),a(l,"throw",{value:s(1)}),a(l,"return",{value:s(2)}),"function"==typeof Symbol&&a(l,Symbol.iterator,{value:function(){return this}}),l;function s(a){return function(s){var c=[a,s];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,c[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&c[0]?r.return:c[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,c[1])).done)return i;switch(r=0,i&&(c=[2&c[0],i.value]),c[0]){case 0:case 1:i=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]<i[3])){o.label=c[1];break}if(6===c[0]&&o.label<i[1]){o.label=i[1],i=c;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(c);break}i[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=i=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var v=l.UITypographyText;function I(e){var t=e.scope,n=(0,o.useNotification)(),a=(0,o.useTheme)().semantic,s=j((0,i.useState)(new Set),2),c=s[0],u=s[1],d=j((0,i.useState)(new Set),2),p=d[0],f=d[1],m=j((0,i.useState)(null),2),y=m[0],I=m[1],U=j((0,i.useState)({}),2),k=U[0],w=U[1],O=j((0,i.useState)(null),2),C=O[0],A=O[1],P=j((0,i.useState)(!1),2),z=P[0],T=P[1],E=(0,o.useData)("/v1/plugins/commit/git-status",{params:{scope:t},enabled:!!t}),B=E.data,D=E.isLoading,R=(0,o.useMutateData)("/v1/plugins/commit/summarize");if(!t)return(0,r.jsx)(l.UIEmptyState,{description:"Select a scope to continue"});if(D)return(0,r.jsx)(l.UICard,{children:(0,r.jsx)(l.UISkeleton,{active:!0,lines:5})});var _=(null!=(H=null!=($=null==B?void 0:B.rows)?$:null==B?void 0:B.summaries)?H:[]).filter(function(e){return"string"==typeof(null==e?void 0:e.path)}).map(function(e){var t;return{path:e.path,status:null!=(t=e.status)?t:"modified"}});if(0===_.length)return(0,r.jsxs)(l.UICard,{style:{textAlign:"center",padding:"48px 0"},children:[(0,r.jsx)(l.UIIcon,{name:"FileOutlined",style:{fontSize:48,color:a.disabled,display:"block",marginBottom:16}}),(0,r.jsx)(v,{type:"secondary",children:"No files changed"})]});var L={},M=!0,F=!1,N=void 0;try{for(var H,$,G,W,K,V,Y=_[Symbol.iterator]();!(M=(V=Y.next()).done);M=!0){var q,J,Q=V.value;(null!=(J=L[q=Q.status])?J:L[q]=[]).push(Q)}}catch(e){F=!0,N=e}finally{try{M||null==Y.return||Y.return()}finally{if(F)throw N}}var X=[{key:"staged",label:"Staged",color:a.success,tagColor:"green",iconName:"CheckCircleOutlined",files:null!=(G=L.staged)?G:[]},{key:"modified",label:"Modified",color:a.warning,tagColor:"orange",iconName:"EditOutlined",files:null!=(W=L.modified)?W:[]},{key:"untracked",label:"Untracked",color:a.disabled,tagColor:"default",iconName:"PlusOutlined",files:null!=(K=L.untracked)?K:[]}].filter(function(e){return e.files.length>0}),Z=function(e,t){var n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n};return(0,r.jsxs)("div",{children:[(0,r.jsx)(l.UICard,{size:"small",style:{marginBottom:16},children:(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:16,alignItems:"center"},children:[(0,r.jsxs)(v,{type:"secondary",children:[_.length," file",1!==_.length?"s":""," changed"]}),X.map(function(e){return(0,r.jsxs)(l.UITag,{color:e.tagColor,style:{margin:0},children:[e.label,": ",e.files.length]},e.key)})]}),(0,r.jsx)(l.UIButton,{size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"RobotOutlined"}),onClick:function(){return g(function(){return b(this,function(e){switch(e.label){case 0:T(!0),e.label=1;case 1:return e.trys.push([1,3,4,5]),[4,R.mutateAsync({scope:t})];case 2:return I(e.sent().summary),n.success("Summary generated"),[3,5];case 3:return e.sent(),n.error("Failed to generate summary"),[3,5];case 4:return T(!1),[7];case 5:return[2]}})})()},loading:z,children:"Summarize All"})]})}),y&&(0,r.jsx)(l.UIAlert,{message:"AI Summary",description:y,variant:"info",closable:!0,onClose:function(){return I(null)},style:{marginBottom:16,whiteSpace:"pre-wrap"},icon:(0,r.jsx)(l.UIIcon,{name:"RobotOutlined"})}),X.map(function(e){var i=p.has(e.key);return(0,r.jsxs)("div",{style:{marginBottom:16},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",cursor:"pointer",borderBottom:"2px solid ".concat(e.color),marginBottom:4},onClick:function(){return f(Z(p,e.key))},children:[(0,r.jsx)(l.UIIcon,{name:"RightOutlined",style:{fontSize:10,color:a.disabled,transform:i?void 0:"rotate(90deg)",transition:"transform 0.2s"}}),(0,r.jsx)(l.UIIcon,{name:e.iconName,style:{color:e.color}}),(0,r.jsx)(v,{strong:!0,children:e.label}),(0,r.jsx)(l.UIBadge,{count:e.files.length,style:{backgroundColor:e.color},size:"small"})]}),!i&&e.files.map(function(e){var i=c.has(e.path),o=k[e.path],s=C===e.path;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",cursor:"pointer",borderBottom:"1px solid ".concat(a.borderPrimary)},onClick:function(){return u(Z(c,e.path))},children:[(0,r.jsx)(l.UIIcon,{name:"RightOutlined",style:{fontSize:10,color:a.disabled,transform:i?"rotate(90deg)":void 0,transition:"transform 0.2s"}}),(0,r.jsx)(l.UIIcon,{name:"FileOutlined",style:{fontSize:13,color:a.disabled}}),(0,r.jsx)(v,{style:{flex:1,fontFamily:"monospace",fontSize:13},ellipsis:!0,children:e.path}),(0,r.jsxs)("div",{style:{display:"flex",gap:4},onClick:function(e){return e.stopPropagation()},children:[(0,r.jsx)(l.UIButton,{variant:"text",size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"CopyOutlined"}),onClick:function(){navigator.clipboard.writeText(e.path),n.success("Copied")}}),(0,r.jsx)(l.UIButton,{variant:"text",size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"RobotOutlined"}),onClick:function(){var r;return r=e.path,g(function(){var e;return b(this,function(i){switch(i.label){case 0:A(r),i.label=1;case 1:return i.trys.push([1,3,4,5]),[4,R.mutateAsync({scope:t,file:r})];case 2:return e=i.sent(),w(function(t){var n,i;return n=x({},t),i=null!=(i=h({},r,e.summary))?i:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n}),[3,5];case 3:return i.sent(),n.error("Failed to summarize ".concat(r)),[3,5];case 4:return A(null),[7];case 5:return[2]}})})()},loading:s})]})]}),i&&(0,r.jsxs)("div",{style:{borderBottom:"1px solid ".concat(a.borderPrimary)},children:[o&&(0,r.jsx)(l.UIAlert,{message:"AI Summary",description:o,variant:"success",closable:!0,onClose:function(){return w(function(t){var n=x({},t);return delete n[e.path],n})},style:{margin:"8px 12px",whiteSpace:"pre-wrap"},icon:(0,r.jsx)(l.UIIcon,{name:"RobotOutlined"})}),(0,r.jsx)(S,{scope:t,file:e.path,status:e.status})]})]},e.path)})]},e.key)})]})}function S(e){var t=e.scope,n=e.file,i=e.status,a=(0,o.useData)("/v1/plugins/commit/diff",{params:{scope:t,file:n},enabled:!!t&&!!n}),s=a.data;return a.isLoading?(0,r.jsx)("div",{style:{padding:16},children:(0,r.jsx)(l.UISkeleton,{active:!0,lines:8})}):(null==s?void 0:s.diff)?"untracked"===i||"added"===i?(0,r.jsxs)("div",{style:{padding:16},children:[(0,r.jsx)(v,{type:"secondary",style:{display:"block",marginBottom:8},children:"New file content"}),(0,r.jsx)("pre",{style:{margin:0,maxHeight:700,overflow:"auto",fontFamily:"Monaco, Menlo, monospace",fontSize:12,lineHeight:1.5,padding:12,borderRadius:8,background:"var(--bg-tertiary)",border:"1px solid var(--border-primary)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:s.diff})]}):(0,r.jsx)("div",{style:{padding:16},children:(0,r.jsx)(l.UIDiffViewer,{diff:s.diff,maxHeight:700})}):(0,r.jsx)("div",{style:{padding:16},children:(0,r.jsx)(v,{type:"secondary",children:"No changes to display"})})}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(){var e,t,n,a=function(e){if(Array.isArray(e))return e}(e=(0,i.useState)(""))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var i=[],o=!0,l=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(i.push(t.value),2!==i.length);o=!0);}catch(e){l=!0,n=e}finally{try{o||null==r.return||r.return()}finally{if(l)throw n}}return i}}(e)||function(e){if(e){if("string"==typeof e)return U(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return U(e,2)}}(e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=a[0],c=a[1],u=(0,o.useData)("/v1/plugins/commit/scopes"),d=u.data,p=u.isLoading;(0,i.useEffect)(function(){var e;(null==d||null==(e=d.options)?void 0:e.length)&&!s&&c(d.value||d.options[0].value)},[d,s]);var m=null!=(t=null==d||null==(n=d.options)?void 0:n.map(function(e){return{label:e.label,value:e.value}}))?t:[],y=(0,r.jsx)(l.UITabs,{syncUrl:"search",items:[{key:"plan",label:"Commit Plan",children:(0,r.jsx)(f,{scope:s})},{key:"files",label:"Files",children:(0,r.jsx)(I,{scope:s})}]});return(0,r.jsx)(l.UIPage,{children:(0,r.jsx)(l.UIPageHeader,{title:"Commit",description:"AI-powered commit generation",actions:(0,r.jsx)(l.UISelect,{style:{width:260},placeholder:"Select repository...",value:s||void 0,onChange:function(e){return c(e)},loading:p,showSearch:!0,options:m}),tabs:y})})}}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_kb_labs_commit_entry=self.webpackChunk_kb_labs_commit_entry||[]).push([["715"],{572(e,t,n){var r=n(5259),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)l.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:i,type:e,key:c,ref:u,props:o,_owner:a.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},8048(e,t,n){e.exports=n(572)},9346(e,t,n){n.r(t),n.d(t,{default:()=>k});var r=n(8048),i=n(5259),o=n(2383),l=n(1349);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(e,t)||c(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 c(e,t){if(e){if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}}var u=n(4984).theme.useToken,d=l.UITypographyText,p={feat:"green",fix:"red",docs:"blue",style:"purple",refactor:"cyan",test:"magenta",chore:"default",perf:"gold",ci:"blue",build:"geekblue"};function f(e){var t,n,f,m,y,g=e.scope,h=u().token,x=(0,o.useNotification)(),j=s((0,i.useState)(new Set),2),b=j[0],v=j[1],I=s((0,i.useState)(new Set),2),S=I[0],U=I[1],k=s((0,i.useState)(null),2),w=k[0],O=k[1],C=s((0,i.useState)(""),2),A=C[0],P=C[1],z=s((0,i.useState)(null),2),T=z[0],E=z[1],B=s((0,i.useState)(!1),2),D=B[0],R=B[1],_=(0,o.useData)("/v1/plugins/commit/status",{params:{scope:g},enabled:!!g}),L=_.data,M=_.isLoading,F=_.refetch,N=(0,o.useData)("/v1/plugins/commit/plan",{params:{scope:g},enabled:!!g}),H=N.data,$=N.refetch,G=function(){F(),$()},W=(0,o.useMutateData)("/v1/plugins/commit/generate"),K=(0,o.useMutateData)("/v1/plugins/commit/apply"),V=(0,o.useMutateData)("/v1/plugins/commit/push"),Y=(0,o.useMutateData)("/v1/plugins/commit/plan","DELETE"),q=(0,o.useMutateData)("/v1/plugins/commit/plan","PATCH"),J=(0,o.useMutateData)("/v1/plugins/commit/regenerate-commit"),Q=null!=(t=null==L?void 0:L.filesChanged)?t:0,X=null!=(n=null==H||null==(y=H.plan)?void 0:y.commits)?n:[],Z=X.length>0,ee=Z?null!=(f=null==L?void 0:L.planStatus)?f:"ready":"idle",et=W.isLoading||K.isLoading||V.isLoading||Y.isLoading,en=function(){D?(0,l.UIModalConfirm)({title:"Allow Secrets?",icon:(0,r.jsx)(l.UIIcon,{name:"ExclamationCircleOutlined"}),content:"Files may contain secrets. This bypasses security checks.",okText:"Proceed",okType:"danger",onOk:function(){return W.mutate({scope:g,allowSecrets:!0,autoConfirm:!0},{onSuccess:G})}}):W.mutate({scope:g,allowSecrets:!1,autoConfirm:!1},{onSuccess:function(e){G(),e.secretsDetected&&e.secrets&&(0,l.UIModalError)({title:"Secrets Detected",width:600,content:(0,r.jsxs)("div",{children:[(0,r.jsx)(l.UIAlert,{message:e.message,variant:"error",showIcon:!0,style:{marginBottom:16}}),(0,r.jsxs)(d,{strong:!0,children:[e.secrets.length," potential secret(s) found."]}),(0,r.jsx)("div",{style:{maxHeight:300,overflow:"auto",marginTop:8},children:e.secrets.map(function(e,t){return(0,r.jsxs)(l.UICard,{size:"small",style:{marginBottom:8},children:[(0,r.jsxs)(d,{style:{fontFamily:"monospace",fontSize:12},children:[e.file,":",e.line]}),(0,r.jsx)("br",{}),(0,r.jsxs)(d,{type:"secondary",children:[e.type,": ",e.matched]})]},t)})})]})})}})},er=function(e){K.mutate({scope:g,commitIds:e},{onSuccess:function(e){var t;G(),(null==(t=e.result)?void 0:t.success)&&(x.success("".concat(e.result.appliedCommits.length," commit(s) applied")),U(new Set))},onError:function(e){return x.error("Apply failed: ".concat(e.message))}})},ei=function(e){q.mutate({scope:g,commitId:e,message:A},{onSuccess:function(){$(),O(null),x.success("Message updated")},onError:function(e){return x.error("Update failed: ".concat(e.message))}})},eo=function(e){E(e),J.mutate({scope:g,commitId:e},{onSuccess:function(){$(),E(null),x.success("Commit regenerated")},onError:function(e){E(null),x.error("Regenerate failed: ".concat(e.message))}})},el=function(e,t){var n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n};if(!g)return(0,r.jsx)(l.UIEmptyState,{description:"Select a repository to continue"});if(M)return(0,r.jsx)(l.UISpin,{size:"large",style:{display:"block",margin:"48px auto"}});var ea={idle:{text:"No Plan",status:"default"},ready:{text:"Ready to Apply",status:"processing"},applied:{text:"Applied",status:"success"},pushed:{text:"Pushed",status:"success"}},es=null!=(m=ea[ee])?m:ea.idle;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:h.marginSM},children:[(0,r.jsx)(l.UICard,{size:"small",children:(0,r.jsxs)(l.UIFlex,{justify:"between",align:"center",children:[(0,r.jsxs)(l.UISpace,{size:24,children:[(0,r.jsx)(l.UIBadge,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},es)),(0,r.jsxs)(d,{type:"secondary",children:[X.length," commit",1!==X.length?"s":""]}),(0,r.jsxs)(d,{type:"secondary",children:[Q," file",1!==Q?"s":""," changed"]})]}),Z&&(0,r.jsxs)(l.UISpace,{size:8,children:["ready"===ee&&(S.size>0?(0,r.jsxs)(l.UIButton,{variant:"primary",size:"small",onClick:function(){return er(function(e){if(Array.isArray(e))return a(e)}(S)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(S)||c(S)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())},loading:K.isLoading,disabled:et,children:["Apply Selected (",S.size,")"]}):(0,r.jsx)(l.UIButton,{variant:"primary",size:"small",onClick:function(){return er()},loading:K.isLoading,disabled:et,children:"Apply All"})),("applied"===ee||"pushed"===ee)&&(0,r.jsx)(l.UIButton,{size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"CloudUploadOutlined"}),onClick:function(){V.mutate({scope:g},{onSuccess:function(e){var t,n,r;G(),(null==(t=e.result)?void 0:t.success)?(x.success("Pushed ".concat(e.result.commitsPushed," commit(s) to ").concat(e.result.remote,"/").concat(e.result.branch)),U(new Set),v(new Set)):x.error(null!=(n=null==(r=e.result)?void 0:r.error)?n:"Push failed")},onError:function(e){return x.error("Push failed: ".concat(e.message))}})},loading:V.isLoading,disabled:et,children:"Push"}),(0,r.jsx)(l.UIButton,{size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"ReloadOutlined"}),onClick:en,loading:W.isLoading,disabled:et,children:"Regenerate"}),(0,r.jsx)(l.UIPopconfirm,{title:"Reset commit plan?",description:"This deletes the current plan.",onConfirm:function(){Y.mutate({scope:g},{onSuccess:function(){G(),x.success("Plan reset"),U(new Set),v(new Set)},onError:function(e){return x.error("Reset failed: ".concat(e.message))}})},okText:"Reset",okType:"danger",children:(0,r.jsx)("span",{children:(0,r.jsx)(l.UIButton,{size:"small",danger:!0,icon:(0,r.jsx)(l.UIIcon,{name:"DeleteOutlined"}),loading:Y.isLoading,disabled:et,children:"Reset"})})})]})]})}),W.isLoading&&(0,r.jsxs)(l.UICard,{style:{textAlign:"center",padding:"48px 0"},children:[(0,r.jsx)(l.UISpin,{size:"large"}),(0,r.jsx)("div",{style:{marginTop:16},children:(0,r.jsxs)(d,{type:"secondary",children:["Analyzing ",Q," files..."]})})]}),(!Z||0===X.length)&&!W.isLoading&&(0,r.jsx)(l.UICard,{children:(0,r.jsx)(l.UIEmptyState,{icon:(0,r.jsx)(l.UIIcon,{name:"FileOutlined"}),title:"No commit plan yet",description:Q>0?"".concat(Q," file").concat(1!==Q?"s":""," changed"):void 0,children:(0,r.jsxs)(l.UISpace,{direction:"vertical",align:"center",children:[(0,r.jsx)(l.UICheckbox,{checked:D,onChange:function(e){return R(e)},children:(0,r.jsx)(d,{type:"secondary",style:{fontSize:13},children:"Allow secrets"})}),(0,r.jsx)(l.UIButton,{variant:"primary",icon:(0,r.jsx)(l.UIIcon,{name:"ThunderboltOutlined"}),onClick:en,disabled:0===Q,children:"Generate Plan"})]})})}),!W.isLoading&&X.length>0&&X.map(function(e){var t,n,i,o,a,s,c=b.has(e.id),u=w===e.id,f=T===e.id,m=S.has(e.id),y=null!=(t=p[e.type])?t:"default";return(0,r.jsxs)(l.UICard,{size:"small",style:{opacity:f?.6:1},children:[(0,r.jsxs)(l.UIFlex,{align:"center",gap:8,style:{marginBottom:c?h.marginSM:0},children:["ready"===ee&&(0,r.jsx)("span",{onClick:function(e){return e.stopPropagation()},children:(0,r.jsx)(l.UICheckbox,{checked:m,onChange:function(){return U(el(S,e.id))}})}),(0,r.jsx)(l.UIIcon,{name:"RightOutlined",style:{fontSize:11,cursor:"pointer",color:h.colorTextTertiary,transform:c?"rotate(90deg)":void 0,transition:"transform 0.2s"},onClick:function(){return v(el(b,e.id))}}),(0,r.jsx)(l.UITag,{color:y,style:{margin:0},children:e.type}),(0,r.jsx)("div",{style:{flex:1,cursor:"pointer",minWidth:0},onClick:function(){return v(el(b,e.id))},children:u?(0,r.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},onClick:function(e){return e.stopPropagation()},children:[(0,r.jsx)(l.UIInput,{size:"small",value:A,onChange:function(e){return P(e)},onPressEnter:function(){return ei(e.id)},autoFocus:!0,style:{flex:1}}),(0,r.jsx)(l.UIButton,{size:"small",variant:"text",icon:(0,r.jsx)(l.UIIcon,{name:"CheckOutlined"}),onClick:function(){return ei(e.id)},loading:q.isLoading}),(0,r.jsx)(l.UIButton,{size:"small",variant:"text",icon:(0,r.jsx)(l.UIIcon,{name:"CloseOutlined"}),onClick:function(){return O(null)}})]}):(0,r.jsxs)(d,{ellipsis:!0,children:[e.scope&&(0,r.jsxs)(d,{type:"secondary",children:["(",e.scope,")"," "]}),e.message]})}),e.breaking&&(0,r.jsx)(l.UITag,{color:"red",style:{margin:0},children:"BREAKING"}),(0,r.jsx)(l.UITooltip,{title:"".concat(null!=(n=null==(o=e.files)?void 0:o.length)?n:0," files"),children:(0,r.jsxs)(d,{type:"secondary",style:{fontSize:12,whiteSpace:"nowrap"},children:[null!=(i=null==(a=e.files)?void 0:a.length)?i:0," files"]})}),(null==(s=e.reasoning)?void 0:s.confidence)!==void 0&&(0,r.jsx)(l.UITooltip,{title:"AI confidence",children:(0,r.jsxs)(d,{type:"secondary",style:{fontSize:12},children:[(100*e.reasoning.confidence).toFixed(0),"%"]})}),"ready"===ee&&!u&&(0,r.jsx)(l.UIDropdown,{trigger:["click"],menu:{items:[{key:"edit",label:"Edit message",icon:(0,r.jsx)(l.UIIcon,{name:"EditOutlined"}),onClick:function(){O(e.id),P(e.message)}},{key:"regen",label:"Regenerate",icon:(0,r.jsx)(l.UIIcon,{name:"ReloadOutlined"}),onClick:function(){return eo(e.id)}}]},children:(0,r.jsx)(l.UIButton,{variant:"text",size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"MoreOutlined"}),onClick:function(e){return e.stopPropagation()}})})]}),c&&(0,r.jsxs)("div",{style:{paddingTop:h.paddingSM},children:[f&&(0,r.jsxs)(l.UIFlex,{justify:"center",style:{padding:h.padding},children:[(0,r.jsx)(l.UISpin,{size:"small"}),(0,r.jsx)(d,{type:"secondary",style:{marginLeft:8},children:"Regenerating..."})]}),e.body&&(0,r.jsx)(d,{type:"secondary",style:{whiteSpace:"pre-wrap",display:"block",marginBottom:h.marginSM},children:e.body}),e.files&&e.files.length>0&&(0,r.jsxs)("div",{style:{marginBottom:h.marginSM},children:[(0,r.jsxs)(d,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:4},children:[e.files.length," file",1!==e.files.length?"s":""]}),(0,r.jsx)(l.UICard,{size:"small",style:{background:h.colorFillAlter},children:e.files.map(function(e,t){return(0,r.jsx)("div",{style:{padding:"2px 0",fontFamily:"monospace",fontSize:12},children:e},t)})})]}),e.reasoning&&(0,r.jsx)(l.UIAlert,{message:"AI Reasoning",description:(0,r.jsxs)(d,{type:"secondary",children:[e.reasoning.explanation,void 0!==e.reasoning.confidence&&(0,r.jsxs)(r.Fragment,{children:[" (",(100*e.reasoning.confidence).toFixed(0),"% confidence)"]})]}),variant:"info"})]})]},e.id)})]})}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t,n,r,i,o,l){try{var a=e[o](l),s=a.value}catch(e){n(e);return}a.done?t(s):Promise.resolve(s).then(r,i)}function g(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function l(e){y(o,r,i,l,a,"next",e)}function a(e){y(o,r,i,l,a,"throw",e)}l(void 0)})}}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){h(e,t,n[t])})}return e}function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(n=i.next()).done)&&(o.push(n.value),!t||o.length!==t);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(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 b(e,t){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),a=Object.defineProperty;return a(l,"next",{value:s(0)}),a(l,"throw",{value:s(1)}),a(l,"return",{value:s(2)}),"function"==typeof Symbol&&a(l,Symbol.iterator,{value:function(){return this}}),l;function s(a){return function(s){var c=[a,s];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,c[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&c[0]?r.return:c[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,c[1])).done)return i;switch(r=0,i&&(c=[2&c[0],i.value]),c[0]){case 0:case 1:i=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]<i[3])){o.label=c[1];break}if(6===c[0]&&o.label<i[1]){o.label=i[1],i=c;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(c);break}i[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=i=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var v=l.UITypographyText;function I(e){var t=e.scope,n=(0,o.useNotification)(),a=(0,o.useTheme)().semantic,s=j((0,i.useState)(new Set),2),c=s[0],u=s[1],d=j((0,i.useState)(new Set),2),p=d[0],f=d[1],m=j((0,i.useState)(null),2),y=m[0],I=m[1],U=j((0,i.useState)({}),2),k=U[0],w=U[1],O=j((0,i.useState)(null),2),C=O[0],A=O[1],P=j((0,i.useState)(!1),2),z=P[0],T=P[1],E=(0,o.useData)("/v1/plugins/commit/git-status",{params:{scope:t},enabled:!!t}),B=E.data,D=E.isLoading,R=(0,o.useMutateData)("/v1/plugins/commit/summarize");if(!t)return(0,r.jsx)(l.UIEmptyState,{description:"Select a scope to continue"});if(D)return(0,r.jsx)(l.UICard,{children:(0,r.jsx)(l.UISkeleton,{active:!0,lines:5})});var _=(null!=(H=null!=($=null==B?void 0:B.rows)?$:null==B?void 0:B.summaries)?H:[]).filter(function(e){return"string"==typeof(null==e?void 0:e.path)}).map(function(e){var t;return{path:e.path,status:null!=(t=e.status)?t:"modified"}});if(0===_.length)return(0,r.jsxs)(l.UICard,{style:{textAlign:"center",padding:"48px 0"},children:[(0,r.jsx)(l.UIIcon,{name:"FileOutlined",style:{fontSize:48,color:a.disabled,display:"block",marginBottom:16}}),(0,r.jsx)(v,{type:"secondary",children:"No files changed"})]});var L={},M=!0,F=!1,N=void 0;try{for(var H,$,G,W,K,V,Y=_[Symbol.iterator]();!(M=(V=Y.next()).done);M=!0){var q,J,Q=V.value;(null!=(J=L[q=Q.status])?J:L[q]=[]).push(Q)}}catch(e){F=!0,N=e}finally{try{M||null==Y.return||Y.return()}finally{if(F)throw N}}var X=[{key:"staged",label:"Staged",color:a.success,tagColor:"green",iconName:"CheckCircleOutlined",files:null!=(G=L.staged)?G:[]},{key:"modified",label:"Modified",color:a.warning,tagColor:"orange",iconName:"EditOutlined",files:null!=(W=L.modified)?W:[]},{key:"untracked",label:"Untracked",color:a.disabled,tagColor:"default",iconName:"PlusOutlined",files:null!=(K=L.untracked)?K:[]}].filter(function(e){return e.files.length>0}),Z=function(e,t){var n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n};return(0,r.jsxs)("div",{children:[(0,r.jsx)(l.UICard,{size:"small",style:{marginBottom:16},children:(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:16,alignItems:"center"},children:[(0,r.jsxs)(v,{type:"secondary",children:[_.length," file",1!==_.length?"s":""," changed"]}),X.map(function(e){return(0,r.jsxs)(l.UITag,{color:e.tagColor,style:{margin:0},children:[e.label,": ",e.files.length]},e.key)})]}),(0,r.jsx)(l.UIButton,{size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"RobotOutlined"}),onClick:function(){return g(function(){return b(this,function(e){switch(e.label){case 0:T(!0),e.label=1;case 1:return e.trys.push([1,3,4,5]),[4,R.mutateAsync({scope:t})];case 2:return I(e.sent().summary),n.success("Summary generated"),[3,5];case 3:return e.sent(),n.error("Failed to generate summary"),[3,5];case 4:return T(!1),[7];case 5:return[2]}})})()},loading:z,children:"Summarize All"})]})}),y&&(0,r.jsx)(l.UIAlert,{message:"AI Summary",description:y,variant:"info",closable:!0,onClose:function(){return I(null)},style:{marginBottom:16,whiteSpace:"pre-wrap"},icon:(0,r.jsx)(l.UIIcon,{name:"RobotOutlined"})}),X.map(function(e){var i=p.has(e.key);return(0,r.jsxs)("div",{style:{marginBottom:16},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",cursor:"pointer",borderBottom:"2px solid ".concat(e.color),marginBottom:4},onClick:function(){return f(Z(p,e.key))},children:[(0,r.jsx)(l.UIIcon,{name:"RightOutlined",style:{fontSize:10,color:a.disabled,transform:i?void 0:"rotate(90deg)",transition:"transform 0.2s"}}),(0,r.jsx)(l.UIIcon,{name:e.iconName,style:{color:e.color}}),(0,r.jsx)(v,{strong:!0,children:e.label}),(0,r.jsx)(l.UIBadge,{count:e.files.length,style:{backgroundColor:e.color},size:"small"})]}),!i&&e.files.map(function(e){var i=c.has(e.path),o=k[e.path],s=C===e.path;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",cursor:"pointer",borderBottom:"1px solid ".concat(a.borderPrimary)},onClick:function(){return u(Z(c,e.path))},children:[(0,r.jsx)(l.UIIcon,{name:"RightOutlined",style:{fontSize:10,color:a.disabled,transform:i?"rotate(90deg)":void 0,transition:"transform 0.2s"}}),(0,r.jsx)(l.UIIcon,{name:"FileOutlined",style:{fontSize:13,color:a.disabled}}),(0,r.jsx)(v,{style:{flex:1,fontFamily:"monospace",fontSize:13},ellipsis:!0,children:e.path}),(0,r.jsxs)("div",{style:{display:"flex",gap:4},onClick:function(e){return e.stopPropagation()},children:[(0,r.jsx)(l.UIButton,{variant:"text",size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"CopyOutlined"}),onClick:function(){navigator.clipboard.writeText(e.path),n.success("Copied")}}),(0,r.jsx)(l.UIButton,{variant:"text",size:"small",icon:(0,r.jsx)(l.UIIcon,{name:"RobotOutlined"}),onClick:function(){var r;return r=e.path,g(function(){var e;return b(this,function(i){switch(i.label){case 0:A(r),i.label=1;case 1:return i.trys.push([1,3,4,5]),[4,R.mutateAsync({scope:t,file:r})];case 2:return e=i.sent(),w(function(t){var n,i;return n=x({},t),i=null!=(i=h({},r,e.summary))?i:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n}),[3,5];case 3:return i.sent(),n.error("Failed to summarize ".concat(r)),[3,5];case 4:return A(null),[7];case 5:return[2]}})})()},loading:s})]})]}),i&&(0,r.jsxs)("div",{style:{borderBottom:"1px solid ".concat(a.borderPrimary)},children:[o&&(0,r.jsx)(l.UIAlert,{message:"AI Summary",description:o,variant:"success",closable:!0,onClose:function(){return w(function(t){var n=x({},t);return delete n[e.path],n})},style:{margin:"8px 12px",whiteSpace:"pre-wrap"},icon:(0,r.jsx)(l.UIIcon,{name:"RobotOutlined"})}),(0,r.jsx)(S,{scope:t,file:e.path,status:e.status})]})]},e.path)})]},e.key)})]})}function S(e){var t=e.scope,n=e.file,i=e.status,a=(0,o.useData)("/v1/plugins/commit/diff",{params:{scope:t,file:n},enabled:!!t&&!!n}),s=a.data;return a.isLoading?(0,r.jsx)("div",{style:{padding:16},children:(0,r.jsx)(l.UISkeleton,{active:!0,lines:8})}):(null==s?void 0:s.diff)?"untracked"===i||"added"===i?(0,r.jsxs)("div",{style:{padding:16},children:[(0,r.jsx)(v,{type:"secondary",style:{display:"block",marginBottom:8},children:"New file content"}),(0,r.jsx)("pre",{style:{margin:0,maxHeight:700,overflow:"auto",fontFamily:"Monaco, Menlo, monospace",fontSize:12,lineHeight:1.5,padding:12,borderRadius:8,background:"var(--bg-tertiary)",border:"1px solid var(--border-primary)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:s.diff})]}):(0,r.jsx)("div",{style:{padding:16},children:(0,r.jsx)(l.UIDiffViewer,{diff:s.diff,maxHeight:700})}):(0,r.jsx)("div",{style:{padding:16},children:(0,r.jsx)(v,{type:"secondary",children:"No changes to display"})})}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(){var e,t,n,a=function(e){if(Array.isArray(e))return e}(e=(0,i.useState)(""))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var i=[],o=!0,l=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(i.push(t.value),2!==i.length);o=!0);}catch(e){l=!0,n=e}finally{try{o||null==r.return||r.return()}finally{if(l)throw n}}return i}}(e)||function(e){if(e){if("string"==typeof e)return U(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return U(e,2)}}(e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=a[0],c=a[1],u=(0,o.useData)("/v1/plugins/commit/scopes"),d=u.data,p=u.isLoading;(0,i.useEffect)(function(){var e;(null==d||null==(e=d.options)?void 0:e.length)&&!s&&c(d.value||d.options[0].value)},[d,s]);var m=null!=(t=null==d||null==(n=d.options)?void 0:n.map(function(e){return{label:e.label,value:e.value}}))?t:[],y=(0,r.jsx)(l.UITabs,{syncUrl:"search",items:[{key:"plan",label:"Commit Plan",children:(0,r.jsx)(f,{scope:s})},{key:"files",label:"Files",children:(0,r.jsx)(I,{scope:s})}]});return(0,r.jsx)(l.UIPage,{children:(0,r.jsx)(l.UIPageHeader,{title:"Commit",description:"AI-powered commit generation",actions:(0,r.jsx)(l.UISelect,{style:{width:260},placeholder:"Select repository...",value:s||void 0,onChange:function(e){return c(e)},loading:p,showSearch:!0,options:m}),tabs:y})})}}}]);
|
|
2
2
|
//# sourceMappingURL=__federation_expose_CommitOverview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"__federation_expose_CommitOverview.js","sources":["webpack://@kb-labs/commit-entry/../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@kb-labs/commit-entry/../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","webpack://@kb-labs/commit-entry/./src/studio/components/CommitPlanTab.tsx","webpack://@kb-labs/commit-entry/./src/studio/components/CommitFilesTab.tsx","webpack://@kb-labs/commit-entry/./src/studio/pages/CommitOverview.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * CommitPlanTab — commit plan viewer with generate/apply/push/reset actions.\n */\n\nimport { useState } from 'react';\nimport { theme } from 'antd';\nimport {\n useData, useMutateData, useNotification,\n UICard, UIButton, UIEmptyState, UISpin, UIAlert, UIBadge, UITag,\n UITooltip, UIIcon, UISpace, UICheckbox, UIInput, UIDropdown,\n UIPopconfirm, UITypographyText, UIModalConfirm, UIModalError, UIFlex,\n} from '@kb-labs/sdk/studio';\n\nconst { useToken } = theme;\nconst Text = UITypographyText;\n\ninterface CommitPlanTabProps {\n scope: string;\n}\n\ninterface Commit {\n id: string;\n type: string;\n scope?: string;\n message: string;\n body?: string;\n files?: string[];\n breaking?: boolean;\n reasoning?: { explanation: string; confidence?: number };\n}\n\ninterface PlanData {\n plan?: { commits: Commit[] };\n}\n\ninterface StatusData {\n filesChanged: number;\n hasPlan: boolean;\n planStatus: string;\n}\n\n// Semantic commit type → Ant Design token color name\nconst TYPE_COLOR_MAP: Record<string, string> = {\n feat: 'green', fix: 'red', docs: 'blue', style: 'purple',\n refactor: 'cyan', test: 'magenta', chore: 'default', perf: 'gold',\n ci: 'blue', build: 'geekblue',\n};\n\nexport function CommitPlanTab({ scope }: CommitPlanTabProps) {\n const { token } = useToken();\n const notify = useNotification();\n\n const [expanded, setExpanded] = useState<Set<string>>(new Set());\n const [selected, setSelected] = useState<Set<string>>(new Set());\n const [editingId, setEditingId] = useState<string | null>(null);\n const [editMsg, setEditMsg] = useState('');\n const [regeneratingId, setRegeneratingId] = useState<string | null>(null);\n const [allowSecrets, setAllowSecrets] = useState(false);\n\n const { data: statusData, isLoading: statusLoading, refetch: refetchStatus } = useData<StatusData>(\n '/v1/plugins/commit/status', { params: { scope }, enabled: !!scope },\n );\n const { data: planData, refetch: refetchPlan } = useData<PlanData>(\n '/v1/plugins/commit/plan', { params: { scope }, enabled: !!scope },\n );\n\n const refetchAll = () => { void refetchStatus(); void refetchPlan(); };\n\n const generate = useMutateData<{ scope: string; allowSecrets: boolean; autoConfirm: boolean }, any>('/v1/plugins/commit/generate');\n const apply = useMutateData<{ scope: string; commitIds?: string[] }, any>('/v1/plugins/commit/apply');\n const push = useMutateData<{ scope: string }, any>('/v1/plugins/commit/push');\n const reset = useMutateData<{ scope: string }, any>('/v1/plugins/commit/plan', 'DELETE');\n const patch = useMutateData<{ scope: string; commitId: string; message: string }, any>('/v1/plugins/commit/plan', 'PATCH');\n const regenerate = useMutateData<{ scope: string; commitId: string }, any>('/v1/plugins/commit/regenerate-commit');\n\n const filesChanged = statusData?.filesChanged ?? 0;\n const commits = planData?.plan?.commits ?? [];\n const hasPlan = commits.length > 0;\n const planStatus = hasPlan ? (statusData?.planStatus ?? 'ready') : 'idle';\n const isAnyLoading = generate.isLoading || apply.isLoading || push.isLoading || reset.isLoading;\n\n const handleGenerate = () => {\n if (allowSecrets) {\n UIModalConfirm({\n title: 'Allow Secrets?',\n icon: <UIIcon name=\"ExclamationCircleOutlined\" />,\n content: 'Files may contain secrets. This bypasses security checks.',\n okText: 'Proceed',\n okType: 'danger',\n onOk: () => generate.mutate({ scope, allowSecrets: true, autoConfirm: true }, { onSuccess: refetchAll }),\n });\n } else {\n generate.mutate({ scope, allowSecrets: false, autoConfirm: false }, {\n onSuccess: (data: any) => {\n refetchAll();\n if (data.secretsDetected && data.secrets) {\n UIModalError({\n title: 'Secrets Detected',\n width: 600,\n content: (\n <div>\n <UIAlert message={data.message} variant=\"error\" showIcon style={{ marginBottom: 16 }} />\n <Text strong>{data.secrets.length} potential secret(s) found.</Text>\n <div style={{ maxHeight: 300, overflow: 'auto', marginTop: 8 }}>\n {data.secrets.map((s: any, i: number) => (\n <UICard key={i} size=\"small\" style={{ marginBottom: 8 }}>\n <Text style={{ fontFamily: 'monospace', fontSize: 12 }}>{s.file}:{s.line}</Text>\n <br />\n <Text type=\"secondary\">{s.type}: {s.matched}</Text>\n </UICard>\n ))}\n </div>\n </div>\n ),\n });\n }\n },\n });\n }\n };\n\n const handleApply = (commitIds?: string[]) => {\n apply.mutate({ scope, commitIds }, {\n onSuccess: (data: any) => {\n refetchAll();\n if (data.result?.success) {\n notify.success(`${data.result.appliedCommits.length} commit(s) applied`);\n setSelected(new Set());\n }\n },\n onError: (e: Error) => notify.error(`Apply failed: ${e.message}`),\n });\n };\n\n const handlePush = () => {\n push.mutate({ scope }, {\n onSuccess: (data: any) => {\n refetchStatus();\n if (data.result?.success) {\n notify.success(`Pushed ${data.result.commitsPushed} commit(s) to ${data.result.remote}/${data.result.branch}`);\n } else {\n notify.error(data.result?.error ?? 'Push failed');\n }\n },\n onError: (e: Error) => notify.error(`Push failed: ${e.message}`),\n });\n };\n\n const handleReset = () => {\n reset.mutate({ scope }, {\n onSuccess: () => { refetchAll(); notify.success('Plan reset'); setSelected(new Set()); setExpanded(new Set()); },\n onError: (e: Error) => notify.error(`Reset failed: ${e.message}`),\n });\n };\n\n const handleSaveEdit = (commitId: string) => {\n patch.mutate({ scope, commitId, message: editMsg }, {\n onSuccess: () => { refetchPlan(); setEditingId(null); notify.success('Message updated'); },\n onError: (e: Error) => notify.error(`Update failed: ${e.message}`),\n });\n };\n\n const handleRegenerate = (commitId: string) => {\n setRegeneratingId(commitId);\n regenerate.mutate({ scope, commitId }, {\n onSuccess: () => { refetchPlan(); setRegeneratingId(null); notify.success('Commit regenerated'); },\n onError: (e: Error) => { setRegeneratingId(null); notify.error(`Regenerate failed: ${e.message}`); },\n });\n };\n\n const toggle = (set: Set<string>, id: string) => {\n const next = new Set(set);\n if (next.has(id)) { next.delete(id); } else { next.add(id); }\n return next;\n };\n\n if (!scope) {\n return <UIEmptyState description=\"Select a repository to continue\" />;\n }\n if (statusLoading) {\n return <UISpin size=\"large\" style={{ display: 'block', margin: '48px auto' }} />;\n }\n\n const statusBadge: Record<string, { text: string; status: 'default' | 'processing' | 'success' }> = {\n idle: { text: 'No Plan', status: 'default' },\n ready: { text: 'Ready to Apply', status: 'processing' },\n applied: { text: 'Applied', status: 'success' },\n pushed: { text: 'Pushed', status: 'success' },\n };\n const badge = statusBadge[planStatus] ?? statusBadge.idle!;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: token.marginSM }}>\n {/* Summary bar */}\n <UICard size=\"small\">\n <UIFlex justify=\"between\" align=\"center\">\n <UISpace size={24}>\n <UIBadge {...badge} />\n <Text type=\"secondary\">{commits.length} commit{commits.length !== 1 ? 's' : ''}</Text>\n <Text type=\"secondary\">{filesChanged} file{filesChanged !== 1 ? 's' : ''} changed</Text>\n </UISpace>\n {hasPlan && (\n <UISpace size={8}>\n {planStatus === 'ready' && (\n selected.size > 0 ? (\n <UIButton variant=\"primary\" size=\"small\" onClick={() => handleApply([...selected])} loading={apply.isLoading} disabled={isAnyLoading}>\n Apply Selected ({selected.size})\n </UIButton>\n ) : (\n <UIButton variant=\"primary\" size=\"small\" onClick={() => handleApply()} loading={apply.isLoading} disabled={isAnyLoading}>\n Apply All\n </UIButton>\n )\n )}\n {(planStatus === 'applied' || planStatus === 'pushed') && (\n <UIButton size=\"small\" icon={<UIIcon name=\"CloudUploadOutlined\" />} onClick={handlePush} loading={push.isLoading} disabled={isAnyLoading}>\n Push\n </UIButton>\n )}\n <UIButton size=\"small\" icon={<UIIcon name=\"ReloadOutlined\" />} onClick={handleGenerate} loading={generate.isLoading} disabled={isAnyLoading}>\n Regenerate\n </UIButton>\n <UIPopconfirm title=\"Reset commit plan?\" description=\"This deletes the current plan.\" onConfirm={handleReset} okText=\"Reset\" okType=\"danger\">\n <span>\n <UIButton size=\"small\" danger icon={<UIIcon name=\"DeleteOutlined\" />} loading={reset.isLoading} disabled={isAnyLoading}>\n Reset\n </UIButton>\n </span>\n </UIPopconfirm>\n </UISpace>\n )}\n </UIFlex>\n </UICard>\n\n {/* Generating */}\n {generate.isLoading && (\n <UICard style={{ textAlign: 'center', padding: '48px 0' }}>\n <UISpin size=\"large\" />\n <div style={{ marginTop: 16 }}>\n <Text type=\"secondary\">Analyzing {filesChanged} files...</Text>\n </div>\n </UICard>\n )}\n\n {/* Empty state */}\n {(!hasPlan || commits.length === 0) && !generate.isLoading && (\n <UICard>\n <UIEmptyState\n icon={<UIIcon name=\"FileOutlined\" />}\n title=\"No commit plan yet\"\n description={filesChanged > 0 ? `${filesChanged} file${filesChanged !== 1 ? 's' : ''} changed` : undefined}\n >\n <UISpace direction=\"vertical\" align=\"center\">\n <UICheckbox checked={allowSecrets} onChange={(v) => setAllowSecrets(v)}>\n <Text type=\"secondary\" style={{ fontSize: 13 }}>Allow secrets</Text>\n </UICheckbox>\n <UIButton variant=\"primary\" icon={<UIIcon name=\"ThunderboltOutlined\" />} onClick={handleGenerate} disabled={filesChanged === 0}>\n Generate Plan\n </UIButton>\n </UISpace>\n </UIEmptyState>\n </UICard>\n )}\n\n {/* Commit list */}\n {!generate.isLoading && commits.length > 0 && commits.map((commit) => {\n const isExpanded = expanded.has(commit.id);\n const isEditing = editingId === commit.id;\n const isRegenerating = regeneratingId === commit.id;\n const isSelected = selected.has(commit.id);\n const typeColor = TYPE_COLOR_MAP[commit.type] ?? 'default';\n\n return (\n <UICard key={commit.id} size=\"small\" style={{ opacity: isRegenerating ? 0.6 : 1 }}>\n <UIFlex align=\"center\" gap={8} style={{ marginBottom: isExpanded ? token.marginSM : 0 }}>\n {planStatus === 'ready' && (\n <span onClick={(e) => e.stopPropagation()}>\n <UICheckbox checked={isSelected} onChange={() => setSelected(toggle(selected, commit.id))} />\n </span>\n )}\n\n <UIIcon\n name=\"RightOutlined\"\n style={{ fontSize: 11, cursor: 'pointer', color: token.colorTextTertiary, transform: isExpanded ? 'rotate(90deg)' : undefined, transition: 'transform 0.2s' }}\n onClick={() => setExpanded(toggle(expanded, commit.id))}\n />\n\n <UITag color={typeColor} style={{ margin: 0 }}>{commit.type}</UITag>\n\n <div style={{ flex: 1, cursor: 'pointer', minWidth: 0 }} onClick={() => setExpanded(toggle(expanded, commit.id))}>\n {isEditing ? (\n <div style={{ display: 'flex', gap: 8, alignItems: 'center' }} onClick={(e) => e.stopPropagation()}>\n <UIInput size=\"small\" value={editMsg} onChange={(v) => setEditMsg(v)} onPressEnter={() => handleSaveEdit(commit.id)} autoFocus style={{ flex: 1 }} />\n <UIButton size=\"small\" variant=\"text\" icon={<UIIcon name=\"CheckOutlined\" />} onClick={() => handleSaveEdit(commit.id)} loading={patch.isLoading} />\n <UIButton size=\"small\" variant=\"text\" icon={<UIIcon name=\"CloseOutlined\" />} onClick={() => setEditingId(null)} />\n </div>\n ) : (\n <Text ellipsis>\n {commit.scope && <Text type=\"secondary\">({commit.scope}){' '}</Text>}\n {commit.message}\n </Text>\n )}\n </div>\n\n {commit.breaking && <UITag color=\"red\" style={{ margin: 0 }}>BREAKING</UITag>}\n\n <UITooltip title={`${commit.files?.length ?? 0} files`}>\n <Text type=\"secondary\" style={{ fontSize: 12, whiteSpace: 'nowrap' }}>{commit.files?.length ?? 0} files</Text>\n </UITooltip>\n\n {commit.reasoning?.confidence !== undefined && (\n <UITooltip title=\"AI confidence\">\n <Text type=\"secondary\" style={{ fontSize: 12 }}>{(commit.reasoning.confidence * 100).toFixed(0)}%</Text>\n </UITooltip>\n )}\n\n {planStatus === 'ready' && !isEditing && (\n <UIDropdown trigger={['click']} menu={{\n items: [\n { key: 'edit', label: 'Edit message', icon: <UIIcon name=\"EditOutlined\" />, onClick: () => { setEditingId(commit.id); setEditMsg(commit.message); } },\n { key: 'regen', label: 'Regenerate', icon: <UIIcon name=\"ReloadOutlined\" />, onClick: () => handleRegenerate(commit.id) },\n ],\n }}>\n <UIButton variant=\"text\" size=\"small\" icon={<UIIcon name=\"MoreOutlined\" />} onClick={(e) => e.stopPropagation()} />\n </UIDropdown>\n )}\n </UIFlex>\n\n {isExpanded && (\n <div style={{ paddingTop: token.paddingSM }}>\n {isRegenerating && (\n <UIFlex justify=\"center\" style={{ padding: token.padding }}>\n <UISpin size=\"small\" />\n <Text type=\"secondary\" style={{ marginLeft: 8 }}>Regenerating...</Text>\n </UIFlex>\n )}\n {commit.body && (\n <Text type=\"secondary\" style={{ whiteSpace: 'pre-wrap', display: 'block', marginBottom: token.marginSM }}>\n {commit.body}\n </Text>\n )}\n {commit.files && commit.files.length > 0 && (\n <div style={{ marginBottom: token.marginSM }}>\n <Text type=\"secondary\" style={{ fontSize: 12, display: 'block', marginBottom: 4 }}>\n {commit.files.length} file{commit.files.length !== 1 ? 's' : ''}\n </Text>\n <UICard size=\"small\" style={{ background: token.colorFillAlter }}>\n {commit.files.map((file, i) => (\n <div key={i} style={{ padding: '2px 0', fontFamily: 'monospace', fontSize: 12 }}>{file}</div>\n ))}\n </UICard>\n </div>\n )}\n {commit.reasoning && (\n <UIAlert\n message=\"AI Reasoning\"\n description={\n <Text type=\"secondary\">\n {commit.reasoning.explanation}\n {commit.reasoning.confidence !== undefined && (\n <> ({(commit.reasoning.confidence * 100).toFixed(0)}% confidence)</>\n )}\n </Text>\n }\n variant=\"info\"\n />\n )}\n </div>\n )}\n </UICard>\n );\n })}\n </div>\n );\n}\n","/**\n * CommitFilesTab — file viewer grouped by status with expandable diffs and AI summaries.\n */\n\nimport { useState } from 'react';\nimport { useData, useMutateData, useNotification, useTheme, UICard, UIButton, UIEmptyState, UISkeleton, UIAlert, UITag, UIBadge, UIIcon, UITypographyText, UIDiffViewer } from '@kb-labs/sdk/studio';\n\nconst Text = UITypographyText;\n\ninterface CommitFilesTabProps {\n scope: string;\n}\n\ninterface FileEntry {\n path: string;\n status: string;\n}\n\ninterface StatusGroup {\n key: string;\n label: string;\n color: string;\n tagColor: string;\n iconName: string;\n files: FileEntry[];\n}\n\nexport function CommitFilesTab({ scope }: CommitFilesTabProps) {\n const notify = useNotification();\n const { semantic } = useTheme();\n\n const [expandedFiles, setExpandedFiles] = useState<Set<string>>(new Set());\n const [collapsedGroups, setCollapsedGroups] = useState<Set<string>>(new Set());\n const [overallSummary, setOverallSummary] = useState<string | null>(null);\n const [fileSummaries, setFileSummaries] = useState<Record<string, string>>({});\n const [summarizingFile, setSummarizingFile] = useState<string | null>(null);\n const [isSummarizingAll, setIsSummarizingAll] = useState(false);\n\n const { data: gitStatus, isLoading } = useData<{ rows?: FileEntry[]; summaries?: FileEntry[] }>(\n '/v1/plugins/commit/git-status', { params: { scope }, enabled: !!scope },\n );\n\n const summarize = useMutateData<{ scope: string; file?: string }, { summary: string }>(\n '/v1/plugins/commit/summarize',\n );\n\n // Guards\n if (!scope) {return <UIEmptyState description=\"Select a scope to continue\" />;}\n if (isLoading) {return <UICard><UISkeleton active lines={5} /></UICard>;}\n\n const rawFiles = gitStatus?.rows ?? gitStatus?.summaries ?? [];\n const files: FileEntry[] = rawFiles\n .filter((f): f is FileEntry => typeof f?.path === 'string')\n .map((f) => ({ path: f.path, status: f.status ?? 'modified' }));\n\n if (files.length === 0) {\n return (\n <UICard style={{ textAlign: 'center', padding: '48px 0' }}>\n <UIIcon name=\"FileOutlined\" style={{ fontSize: 48, color: semantic.disabled, display: 'block', marginBottom: 16 }} />\n <Text type=\"secondary\">No files changed</Text>\n </UICard>\n );\n }\n\n // Group by status\n const grouped: Record<string, FileEntry[]> = {};\n for (const f of files) {\n (grouped[f.status] ??= []).push(f);\n }\n\n const groups: StatusGroup[] = [\n { key: 'staged', label: 'Staged', color: semantic.success, tagColor: 'green', iconName: 'CheckCircleOutlined', files: grouped['staged'] ?? [] },\n { key: 'modified', label: 'Modified', color: semantic.warning, tagColor: 'orange', iconName: 'EditOutlined', files: grouped['modified'] ?? [] },\n { key: 'untracked', label: 'Untracked', color: semantic.disabled, tagColor: 'default', iconName: 'PlusOutlined', files: grouped['untracked'] ?? [] },\n ].filter((g) => g.files.length > 0);\n\n const toggle = <T,>(set: Set<T>, item: T) => {\n const next = new Set(set);\n if (next.has(item)) { next.delete(item); } else { next.add(item); }\n return next;\n };\n\n const handleSummarizeAll = async () => {\n setIsSummarizingAll(true);\n try {\n const result = await summarize.mutateAsync({ scope });\n setOverallSummary(result.summary);\n notify.success('Summary generated');\n } catch {\n notify.error('Failed to generate summary');\n } finally {\n setIsSummarizingAll(false);\n }\n };\n\n const handleSummarizeFile = async (file: string) => {\n setSummarizingFile(file);\n try {\n const result = await summarize.mutateAsync({ scope, file });\n setFileSummaries((prev) => ({ ...prev, [file]: result.summary }));\n } catch {\n notify.error(`Failed to summarize ${file}`);\n } finally {\n setSummarizingFile(null);\n }\n };\n\n return (\n <div>\n {/* Summary bar */}\n <UICard size=\"small\" style={{ marginBottom: 16 }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <div style={{ display: 'flex', gap: 16, alignItems: 'center' }}>\n <Text type=\"secondary\">{files.length} file{files.length !== 1 ? 's' : ''} changed</Text>\n {groups.map((g) => (\n <UITag key={g.key} color={g.tagColor} style={{ margin: 0 }}>{g.label}: {g.files.length}</UITag>\n ))}\n </div>\n <UIButton size=\"small\" icon={<UIIcon name=\"RobotOutlined\" />} onClick={handleSummarizeAll} loading={isSummarizingAll}>\n Summarize All\n </UIButton>\n </div>\n </UICard>\n\n {/* Overall summary */}\n {overallSummary && (\n <UIAlert\n message=\"AI Summary\"\n description={overallSummary}\n variant=\"info\"\n closable\n onClose={() => setOverallSummary(null)}\n style={{ marginBottom: 16, whiteSpace: 'pre-wrap' }}\n icon={<UIIcon name=\"RobotOutlined\" />}\n />\n )}\n\n {/* File groups */}\n {groups.map((group) => {\n const isCollapsed = collapsedGroups.has(group.key);\n\n return (\n <div key={group.key} style={{ marginBottom: 16 }}>\n {/* Group header */}\n <div\n style={{ display: 'flex', alignItems: 'center', gap: 8, padding: '8px 12px', cursor: 'pointer', borderBottom: `2px solid ${group.color}`, marginBottom: 4 }}\n onClick={() => setCollapsedGroups(toggle(collapsedGroups, group.key))}\n >\n <UIIcon name=\"RightOutlined\" style={{ fontSize: 10, color: semantic.disabled, transform: isCollapsed ? undefined : 'rotate(90deg)', transition: 'transform 0.2s' }} />\n <UIIcon name={group.iconName} style={{ color: group.color }} />\n <Text strong>{group.label}</Text>\n <UIBadge count={group.files.length} style={{ backgroundColor: group.color }} size=\"small\" />\n </div>\n\n {/* File rows */}\n {!isCollapsed && group.files.map((file) => {\n const isExpanded = expandedFiles.has(file.path);\n const fileSummary = fileSummaries[file.path];\n const isSummarizing = summarizingFile === file.path;\n\n return (\n <div key={file.path}>\n <div\n style={{ display: 'flex', alignItems: 'center', gap: 8, padding: '6px 12px', cursor: 'pointer', borderBottom: `1px solid ${semantic.borderPrimary}` }}\n onClick={() => setExpandedFiles(toggle(expandedFiles, file.path))}\n >\n <UIIcon name=\"RightOutlined\" style={{ fontSize: 10, color: semantic.disabled, transform: isExpanded ? 'rotate(90deg)' : undefined, transition: 'transform 0.2s' }} />\n <UIIcon name=\"FileOutlined\" style={{ fontSize: 13, color: semantic.disabled }} />\n <Text style={{ flex: 1, fontFamily: 'monospace', fontSize: 13 }} ellipsis>{file.path}</Text>\n <div style={{ display: 'flex', gap: 4 }} onClick={(e) => e.stopPropagation()}>\n <UIButton variant=\"text\" size=\"small\" icon={<UIIcon name=\"CopyOutlined\" />}\n onClick={() => { navigator.clipboard.writeText(file.path); notify.success('Copied'); }}\n />\n <UIButton variant=\"text\" size=\"small\" icon={<UIIcon name=\"RobotOutlined\" />}\n onClick={() => handleSummarizeFile(file.path)} loading={isSummarizing}\n />\n </div>\n </div>\n\n {isExpanded && (\n <div style={{ borderBottom: `1px solid ${semantic.borderPrimary}` }}>\n {fileSummary && (\n <UIAlert\n message=\"AI Summary\"\n description={fileSummary}\n variant=\"success\"\n closable\n onClose={() => setFileSummaries((prev) => { const n = { ...prev }; delete n[file.path]; return n; })}\n style={{ margin: '8px 12px', whiteSpace: 'pre-wrap' }}\n icon={<UIIcon name=\"RobotOutlined\" />}\n />\n )}\n <FileDiff scope={scope} file={file.path} status={file.status} />\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n}\n\n/**\n * Inline file diff viewer — fetches diff for a single file.\n */\nfunction FileDiff({ scope, file, status }: { scope: string; file: string; status: string }) {\n const { data: diffData, isLoading } = useData<{ diff: string }>(\n '/v1/plugins/commit/diff', { params: { scope, file }, enabled: !!scope && !!file },\n );\n\n if (isLoading) {return <div style={{ padding: 16 }}><UISkeleton active lines={8} /></div>;}\n if (!diffData?.diff) {return <div style={{ padding: 16 }}><Text type=\"secondary\">No changes to display</Text></div>;}\n\n const isNew = status === 'untracked' || status === 'added';\n\n if (isNew) {\n return (\n <div style={{ padding: 16 }}>\n <Text type=\"secondary\" style={{ display: 'block', marginBottom: 8 }}>New file content</Text>\n <pre style={{\n margin: 0, maxHeight: 700, overflow: 'auto',\n fontFamily: 'Monaco, Menlo, monospace', fontSize: 12, lineHeight: 1.5,\n padding: 12, borderRadius: 8,\n background: 'var(--bg-tertiary)', border: '1px solid var(--border-primary)',\n whiteSpace: 'pre-wrap', wordBreak: 'break-word',\n }}>\n {diffData.diff}\n </pre>\n </div>\n );\n }\n\n return (\n <div style={{ padding: 16 }}>\n <UIDiffViewer diff={diffData.diff} maxHeight={700} />\n </div>\n );\n}\n","/**\n * CommitOverview — main commit plugin page.\n * Scope selector + tabbed view (Plan / Files).\n */\n\nimport { useState, useEffect } from 'react';\nimport { useData, UIPage, UIPageHeader, UITabs, UISelect, type SelectData } from '@kb-labs/sdk/studio';\nimport { CommitPlanTab } from '../components/CommitPlanTab';\nimport { CommitFilesTab } from '../components/CommitFilesTab';\n\nexport default function CommitOverview() {\n const [scope, setScope] = useState<string>('');\n\n const { data: scopesData, isLoading: scopesLoading } = useData<SelectData>(\n '/v1/plugins/commit/scopes',\n );\n\n // Auto-select first scope\n useEffect(() => {\n if (scopesData?.options?.length && !scope) {\n setScope(scopesData.value || scopesData.options[0]!.value);\n }\n }, [scopesData, scope]);\n\n const scopeOptions = scopesData?.options?.map((s) => ({\n label: s.label,\n value: s.value,\n })) ?? [];\n\n const tabs = (\n <UITabs\n syncUrl=\"search\"\n items={[\n {\n key: 'plan',\n label: 'Commit Plan',\n children: <CommitPlanTab scope={scope} />,\n },\n {\n key: 'files',\n label: 'Files',\n children: <CommitFilesTab scope={scope} />,\n },\n ]}\n />\n );\n\n return (\n <UIPage>\n <UIPageHeader\n title=\"Commit\"\n description=\"AI-powered commit generation\"\n actions={\n <UISelect\n style={{ width: 260 }}\n placeholder=\"Select repository...\"\n value={scope || undefined}\n onChange={(v) => setScope(v as string)}\n loading={scopesLoading}\n showSearch\n options={scopeOptions}\n />\n }\n tabs={tabs}\n />\n </UIPage>\n );\n}\n"],"names":["Symbol","Object","useToken","theme","Text","UITypographyText","TYPE_COLOR_MAP","CommitPlanTab","param","_statusBadge_planStatus","_planData_plan","scope","token","notify","useNotification","_useState","Set","expanded","setExpanded","_useState1","selected","setSelected","_useState2","editingId","setEditingId","_useState3","editMsg","setEditMsg","_useState4","regeneratingId","setRegeneratingId","_useState5","allowSecrets","setAllowSecrets","_useData","statusData","statusLoading","refetchStatus","_useData1","planData","refetchPlan","refetchAll","generate","useMutateData","apply","push","reset","patch","regenerate","filesChanged","commits","hasPlan","planStatus","isAnyLoading","handleGenerate","UIModalConfirm","UIIcon","onOk","onSuccess","data","UIModalError","UIAlert","s","i","UICard","handleApply","commitIds","_data_result","onError","e","handleSaveEdit","commitId","handleRegenerate","toggle","set","id","next","UIEmptyState","UISpin","statusBadge","badge","UIFlex","UISpace","UIBadge","UIButton","onClick","_data_result1","UIPopconfirm","undefined","UICheckbox","onChange","v","commit","_TYPE_COLOR_MAP_commit_type","_commit_files","_commit_files1","_commit_reasoning","isExpanded","isEditing","isRegenerating","isSelected","typeColor","UITag","UIInput","onPressEnter","UITooltip","UIDropdown","file","CommitFilesTab","semantic","useTheme","expandedFiles","setExpandedFiles","collapsedGroups","setCollapsedGroups","overallSummary","setOverallSummary","fileSummaries","setFileSummaries","summarizingFile","setSummarizingFile","isSummarizingAll","setIsSummarizingAll","gitStatus","isLoading","summarize","UISkeleton","files","rawFiles","_ref","f","_f_status","grouped","_iteratorError","_grouped_staged","_grouped_modified","_grouped_untracked","_grouped","groups","g","item","result","onClose","group","isCollapsed","fileSummary","isSummarizing","navigator","prev","n","FileDiff","status","diffData","UIDiffViewer","CommitOverview","_scopesData_options","setScope","scopesData","scopesLoading","useEffect","scopeOptions","tabs","UITabs","UIPage","UIPageHeader","UISelect"],"mappings":"2HASa,IAAI,EAAE,EAAQ,MAAS,EAAEA,OAAO,GAAG,CAAC,iBAAiB,EAAEA,OAAO,GAAG,CAAC,kBAAkB,EAAEC,OAAO,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,kDAAkD,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,EAClP,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAiF,IAAI,KAAhF,KAAK,IAAI,GAAI,GAAE,GAAG,GAAG,KAAK,IAAI,EAAE,GAAG,EAAG,GAAE,GAAG,EAAE,GAAG,AAAD,EAAG,KAAK,IAAI,EAAE,GAAG,EAAG,GAAE,EAAE,GAAG,AAAD,EAAY,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,IAAK,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,AAAD,EAAG,GAAG,GAAG,EAAE,YAAY,CAAC,IAAI,KAAK,EAAE,EAAE,YAAY,CAAG,KAAK,IAAI,CAAC,CAAC,EAAE,EAAG,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,AAAD,EAAG,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAQ,QAAQ,CAAC,EAAE,EAAQ,GAAG,CAAC,EAAE,EAAQ,IAAI,CAAC,C,cCPxW,EAAO,OAAO,CAAG,EAAjB,I,ghCCUF,IAAQC,EAAaC,A,QAAAA,KAAAA,CAAAA,QAALD,CACVE,EAAOC,EAAAA,gBAAgBA,CA4BvBC,EAAyC,CAC7C,KAAM,QAAS,IAAK,MAAO,KAAM,OAAQ,MAAO,SAChD,SAAU,OAAQ,KAAM,UAAW,MAAO,UAAW,KAAM,OAC3D,GAAI,OAAQ,MAAO,UACrB,EAEO,SAASC,EAAcC,CAA6B,E,UA6I3CC,EAjHEC,EA5BcC,EAAFH,EAAEG,KAAK,CAC3BC,EAAUV,IAAVU,KAAK,CACPC,EAASC,AAAAA,GAAAA,EAAAA,eAAAA,AAAAA,IAEiBC,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAsB,IAAIC,KAAAA,GAAnDC,EAAyBF,CAAAA,CAAAA,EAAAA,CAAfG,EAAeH,CAAAA,CAAAA,EAAAA,CACAI,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAsB,IAAIH,KAAAA,GAAnDI,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACEG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAwB,SAAnDC,EAA2BD,CAAAA,CAAAA,EAAAA,CAAhBE,EAAgBF,CAAAA,CAAAA,EAAAA,CACJG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAS,OAAhCC,EAAuBD,CAAAA,CAAAA,EAAAA,CAAdE,EAAcF,CAAAA,CAAAA,EAAAA,CACcG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAwB,SAA7DC,EAAqCD,CAAAA,CAAAA,EAAAA,CAArBE,EAAqBF,CAAAA,CAAAA,EAAAA,CACJG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAS,OAA1CC,EAAiCD,CAAAA,CAAAA,EAAAA,CAAnBE,EAAmBF,CAAAA,CAAAA,EAAAA,CAEuCG,EAAAA,AAAAA,GAAAA,EAAAA,OAAAA,AAAAA,EAC7E,4BAA6B,CAAE,OAAQ,CAAEvB,MAAAA,CAAM,EAAG,QAAS,CAAC,CAACA,CAAM,GADvDwB,EAAiED,EAAvE,IAAI,CAAyBE,EAA0CF,EAArD,SAAS,CAA0BG,EAAkBH,EAA3B,OAAO,CAGVI,EAAAA,AAAAA,GAAAA,EAAAA,OAAAA,AAAAA,EAC/C,0BAA2B,CAAE,OAAQ,CAAE3B,MAAAA,CAAM,EAAG,QAAS,CAAC,CAACA,CAAM,GADrD4B,EAAmCD,EAAzC,IAAI,CAAqBE,EAAgBF,EAAzB,OAAO,CAIzBG,EAAa,WAAaJ,IAAsBG,GAAe,EAE/DE,EAAWC,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAAmF,+BAC9FC,EAAQD,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAA4D,4BACpEE,EAAOF,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAAsC,2BAC7CG,EAAQH,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAAsC,0BAA2B,UACzEI,EAAQJ,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAAyE,0BAA2B,SAC5GK,EAAaL,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAAwD,wCAErEM,EAAe,MAAfA,CAAAA,EAAed,MAAAA,EAAAA,KAAAA,EAAAA,EAAY,YAAY,AAAD,EAAC,EAAI,EAC3Ce,EAAU,MAAVA,CAAAA,QAAUxC,GAAAA,MAAAA,CAAAA,EAAAA,EAAU,IAAI,AAAD,EAAbA,KAAAA,EAAAA,EAAgB,OAAO,AAAD,EAAC,EAAI,EAAE,CACvCyC,EAAUD,EAAQ,MAAM,CAAG,EAC3BE,GAAaD,EAAU,MAAC,GAAAhB,MAAAA,EAAAA,KAAAA,EAAAA,EAAY,UAAU,AAAD,EAAC,EAAI,QAAW,OAC7DkB,GAAeX,EAAS,SAAS,EAAIE,EAAM,SAAS,EAAIC,EAAK,SAAS,EAAIC,EAAM,SAAS,CAEzFQ,GAAiB,WACjBtB,EACFuB,AAAAA,GAAAA,EAAAA,cAAAA,AAAAA,EAAe,CACb,MAAO,iBACP,KAAM,UAACC,EAAAA,MAAMA,CAAAA,CAAC,KAAK,2B,GACnB,QAAS,4DACT,OAAQ,UACR,OAAQ,SACRC,KAAM,W,OAAMf,EAAS,MAAM,CAAC,CAAE/B,MAAAA,EAAO,aAAc,GAAM,YAAa,EAAK,EAAG,CAAE,UAAW8B,CAAW,E,CACxG,GAEAC,EAAS,MAAM,CAAC,CAAE/B,MAAAA,EAAO,aAAc,GAAO,YAAa,EAAM,EAAG,CAClE+C,UAAW,SAACC,CAAI,EACdlB,IACIkB,EAAK,eAAe,EAAIA,EAAK,OAAO,EACtCC,AAAAA,GAAAA,EAAAA,YAAAA,AAAAA,EAAa,CACX,MAAO,mBACP,MAAO,IACP,QACE,WAAC,O,UACC,UAACC,EAAAA,OAAOA,CAAAA,CAAC,QAASF,EAAK,OAAO,CAAE,QAAQ,QAAQ,SAAQ,GAAC,MAAO,CAAE,aAAc,EAAG,C,GACnF,WAACvD,EAAAA,CAAK,OAAM,G,UAAEuD,EAAK,OAAO,CAAC,MAAM,CAAC,8B,GAClC,UAAC,OAAI,MAAO,CAAE,UAAW,IAAK,SAAU,OAAQ,UAAW,CAAE,E,SAC1DA,EAAK,OAAO,CAAC,GAAG,CAAC,SAACG,CAAC,CAAOC,CAAC,E,MAC1B,WAACC,EAAAA,MAAMA,CAAAA,CAAS,KAAK,QAAQ,MAAO,CAAE,aAAc,CAAE,E,UACpD,WAAC5D,EAAAA,CAAK,MAAO,CAAE,WAAY,YAAa,SAAU,EAAG,E,UAAI0D,EAAE,IAAI,CAAC,IAAEA,EAAE,IAAI,C,GACxE,UAAC,SACD,WAAC1D,EAAAA,CAAK,KAAK,Y,UAAa0D,EAAE,IAAI,CAAC,KAAGA,EAAE,OAAO,C,KAHhCC,E,OASvB,EAEJ,CACF,EAEJ,EAEME,GAAc,SAACC,CAAS,EAC5BtB,EAAM,MAAM,CAAC,CAAEjC,MAAAA,EAAOuD,UAAAA,CAAU,EAAG,CACjCR,UAAW,SAACC,CAAI,E,IAEVQ,EADJ1B,IACI,OAAA0B,CAAAA,EAAAA,EAAK,MAAM,AAAD,EAAVA,KAAAA,EAAAA,EAAa,OAAO,AAAD,IACrBtD,EAAO,OAAO,CAAE,GAAoC,OAAlC8C,EAAK,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,uBACpDtC,EAAY,IAAIL,KAEpB,EACAoD,QAAS,SAACC,CAAC,E,OAAYxD,EAAO,KAAK,CAAE,iBAA0B,OAAVwD,EAAE,OAAO,E,CAChE,EACF,EAuBMC,GAAiB,SAACC,CAAQ,EAC9BxB,EAAM,MAAM,CAAC,CAAEpC,MAAAA,EAAO4D,SAAAA,EAAU,QAAS7C,CAAQ,EAAG,CAClDgC,UAAW,WAAQlB,IAAehB,EAAa,MAAOX,EAAO,OAAO,CAAC,kBAAoB,EACzFuD,QAAS,SAACC,CAAC,E,OAAYxD,EAAO,KAAK,CAAE,kBAA2B,OAAVwD,EAAE,OAAO,E,CACjE,EACF,EAEMG,GAAmB,SAACD,CAAQ,EAChCzC,EAAkByC,GAClBvB,EAAW,MAAM,CAAC,CAAErC,MAAAA,EAAO4D,SAAAA,CAAS,EAAG,CACrCb,UAAW,WAAQlB,IAAeV,EAAkB,MAAOjB,EAAO,OAAO,CAAC,qBAAuB,EACjGuD,QAAS,SAACC,CAAC,EAAcvC,EAAkB,MAAOjB,EAAO,KAAK,CAAE,sBAA+B,OAAVwD,EAAE,OAAO,EAAK,CACrG,EACF,EAEMI,GAAS,SAACC,CAAG,CAAeC,CAAE,EAClC,IAAMC,EAAO,IAAI5D,IAAI0D,GAErB,OADIE,EAAK,GAAG,CAACD,GAAOC,EAAK,MAAM,CAACD,GAAcC,EAAK,GAAG,CAACD,GAChDC,CACT,EAEA,GAAI,CAACjE,EACH,MAAO,UAACkE,EAAAA,YAAYA,CAAAA,CAAC,YAAY,iC,GAEnC,GAAIzC,EACF,MAAO,UAAC0C,EAAAA,MAAMA,CAAAA,CAAC,KAAK,QAAQ,MAAO,CAAE,QAAS,QAAS,OAAQ,WAAY,C,GAG7E,IAAMC,GAA8F,CAClG,KAAM,CAAE,KAAM,UAAW,OAAQ,SAAU,EAC3C,MAAO,CAAE,KAAM,iBAAkB,OAAQ,YAAa,EACtD,QAAS,CAAE,KAAM,UAAW,OAAQ,SAAU,EAC9C,OAAQ,CAAE,KAAM,SAAU,OAAQ,SAAU,CAC9C,EACMC,GAAQ,MAAAvE,CAAAA,EAAAA,EAAW,CAAC2C,GAAW,AAAD,EAAtB3C,EAA2BsE,GAAY,IAAI,CAEzD,MACE,WAAC,OAAI,MAAO,CAAE,QAAS,OAAQ,cAAe,SAAU,IAAKnE,EAAM,QAAQ,AAAC,E,UAE1E,UAACoD,EAAAA,MAAMA,CAAAA,CAAC,KAAK,Q,SACX,WAACiB,EAAAA,MAAMA,CAAAA,CAAC,QAAQ,UAAU,MAAM,S,UAC9B,WAACC,EAAAA,OAAOA,CAAAA,CAAC,KAAM,G,UACb,UAACC,EAAAA,OAAOA,CAAAA,A,iaAAAA,CAAAA,EAAKH,KACb,WAAC5E,EAAAA,CAAK,KAAK,Y,UAAa8C,EAAQ,MAAM,CAAC,UAAQA,AAAmB,IAAnBA,EAAQ,MAAM,CAAS,IAAM,G,GAC5E,WAAC9C,EAAAA,CAAK,KAAK,Y,UAAa6C,EAAa,QAAMA,AAAiB,IAAjBA,EAAqB,IAAM,GAAG,W,MAE1EE,GACC,WAAC+B,EAAAA,OAAOA,CAAAA,CAAC,KAAM,E,UACZ9B,AAAe,UAAfA,IACChC,CAAAA,EAAS,IAAI,CAAG,EACd,WAACgE,EAAAA,QAAQA,CAAAA,CAAC,QAAQ,UAAU,KAAK,QAAQC,QAAS,W,OAAMpB,G,6CAAgB7C,I,wGAAAA,I,EAAAA,I,yKAAY,QAASwB,EAAM,SAAS,CAAE,SAAUS,G,UAAc,mBACnHjC,EAAS,IAAI,CAAC,I,GAGjC,UAACgE,EAAAA,QAAQA,CAAAA,CAAC,QAAQ,UAAU,KAAK,QAAQC,QAAS,W,OAAMpB,I,EAAe,QAASrB,EAAM,SAAS,CAAE,SAAUS,G,SAAc,W,IAK3HD,AAAAA,CAAAA,AAAe,YAAfA,IAA4BA,AAAe,WAAfA,EAAsB,GAClD,UAACgC,EAAAA,QAAQA,CAAAA,CAAC,KAAK,QAAQ,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,qB,GAA0B,QAjF/D,WACjBX,EAAK,MAAM,CAAC,CAAElC,MAAAA,CAAM,EAAG,CACrB+C,UAAW,SAACC,CAAI,MAEVQ,E,EAGWmB,EAJfjD,IACI,OAAA8B,CAAAA,EAAAA,EAAK,MAAM,AAAD,EAAVA,KAAAA,EAAAA,EAAa,OAAO,AAAD,EACrBtD,EAAO,OAAO,CAAE,UAAmD8C,MAAAA,CAA1CA,EAAK,MAAM,CAAC,aAAa,CAAC,kBAAsCA,MAAAA,CAAtBA,EAAK,MAAM,CAAC,MAAM,CAAC,KAAsB,OAAnBA,EAAK,MAAM,CAAC,MAAM,GAE3G9C,EAAO,KAAK,CAAC,MAAD,SAACyE,CAAAA,EAAAA,EAAK,MAAM,AAAD,EAAVA,KAAAA,EAAAA,EAAa,KAAK,AAAD,EAAC,EAAI,cAEvC,EACAlB,QAAS,SAACC,CAAC,E,OAAYxD,EAAO,KAAK,CAAE,gBAAyB,OAAVwD,EAAE,OAAO,E,CAC/D,EACF,EAqEuG,QAASxB,EAAK,SAAS,CAAE,SAAUQ,G,SAAc,M,GAI5I,UAAC+B,EAAAA,QAAQA,CAAAA,CAAC,KAAK,QAAQ,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,gB,GAAqB,QAASF,GAAgB,QAASZ,EAAS,SAAS,CAAE,SAAUW,G,SAAc,Y,GAG7I,UAACkC,EAAAA,YAAYA,CAAAA,CAAC,MAAM,qBAAqB,YAAY,iCAAiC,UA1E9E,WAClBzC,EAAM,MAAM,CAAC,CAAEnC,MAAAA,CAAM,EAAG,CACtB+C,UAAW,WAAQjB,IAAc5B,EAAO,OAAO,CAAC,cAAeQ,EAAY,IAAIL,KAAQE,EAAY,IAAIF,IAAQ,EAC/GoD,QAAS,SAACC,CAAC,E,OAAYxD,EAAO,KAAK,CAAE,iBAA0B,OAAVwD,EAAE,OAAO,E,CAChE,EACF,EAqE0H,OAAO,QAAQ,OAAO,S,SAClI,UAAC,Q,SACC,UAACe,EAAAA,QAAQA,CAAAA,CAAC,KAAK,QAAQ,OAAM,GAAC,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,gB,GAAqB,QAASV,EAAM,SAAS,CAAE,SAAUO,G,SAAc,O,eAWnIX,EAAS,SAAS,EACjB,WAACsB,EAAAA,MAAMA,CAAAA,CAAC,MAAO,CAAE,UAAW,SAAU,QAAS,QAAS,E,UACtD,UAACc,EAAAA,MAAMA,CAAAA,CAAC,KAAK,O,GACb,UAAC,OAAI,MAAO,CAAE,UAAW,EAAG,E,SAC1B,WAAC1E,EAAAA,CAAK,KAAK,Y,UAAY,aAAW6C,EAAa,Y,QAMnD,EAACE,GAAWD,AAAmB,IAAnBA,EAAQ,MAAM,AAAK,GAAM,CAACR,EAAS,SAAS,EACxD,UAACsB,EAAAA,MAAMA,CAAAA,C,SACL,UAACa,EAAAA,YAAYA,CAAAA,CACX,KAAM,UAACrB,EAAAA,MAAMA,CAAAA,CAAC,KAAK,c,GACnB,MAAM,qBACN,YAAaP,EAAe,EAAK,GAAsBA,MAAAA,CAApBA,EAAa,SAAqC,OAA9BA,AAAiB,IAAjBA,EAAqB,IAAM,GAAG,YAAYuC,O,SAEjG,WAACN,EAAAA,OAAOA,CAAAA,CAAC,UAAU,WAAW,MAAM,S,UAClC,UAACO,EAAAA,UAAUA,CAAAA,CAAC,QAASzD,EAAc0D,SAAU,SAACC,CAAC,E,OAAK1D,EAAgB0D,E,WAClE,UAACvF,EAAAA,CAAK,KAAK,YAAY,MAAO,CAAE,SAAU,EAAG,E,SAAG,e,KAElD,UAACgF,EAAAA,QAAQA,CAAAA,CAAC,QAAQ,UAAU,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,qB,GAA0B,QAASF,GAAgB,SAAUL,AAAiB,IAAjBA,E,SAAoB,e,UASvI,CAACP,EAAS,SAAS,EAAIQ,EAAQ,MAAM,CAAG,GAAKA,EAAQ,GAAG,CAAC,SAAC0C,CAAM,EAC/D,IAIkBC,EAAAA,EAAAA,EAoCSC,EACoDC,EAGxEC,EA5CDC,EAAahF,EAAS,GAAG,CAAC2E,EAAO,EAAE,EACnCM,EAAY3E,IAAcqE,EAAO,EAAE,CACnCO,EAAiBtE,IAAmB+D,EAAO,EAAE,CAC7CQ,EAAahF,EAAS,GAAG,CAACwE,EAAO,EAAE,EACnCS,EAAY,MAAAR,CAAAA,EAAAA,CAAc,CAACD,EAAO,IAAI,CAAC,AAAD,EAA1BC,EAA+B,UAEjD,MACE,WAAC7B,EAAAA,MAAMA,CAAAA,CAAiB,KAAK,QAAQ,MAAO,CAAE,QAASmC,EAAiB,GAAM,CAAE,E,UAC9E,WAAClB,EAAAA,MAAMA,CAAAA,CAAC,MAAM,SAAS,IAAK,EAAG,MAAO,CAAE,aAAcgB,EAAarF,EAAM,QAAQ,CAAG,CAAE,E,UACnFwC,AAAe,UAAfA,IACC,UAAC,QAAKiC,QAAS,SAAChB,CAAC,E,OAAKA,EAAE,eAAe,E,WACrC,UAACoB,EAAAA,UAAUA,CAAAA,CAAC,QAASW,EAAYV,SAAU,W,OAAMrE,EAAYoD,GAAOrD,EAAUwE,EAAO,EAAE,E,MAI3F,UAACpC,EAAAA,MAAMA,CAAAA,CACL,KAAK,gBACL,MAAO,CAAE,SAAU,GAAI,OAAQ,UAAW,MAAO5C,EAAM,iBAAiB,CAAE,UAAWqF,EAAa,gBAAkBT,OAAW,WAAY,gBAAiB,EAC5JH,QAAS,W,OAAMnE,EAAYuD,GAAOxD,EAAU2E,EAAO,EAAE,E,IAGvD,UAACU,EAAAA,KAAKA,CAAAA,CAAC,MAAOD,EAAW,MAAO,CAAE,OAAQ,CAAE,E,SAAIT,EAAO,IAAI,A,GAE3D,UAAC,OAAI,MAAO,CAAE,KAAM,EAAG,OAAQ,UAAW,SAAU,CAAE,EAAGP,QAAS,W,OAAMnE,EAAYuD,GAAOxD,EAAU2E,EAAO,EAAE,E,WAC3GM,EACC,WAAC,OAAI,MAAO,CAAE,QAAS,OAAQ,IAAK,EAAG,WAAY,QAAS,EAAGb,QAAS,SAAChB,CAAC,E,OAAKA,EAAE,eAAe,E,YAC9F,UAACkC,EAAAA,OAAOA,CAAAA,CAAC,KAAK,QAAQ,MAAO7E,EAASgE,SAAU,SAACC,CAAC,E,OAAKhE,EAAWgE,E,EAAIa,aAAc,W,OAAMlC,GAAesB,EAAO,EAAE,C,EAAG,UAAS,GAAC,MAAO,CAAE,KAAM,CAAE,C,GAChJ,UAACR,EAAAA,QAAQA,CAAAA,CAAC,KAAK,QAAQ,QAAQ,OAAO,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,e,GAAoB6B,QAAS,W,OAAMf,GAAesB,EAAO,EAAE,C,EAAG,QAAS7C,EAAM,SAAS,A,GAC/I,UAACqC,EAAAA,QAAQA,CAAAA,CAAC,KAAK,QAAQ,QAAQ,OAAO,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,e,GAAoB6B,QAAS,W,OAAM7D,EAAa,K,OAG3G,WAACpB,EAAAA,CAAK,SAAQ,G,UACXwF,EAAO,KAAK,EAAI,WAACxF,EAAAA,CAAK,KAAK,Y,UAAY,IAAEwF,EAAO,KAAK,CAAC,IAAE,I,GACxDA,EAAO,OAAO,C,KAKpBA,EAAO,QAAQ,EAAI,UAACU,EAAAA,KAAKA,CAAAA,CAAC,MAAM,MAAM,MAAO,CAAE,OAAQ,CAAE,E,SAAG,U,GAE7D,UAACG,EAAAA,SAASA,CAAAA,CAAC,MAAQ,GAA4B,sBAA1BX,CAAAA,EAAAA,EAAO,KAAK,AAAD,EAAXA,KAAAA,EAAAA,EAAc,MAAM,AAAD,EAAC,EAAI,EAAE,U,SAC7C,WAAC1F,EAAAA,CAAK,KAAK,YAAY,MAAO,CAAE,SAAU,GAAI,WAAY,QAAS,E,yBAAI2F,CAAAA,EAAAA,EAAO,KAAK,AAAD,EAAXA,KAAAA,EAAAA,EAAc,MAAM,AAAD,EAAC,EAAI,EAAE,S,KAGlGC,AAAAA,OAAAA,CAAAA,EAAAA,EAAO,SAAS,AAAD,EAAfA,KAAAA,EAAAA,EAAkB,UAAU,AAAD,IAAMR,QAChC,UAACiB,EAAAA,SAASA,CAAAA,CAAC,MAAM,gB,SACf,WAACrG,EAAAA,CAAK,KAAK,YAAY,MAAO,CAAE,SAAU,EAAG,E,UAAKwF,AAAAA,CAAAA,AAA8B,IAA9BA,EAAO,SAAS,CAAC,UAAU,AAAK,EAAG,OAAO,CAAC,GAAG,I,KAInGxC,AAAe,UAAfA,IAA0B,CAAC8C,GAC1B,UAACQ,EAAAA,UAAUA,CAAAA,CAAC,QAAS,CAAC,QAAQ,CAAE,KAAM,CACpC,MAAO,CACL,CAAE,IAAK,OAAQ,MAAO,eAAgB,KAAM,UAAClD,EAAAA,MAAMA,CAAAA,CAAC,KAAK,c,GAAmB6B,QAAS,WAAQ7D,EAAaoE,EAAO,EAAE,EAAGjE,EAAWiE,EAAO,OAAO,CAAG,CAAE,EACpJ,CAAE,IAAK,QAAS,MAAO,aAAc,KAAM,UAACpC,EAAAA,MAAMA,CAAAA,CAAC,KAAK,gB,GAAqB6B,QAAS,W,OAAMb,GAAiBoB,EAAO,EAAE,C,CAAE,EACzH,AACH,E,SACE,UAACR,EAAAA,QAAQA,CAAAA,CAAC,QAAQ,OAAO,KAAK,QAAQ,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,c,GAAmB6B,QAAS,SAAChB,CAAC,E,OAAKA,EAAE,eAAe,E,SAKlH4B,GACC,WAAC,OAAI,MAAO,CAAE,WAAYrF,EAAM,SAAS,AAAC,E,UACvCuF,GACC,WAAClB,EAAAA,MAAMA,CAAAA,CAAC,QAAQ,SAAS,MAAO,CAAE,QAASrE,EAAM,OAAO,AAAC,E,UACvD,UAACkE,EAAAA,MAAMA,CAAAA,CAAC,KAAK,O,GACb,UAAC1E,EAAAA,CAAK,KAAK,YAAY,MAAO,CAAE,WAAY,CAAE,E,SAAG,iB,MAGpDwF,EAAO,IAAI,EACV,UAACxF,EAAAA,CAAK,KAAK,YAAY,MAAO,CAAE,WAAY,WAAY,QAAS,QAAS,aAAcQ,EAAM,QAAQ,AAAC,E,SACpGgF,EAAO,IAAI,A,GAGfA,EAAO,KAAK,EAAIA,EAAO,KAAK,CAAC,MAAM,CAAG,GACrC,WAAC,OAAI,MAAO,CAAE,aAAchF,EAAM,QAAQ,AAAC,E,UACzC,WAACR,EAAAA,CAAK,KAAK,YAAY,MAAO,CAAE,SAAU,GAAI,QAAS,QAAS,aAAc,CAAE,E,UAC7EwF,EAAO,KAAK,CAAC,MAAM,CAAC,QAAMA,AAAwB,IAAxBA,EAAO,KAAK,CAAC,MAAM,CAAS,IAAM,G,GAE/D,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,QAAQ,MAAO,CAAE,WAAYpD,EAAM,cAAc,AAAC,E,SAC5DgF,EAAO,KAAK,CAAC,GAAG,CAAC,SAACe,CAAI,CAAE5C,CAAC,E,MACxB,UAAC,OAAY,MAAO,CAAE,QAAS,QAAS,WAAY,YAAa,SAAU,EAAG,E,SAAI4C,C,EAAxE5C,E,QAKjB6B,EAAO,SAAS,EACf,UAAC/B,EAAAA,OAAOA,CAAAA,CACN,QAAQ,eACR,YACE,WAACzD,EAAAA,CAAK,KAAK,Y,UACRwF,EAAO,SAAS,CAAC,WAAW,CAC5BA,AAAgCJ,SAAhCI,EAAO,SAAS,CAAC,UAAU,EAC1B,uB,UAAE,KAAIA,AAAAA,CAAAA,AAA8B,IAA9BA,EAAO,SAAS,CAAC,UAAU,AAAK,EAAG,OAAO,CAAC,GAAG,gB,MAI1D,QAAQ,M,QA3FLA,EAAO,EAAE,CAkG1B,G,EAGN,C,81FC/WA,IAAMxF,EAAOC,EAAAA,gBAAgBA,CAoBtB,SAASuG,EAAepG,CAA8B,E,IAA5BG,EAAFH,EAAEG,KAAK,CAC9BE,EAASC,AAAAA,GAAAA,EAAAA,eAAAA,AAAAA,IACP+F,EAAaC,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,IAAbD,QAAQ,CAE0B9F,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAsB,IAAIC,KAAAA,GAA7D+F,EAAmChG,CAAAA,CAAAA,EAAAA,CAApBiG,EAAoBjG,CAAAA,CAAAA,EAAAA,CACII,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAsB,IAAIH,KAAAA,GAAjEiG,EAAuC9F,CAAAA,CAAAA,EAAAA,CAAtB+F,EAAsB/F,CAAAA,CAAAA,EAAAA,CACFG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAwB,SAA7D6F,EAAqC7F,CAAAA,CAAAA,EAAAA,CAArB8F,EAAqB9F,CAAAA,CAAAA,EAAAA,CACFG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiC,CAAC,MAArE4F,EAAmC5F,CAAAA,CAAAA,EAAAA,CAApB6F,EAAoB7F,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAwB,SAA/D2F,EAAuC3F,CAAAA,CAAAA,EAAAA,CAAtB4F,EAAsB5F,CAAAA,CAAAA,EAAAA,CACEG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAS,OAAlD0F,EAAyC1F,CAAAA,CAAAA,EAAAA,CAAvB2F,EAAuB3F,CAAAA,CAAAA,EAAAA,CAETG,EAAAA,AAAAA,GAAAA,EAAAA,OAAAA,AAAAA,EACrC,gCAAiC,CAAE,OAAQ,CAAEvB,MAAAA,CAAM,EAAG,QAAS,CAAC,CAACA,CAAM,GAD3DgH,EAAyBzF,EAA/B,IAAI,CAAa0F,EAAc1F,EAAd0F,SAAS,CAI5BC,EAAYlF,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAChB,gCAIF,GAAI,CAAChC,EAAQ,MAAO,UAACkE,EAAAA,YAAYA,CAAAA,CAAC,YAAY,4B,GAC9C,GAAI+C,EAAY,MAAO,UAAC5D,EAAAA,MAAMA,CAAAA,C,SAAC,UAAC8D,EAAAA,UAAUA,CAAAA,CAAC,OAAM,GAAC,MAAO,C,KAGzD,IAAMC,EAAqBC,AADV,OAAAC,CAAAA,EAAAA,MAAAA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAW,IAAI,AAAD,EAAC,EAAIN,MAAAA,EAAAA,KAAAA,EAAAA,EAAW,SAAS,AAAD,EAAtCM,EAA2C,EAAE,AAAD,EAE1D,MAAM,CAAC,SAACC,CAAC,E,MAAqB,AAAmB,UAAnB,MAAOA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAG,IAAI,AAAD,C,GAC3C,GAAG,CAAC,SAACA,CAAC,E,IAA8BC,E,MAAxB,CAAE,KAAMD,EAAE,IAAI,CAAE,OAAQ,MAAAC,CAAAA,EAAAA,EAAE,MAAM,AAAD,EAAPA,EAAY,UAAW,C,GAE9D,GAAIJ,AAAiB,IAAjBA,EAAM,MAAM,CACd,MACE,WAAC/D,EAAAA,MAAMA,CAAAA,CAAC,MAAO,CAAE,UAAW,SAAU,QAAS,QAAS,E,UACtD,UAACR,EAAAA,MAAMA,CAAAA,CAAC,KAAK,eAAe,MAAO,CAAE,SAAU,GAAI,MAAOqD,EAAS,QAAQ,CAAE,QAAS,QAAS,aAAc,EAAG,C,GAChH,UAACzG,EAAIA,CAAC,KAAK,Y,SAAY,kB,MAM7B,IAAMgI,EAAuC,CAAC,EACzCC,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,IAAL,QAhBiBJ,EAAAA,EAqBuGK,EACFC,EACIC,EAPrHH,EAAAA,EAAWN,CAAK,CAALA,OAAAA,QAAAA,CAAAA,GAAXM,CAAAA,CAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAAA,EAAAA,GAAkB,CAAlBA,IACMF,EAARM,EADQP,EAANG,EAAAA,KAAAA,CACH,AAAC,OAAAI,CAAAA,EAAAA,AAAAA,CAAO,CAACN,EAAAA,EAAE,MAAM,CAAC,AAAD,EAAhBM,EAAAA,AAAAA,CAAO,CAACN,EAAS,CAAK,EAAE,AAAD,EAAG,IAAI,CAACD,EAClC,C,UAFKG,EAAAA,GAAAA,EAAAA,C,aAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,EAIL,IAAMK,EAAwB,CAC5B,CAAE,IAAK,SAAU,MAAO,SAAU,MAAO7B,EAAS,OAAO,CAAE,SAAU,QAAS,SAAU,sBAAuB,MAAO,MAAAyB,CAAAA,EAAAA,EAAQ,MAAS,AAAD,EAAhBA,EAAqB,EAAE,AAAC,EAC9I,CAAE,IAAK,WAAY,MAAO,WAAY,MAAOzB,EAAS,OAAO,CAAE,SAAU,SAAU,SAAU,eAAgB,MAAO,MAAA0B,CAAAA,EAAAA,EAAQ,QAAW,AAAD,EAAlBA,EAAuB,EAAE,AAAC,EAC9I,CAAE,IAAK,YAAa,MAAO,YAAa,MAAO1B,EAAS,QAAQ,CAAE,SAAU,UAAW,SAAU,eAAgB,MAAO,MAAA2B,CAAAA,EAAAA,EAAQ,SAAY,AAAD,EAAnBA,EAAwB,EAAE,AAAC,EACpJ,CAAC,MAAM,CAAC,SAACG,CAAC,E,OAAKA,EAAE,KAAK,CAAC,MAAM,CAAG,C,GAE3BlE,EAAS,SAAKC,CAAG,CAAUkE,CAAI,EACnC,IAAMhE,EAAO,IAAI5D,IAAI0D,GAErB,OADIE,EAAK,GAAG,CAACgE,GAAShE,EAAK,MAAM,CAACgE,GAAgBhE,EAAK,GAAG,CAACgE,GACpDhE,CACT,EA2BA,MACE,WAAC,O,UAEC,UAACZ,EAAAA,MAAMA,CAAAA,CAAC,KAAK,QAAQ,MAAO,CAAE,aAAc,EAAG,E,SAC7C,WAAC,OAAI,MAAO,CAAE,QAAS,OAAQ,eAAgB,gBAAiB,WAAY,QAAS,E,UACnF,WAAC,OAAI,MAAO,CAAE,QAAS,OAAQ,IAAK,GAAI,WAAY,QAAS,E,UAC3D,WAAC5D,EAAIA,CAAC,KAAK,Y,UAAa2H,EAAM,MAAM,CAAC,QAAMA,AAAiB,IAAjBA,EAAM,MAAM,CAAS,IAAM,GAAG,W,GACxEW,EAAO,GAAG,CAAC,SAACC,CAAC,E,MACZ,WAACrC,EAAAA,KAAKA,CAAAA,CAAa,MAAOqC,EAAE,QAAQ,CAAE,MAAO,CAAE,OAAQ,CAAE,E,UAAIA,EAAE,KAAK,CAAC,KAAGA,EAAE,KAAK,CAAC,MAAM,C,EAA1EA,EAAE,GAAG,C,MAGrB,UAACvD,EAAAA,QAAQA,CAAAA,CAAC,KAAK,QAAQ,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,e,GAAoB,QApC3C,W,qEACzBkE,EAAoB,I,iBAEH,O,uBAAA,C,EAAMG,EAAU,WAAW,CAAC,CAAElH,MAAAA,CAAM,G,eACnDyG,EAAkByB,AADH,SACU,OAAO,EAChChI,EAAO,OAAO,CAAC,qB,6BAEfA,EAAO,KAAK,CAAC,8B,oBAEb6G,EAAoB,I,uBAExB,I,EAyBmG,QAASD,E,SAAkB,e,QAOzHN,GACC,UAACtD,EAAAA,OAAOA,CAAAA,CACN,QAAQ,aACR,YAAasD,EACb,QAAQ,OACR,SAAQ,GACR2B,QAAS,W,OAAM1B,EAAkB,K,EACjC,MAAO,CAAE,aAAc,GAAI,WAAY,UAAW,EAClD,KAAM,UAAC5D,EAAAA,MAAMA,CAAAA,CAAC,KAAK,e,KAKtBkF,EAAO,GAAG,CAAC,SAACK,CAAK,EAChB,IAAMC,EAAc/B,EAAgB,GAAG,CAAC8B,EAAM,GAAG,EAEjD,MACE,WAAC,OAAoB,MAAO,CAAE,aAAc,EAAG,E,UAE7C,WAAC,OACC,MAAO,CAAE,QAAS,OAAQ,WAAY,SAAU,IAAK,EAAG,QAAS,WAAY,OAAQ,UAAW,aAAe,aAAwB,OAAZA,EAAM,KAAK,EAAI,aAAc,CAAE,EAC1J1D,QAAS,W,OAAM6B,EAAmBzC,EAAOwC,EAAiB8B,EAAM,GAAG,E,YAEnE,UAACvF,EAAAA,MAAMA,CAAAA,CAAC,KAAK,gBAAgB,MAAO,CAAE,SAAU,GAAI,MAAOqD,EAAS,QAAQ,CAAE,UAAWmC,EAAcxD,OAAY,gBAAiB,WAAY,gBAAiB,C,GACjK,UAAChC,EAAAA,MAAMA,CAAAA,CAAC,KAAMuF,EAAM,QAAQ,CAAE,MAAO,CAAE,MAAOA,EAAM,KAAK,AAAC,C,GAC1D,UAAC3I,EAAIA,CAAC,OAAM,G,SAAE2I,EAAM,KAAK,A,GACzB,UAAC5D,EAAAA,OAAOA,CAAAA,CAAC,MAAO4D,EAAM,KAAK,CAAC,MAAM,CAAE,MAAO,CAAE,gBAAiBA,EAAM,KAAK,AAAC,EAAG,KAAK,O,MAInF,CAACC,GAAeD,EAAM,KAAK,CAAC,GAAG,CAAC,SAACpC,CAAI,EACpC,IAAMV,EAAac,EAAc,GAAG,CAACJ,EAAK,IAAI,EACxCsC,EAAc5B,CAAa,CAACV,EAAK,IAAI,CAAC,CACtCuC,EAAgB3B,IAAoBZ,EAAK,IAAI,CAEnD,MACE,WAAC,O,UACC,WAAC,OACC,MAAO,CAAE,QAAS,OAAQ,WAAY,SAAU,IAAK,EAAG,QAAS,WAAY,OAAQ,UAAW,aAAe,aAAmC,OAAvBE,EAAS,aAAa,CAAG,EACpJxB,QAAS,W,OAAM2B,EAAiBvC,EAAOsC,EAAeJ,EAAK,IAAI,E,YAE/D,UAACnD,EAAAA,MAAMA,CAAAA,CAAC,KAAK,gBAAgB,MAAO,CAAE,SAAU,GAAI,MAAOqD,EAAS,QAAQ,CAAE,UAAWZ,EAAa,gBAAkBT,OAAW,WAAY,gBAAiB,C,GAChK,UAAChC,EAAAA,MAAMA,CAAAA,CAAC,KAAK,eAAe,MAAO,CAAE,SAAU,GAAI,MAAOqD,EAAS,QAAQ,AAAC,C,GAC5E,UAACzG,EAAIA,CAAC,MAAO,CAAE,KAAM,EAAG,WAAY,YAAa,SAAU,EAAG,EAAG,SAAQ,G,SAAEuG,EAAK,IAAI,A,GACpF,WAAC,OAAI,MAAO,CAAE,QAAS,OAAQ,IAAK,CAAE,EAAGtB,QAAS,SAAChB,CAAC,E,OAAKA,EAAE,eAAe,E,YACxE,UAACe,EAAAA,QAAQA,CAAAA,CAAC,QAAQ,OAAO,KAAK,QAAQ,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,c,GACvD6B,QAAS,WAAQ8D,UAAU,SAAS,CAAC,SAAS,CAACxC,EAAK,IAAI,EAAG9F,EAAO,OAAO,CAAC,SAAW,C,GAEvF,UAACuE,EAAAA,QAAQA,CAAAA,CAAC,QAAQ,OAAO,KAAK,QAAQ,KAAM,UAAC5B,EAAAA,MAAMA,CAAAA,CAAC,KAAK,e,GACvD6B,QAAS,eA/EIsB,E,OAAAA,EA+EsBA,EAAK,IAAI,C,iBA5ExDkC,E,iDAFRrB,EAAmBb,G,iBAEF,O,uBAAA,C,EAAMkB,EAAU,WAAW,CAAC,CAAElH,MAAAA,EAAOgG,KAAAA,CAAK,G,eAAnDkC,EAAS,SACfvB,EAAiB,SAAC8B,CAAI,M,aAAM,KAAKA,G,WAAM,KAACzC,EAAOkC,EAAO,OAAO,G,6WAE7DhI,EAAO,KAAK,CAAE,uBAA2B,OAAL8F,I,oBAEpCa,EAAmB,M,uBAEvB,I,EAqEqE,QAAS0B,C,SAK7DjD,GACC,WAAC,OAAI,MAAO,CAAE,aAAe,aAAmC,OAAvBY,EAAS,aAAa,CAAG,E,UAC/DoC,GACC,UAACpF,EAAAA,OAAOA,CAAAA,CACN,QAAQ,aACR,YAAaoF,EACb,QAAQ,UACR,SAAQ,GACRH,QAAS,W,OAAMxB,EAAiB,SAAC8B,CAAI,EAAO,IAAMC,EAAI,KAAKD,GAA6B,OAArB,OAAOC,CAAC,CAAC1C,EAAK,IAAI,CAAC,CAAS0C,CAAG,E,EAClG,MAAO,CAAE,OAAQ,WAAY,WAAY,UAAW,EACpD,KAAM,UAAC7F,EAAAA,MAAMA,CAAAA,CAAC,KAAK,e,KAGvB,UAAC8F,EAAAA,CAAS,MAAO3I,EAAO,KAAMgG,EAAK,IAAI,CAAE,OAAQA,EAAK,MAAM,A,QA/BxDA,EAAK,IAAI,CAoCvB,G,EAvDQoC,EAAM,GAAG,CA0DvB,G,EAGN,CAKA,SAASO,EAAS9I,CAAwE,E,IAAtEG,EAAFH,EAAEG,KAAK,CAAEgG,EAATnG,EAASmG,IAAI,CAAE4C,EAAf/I,EAAe+I,MAAM,CACCrH,EAAAA,AAAAA,GAAAA,EAAAA,OAAAA,AAAAA,EACpC,0BAA2B,CAAE,OAAQ,CAAEvB,MAAAA,EAAOgG,KAAAA,CAAK,EAAG,QAAS,CAAC,CAAChG,GAAS,CAAC,CAACgG,CAAK,GADrE6C,EAAwBtH,EAA9B,IAAI,QAIZ,AAJsCA,EAAd0F,SAAS,CAIV,UAAC,OAAI,MAAO,CAAE,QAAS,EAAG,E,SAAG,UAACE,EAAAA,UAAUA,CAAAA,CAAC,OAAM,GAAC,MAAO,C,KACzE0B,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAU,IAAI,AAAD,EAEJD,AAAW,cAAXA,GAA0BA,AAAW,UAAXA,EAIpC,WAAC,OAAI,MAAO,CAAE,QAAS,EAAG,E,UACxB,UAACnJ,EAAIA,CAAC,KAAK,YAAY,MAAO,CAAE,QAAS,QAAS,aAAc,CAAE,E,SAAG,kB,GACrE,UAAC,OAAI,MAAO,CACV,OAAQ,EAAG,UAAW,IAAK,SAAU,OACrC,WAAY,2BAA4B,SAAU,GAAI,WAAY,IAClE,QAAS,GAAI,aAAc,EAC3B,WAAY,qBAAsB,OAAQ,kCAC1C,WAAY,WAAY,UAAW,YACrC,E,SACGoJ,EAAS,IAAI,A,MAOpB,UAAC,OAAI,MAAO,CAAE,QAAS,EAAG,E,SACxB,UAACC,EAAAA,YAAYA,CAAAA,CAAC,KAAMD,EAAS,IAAI,CAAE,UAAW,G,KAvBrB,UAAC,OAAI,MAAO,CAAE,QAAS,EAAG,E,SAAG,UAACpJ,EAAIA,CAAC,KAAK,Y,SAAY,uB,IA0BnF,C,sGCtOe,SAASsJ,IACtB,I,IAaqBC,EAbK5I,E,4CAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,M,sLAAA,I,qKAAA,G,uOAAA,G,kLAApCJ,EAAmBI,CAAAA,CAAAA,EAAAA,CAAZ6I,EAAY7I,CAAAA,CAAAA,EAAAA,CAE6BmB,EAAAA,AAAAA,GAAAA,EAAAA,OAAAA,AAAAA,EACrD,6BADY2H,EAAyC3H,EAA/C,IAAI,CAAyB4H,EAAkB5H,EAA7B,SAAS,CAKnC6H,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,W,IACJJ,CAAAA,QAAAA,GAAAA,MAAAA,CAAAA,EAAAA,EAAY,OAAO,AAAD,EAAlBA,KAAAA,EAAAA,EAAqB,MAAM,GAAI,CAAChJ,GAClCiJ,EAASC,EAAW,KAAK,EAAIA,EAAW,OAAO,CAAC,EAAE,CAAE,KAAK,CAE7D,EAAG,CAACA,EAAYlJ,EAAM,EAEtB,IAAMqJ,EAAe,MAAfA,CAAAA,QAAeL,GAAAA,MAAAA,CAAAA,EAAAA,EAAY,OAAO,AAAD,EAAlBA,KAAAA,EAAAA,EAAqB,GAAG,CAAC,SAAC7F,CAAC,E,MAAM,CACpD,MAAOA,EAAE,KAAK,CACd,MAAOA,EAAE,KAAK,AAChB,C,MAAO,EAAE,CAEHmG,EACJ,UAACC,EAAAA,MAAMA,CAAAA,CACL,QAAQ,SACR,MAAO,CACL,CACE,IAAK,OACL,MAAO,cACP,SAAU,UAAC3J,EAAaA,CAAC,MAAOI,C,EAClC,EACA,CACE,IAAK,QACL,MAAO,QACP,SAAU,UAACiG,EAAcA,CAAC,MAAOjG,C,EACnC,EACD,A,GAIL,MACE,UAACwJ,EAAAA,MAAMA,CAAAA,C,SACL,UAACC,EAAAA,YAAYA,CAAAA,CACX,MAAM,SACN,YAAY,+BACZ,QACE,UAACC,EAAAA,QAAQA,CAAAA,CACP,MAAO,CAAE,MAAO,GAAI,EACpB,YAAY,uBACZ,MAAO1J,GAAS6E,OAChBE,SAAU,SAACC,CAAC,E,OAAKiE,EAASjE,E,EAC1B,QAASmE,EACT,WAAU,GACV,QAASE,C,GAGb,KAAMC,C,IAId,C"}
|
|
1
|
+
{"version":3,"file":"__federation_expose_CommitOverview.js","sources":["webpack://@kb-labs/commit-entry/../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@kb-labs/commit-entry/../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","webpack://@kb-labs/commit-entry/./src/studio/components/CommitPlanTab.tsx","webpack://@kb-labs/commit-entry/./src/studio/components/CommitFilesTab.tsx","webpack://@kb-labs/commit-entry/./src/studio/pages/CommitOverview.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * CommitPlanTab — commit plan viewer with generate/apply/push/reset actions.\n */\n\nimport { useState } from 'react';\nimport { theme } from 'antd';\nimport {\n useData, useMutateData, useNotification,\n UICard, UIButton, UIEmptyState, UISpin, UIAlert, UIBadge, UITag,\n UITooltip, UIIcon, UISpace, UICheckbox, UIInput, UIDropdown,\n UIPopconfirm, UITypographyText, UIModalConfirm, UIModalError, UIFlex,\n} from '@kb-labs/sdk/studio';\n\nconst { useToken } = theme;\nconst Text = UITypographyText;\n\ninterface CommitPlanTabProps {\n scope: string;\n}\n\ninterface Commit {\n id: string;\n type: string;\n scope?: string;\n message: string;\n body?: string;\n files?: string[];\n breaking?: boolean;\n reasoning?: { explanation: string; confidence?: number };\n}\n\ninterface PlanData {\n plan?: { commits: Commit[] };\n}\n\ninterface StatusData {\n filesChanged: number;\n hasPlan: boolean;\n planStatus: string;\n}\n\n// Semantic commit type → Ant Design token color name\nconst TYPE_COLOR_MAP: Record<string, string> = {\n feat: 'green', fix: 'red', docs: 'blue', style: 'purple',\n refactor: 'cyan', test: 'magenta', chore: 'default', perf: 'gold',\n ci: 'blue', build: 'geekblue',\n};\n\nexport function CommitPlanTab({ scope }: CommitPlanTabProps) {\n const { token } = useToken();\n const notify = useNotification();\n\n const [expanded, setExpanded] = useState<Set<string>>(new Set());\n const [selected, setSelected] = useState<Set<string>>(new Set());\n const [editingId, setEditingId] = useState<string | null>(null);\n const [editMsg, setEditMsg] = useState('');\n const [regeneratingId, setRegeneratingId] = useState<string | null>(null);\n const [allowSecrets, setAllowSecrets] = useState(false);\n\n const { data: statusData, isLoading: statusLoading, refetch: refetchStatus } = useData<StatusData>(\n '/v1/plugins/commit/status', { params: { scope }, enabled: !!scope },\n );\n const { data: planData, refetch: refetchPlan } = useData<PlanData>(\n '/v1/plugins/commit/plan', { params: { scope }, enabled: !!scope },\n );\n\n const refetchAll = () => { void refetchStatus(); void refetchPlan(); };\n\n const generate = useMutateData<{ scope: string; allowSecrets: boolean; autoConfirm: boolean }, any>('/v1/plugins/commit/generate');\n const apply = useMutateData<{ scope: string; commitIds?: string[] }, any>('/v1/plugins/commit/apply');\n const push = useMutateData<{ scope: string }, any>('/v1/plugins/commit/push');\n const reset = useMutateData<{ scope: string }, any>('/v1/plugins/commit/plan', 'DELETE');\n const patch = useMutateData<{ scope: string; commitId: string; message: string }, any>('/v1/plugins/commit/plan', 'PATCH');\n const regenerate = useMutateData<{ scope: string; commitId: string }, any>('/v1/plugins/commit/regenerate-commit');\n\n const filesChanged = statusData?.filesChanged ?? 0;\n const commits = planData?.plan?.commits ?? [];\n const hasPlan = commits.length > 0;\n const planStatus = hasPlan ? (statusData?.planStatus ?? 'ready') : 'idle';\n const isAnyLoading = generate.isLoading || apply.isLoading || push.isLoading || reset.isLoading;\n\n const handleGenerate = () => {\n if (allowSecrets) {\n UIModalConfirm({\n title: 'Allow Secrets?',\n icon: <UIIcon name=\"ExclamationCircleOutlined\" />,\n content: 'Files may contain secrets. This bypasses security checks.',\n okText: 'Proceed',\n okType: 'danger',\n onOk: () => generate.mutate({ scope, allowSecrets: true, autoConfirm: true }, { onSuccess: refetchAll }),\n });\n } else {\n generate.mutate({ scope, allowSecrets: false, autoConfirm: false }, {\n onSuccess: (data: any) => {\n refetchAll();\n if (data.secretsDetected && data.secrets) {\n UIModalError({\n title: 'Secrets Detected',\n width: 600,\n content: (\n <div>\n <UIAlert message={data.message} variant=\"error\" showIcon style={{ marginBottom: 16 }} />\n <Text strong>{data.secrets.length} potential secret(s) found.</Text>\n <div style={{ maxHeight: 300, overflow: 'auto', marginTop: 8 }}>\n {data.secrets.map((s: any, i: number) => (\n <UICard key={i} size=\"small\" style={{ marginBottom: 8 }}>\n <Text style={{ fontFamily: 'monospace', fontSize: 12 }}>{s.file}:{s.line}</Text>\n <br />\n <Text type=\"secondary\">{s.type}: {s.matched}</Text>\n </UICard>\n ))}\n </div>\n </div>\n ),\n });\n }\n },\n });\n }\n };\n\n const handleApply = (commitIds?: string[]) => {\n apply.mutate({ scope, commitIds }, {\n onSuccess: (data: any) => {\n refetchAll();\n if (data.result?.success) {\n notify.success(`${data.result.appliedCommits.length} commit(s) applied`);\n setSelected(new Set());\n }\n },\n onError: (e: Error) => notify.error(`Apply failed: ${e.message}`),\n });\n };\n\n const handlePush = () => {\n push.mutate({ scope }, {\n onSuccess: (data: any) => {\n refetchAll();\n if (data.result?.success) {\n notify.success(`Pushed ${data.result.commitsPushed} commit(s) to ${data.result.remote}/${data.result.branch}`);\n setSelected(new Set());\n setExpanded(new Set());\n } else {\n notify.error(data.result?.error ?? 'Push failed');\n }\n },\n onError: (e: Error) => notify.error(`Push failed: ${e.message}`),\n });\n };\n\n const handleReset = () => {\n reset.mutate({ scope }, {\n onSuccess: () => { refetchAll(); notify.success('Plan reset'); setSelected(new Set()); setExpanded(new Set()); },\n onError: (e: Error) => notify.error(`Reset failed: ${e.message}`),\n });\n };\n\n const handleSaveEdit = (commitId: string) => {\n patch.mutate({ scope, commitId, message: editMsg }, {\n onSuccess: () => { refetchPlan(); setEditingId(null); notify.success('Message updated'); },\n onError: (e: Error) => notify.error(`Update failed: ${e.message}`),\n });\n };\n\n const handleRegenerate = (commitId: string) => {\n setRegeneratingId(commitId);\n regenerate.mutate({ scope, commitId }, {\n onSuccess: () => { refetchPlan(); setRegeneratingId(null); notify.success('Commit regenerated'); },\n onError: (e: Error) => { setRegeneratingId(null); notify.error(`Regenerate failed: ${e.message}`); },\n });\n };\n\n const toggle = (set: Set<string>, id: string) => {\n const next = new Set(set);\n if (next.has(id)) { next.delete(id); } else { next.add(id); }\n return next;\n };\n\n if (!scope) {\n return <UIEmptyState description=\"Select a repository to continue\" />;\n }\n if (statusLoading) {\n return <UISpin size=\"large\" style={{ display: 'block', margin: '48px auto' }} />;\n }\n\n const statusBadge: Record<string, { text: string; status: 'default' | 'processing' | 'success' }> = {\n idle: { text: 'No Plan', status: 'default' },\n ready: { text: 'Ready to Apply', status: 'processing' },\n applied: { text: 'Applied', status: 'success' },\n pushed: { text: 'Pushed', status: 'success' },\n };\n const badge = statusBadge[planStatus] ?? statusBadge.idle!;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: token.marginSM }}>\n {/* Summary bar */}\n <UICard size=\"small\">\n <UIFlex justify=\"between\" align=\"center\">\n <UISpace size={24}>\n <UIBadge {...badge} />\n <Text type=\"secondary\">{commits.length} commit{commits.length !== 1 ? 's' : ''}</Text>\n <Text type=\"secondary\">{filesChanged} file{filesChanged !== 1 ? 's' : ''} changed</Text>\n </UISpace>\n {hasPlan && (\n <UISpace size={8}>\n {planStatus === 'ready' && (\n selected.size > 0 ? (\n <UIButton variant=\"primary\" size=\"small\" onClick={() => handleApply([...selected])} loading={apply.isLoading} disabled={isAnyLoading}>\n Apply Selected ({selected.size})\n </UIButton>\n ) : (\n <UIButton variant=\"primary\" size=\"small\" onClick={() => handleApply()} loading={apply.isLoading} disabled={isAnyLoading}>\n Apply All\n </UIButton>\n )\n )}\n {(planStatus === 'applied' || planStatus === 'pushed') && (\n <UIButton size=\"small\" icon={<UIIcon name=\"CloudUploadOutlined\" />} onClick={handlePush} loading={push.isLoading} disabled={isAnyLoading}>\n Push\n </UIButton>\n )}\n <UIButton size=\"small\" icon={<UIIcon name=\"ReloadOutlined\" />} onClick={handleGenerate} loading={generate.isLoading} disabled={isAnyLoading}>\n Regenerate\n </UIButton>\n <UIPopconfirm title=\"Reset commit plan?\" description=\"This deletes the current plan.\" onConfirm={handleReset} okText=\"Reset\" okType=\"danger\">\n <span>\n <UIButton size=\"small\" danger icon={<UIIcon name=\"DeleteOutlined\" />} loading={reset.isLoading} disabled={isAnyLoading}>\n Reset\n </UIButton>\n </span>\n </UIPopconfirm>\n </UISpace>\n )}\n </UIFlex>\n </UICard>\n\n {/* Generating */}\n {generate.isLoading && (\n <UICard style={{ textAlign: 'center', padding: '48px 0' }}>\n <UISpin size=\"large\" />\n <div style={{ marginTop: 16 }}>\n <Text type=\"secondary\">Analyzing {filesChanged} files...</Text>\n </div>\n </UICard>\n )}\n\n {/* Empty state */}\n {(!hasPlan || commits.length === 0) && !generate.isLoading && (\n <UICard>\n <UIEmptyState\n icon={<UIIcon name=\"FileOutlined\" />}\n title=\"No commit plan yet\"\n description={filesChanged > 0 ? `${filesChanged} file${filesChanged !== 1 ? 's' : ''} changed` : undefined}\n >\n <UISpace direction=\"vertical\" align=\"center\">\n <UICheckbox checked={allowSecrets} onChange={(v) => setAllowSecrets(v)}>\n <Text type=\"secondary\" style={{ fontSize: 13 }}>Allow secrets</Text>\n </UICheckbox>\n <UIButton variant=\"primary\" icon={<UIIcon name=\"ThunderboltOutlined\" />} onClick={handleGenerate} disabled={filesChanged === 0}>\n Generate Plan\n </UIButton>\n </UISpace>\n </UIEmptyState>\n </UICard>\n )}\n\n {/* Commit list */}\n {!generate.isLoading && commits.length > 0 && commits.map((commit) => {\n const isExpanded = expanded.has(commit.id);\n const isEditing = editingId === commit.id;\n const isRegenerating = regeneratingId === commit.id;\n const isSelected = selected.has(commit.id);\n const typeColor = TYPE_COLOR_MAP[commit.type] ?? 'default';\n\n return (\n <UICard key={commit.id} size=\"small\" style={{ opacity: isRegenerating ? 0.6 : 1 }}>\n <UIFlex align=\"center\" gap={8} style={{ marginBottom: isExpanded ? token.marginSM : 0 }}>\n {planStatus === 'ready' && (\n <span onClick={(e) => e.stopPropagation()}>\n <UICheckbox checked={isSelected} onChange={() => setSelected(toggle(selected, commit.id))} />\n </span>\n )}\n\n <UIIcon\n name=\"RightOutlined\"\n style={{ fontSize: 11, cursor: 'pointer', color: token.colorTextTertiary, transform: isExpanded ? 'rotate(90deg)' : undefined, transition: 'transform 0.2s' }}\n onClick={() => setExpanded(toggle(expanded, commit.id))}\n />\n\n <UITag color={typeColor} style={{ margin: 0 }}>{commit.type}</UITag>\n\n <div style={{ flex: 1, cursor: 'pointer', minWidth: 0 }} onClick={() => setExpanded(toggle(expanded, commit.id))}>\n {isEditing ? (\n <div style={{ display: 'flex', gap: 8, alignItems: 'center' }} onClick={(e) => e.stopPropagation()}>\n <UIInput size=\"small\" value={editMsg} onChange={(v) => setEditMsg(v)} onPressEnter={() => handleSaveEdit(commit.id)} autoFocus style={{ flex: 1 }} />\n <UIButton size=\"small\" variant=\"text\" icon={<UIIcon name=\"CheckOutlined\" />} onClick={() => handleSaveEdit(commit.id)} loading={patch.isLoading} />\n <UIButton size=\"small\" variant=\"text\" icon={<UIIcon name=\"CloseOutlined\" />} onClick={() => setEditingId(null)} />\n </div>\n ) : (\n <Text ellipsis>\n {commit.scope && <Text type=\"secondary\">({commit.scope}){' '}</Text>}\n {commit.message}\n </Text>\n )}\n </div>\n\n {commit.breaking && <UITag color=\"red\" style={{ margin: 0 }}>BREAKING</UITag>}\n\n <UITooltip title={`${commit.files?.length ?? 0} files`}>\n <Text type=\"secondary\" style={{ fontSize: 12, whiteSpace: 'nowrap' }}>{commit.files?.length ?? 0} files</Text>\n </UITooltip>\n\n {commit.reasoning?.confidence !== undefined && (\n <UITooltip title=\"AI confidence\">\n <Text type=\"secondary\" style={{ fontSize: 12 }}>{(commit.reasoning.confidence * 100).toFixed(0)}%</Text>\n </UITooltip>\n )}\n\n {planStatus === 'ready' && !isEditing && (\n <UIDropdown trigger={['click']} menu={{\n items: [\n { key: 'edit', label: 'Edit message', icon: <UIIcon name=\"EditOutlined\" />, onClick: () => { setEditingId(commit.id); setEditMsg(commit.message); } },\n { key: 'regen', label: 'Regenerate', icon: <UIIcon name=\"ReloadOutlined\" />, onClick: () => handleRegenerate(commit.id) },\n ],\n }}>\n <UIButton variant=\"text\" size=\"small\" icon={<UIIcon name=\"MoreOutlined\" />} onClick={(e) => e.stopPropagation()} />\n </UIDropdown>\n )}\n </UIFlex>\n\n {isExpanded && (\n <div style={{ paddingTop: token.paddingSM }}>\n {isRegenerating && (\n <UIFlex justify=\"center\" style={{ padding: token.padding }}>\n <UISpin size=\"small\" />\n <Text type=\"secondary\" style={{ marginLeft: 8 }}>Regenerating...</Text>\n </UIFlex>\n )}\n {commit.body && (\n <Text type=\"secondary\" style={{ whiteSpace: 'pre-wrap', display: 'block', marginBottom: token.marginSM }}>\n {commit.body}\n </Text>\n )}\n {commit.files && commit.files.length > 0 && (\n <div style={{ marginBottom: token.marginSM }}>\n <Text type=\"secondary\" style={{ fontSize: 12, display: 'block', marginBottom: 4 }}>\n {commit.files.length} file{commit.files.length !== 1 ? 's' : ''}\n </Text>\n <UICard size=\"small\" style={{ background: token.colorFillAlter }}>\n {commit.files.map((file, i) => (\n <div key={i} style={{ padding: '2px 0', fontFamily: 'monospace', fontSize: 12 }}>{file}</div>\n ))}\n </UICard>\n </div>\n )}\n {commit.reasoning && (\n <UIAlert\n message=\"AI Reasoning\"\n description={\n <Text type=\"secondary\">\n {commit.reasoning.explanation}\n {commit.reasoning.confidence !== undefined && (\n <> ({(commit.reasoning.confidence * 100).toFixed(0)}% confidence)</>\n )}\n </Text>\n }\n variant=\"info\"\n />\n )}\n </div>\n )}\n </UICard>\n );\n })}\n </div>\n );\n}\n","/**\n * CommitFilesTab — file viewer grouped by status with expandable diffs and AI summaries.\n */\n\nimport { useState } from 'react';\nimport { useData, useMutateData, useNotification, useTheme, UICard, UIButton, UIEmptyState, UISkeleton, UIAlert, UITag, UIBadge, UIIcon, UITypographyText, UIDiffViewer } from '@kb-labs/sdk/studio';\n\nconst Text = UITypographyText;\n\ninterface CommitFilesTabProps {\n scope: string;\n}\n\ninterface FileEntry {\n path: string;\n status: string;\n}\n\ninterface StatusGroup {\n key: string;\n label: string;\n color: string;\n tagColor: string;\n iconName: string;\n files: FileEntry[];\n}\n\nexport function CommitFilesTab({ scope }: CommitFilesTabProps) {\n const notify = useNotification();\n const { semantic } = useTheme();\n\n const [expandedFiles, setExpandedFiles] = useState<Set<string>>(new Set());\n const [collapsedGroups, setCollapsedGroups] = useState<Set<string>>(new Set());\n const [overallSummary, setOverallSummary] = useState<string | null>(null);\n const [fileSummaries, setFileSummaries] = useState<Record<string, string>>({});\n const [summarizingFile, setSummarizingFile] = useState<string | null>(null);\n const [isSummarizingAll, setIsSummarizingAll] = useState(false);\n\n const { data: gitStatus, isLoading } = useData<{ rows?: FileEntry[]; summaries?: FileEntry[] }>(\n '/v1/plugins/commit/git-status', { params: { scope }, enabled: !!scope },\n );\n\n const summarize = useMutateData<{ scope: string; file?: string }, { summary: string }>(\n '/v1/plugins/commit/summarize',\n );\n\n // Guards\n if (!scope) {return <UIEmptyState description=\"Select a scope to continue\" />;}\n if (isLoading) {return <UICard><UISkeleton active lines={5} /></UICard>;}\n\n const rawFiles = gitStatus?.rows ?? gitStatus?.summaries ?? [];\n const files: FileEntry[] = rawFiles\n .filter((f): f is FileEntry => typeof f?.path === 'string')\n .map((f) => ({ path: f.path, status: f.status ?? 'modified' }));\n\n if (files.length === 0) {\n return (\n <UICard style={{ textAlign: 'center', padding: '48px 0' }}>\n <UIIcon name=\"FileOutlined\" style={{ fontSize: 48, color: semantic.disabled, display: 'block', marginBottom: 16 }} />\n <Text type=\"secondary\">No files changed</Text>\n </UICard>\n );\n }\n\n // Group by status\n const grouped: Record<string, FileEntry[]> = {};\n for (const f of files) {\n (grouped[f.status] ??= []).push(f);\n }\n\n const groups: StatusGroup[] = [\n { key: 'staged', label: 'Staged', color: semantic.success, tagColor: 'green', iconName: 'CheckCircleOutlined', files: grouped['staged'] ?? [] },\n { key: 'modified', label: 'Modified', color: semantic.warning, tagColor: 'orange', iconName: 'EditOutlined', files: grouped['modified'] ?? [] },\n { key: 'untracked', label: 'Untracked', color: semantic.disabled, tagColor: 'default', iconName: 'PlusOutlined', files: grouped['untracked'] ?? [] },\n ].filter((g) => g.files.length > 0);\n\n const toggle = <T,>(set: Set<T>, item: T) => {\n const next = new Set(set);\n if (next.has(item)) { next.delete(item); } else { next.add(item); }\n return next;\n };\n\n const handleSummarizeAll = async () => {\n setIsSummarizingAll(true);\n try {\n const result = await summarize.mutateAsync({ scope });\n setOverallSummary(result.summary);\n notify.success('Summary generated');\n } catch {\n notify.error('Failed to generate summary');\n } finally {\n setIsSummarizingAll(false);\n }\n };\n\n const handleSummarizeFile = async (file: string) => {\n setSummarizingFile(file);\n try {\n const result = await summarize.mutateAsync({ scope, file });\n setFileSummaries((prev) => ({ ...prev, [file]: result.summary }));\n } catch {\n notify.error(`Failed to summarize ${file}`);\n } finally {\n setSummarizingFile(null);\n }\n };\n\n return (\n <div>\n {/* Summary bar */}\n <UICard size=\"small\" style={{ marginBottom: 16 }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <div style={{ display: 'flex', gap: 16, alignItems: 'center' }}>\n <Text type=\"secondary\">{files.length} file{files.length !== 1 ? 's' : ''} changed</Text>\n {groups.map((g) => (\n <UITag key={g.key} color={g.tagColor} style={{ margin: 0 }}>{g.label}: {g.files.length}</UITag>\n ))}\n </div>\n <UIButton size=\"small\" icon={<UIIcon name=\"RobotOutlined\" />} onClick={handleSummarizeAll} loading={isSummarizingAll}>\n Summarize All\n </UIButton>\n </div>\n </UICard>\n\n {/* Overall summary */}\n {overallSummary && (\n <UIAlert\n message=\"AI Summary\"\n description={overallSummary}\n variant=\"info\"\n closable\n onClose={() => setOverallSummary(null)}\n style={{ marginBottom: 16, whiteSpace: 'pre-wrap' }}\n icon={<UIIcon name=\"RobotOutlined\" />}\n />\n )}\n\n {/* File groups */}\n {groups.map((group) => {\n const isCollapsed = collapsedGroups.has(group.key);\n\n return (\n <div key={group.key} style={{ marginBottom: 16 }}>\n {/* Group header */}\n <div\n style={{ display: 'flex', alignItems: 'center', gap: 8, padding: '8px 12px', cursor: 'pointer', borderBottom: `2px solid ${group.color}`, marginBottom: 4 }}\n onClick={() => setCollapsedGroups(toggle(collapsedGroups, group.key))}\n >\n <UIIcon name=\"RightOutlined\" style={{ fontSize: 10, color: semantic.disabled, transform: isCollapsed ? undefined : 'rotate(90deg)', transition: 'transform 0.2s' }} />\n <UIIcon name={group.iconName} style={{ color: group.color }} />\n <Text strong>{group.label}</Text>\n <UIBadge count={group.files.length} style={{ backgroundColor: group.color }} size=\"small\" />\n </div>\n\n {/* File rows */}\n {!isCollapsed && group.files.map((file) => {\n const isExpanded = expandedFiles.has(file.path);\n const fileSummary = fileSummaries[file.path];\n const isSummarizing = summarizingFile === file.path;\n\n return (\n <div key={file.path}>\n <div\n style={{ display: 'flex', alignItems: 'center', gap: 8, padding: '6px 12px', cursor: 'pointer', borderBottom: `1px solid ${semantic.borderPrimary}` }}\n onClick={() => setExpandedFiles(toggle(expandedFiles, file.path))}\n >\n <UIIcon name=\"RightOutlined\" style={{ fontSize: 10, color: semantic.disabled, transform: isExpanded ? 'rotate(90deg)' : undefined, transition: 'transform 0.2s' }} />\n <UIIcon name=\"FileOutlined\" style={{ fontSize: 13, color: semantic.disabled }} />\n <Text style={{ flex: 1, fontFamily: 'monospace', fontSize: 13 }} ellipsis>{file.path}</Text>\n <div style={{ display: 'flex', gap: 4 }} onClick={(e) => e.stopPropagation()}>\n <UIButton variant=\"text\" size=\"small\" icon={<UIIcon name=\"CopyOutlined\" />}\n onClick={() => { navigator.clipboard.writeText(file.path); notify.success('Copied'); }}\n />\n <UIButton variant=\"text\" size=\"small\" icon={<UIIcon name=\"RobotOutlined\" />}\n onClick={() => handleSummarizeFile(file.path)} loading={isSummarizing}\n />\n </div>\n </div>\n\n {isExpanded && (\n <div style={{ borderBottom: `1px solid ${semantic.borderPrimary}` }}>\n {fileSummary && (\n <UIAlert\n message=\"AI Summary\"\n description={fileSummary}\n variant=\"success\"\n closable\n onClose={() => setFileSummaries((prev) => { const n = { ...prev }; delete n[file.path]; return n; })}\n style={{ margin: '8px 12px', whiteSpace: 'pre-wrap' }}\n icon={<UIIcon name=\"RobotOutlined\" />}\n />\n )}\n <FileDiff scope={scope} file={file.path} status={file.status} />\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n}\n\n/**\n * Inline file diff viewer — fetches diff for a single file.\n */\nfunction FileDiff({ scope, file, status }: { scope: string; file: string; status: string }) {\n const { data: diffData, isLoading } = useData<{ diff: string }>(\n '/v1/plugins/commit/diff', { params: { scope, file }, enabled: !!scope && !!file },\n );\n\n if (isLoading) {return <div style={{ padding: 16 }}><UISkeleton active lines={8} /></div>;}\n if (!diffData?.diff) {return <div style={{ padding: 16 }}><Text type=\"secondary\">No changes to display</Text></div>;}\n\n const isNew = status === 'untracked' || status === 'added';\n\n if (isNew) {\n return (\n <div style={{ padding: 16 }}>\n <Text type=\"secondary\" style={{ display: 'block', marginBottom: 8 }}>New file content</Text>\n <pre style={{\n margin: 0, maxHeight: 700, overflow: 'auto',\n fontFamily: 'Monaco, Menlo, monospace', fontSize: 12, lineHeight: 1.5,\n padding: 12, borderRadius: 8,\n background: 'var(--bg-tertiary)', border: '1px solid var(--border-primary)',\n whiteSpace: 'pre-wrap', wordBreak: 'break-word',\n }}>\n {diffData.diff}\n </pre>\n </div>\n );\n }\n\n return (\n <div style={{ padding: 16 }}>\n <UIDiffViewer diff={diffData.diff} maxHeight={700} />\n </div>\n );\n}\n","/**\n * CommitOverview — main commit plugin page.\n * Scope selector + tabbed view (Plan / Files).\n */\n\nimport { useState, useEffect } from 'react';\nimport { useData, UIPage, UIPageHeader, UITabs, UISelect, type SelectData } from '@kb-labs/sdk/studio';\nimport { CommitPlanTab } from '../components/CommitPlanTab';\nimport { CommitFilesTab } from '../components/CommitFilesTab';\n\nexport default function CommitOverview() {\n const [scope, setScope] = useState<string>('');\n\n const { data: scopesData, isLoading: scopesLoading } = useData<SelectData>(\n '/v1/plugins/commit/scopes',\n );\n\n // Auto-select first scope\n useEffect(() => {\n if (scopesData?.options?.length && !scope) {\n setScope(scopesData.value || scopesData.options[0]!.value);\n }\n }, [scopesData, scope]);\n\n const scopeOptions = scopesData?.options?.map((s) => ({\n label: s.label,\n value: s.value,\n })) ?? [];\n\n const tabs = (\n <UITabs\n syncUrl=\"search\"\n items={[\n {\n key: 'plan',\n label: 'Commit Plan',\n children: <CommitPlanTab scope={scope} />,\n },\n {\n key: 'files',\n label: 'Files',\n children: <CommitFilesTab scope={scope} />,\n },\n ]}\n />\n );\n\n return (\n <UIPage>\n <UIPageHeader\n title=\"Commit\"\n description=\"AI-powered commit generation\"\n actions={\n <UISelect\n style={{ width: 260 }}\n placeholder=\"Select repository...\"\n value={scope || undefined}\n onChange={(v) => setScope(v as string)}\n loading={scopesLoading}\n showSearch\n options={scopeOptions}\n />\n }\n tabs={tabs}\n />\n </UIPage>\n );\n}\n"],"names":["Symbol","Object","useToken","theme","Text","UITypographyText","TYPE_COLOR_MAP","CommitPlanTab","param","_statusBadge_planStatus","_planData_plan","scope","token","notify","useNotification","_useState","Set","expanded","setExpanded","_useState1","selected","setSelected","_useState2","editingId","setEditingId","_useState3","editMsg","setEditMsg","_useState4","regeneratingId","setRegeneratingId","_useState5","allowSecrets","setAllowSecrets","_useData","statusData","statusLoading","refetchStatus","_useData1","planData","refetchPlan","refetchAll","generate","useMutateData","apply","push","reset","patch","regenerate","filesChanged","commits","hasPlan","planStatus","isAnyLoading","handleGenerate","UIModalConfirm","UIIcon","onOk","onSuccess","data","UIModalError","UIAlert","s","i","UICard","handleApply","commitIds","_data_result","onError","e","handleSaveEdit","commitId","handleRegenerate","toggle","set","id","next","UIEmptyState","UISpin","statusBadge","badge","UIFlex","UISpace","UIBadge","UIButton","onClick","_data_result1","UIPopconfirm","undefined","UICheckbox","onChange","v","commit","_TYPE_COLOR_MAP_commit_type","_commit_files","_commit_files1","_commit_reasoning","isExpanded","isEditing","isRegenerating","isSelected","typeColor","UITag","UIInput","onPressEnter","UITooltip","UIDropdown","file","CommitFilesTab","semantic","useTheme","expandedFiles","setExpandedFiles","collapsedGroups","setCollapsedGroups","overallSummary","setOverallSummary","fileSummaries","setFileSummaries","summarizingFile","setSummarizingFile","isSummarizingAll","setIsSummarizingAll","gitStatus","isLoading","summarize","UISkeleton","files","rawFiles","_ref","f","_f_status","grouped","_iteratorError","_grouped_staged","_grouped_modified","_grouped_untracked","_grouped","groups","g","item","result","onClose","group","isCollapsed","fileSummary","isSummarizing","navigator","prev","n","FileDiff","status","diffData","UIDiffViewer","CommitOverview","_scopesData_options","setScope","scopesData","scopesLoading","useEffect","scopeOptions","tabs","UITabs","UIPage","UIPageHeader","UISelect"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"name": "commitPlugin",
|
|
6
6
|
"type": "app",
|
|
7
7
|
"buildInfo": {
|
|
8
|
-
"buildVersion": "2.
|
|
8
|
+
"buildVersion": "2.28.0",
|
|
9
9
|
"buildName": "@kb-labs/commit-entry"
|
|
10
10
|
},
|
|
11
11
|
"remoteEntry": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
{
|
|
29
29
|
"id": "commitPlugin:@kb-labs/studio-event-bus",
|
|
30
30
|
"name": "@kb-labs/studio-event-bus",
|
|
31
|
-
"version": "2.
|
|
31
|
+
"version": "2.28.0",
|
|
32
32
|
"singleton": true,
|
|
33
33
|
"requiredVersion": "^0.1.0",
|
|
34
34
|
"assets": {
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
{
|
|
51
51
|
"id": "commitPlugin:@kb-labs/studio-hooks",
|
|
52
52
|
"name": "@kb-labs/studio-hooks",
|
|
53
|
-
"version": "2.
|
|
53
|
+
"version": "2.28.0",
|
|
54
54
|
"singleton": true,
|
|
55
55
|
"requiredVersion": "^0.1.0",
|
|
56
56
|
"assets": {
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
{
|
|
79
79
|
"id": "commitPlugin:@kb-labs/studio-ui-core",
|
|
80
80
|
"name": "@kb-labs/studio-ui-core",
|
|
81
|
-
"version": "2.
|
|
81
|
+
"version": "2.28.0",
|
|
82
82
|
"singleton": true,
|
|
83
83
|
"requiredVersion": "^0.1.0",
|
|
84
84
|
"assets": {
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
{
|
|
98
98
|
"id": "commitPlugin:@kb-labs/studio-ui-kit",
|
|
99
99
|
"name": "@kb-labs/studio-ui-kit",
|
|
100
|
-
"version": "2.
|
|
100
|
+
"version": "2.28.0",
|
|
101
101
|
"singleton": true,
|
|
102
102
|
"requiredVersion": "^0.1.0",
|
|
103
103
|
"assets": {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"name": "commitPlugin",
|
|
6
6
|
"type": "app",
|
|
7
7
|
"buildInfo": {
|
|
8
|
-
"buildVersion": "2.
|
|
8
|
+
"buildVersion": "2.28.0",
|
|
9
9
|
"buildName": "@kb-labs/commit-entry"
|
|
10
10
|
},
|
|
11
11
|
"remoteEntry": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"requiredVersion": "^0.1.0",
|
|
31
31
|
"shareScope": "default",
|
|
32
32
|
"name": "@kb-labs/studio-event-bus",
|
|
33
|
-
"version": "2.
|
|
33
|
+
"version": "2.28.0",
|
|
34
34
|
"eager": false,
|
|
35
35
|
"id": "commitPlugin:@kb-labs/studio-event-bus",
|
|
36
36
|
"assets": {
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"requiredVersion": "^0.1.0",
|
|
56
56
|
"shareScope": "default",
|
|
57
57
|
"name": "@kb-labs/studio-hooks",
|
|
58
|
-
"version": "2.
|
|
58
|
+
"version": "2.28.0",
|
|
59
59
|
"eager": false,
|
|
60
60
|
"id": "commitPlugin:@kb-labs/studio-hooks",
|
|
61
61
|
"assets": {
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"requiredVersion": "^0.1.0",
|
|
89
89
|
"shareScope": "default",
|
|
90
90
|
"name": "@kb-labs/studio-ui-core",
|
|
91
|
-
"version": "2.
|
|
91
|
+
"version": "2.28.0",
|
|
92
92
|
"eager": false,
|
|
93
93
|
"id": "commitPlugin:@kb-labs/studio-ui-core",
|
|
94
94
|
"assets": {
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"requiredVersion": "^0.1.0",
|
|
111
111
|
"shareScope": "default",
|
|
112
112
|
"name": "@kb-labs/studio-ui-kit",
|
|
113
|
-
"version": "2.
|
|
113
|
+
"version": "2.28.0",
|
|
114
114
|
"eager": false,
|
|
115
115
|
"id": "commitPlugin:@kb-labs/studio-ui-kit",
|
|
116
116
|
"assets": {
|