@yancyyu/openhermit 1.5.13 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -63
- package/dist-renderer/assets/{ProjectEditorOverlay-C5D83Zxv.js → ProjectEditorOverlay-DrZKGMUE.js} +1 -1
- package/dist-renderer/assets/{TeamGraphOverlay-ajzuM1-u.js → TeamGraphOverlay-D0F9r5Fj.js} +1 -1
- package/dist-renderer/assets/{_basePickBy-C9H2zmVj.js → _basePickBy-D3hJcHOm.js} +1 -1
- package/dist-renderer/assets/{_baseUniq-CpGZGemc.js → _baseUniq-DGaoGuIo.js} +1 -1
- package/dist-renderer/assets/{arc-CbGBDw-m.js → arc-BEf0FRUv.js} +1 -1
- package/dist-renderer/assets/{architectureDiagram-VXUJARFQ-nuKXUIpb.js → architectureDiagram-VXUJARFQ-CV0ZxlU6.js} +1 -1
- package/dist-renderer/assets/{blockDiagram-VD42YOAC-DHUUE7Jc.js → blockDiagram-VD42YOAC-BBgj7JQU.js} +1 -1
- package/dist-renderer/assets/{c4Diagram-YG6GDRKO-OILHhqLM.js → c4Diagram-YG6GDRKO-z4ASXsqO.js} +1 -1
- package/dist-renderer/assets/channel-BmFF1HZd.js +1 -0
- package/dist-renderer/assets/{chunk-4BX2VUAB-dqNpZaQ8.js → chunk-4BX2VUAB-GgD2k-Lr.js} +1 -1
- package/dist-renderer/assets/{chunk-55IACEB6-BCoSJQM-.js → chunk-55IACEB6-DtIOM4VP.js} +1 -1
- package/dist-renderer/assets/{chunk-B4BG7PRW-BLbg8yVR.js → chunk-B4BG7PRW-vt_YV8kf.js} +1 -1
- package/dist-renderer/assets/{chunk-DI55MBZ5-CUUWOs1Q.js → chunk-DI55MBZ5-CkNWOUcb.js} +1 -1
- package/dist-renderer/assets/{chunk-FMBD7UC4-D9geTN5P.js → chunk-FMBD7UC4-CfEfRL0J.js} +1 -1
- package/dist-renderer/assets/{chunk-QN33PNHL-BGT8-BRX.js → chunk-QN33PNHL-BuVE3RIP.js} +1 -1
- package/dist-renderer/assets/{chunk-QZHKN3VN-CC8ebGaM.js → chunk-QZHKN3VN-K_7QwWik.js} +1 -1
- package/dist-renderer/assets/{chunk-TZMSLE5B-CajekcT6.js → chunk-TZMSLE5B-DMp8QOiS.js} +1 -1
- package/dist-renderer/assets/classDiagram-2ON5EDUG-BcZUsklT.js +1 -0
- package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-BcZUsklT.js +1 -0
- package/dist-renderer/assets/clone-DFAYLyhG.js +1 -0
- package/dist-renderer/assets/{cose-bilkent-S5V4N54A-C_x7hSy3.js → cose-bilkent-S5V4N54A-BVY9tzNS.js} +1 -1
- package/dist-renderer/assets/{dagre-6UL2VRFP-C4Y1k4DZ.js → dagre-6UL2VRFP--faZMK7S.js} +1 -1
- package/dist-renderer/assets/{diagram-PSM6KHXK-oRIeULoh.js → diagram-PSM6KHXK-DmtFeluG.js} +1 -1
- package/dist-renderer/assets/{diagram-QEK2KX5R-DwSqw5HF.js → diagram-QEK2KX5R-Bcp7Lb0A.js} +1 -1
- package/dist-renderer/assets/{diagram-S2PKOQOG-DqjGYje2.js → diagram-S2PKOQOG-ti_QkBTz.js} +1 -1
- package/dist-renderer/assets/{erDiagram-Q2GNP2WA-CEV5bBgg.js → erDiagram-Q2GNP2WA-BDEvbMUF.js} +1 -1
- package/dist-renderer/assets/{flowDiagram-NV44I4VS-BQQkrRyu.js → flowDiagram-NV44I4VS-kcRZb1MY.js} +1 -1
- package/dist-renderer/assets/{ganttDiagram-JELNMOA3-CLy4WR1G.js → ganttDiagram-JELNMOA3-DqTbb3Zl.js} +1 -1
- package/dist-renderer/assets/{gitGraphDiagram-V2S2FVAM-6W3ioQu_.js → gitGraphDiagram-V2S2FVAM-AldFx-Oq.js} +1 -1
- package/dist-renderer/assets/{graph-BnLKQvhH.js → graph-DoTH18rj.js} +1 -1
- package/dist-renderer/assets/{index-BufvLVIl.js → index-BUfRAXh0.js} +1 -1
- package/dist-renderer/assets/{index-C1xShqKH.js → index-CPvx8mQq.js} +1 -1
- package/dist-renderer/assets/{index-BRuhNKyU.js → index-CRzo33Zq.js} +304 -304
- package/dist-renderer/assets/{index-zIOLLI7O.js → index-CcbnCZI-.js} +1 -1
- package/dist-renderer/assets/{index-B8lKqPVq.js → index-Ci3TO_JU.js} +1 -1
- package/dist-renderer/assets/{index-B4aiRxoU.js → index-DkKHJirK.js} +1 -1
- package/dist-renderer/assets/{infoDiagram-HS3SLOUP-BoBweEEY.js → infoDiagram-HS3SLOUP-CZ8BxA5O.js} +1 -1
- package/dist-renderer/assets/{journeyDiagram-XKPGCS4Q-DLL0V5oP.js → journeyDiagram-XKPGCS4Q-DFap5MzN.js} +1 -1
- package/dist-renderer/assets/{kanban-definition-3W4ZIXB7-HsFtEDG3.js → kanban-definition-3W4ZIXB7-eL0Btbev.js} +1 -1
- package/dist-renderer/assets/{layout-ClIooAAq.js → layout-DVFi6Pff.js} +1 -1
- package/dist-renderer/assets/{linear-r3RJcj8y.js → linear-CcYzZckM.js} +1 -1
- package/dist-renderer/assets/{mindmap-definition-VGOIOE7T-BA_P1U4V.js → mindmap-definition-VGOIOE7T-YdwndBk4.js} +1 -1
- package/dist-renderer/assets/{pieDiagram-ADFJNKIX-CzPAfkTB.js → pieDiagram-ADFJNKIX-C2bgVxYV.js} +1 -1
- package/dist-renderer/assets/{quadrantDiagram-AYHSOK5B-PvdPWzFJ.js → quadrantDiagram-AYHSOK5B-DyiRJVZc.js} +1 -1
- package/dist-renderer/assets/{requirementDiagram-UZGBJVZJ-CHqIL_Od.js → requirementDiagram-UZGBJVZJ-9dKf2vDK.js} +1 -1
- package/dist-renderer/assets/{sankeyDiagram-TZEHDZUN-ConzpACM.js → sankeyDiagram-TZEHDZUN-DM0P_yL1.js} +1 -1
- package/dist-renderer/assets/{sequenceDiagram-WL72ISMW-Zryq4oxP.js → sequenceDiagram-WL72ISMW-BBGTN3ZY.js} +1 -1
- package/dist-renderer/assets/{stateDiagram-FKZM4ZOC-BA9V7NHF.js → stateDiagram-FKZM4ZOC-Bg5q7FLR.js} +1 -1
- package/dist-renderer/assets/{stateDiagram-v2-4FDKWEC3-CGnaujD-.js → stateDiagram-v2-4FDKWEC3-BEe_MxUA.js} +1 -1
- package/dist-renderer/assets/{timeline-definition-IT6M3QCI-DPs2ZjMm.js → timeline-definition-IT6M3QCI-CFHreXGq.js} +1 -1
- package/dist-renderer/assets/{treemap-GDKQZRPO-B0lzrLxb.js → treemap-GDKQZRPO-CHC-_z92.js} +1 -1
- package/dist-renderer/assets/{xychartDiagram-PRI3JC2R-CINGmMxX.js → xychartDiagram-PRI3JC2R-BtaW7FFn.js} +1 -1
- package/dist-renderer/index.html +1 -1
- package/package.json +1 -1
- package/src/main/server.ts +34 -4
- package/src/renderer/api/httpClient.ts +2 -2
- package/src/renderer/components/dashboard/CliStatusBanner.tsx +1 -1
- package/src/renderer/components/runtime/ProviderRuntimeSettingsDialog.tsx +1 -3
- package/src/renderer/components/settings/sections/CliStatusSection.tsx +6 -1
- package/src/renderer/components/team/TeamDetailView.tsx +14 -1
- package/src/renderer/components/team/TeamListView.tsx +14 -1
- package/src/renderer/store/slices/teamSlice.ts +15 -2
- package/src/shared/types/api.ts +1 -1
- package/dist-renderer/assets/channel-DpUKLLrj.js +0 -1
- package/dist-renderer/assets/classDiagram-2ON5EDUG-LL85aSlz.js +0 -1
- package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-LL85aSlz.js +0 -1
- package/dist-renderer/assets/clone-BHWsFzFA.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as a,A as ei,B as si,Z as Lt,Y as ni,C as ai,D as ri,I as Et,ae as oi,J as hi,a3 as li,ab as xt,aa as It,ac as ci,av as ui,N as gi,b7 as xi,aD as Tt}from"./index-
|
|
1
|
+
import{_ as a,A as ei,B as si,Z as Lt,Y as ni,C as ai,D as ri,I as Et,ae as oi,J as hi,a3 as li,ab as xt,aa as It,ac as ci,av as ui,N as gi,b7 as xi,aD as Tt}from"./index-CRzo33Zq.js";import{i as di}from"./init-Gi6I4Gst.js";import{o as fi}from"./ordinal-Cboi1Yqb.js";import{l as Dt}from"./linear-CcYzZckM.js";import"./splashScene-C8lWNnm4.js";import"./defaultLocale-DX6XiGOO.js";function pi(t,i,e){t=+t,i=+i,e=(n=arguments.length)<2?(i=t,t=0,1):n<3?1:+e;for(var s=-1,n=Math.max(0,Math.ceil((i-t)/e))|0,x=new Array(n);++s<n;)x[s]=t+s*e;return x}function ht(){var t=fi().unknown(void 0),i=t.domain,e=t.range,s=0,n=1,x,g,m=!1,S=0,D=0,v=.5;delete t.unknown;function w(){var y=i().length,E=n<s,T=E?n:s,P=E?s:n;x=(P-T)/Math.max(1,y-S+D*2),m&&(x=Math.floor(x)),T+=(P-T-x*(y-S))*v,g=x*(1-S),m&&(T=Math.round(T),g=Math.round(g));var I=pi(y).map(function(p){return T+x*p});return e(E?I.reverse():I)}return t.domain=function(y){return arguments.length?(i(y),w()):i()},t.range=function(y){return arguments.length?([s,n]=y,s=+s,n=+n,w()):[s,n]},t.rangeRound=function(y){return[s,n]=y,s=+s,n=+n,m=!0,w()},t.bandwidth=function(){return g},t.step=function(){return x},t.round=function(y){return arguments.length?(m=!!y,w()):m},t.padding=function(y){return arguments.length?(S=Math.min(1,D=+y),w()):S},t.paddingInner=function(y){return arguments.length?(S=Math.min(1,y),w()):S},t.paddingOuter=function(y){return arguments.length?(D=+y,w()):D},t.align=function(y){return arguments.length?(v=Math.max(0,Math.min(1,y)),w()):v},t.copy=function(){return ht(i(),[s,n]).round(m).paddingInner(S).paddingOuter(D).align(v)},di.apply(w(),arguments)}var lt=function(){var t=a(function(O,o,c,u){for(c=c||{},u=O.length;u--;c[O[u]]=o);return c},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],x=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],S=[1,25],D=[1,26],v=[1,28],w=[1,29],y=[1,30],E=[1,31],T=[1,32],P=[1,33],I=[1,34],p=[1,35],_=[1,36],l=[1,37],W=[1,43],z=[1,42],U=[1,47],X=[1,50],h=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],C=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],k=[1,64],$={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(o,c,u,d,A,r,j){var f=r.length-1;switch(A){case 5:d.setOrientation(r[f]);break;case 9:d.setDiagramTitle(r[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},r[f]);break;case 13:d.setLineData(r[f-1],r[f]);break;case 14:d.setBarData({text:"",type:"text"},r[f]);break;case 15:d.setBarData(r[f-1],r[f]);break;case 16:this.$=r[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=r[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=r[f-1];break;case 20:this.$=[Number(r[f-2]),...r[f]];break;case 21:this.$=[Number(r[f])];break;case 22:d.setXAxisTitle(r[f]);break;case 23:d.setXAxisTitle(r[f-1]);break;case 24:d.setXAxisTitle({type:"text",text:""});break;case 25:d.setXAxisBand(r[f]);break;case 26:d.setXAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 27:this.$=r[f-1];break;case 28:this.$=[r[f-2],...r[f]];break;case 29:this.$=[r[f]];break;case 30:d.setYAxisTitle(r[f]);break;case 31:d.setYAxisTitle(r[f-1]);break;case 32:d.setYAxisTitle({type:"text",text:""});break;case 33:d.setYAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 37:this.$={text:r[f],type:"text"};break;case 38:this.$={text:r[f],type:"text"};break;case 39:this.$={text:r[f],type:"markdown"};break;case 40:this.$=r[f];break;case 41:this.$=r[f-1]+""+r[f];break}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,34:n,35:x,36:g}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:n,35:x,36:g}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:x,36:g}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(m,[2,34]),t(m,[2,35]),t(m,[2,36]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,34:n,35:x,36:g}),{1:[2,3]},t(m,[2,5]),t(i,[2,7],{4:22,34:n,35:x,36:g}),{11:23,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:39,13:38,24:W,27:z,29:40,30:41,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:45,15:44,27:U,33:46,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:49,17:48,24:X,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{11:52,17:51,24:X,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},{20:[1,53]},{22:[1,54]},t(h,[2,18]),{1:[2,2]},t(h,[2,8]),t(h,[2,9]),t(L,[2,37],{40:55,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l}),t(L,[2,38]),t(L,[2,39]),t(C,[2,40]),t(C,[2,42]),t(C,[2,43]),t(C,[2,44]),t(C,[2,45]),t(C,[2,46]),t(C,[2,47]),t(C,[2,48]),t(C,[2,49]),t(C,[2,50]),t(C,[2,51]),t(h,[2,10]),t(h,[2,22],{30:41,29:56,24:W,27:z}),t(h,[2,24]),t(h,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},t(h,[2,11]),t(h,[2,30],{33:60,27:U}),t(h,[2,32]),{31:[1,61]},t(h,[2,12]),{17:62,24:X},{25:63,27:k},t(h,[2,14]),{17:65,24:X},t(h,[2,16]),t(h,[2,17]),t(C,[2,41]),t(h,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(h,[2,31]),{27:[1,69]},t(h,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(h,[2,15]),t(h,[2,26]),t(h,[2,27]),{11:59,32:72,37:24,38:S,39:D,40:27,41:v,42:w,43:y,44:E,45:T,46:P,47:I,48:p,49:_,50:l},t(h,[2,33]),t(h,[2,19]),{25:73,27:k},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(o,c){if(c.recoverable)this.trace(o);else{var u=new Error(o);throw u.hash=c,u}},"parseError"),parse:a(function(o){var c=this,u=[0],d=[],A=[null],r=[],j=this.table,f="",J=0,St=0,Zt=2,_t=1,Jt=r.slice.call(arguments,1),R=Object.create(this.lexer),Y={yy:{}};for(var nt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,nt)&&(Y.yy[nt]=this.yy[nt]);R.setInput(o,Y.yy),Y.yy.lexer=R,Y.yy.parser=this,typeof R.yylloc>"u"&&(R.yylloc={});var at=R.yylloc;r.push(at);var ti=R.options&&R.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ii(V){u.length=u.length-2*V,A.length=A.length-V,r.length=r.length-V}a(ii,"popStack");function kt(){var V;return V=d.pop()||R.lex()||_t,typeof V!="number"&&(V instanceof Array&&(d=V,V=d.pop()),V=c.symbols_[V]||V),V}a(kt,"lex");for(var M,H,B,rt,q={},tt,F,Rt,it;;){if(H=u[u.length-1],this.defaultActions[H]?B=this.defaultActions[H]:((M===null||typeof M>"u")&&(M=kt()),B=j[H]&&j[H][M]),typeof B>"u"||!B.length||!B[0]){var ot="";it=[];for(tt in j[H])this.terminals_[tt]&&tt>Zt&&it.push("'"+this.terminals_[tt]+"'");R.showPosition?ot="Parse error on line "+(J+1)+`:
|
|
2
2
|
`+R.showPosition()+`
|
|
3
3
|
Expecting `+it.join(", ")+", got '"+(this.terminals_[M]||M)+"'":ot="Parse error on line "+(J+1)+": Unexpected "+(M==_t?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(ot,{text:R.match,token:this.terminals_[M]||M,line:R.yylineno,loc:at,expected:it})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+M);switch(B[0]){case 1:u.push(M),A.push(R.yytext),r.push(R.yylloc),u.push(B[1]),M=null,St=R.yyleng,f=R.yytext,J=R.yylineno,at=R.yylloc;break;case 2:if(F=this.productions_[B[1]][1],q.$=A[A.length-F],q._$={first_line:r[r.length-(F||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(F||1)].first_column,last_column:r[r.length-1].last_column},ti&&(q._$.range=[r[r.length-(F||1)].range[0],r[r.length-1].range[1]]),rt=this.performAction.apply(q,[f,St,J,Y.yy,B[1],A,r].concat(Jt)),typeof rt<"u")return rt;F&&(u=u.slice(0,-1*F*2),A=A.slice(0,-1*F),r=r.slice(0,-1*F)),u.push(this.productions_[B[1]][0]),A.push(q.$),r.push(q._$),Rt=j[u[u.length-2]][u[u.length-1]],u.push(Rt);break;case 3:return!0}}return!0},"parse")},Ct=function(){var O={EOF:1,parseError:a(function(c,u){if(this.yy.parser)this.yy.parser.parseError(c,u);else throw new Error(c)},"parseError"),setInput:a(function(o,c){return this.yy=c||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var c=o.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:a(function(o){var c=o.length,u=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===d.length?this.yylloc.first_column:0)+d[d.length-u.length].length-u[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(o){this.unput(this.match.slice(o))},"less"),pastInput:a(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var o=this.pastInput(),c=new Array(o.length+1).join("-");return o+this.upcomingInput()+`
|
package/dist-renderer/index.html
CHANGED
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
} catch (e) {}
|
|
354
354
|
})();
|
|
355
355
|
</script>
|
|
356
|
-
<script type="module" crossorigin src="/assets/index-
|
|
356
|
+
<script type="module" crossorigin src="/assets/index-CRzo33Zq.js"></script>
|
|
357
357
|
<link rel="modulepreload" crossorigin href="/assets/splashScene-C8lWNnm4.js">
|
|
358
358
|
<link rel="stylesheet" crossorigin href="/assets/index-CaG9mf8s.css">
|
|
359
359
|
</head>
|
package/package.json
CHANGED
package/src/main/server.ts
CHANGED
|
@@ -701,7 +701,7 @@ app.post('/api/cc-reload', async () => {
|
|
|
701
701
|
app.get('/api/teams', async () => {
|
|
702
702
|
try {
|
|
703
703
|
const projects = await cc.listProjects();
|
|
704
|
-
|
|
704
|
+
const summaries = await Promise.all(
|
|
705
705
|
projects.map(async (p) => {
|
|
706
706
|
// platforms 从 listProjects 返回的是 string[],有 platform 即认为在线
|
|
707
707
|
const isOnline = Array.isArray(p.platforms) && p.platforms.length > 0;
|
|
@@ -760,6 +760,7 @@ app.get('/api/teams', async () => {
|
|
|
760
760
|
};
|
|
761
761
|
})
|
|
762
762
|
);
|
|
763
|
+
return summaries.filter((team) => team.pendingDelete !== true);
|
|
763
764
|
} catch {
|
|
764
765
|
return [];
|
|
765
766
|
}
|
|
@@ -1028,19 +1029,30 @@ app.delete<{ Params: { name: string }; Querystring: { deleteFiles?: string } }>(
|
|
|
1028
1029
|
async (request, reply) => {
|
|
1029
1030
|
const teamName = request.params.name;
|
|
1030
1031
|
try {
|
|
1032
|
+
let restartRequired = false;
|
|
1031
1033
|
try {
|
|
1032
1034
|
const result = await cc.deleteProject(teamName);
|
|
1035
|
+
restartRequired = result.restart_required === true;
|
|
1033
1036
|
await svc.updateTeam(teamName, {
|
|
1034
1037
|
pendingDelete: true,
|
|
1035
|
-
restartRequired
|
|
1038
|
+
restartRequired,
|
|
1036
1039
|
});
|
|
1037
1040
|
} catch (err) {
|
|
1038
1041
|
request.log.warn({ err, teamName }, 'delete cc-connect project failed or project missing');
|
|
1042
|
+
try {
|
|
1043
|
+
await svc.updateTeam(teamName, {
|
|
1044
|
+
pendingDelete: true,
|
|
1045
|
+
restartRequired: true,
|
|
1046
|
+
});
|
|
1047
|
+
restartRequired = true;
|
|
1048
|
+
} catch {
|
|
1049
|
+
// Local metadata may already be gone; keep deletion best-effort.
|
|
1050
|
+
}
|
|
1039
1051
|
}
|
|
1040
1052
|
if (request.query.deleteFiles === 'true') {
|
|
1041
1053
|
await svc.deleteTeam(teamName, { deleteFiles: true });
|
|
1042
1054
|
}
|
|
1043
|
-
return { ok: true, restartRequired
|
|
1055
|
+
return { ok: true, restartRequired };
|
|
1044
1056
|
} catch (err) {
|
|
1045
1057
|
return reply.code(500).send(reply500(err));
|
|
1046
1058
|
}
|
|
@@ -3001,7 +3013,25 @@ app.get<{ Params: { name: string } }>('/api/teams/:name/lead-context', async ()
|
|
|
3001
3013
|
app.get<{ Params: { name: string } }>('/api/teams/:name/sessions', async (request) => {
|
|
3002
3014
|
try {
|
|
3003
3015
|
const sessions = await cc.listSessions(request.params.name);
|
|
3004
|
-
|
|
3016
|
+
const sessionsByKey = new Map<string, (typeof sessions)[number]>();
|
|
3017
|
+
const sessionScore = (session: (typeof sessions)[number]): number => {
|
|
3018
|
+
const updatedAt = Date.parse(session.updated_at);
|
|
3019
|
+
return (
|
|
3020
|
+
(session.live ? 1_000_000_000_000_000 : 0) +
|
|
3021
|
+
(session.active ? 1_000_000_000_000 : 0) +
|
|
3022
|
+
(session.history_count ?? 0) * 1_000_000 +
|
|
3023
|
+
(session.agent_type ? 10_000 : 0) +
|
|
3024
|
+
(Number.isFinite(updatedAt) ? updatedAt / 1_000_000 : 0)
|
|
3025
|
+
);
|
|
3026
|
+
};
|
|
3027
|
+
for (const session of sessions) {
|
|
3028
|
+
const existing = sessionsByKey.get(session.session_key);
|
|
3029
|
+
if (!existing || sessionScore(session) > sessionScore(existing)) {
|
|
3030
|
+
sessionsByKey.set(session.session_key, session);
|
|
3031
|
+
}
|
|
3032
|
+
}
|
|
3033
|
+
|
|
3034
|
+
return [...sessionsByKey.values()].map((s) => ({
|
|
3005
3035
|
id: s.id,
|
|
3006
3036
|
title: s.user_name || s.chat_name || s.name || s.session_key,
|
|
3007
3037
|
projectId: request.params.name,
|
|
@@ -1114,8 +1114,8 @@ export class HttpAPIClient implements ElectronAPI {
|
|
|
1114
1114
|
const path = `/api/teams/${encodeURIComponent(teamName)}/claude-logs`;
|
|
1115
1115
|
return this.get<TeamClaudeLogsResponse>(qs ? `${path}?${qs}` : path);
|
|
1116
1116
|
},
|
|
1117
|
-
deleteTeam: async (teamName: string): Promise<
|
|
1118
|
-
|
|
1117
|
+
deleteTeam: async (teamName: string): Promise<{ restartRequired?: boolean }> => {
|
|
1118
|
+
return this.del<{ restartRequired?: boolean }>(`/api/teams/${encodeURIComponent(teamName)}`);
|
|
1119
1119
|
},
|
|
1120
1120
|
restoreTeam: async (teamName: string): Promise<void> => {
|
|
1121
1121
|
await this.post(`/api/teams/${encodeURIComponent(teamName)}/restore`);
|
|
@@ -1301,7 +1301,7 @@ export const CliStatusBanner = (): React.JSX.Element | null => {
|
|
|
1301
1301
|
providerStatusLoading={cliProviderStatusLoading}
|
|
1302
1302
|
disabled={isBusy || cliStatusLoading || !renderCliStatus.binaryPath}
|
|
1303
1303
|
onSelectBackend={handleProviderBackendChange}
|
|
1304
|
-
onRefreshProvider={
|
|
1304
|
+
onRefreshProvider={handleProviderRefresh}
|
|
1305
1305
|
onRequestLogin={(providerId) => setProviderTerminal({ providerId, action: 'login' })}
|
|
1306
1306
|
/>
|
|
1307
1307
|
</>
|
|
@@ -59,7 +59,6 @@ export const ProviderRuntimeSettingsDialog = ({
|
|
|
59
59
|
open,
|
|
60
60
|
onOpenChange,
|
|
61
61
|
initialProviderId,
|
|
62
|
-
onRefreshProvider,
|
|
63
62
|
}: Props): React.JSX.Element => {
|
|
64
63
|
const agentType = AGENT_TYPE_BY_CLI_PROVIDER[initialProviderId];
|
|
65
64
|
const harnessLabel = CLI_PROVIDER_LABELS[initialProviderId] ?? initialProviderId;
|
|
@@ -84,14 +83,13 @@ export const ProviderRuntimeSettingsDialog = ({
|
|
|
84
83
|
try {
|
|
85
84
|
const result = await providersApi.list();
|
|
86
85
|
setProviders(result.providers ?? []);
|
|
87
|
-
await onRefreshProvider?.(initialProviderId);
|
|
88
86
|
} catch (err) {
|
|
89
87
|
setError(err instanceof Error ? err.message : '加载 Provider 失败');
|
|
90
88
|
setProviders([]);
|
|
91
89
|
} finally {
|
|
92
90
|
setLoading(false);
|
|
93
91
|
}
|
|
94
|
-
}, [
|
|
92
|
+
}, []);
|
|
95
93
|
|
|
96
94
|
useEffect(() => {
|
|
97
95
|
if (open) {
|
|
@@ -273,6 +273,11 @@ export const CliStatusSection = ({
|
|
|
273
273
|
setManageDialogOpen(true);
|
|
274
274
|
}, []);
|
|
275
275
|
|
|
276
|
+
const handleProviderRefresh = useCallback(
|
|
277
|
+
(providerId: CliProviderId) => fetchCliProviderStatus(providerId),
|
|
278
|
+
[fetchCliProviderStatus]
|
|
279
|
+
);
|
|
280
|
+
|
|
276
281
|
const handleHarnessManage = useCallback(
|
|
277
282
|
(agentType: CcAgentType) => {
|
|
278
283
|
const providerId = CLI_PROVIDER_BY_AGENT_TYPE[agentType];
|
|
@@ -677,7 +682,7 @@ export const CliStatusSection = ({
|
|
|
677
682
|
providerStatusLoading={cliProviderStatusLoading}
|
|
678
683
|
disabled={isBusy || cliStatusLoading}
|
|
679
684
|
onSelectBackend={handleRuntimeBackendChange}
|
|
680
|
-
onRefreshProvider={
|
|
685
|
+
onRefreshProvider={handleProviderRefresh}
|
|
681
686
|
onRequestLogin={(providerId) => setProviderTerminal({ providerId, action: 'login' })}
|
|
682
687
|
/>
|
|
683
688
|
<GenericHarnessProviderDialog
|
|
@@ -1927,7 +1927,20 @@ export const TeamDetailView = ({
|
|
|
1927
1927
|
setDeleteConfirmOpen(false);
|
|
1928
1928
|
void (async () => {
|
|
1929
1929
|
try {
|
|
1930
|
-
await deleteTeam(teamName);
|
|
1930
|
+
const result = await deleteTeam(teamName);
|
|
1931
|
+
if (result.restartRequired) {
|
|
1932
|
+
const shouldRestart = await confirm({
|
|
1933
|
+
title: '需要重启 cc-connect',
|
|
1934
|
+
message:
|
|
1935
|
+
'已调用 cc-connect 删除团队配置。cc-connect 需要重启后才会真正移除该团队并停止相关运行时。',
|
|
1936
|
+
confirmLabel: '立即重启',
|
|
1937
|
+
cancelLabel: '稍后重启',
|
|
1938
|
+
variant: 'danger',
|
|
1939
|
+
});
|
|
1940
|
+
if (shouldRestart) {
|
|
1941
|
+
await api.ccSettings.restart();
|
|
1942
|
+
}
|
|
1943
|
+
}
|
|
1931
1944
|
if (tabId) closeTab(tabId);
|
|
1932
1945
|
openTeamsTab();
|
|
1933
1946
|
} catch {
|
|
@@ -539,7 +539,20 @@ export const TeamListView = (): React.JSX.Element => {
|
|
|
539
539
|
});
|
|
540
540
|
if (confirmed) {
|
|
541
541
|
try {
|
|
542
|
-
await deleteTeam(teamName);
|
|
542
|
+
const result = await deleteTeam(teamName);
|
|
543
|
+
if (result.restartRequired) {
|
|
544
|
+
const shouldRestart = await confirm({
|
|
545
|
+
title: '需要重启 cc-connect',
|
|
546
|
+
message:
|
|
547
|
+
'已调用 cc-connect 删除团队配置。cc-connect 需要重启后才会真正移除该团队并停止相关运行时。',
|
|
548
|
+
confirmLabel: '立即重启',
|
|
549
|
+
cancelLabel: '稍后重启',
|
|
550
|
+
variant: 'danger',
|
|
551
|
+
});
|
|
552
|
+
if (shouldRestart) {
|
|
553
|
+
await api.ccSettings.restart();
|
|
554
|
+
}
|
|
555
|
+
}
|
|
543
556
|
} catch {
|
|
544
557
|
// error via store
|
|
545
558
|
}
|
|
@@ -2151,7 +2151,7 @@ export interface TeamSlice {
|
|
|
2151
2151
|
softDeleteTask: (teamName: string, taskId: string) => Promise<void>;
|
|
2152
2152
|
restoreTask: (teamName: string, taskId: string) => Promise<void>;
|
|
2153
2153
|
fetchDeletedTasks: (teamName: string) => Promise<void>;
|
|
2154
|
-
deleteTeam: (teamName: string) => Promise<
|
|
2154
|
+
deleteTeam: (teamName: string) => Promise<{ restartRequired?: boolean }>;
|
|
2155
2155
|
restoreTeam: (teamName: string) => Promise<void>;
|
|
2156
2156
|
permanentlyDeleteTeam: (teamName: string) => Promise<void>;
|
|
2157
2157
|
createTeam: (request: TeamCreateRequest) => Promise<string>;
|
|
@@ -4290,9 +4290,22 @@ export const createTeamSlice: StateCreator<AppState, [], [], TeamSlice> = (set,
|
|
|
4290
4290
|
},
|
|
4291
4291
|
|
|
4292
4292
|
deleteTeam: async (teamName: string) => {
|
|
4293
|
-
await unwrapIpc('team:deleteTeam', () => api.teams.deleteTeam(teamName));
|
|
4293
|
+
const result = await unwrapIpc('team:deleteTeam', () => api.teams.deleteTeam(teamName));
|
|
4294
|
+
invalidateTeamLocalStateEpoch(teamName);
|
|
4295
|
+
clearPendingReplyRefreshTimer(teamName);
|
|
4296
|
+
clearPendingReplyRefreshWaits(teamName);
|
|
4297
|
+
clearTeamScopedTransientState(teamName);
|
|
4298
|
+
set((state) => ({
|
|
4299
|
+
...collectTeamScopedStateRemovals(state, teamName),
|
|
4300
|
+
teams: state.teams.filter((team) => team.teamName !== teamName),
|
|
4301
|
+
selectedTeam: state.selectedTeam?.teamName === teamName ? null : state.selectedTeam,
|
|
4302
|
+
selectedTeamName: state.selectedTeamName === teamName ? null : state.selectedTeamName,
|
|
4303
|
+
selectedTeamError: state.selectedTeamName === teamName ? null : state.selectedTeamError,
|
|
4304
|
+
selectedTeamLoading: state.selectedTeamName === teamName ? false : state.selectedTeamLoading,
|
|
4305
|
+
}));
|
|
4294
4306
|
await get().fetchTeams();
|
|
4295
4307
|
await get().fetchAllTasks();
|
|
4308
|
+
return result;
|
|
4296
4309
|
},
|
|
4297
4310
|
|
|
4298
4311
|
restoreTeam: async (teamName: string) => {
|
package/src/shared/types/api.ts
CHANGED
|
@@ -529,7 +529,7 @@ export interface TeamsAPI {
|
|
|
529
529
|
setToolActivityTracking: (teamName: string, enabled: boolean) => Promise<void>;
|
|
530
530
|
setTaskLogStreamTracking: (teamName: string, enabled: boolean) => Promise<void>;
|
|
531
531
|
getClaudeLogs: (teamName: string, query?: TeamClaudeLogsQuery) => Promise<TeamClaudeLogsResponse>;
|
|
532
|
-
deleteTeam: (teamName: string) => Promise<
|
|
532
|
+
deleteTeam: (teamName: string) => Promise<{ restartRequired?: boolean }>;
|
|
533
533
|
restoreTeam: (teamName: string) => Promise<void>;
|
|
534
534
|
permanentlyDeleteTeam: (teamName: string) => Promise<void>;
|
|
535
535
|
getSavedRequest: (teamName: string) => Promise<TeamCreateRequest | null>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a6 as o,a7 as n}from"./index-BRuhNKyU.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-BLbg8yVR.js";import{_ as i}from"./index-BRuhNKyU.js";import"./chunk-FMBD7UC4-D9geTN5P.js";import"./chunk-55IACEB6-BCoSJQM-.js";import"./chunk-QN33PNHL-BGT8-BRX.js";import"./splashScene-C8lWNnm4.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-BLbg8yVR.js";import{_ as i}from"./index-BRuhNKyU.js";import"./chunk-FMBD7UC4-D9geTN5P.js";import"./chunk-55IACEB6-BCoSJQM-.js";import"./chunk-QN33PNHL-BGT8-BRX.js";import"./splashScene-C8lWNnm4.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./_baseUniq-CpGZGemc.js";var e=4;function a(o){return r(o,e)}export{a as c};
|