@smartmemory/compose 0.2.45-beta → 0.2.47-beta
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 +17 -0
- package/bin/compose.js +35 -1
- package/dist/assets/{App-DQblyoua.js → App-D7E7S49Q.js} +163 -153
- package/dist/assets/{arc-B4fPSjcd.js → arc-LOW60tiI.js} +1 -1
- package/dist/assets/{architectureDiagram-3BPJPVTR-SiqLJ2Dv.js → architectureDiagram-3BPJPVTR-BDY00hRy.js} +1 -1
- package/dist/assets/{blockDiagram-GPEHLZMM-DgA84B2f.js → blockDiagram-GPEHLZMM-DiC_6ktq.js} +1 -1
- package/dist/assets/browser-DW2JlJCC.js +8 -0
- package/dist/assets/{c4Diagram-AAUBKEIU-B-tXpPJU.js → c4Diagram-AAUBKEIU-CXZC8woU.js} +1 -1
- package/dist/assets/channel-Dh96pu1k.js +1 -0
- package/dist/assets/{chunk-2J33WTMH-Ch2s7Kg8.js → chunk-2J33WTMH-b8Rdk4S-.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-B0CaezI4.js → chunk-4BX2VUAB-BSxn03f-.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-B7bap9LR.js → chunk-55IACEB6-uUk1WzZ1.js} +1 -1
- package/dist/assets/{chunk-727SXJPM-CMksbsjL.js → chunk-727SXJPM-zvXhT6iZ.js} +1 -1
- package/dist/assets/{chunk-AQP2D5EJ-ChOCnmMe.js → chunk-AQP2D5EJ-B6GCyrIp.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-qcUlmmEN.js → chunk-FMBD7UC4-DlhrqkBp.js} +1 -1
- package/dist/assets/{chunk-ND2GUHAM-BWwR4JBR.js → chunk-ND2GUHAM-lo_8kNzw.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-DuRbBL0q.js → chunk-QZHKN3VN-on-yD-C0.js} +1 -1
- package/dist/assets/classDiagram-4FO5ZUOK-BCqpDcaS.js +1 -0
- package/dist/assets/classDiagram-v2-Q7XG4LA2-BCqpDcaS.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-Dd3Ids4E.js → cose-bilkent-S5V4N54A-DxV7Y2bU.js} +1 -1
- package/dist/assets/{dagre-BM42HDAG-C2fmFG1L.js → dagre-BM42HDAG-BHf9sURy.js} +1 -1
- package/dist/assets/{diagram-2AECGRRQ-gZjYzjSJ.js → diagram-2AECGRRQ-R9Puxzlh.js} +1 -1
- package/dist/assets/{diagram-5GNKFQAL-uxJ9zL35.js → diagram-5GNKFQAL-BbjlClKx.js} +1 -1
- package/dist/assets/{diagram-KO2AKTUF--9DBGjk3.js → diagram-KO2AKTUF-r89Mx4m1.js} +1 -1
- package/dist/assets/{diagram-LMA3HP47-DkhUcRJZ.js → diagram-LMA3HP47-CstVDJZ3.js} +1 -1
- package/dist/assets/{diagram-OG6HWLK6-BaJ__gNW.js → diagram-OG6HWLK6-xmX57FKh.js} +1 -1
- package/dist/assets/{erDiagram-TEJ5UH35-DWszA5vM.js → erDiagram-TEJ5UH35-DhLPxvrl.js} +1 -1
- package/dist/assets/{flowDiagram-I6XJVG4X-DKGbnIHA.js → flowDiagram-I6XJVG4X-BExoUaNm.js} +1 -1
- package/dist/assets/{ganttDiagram-6RSMTGT7-D5CoNr7u.js → ganttDiagram-6RSMTGT7-BEXa5a22.js} +1 -1
- package/dist/assets/{gitGraphDiagram-PVQCEYII-wraCb0iO.js → gitGraphDiagram-PVQCEYII-Cbes9api.js} +1 -1
- package/dist/assets/{graph-BlEwG9Ro.js → graph-BBXaecIU.js} +1 -1
- package/dist/assets/index-BwLfbbOu.css +1 -0
- package/dist/assets/{index-CE1ehTQn.js → index-DNuHtZwR.js} +22 -22
- package/dist/assets/{infoDiagram-5YYISTIA-CLT2YJ_w.js → infoDiagram-5YYISTIA-UBm4ssfm.js} +1 -1
- package/dist/assets/{ishikawaDiagram-YF4QCWOH-1WQ5ViOx.js → ishikawaDiagram-YF4QCWOH-CksBYHCF.js} +1 -1
- package/dist/assets/{journeyDiagram-JHISSGLW-CbYKANnV.js → journeyDiagram-JHISSGLW-CKHkIHky.js} +1 -1
- package/dist/assets/{kanban-definition-UN3LZRKU-CYNaaEmw.js → kanban-definition-UN3LZRKU-CEahMFzE.js} +1 -1
- package/dist/assets/{linear-C6l6Hee2.js → linear-CqLVtYRk.js} +1 -1
- package/dist/assets/{mindmap-definition-RKZ34NQL-DzXKDTRa.js → mindmap-definition-RKZ34NQL-C61zWt4M.js} +1 -1
- package/dist/assets/{mobile-D8UQvJ1i.css → mobile-Cag5dHlF.css} +1 -1
- package/dist/assets/mobile-DwmxS_O4.js +17 -0
- package/dist/assets/{pieDiagram-4H26LBE5-CppszhAX.js → pieDiagram-4H26LBE5-BIpZHyJW.js} +1 -1
- package/dist/assets/{quadrantDiagram-W4KKPZXB-jpp555QD.js → quadrantDiagram-W4KKPZXB-Db7nRbZm.js} +1 -1
- package/dist/assets/{requirementDiagram-4Y6WPE33-nKJCyHfW.js → requirementDiagram-4Y6WPE33-BQqFCAr0.js} +1 -1
- package/dist/assets/{sankeyDiagram-5OEKKPKP-D-oX8o5g.js → sankeyDiagram-5OEKKPKP-D-oAAMci.js} +1 -1
- package/dist/assets/{sequenceDiagram-3UESZ5HK-CcOMecR8.js → sequenceDiagram-3UESZ5HK-Dc4Cp0Om.js} +1 -1
- package/dist/assets/{stateDiagram-AJRCARHV-D0yHv9PM.js → stateDiagram-AJRCARHV-B5DkQ8Pr.js} +1 -1
- package/dist/assets/stateDiagram-v2-BHNVJYJU-BM1Uf6a_.js +1 -0
- package/dist/assets/{timeline-definition-PNZ67QCA-hsR-T0Te.js → timeline-definition-PNZ67QCA-DU9Fl-FW.js} +1 -1
- package/dist/assets/{vennDiagram-CIIHVFJN-C9b10oqu.js → vennDiagram-CIIHVFJN-Bthz7siw.js} +1 -1
- package/dist/assets/{wardley-L42UT6IY-BHnzDf0e.js → wardley-L42UT6IY-nqdlFSIA.js} +1 -1
- package/dist/assets/{wardleyDiagram-YWT4CUSO-DReamCcN.js → wardleyDiagram-YWT4CUSO-BJ1BC5zc.js} +1 -1
- package/dist/assets/{xychartDiagram-2RQKCTM6-CrSsH0ZL.js → xychartDiagram-2RQKCTM6-Bib5JrbR.js} +1 -1
- package/dist/index.html +4 -4
- package/lib/build-history.js +40 -0
- package/lib/build.js +56 -8
- package/lib/cli-remote.js +533 -0
- package/package.json +3 -1
- package/server/auth-middleware.js +309 -0
- package/server/auth-routes.js +195 -0
- package/server/auth-store.js +539 -0
- package/server/build-routes.js +1 -1
- package/server/index.js +134 -7
- package/server/remote-utils.js +134 -0
- package/server/security.js +46 -1
- package/server/supervisor.js +7 -1
- package/server/vision-routes.js +1 -1
- package/server/vision-server.js +1 -1
- package/dist/assets/channel-D60Ea_Qi.js +0 -1
- package/dist/assets/classDiagram-4FO5ZUOK-Vt88epYI.js +0 -1
- package/dist/assets/classDiagram-v2-Q7XG4LA2-Vt88epYI.js +0 -1
- package/dist/assets/index-D9M5IzwO.css +0 -1
- package/dist/assets/mobile-4lQex-UI.js +0 -17
- package/dist/assets/stateDiagram-v2-BHNVJYJU-CFwFamMD.js +0 -1
package/dist/assets/{xychartDiagram-2RQKCTM6-CrSsH0ZL.js → xychartDiagram-2RQKCTM6-Bib5JrbR.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{s as gi,g as xi,q as Xt,p as di,a as fi,b as pi,_ as a,l as Yt,I as mi,e as yi,z as bi,D as _t,i as Ai,F as Nt,G as wi,K as Ci,aq as Si,R as Wt}from"./App-
|
|
1
|
+
import{s as gi,g as xi,q as Xt,p as di,a as fi,b as pi,_ as a,l as Yt,I as mi,e as yi,z as bi,D as _t,i as Ai,F as Nt,G as wi,K as Ci,aq as Si,R as Wt}from"./App-D7E7S49Q.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as zt}from"./linear-CqLVtYRk.js";import"./mobile-DwmxS_O4.js";import"./index-DNuHtZwR.js";import"./graph-BBXaecIU.js";import"./defaultLocale-DX6XiGOO.js";function Ri(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function bt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,u,p=!1,f=0,T=0,P=.5;delete e.unknown;function _(){var y=t().length,E=n<s,v=E?n:s,L=E?s:n;o=(L-v)/Math.max(1,y-f+T*2),p&&(o=Math.floor(o)),v+=(L-v-o*(y-f))*P,u=o*(1-f),p&&(v=Math.round(v),u=Math.round(u));var I=Ri(y).map(function(m){return v+o*m});return i(E?I.reverse():I)}return e.domain=function(y){return arguments.length?(t(y),_()):t()},e.range=function(y){return arguments.length?([s,n]=y,s=+s,n=+n,_()):[s,n]},e.rangeRound=function(y){return[s,n]=y,s=+s,n=+n,p=!0,_()},e.bandwidth=function(){return u},e.step=function(){return o},e.round=function(y){return arguments.length?(p=!!y,_()):p},e.padding=function(y){return arguments.length?(f=Math.min(1,T=+y),_()):f},e.paddingInner=function(y){return arguments.length?(f=Math.min(1,y),_()):f},e.paddingOuter=function(y){return arguments.length?(T=+y,_()):T},e.align=function(y){return arguments.length?(P=Math.max(0,Math.min(1,y)),_()):P},e.copy=function(){return bt(t(),[s,n]).round(p).paddingInner(f).paddingOuter(T).align(P)},_i.apply(_(),arguments)}var At=(function(){var e=a(function(F,h,c,g){for(c=c||{},g=F.length;g--;c[F[g]]=h);return c},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],u=[1,7],p=[1,5,10,12,14,16,18,19,21,23,34,35,36],f=[1,25],T=[1,26],P=[1,28],_=[1,29],y=[1,30],E=[1,31],v=[1,32],L=[1,33],I=[1,34],m=[1,35],R=[1,36],l=[1,37],W=[1,43],O=[1,42],X=[1,47],Y=[1,50],S=[1,10,12,14,16,18,19,21,23,34,35,36],U=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],b=[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],w=[1,64],V={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(h,c,g,x,C,r,rt){var d=r.length-1;switch(C){case 5:x.setOrientation(r[d]);break;case 9:x.setDiagramTitle(r[d].text.trim());break;case 12:x.setLineData({text:"",type:"text"},r[d]);break;case 13:x.setLineData(r[d-1],r[d]);break;case 14:x.setBarData({text:"",type:"text"},r[d]);break;case 15:x.setBarData(r[d-1],r[d]);break;case 16:this.$=r[d].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=r[d].trim(),x.setAccDescription(this.$);break;case 19:this.$=r[d-1];break;case 20:this.$=[Number(r[d-2]),...r[d]];break;case 21:this.$=[Number(r[d])];break;case 22:x.setXAxisTitle(r[d]);break;case 23:x.setXAxisTitle(r[d-1]);break;case 24:x.setXAxisTitle({type:"text",text:""});break;case 25:x.setXAxisBand(r[d]);break;case 26:x.setXAxisRangeData(Number(r[d-2]),Number(r[d]));break;case 27:this.$=r[d-1];break;case 28:this.$=[r[d-2],...r[d]];break;case 29:this.$=[r[d]];break;case 30:x.setYAxisTitle(r[d]);break;case 31:x.setYAxisTitle(r[d-1]);break;case 32:x.setYAxisTitle({type:"text",text:""});break;case 33:x.setYAxisRangeData(Number(r[d-2]),Number(r[d]));break;case 37:this.$={text:r[d],type:"text"};break;case 38:this.$={text:r[d],type:"text"};break;case 39:this.$={text:r[d],type:"markdown"};break;case 40:this.$=r[d];break;case 41:this.$=r[d-1]+""+r[d];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:u}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:u}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:u}),{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]},e(p,[2,34]),e(p,[2,35]),e(p,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:u}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:u}),{11:23,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:39,13:38,24:W,27:O,29:40,30:41,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:45,15:44,27:X,33:46,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:49,17:48,24:Y,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:52,17:51,24:Y,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{20:[1,53]},{22:[1,54]},e(S,[2,18]),{1:[2,2]},e(S,[2,8]),e(S,[2,9]),e(U,[2,37],{40:55,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l}),e(U,[2,38]),e(U,[2,39]),e(b,[2,40]),e(b,[2,42]),e(b,[2,43]),e(b,[2,44]),e(b,[2,45]),e(b,[2,46]),e(b,[2,47]),e(b,[2,48]),e(b,[2,49]),e(b,[2,50]),e(b,[2,51]),e(S,[2,10]),e(S,[2,22],{30:41,29:56,24:W,27:O}),e(S,[2,24]),e(S,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},e(S,[2,11]),e(S,[2,30],{33:60,27:X}),e(S,[2,32]),{31:[1,61]},e(S,[2,12]),{17:62,24:Y},{25:63,27:w},e(S,[2,14]),{17:65,24:Y},e(S,[2,16]),e(S,[2,17]),e(b,[2,41]),e(S,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(S,[2,31]),{27:[1,69]},e(S,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(S,[2,15]),e(S,[2,26]),e(S,[2,27]),{11:59,32:72,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},e(S,[2,33]),e(S,[2,19]),{25:73,27:w},{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(h,c){if(c.recoverable)this.trace(h);else{var g=new Error(h);throw g.hash=c,g}},"parseError"),parse:a(function(h){var c=this,g=[0],x=[],C=[null],r=[],rt=this.table,d="",ct=0,It=0,hi=2,Mt=1,li=r.slice.call(arguments,1),D=Object.create(this.lexer),$={yy:{}};for(var ft in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ft)&&($.yy[ft]=this.yy[ft]);D.setInput(h,$.yy),$.yy.lexer=D,$.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var pt=D.yylloc;r.push(pt);var ci=D.options&&D.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(B){g.length=g.length-2*B,C.length=C.length-B,r.length=r.length-B}a(ui,"popStack");function Vt(){var B;return B=x.pop()||D.lex()||Mt,typeof B!="number"&&(B instanceof Array&&(x=B,B=x.pop()),B=c.symbols_[B]||B),B}a(Vt,"lex");for(var M,q,z,mt,G={},ut,N,Bt,gt;;){if(q=g[g.length-1],this.defaultActions[q]?z=this.defaultActions[q]:((M===null||typeof M>"u")&&(M=Vt()),z=rt[q]&&rt[q][M]),typeof z>"u"||!z.length||!z[0]){var yt="";gt=[];for(ut in rt[q])this.terminals_[ut]&&ut>hi&>.push("'"+this.terminals_[ut]+"'");D.showPosition?yt="Parse error on line "+(ct+1)+`:
|
|
2
2
|
`+D.showPosition()+`
|
|
3
3
|
Expecting `+gt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":yt="Parse error on line "+(ct+1)+": Unexpected "+(M==Mt?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(yt,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:pt,expected:gt})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+q+", token: "+M);switch(z[0]){case 1:g.push(M),C.push(D.yytext),r.push(D.yylloc),g.push(z[1]),M=null,It=D.yyleng,d=D.yytext,ct=D.yylineno,pt=D.yylloc;break;case 2:if(N=this.productions_[z[1]][1],G.$=C[C.length-N],G._$={first_line:r[r.length-(N||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(N||1)].first_column,last_column:r[r.length-1].last_column},ci&&(G._$.range=[r[r.length-(N||1)].range[0],r[r.length-1].range[1]]),mt=this.performAction.apply(G,[d,It,ct,$.yy,z[1],C,r].concat(li)),typeof mt<"u")return mt;N&&(g=g.slice(0,-1*N*2),C=C.slice(0,-1*N),r=r.slice(0,-1*N)),g.push(this.productions_[z[1]][0]),C.push(G.$),r.push(G._$),Bt=rt[g[g.length-2]][g[g.length-1]],g.push(Bt);break;case 3:return!0}}return!0},"parse")},k=(function(){var F={EOF:1,parseError:a(function(c,g){if(this.yy.parser)this.yy.parser.parseError(c,g);else throw new Error(c)},"parseError"),setInput:a(function(h,c){return this.yy=c||this.yy||{},this._input=h,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 h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var c=h.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),h},"input"),unput:a(function(h){var c=h.length,g=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var x=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),g.length-1&&(this.yylineno-=g.length-1);var C=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:g?(g.length===x.length?this.yylloc.first_column:0)+x[x.length-g.length].length-g[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[C[0],C[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(h){this.unput(this.match.slice(h))},"less"),pastInput:a(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var h=this.pastInput(),c=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
|
package/dist/index.html
CHANGED
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
}
|
|
20
20
|
})();
|
|
21
21
|
</script>
|
|
22
|
-
<script type="module" crossorigin src="/assets/index-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/mobile-
|
|
24
|
-
<link rel="stylesheet" crossorigin href="/assets/mobile-
|
|
25
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
22
|
+
<script type="module" crossorigin src="/assets/index-DNuHtZwR.js"></script>
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/mobile-DwmxS_O4.js">
|
|
24
|
+
<link rel="stylesheet" crossorigin href="/assets/mobile-Cag5dHlF.css">
|
|
25
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BwLfbbOu.css">
|
|
26
26
|
</head>
|
|
27
27
|
<body>
|
|
28
28
|
<div id="root"></div>
|
package/lib/build-history.js
CHANGED
|
@@ -60,3 +60,43 @@ export function readBuildHistory(dataDir, { limit = 50 } = {}) {
|
|
|
60
60
|
records.reverse(); // most-recent-first
|
|
61
61
|
return records.slice(0, Math.max(0, limit));
|
|
62
62
|
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Map a stepHistory outcome to the UI step status vocabulary.
|
|
66
|
+
* Single source of truth shared by syncStepHistory (active-build.json)
|
|
67
|
+
* and projectHistorySteps (build-history.jsonl) so the two surfaces
|
|
68
|
+
* can never drift.
|
|
69
|
+
* @param {string|undefined} outcome
|
|
70
|
+
* @returns {string}
|
|
71
|
+
*/
|
|
72
|
+
export function stepOutcomeToStatus(outcome) {
|
|
73
|
+
return outcome === 'complete' ? 'done'
|
|
74
|
+
: outcome === 'failed' ? 'failed'
|
|
75
|
+
: outcome === 'approve' ? 'done'
|
|
76
|
+
: outcome === 'revise' ? 'revised'
|
|
77
|
+
: outcome === 'kill' ? 'killed'
|
|
78
|
+
: outcome ?? 'done';
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Project the in-memory stepHistory into the compact per-step shape stored
|
|
83
|
+
* on build-history records (COMP-MOBILE-1-1). Deliberately smaller than the
|
|
84
|
+
* active-build.json step objects: summary is kept only for failed steps so
|
|
85
|
+
* JSONL lines stay bounded.
|
|
86
|
+
* @param {object[]} stepHistory
|
|
87
|
+
* @returns {Array<{id: string, status: string, agent: string|null, durationMs: number|null, summary?: string}>}
|
|
88
|
+
*/
|
|
89
|
+
export function projectHistorySteps(stepHistory) {
|
|
90
|
+
if (!Array.isArray(stepHistory)) return [];
|
|
91
|
+
return stepHistory.map(h => {
|
|
92
|
+
const status = stepOutcomeToStatus(h?.outcome);
|
|
93
|
+
const step = {
|
|
94
|
+
id: h?.stepId ?? null,
|
|
95
|
+
status,
|
|
96
|
+
agent: h?.agent ?? null,
|
|
97
|
+
durationMs: h?.durationMs ?? null,
|
|
98
|
+
};
|
|
99
|
+
if (status === 'failed' && h?.summary) step.summary = h.summary;
|
|
100
|
+
return step;
|
|
101
|
+
});
|
|
102
|
+
}
|
package/lib/build.js
CHANGED
|
@@ -25,7 +25,7 @@ import { resolvePort } from './resolve-port.js';
|
|
|
25
25
|
import { probeServer } from './server-probe.js';
|
|
26
26
|
import { CliProgress } from './cli-progress.js';
|
|
27
27
|
import { BuildStreamWriter } from './build-stream-writer.js';
|
|
28
|
-
import { appendBuildHistory } from './build-history.js';
|
|
28
|
+
import { appendBuildHistory, projectHistorySteps, stepOutcomeToStatus } from './build-history.js';
|
|
29
29
|
import { KNOWN_VERSIONS } from './build-stream-schema.js';
|
|
30
30
|
import { resolveAgentConfig } from './agent-string.js';
|
|
31
31
|
import { installFactoryShim } from './connector-factory-shim.js';
|
|
@@ -415,6 +415,39 @@ function writeActiveBuild(dataDir, state) {
|
|
|
415
415
|
renameSync(tmp, target);
|
|
416
416
|
}
|
|
417
417
|
|
|
418
|
+
/**
|
|
419
|
+
* COMP-MOBILE-1-1: persist a COMP-HEALTH gate downgrade back to
|
|
420
|
+
* active-build.json. The terminal write happens BEFORE the health gate runs,
|
|
421
|
+
* so when the gate downgrades the result the broadcast `buildState` (sourced
|
|
422
|
+
* from this file by the server's watcher) would otherwise keep saying
|
|
423
|
+
* 'complete' forever. Re-writing here triggers a fresh buildState broadcast
|
|
424
|
+
* with the real outcome.
|
|
425
|
+
*
|
|
426
|
+
* No-ops (returns null) when there is no active-build file, it is already
|
|
427
|
+
* 'failed', or it no longer belongs to this build — active-build.json is
|
|
428
|
+
* last-writer-wins across concurrent builds, so without the flowId/featureCode
|
|
429
|
+
* identity guard a downgrade could mark an unrelated live build as failed.
|
|
430
|
+
* Returns the written state otherwise.
|
|
431
|
+
*/
|
|
432
|
+
export function persistHealthGateDowngrade(dataDir, { score, threshold, flowId, featureCode } = {}) {
|
|
433
|
+
const state = readActiveBuild(dataDir);
|
|
434
|
+
if (!state || state.status === 'failed') return null;
|
|
435
|
+
// Identity guard: every provided key that exists on the on-disk state must
|
|
436
|
+
// match. Checking both (not flowId-first) covers legacy state files that
|
|
437
|
+
// lack flowId but carry a different featureCode.
|
|
438
|
+
if (flowId && state.flowId && state.flowId !== flowId) return null;
|
|
439
|
+
if (featureCode && state.featureCode && state.featureCode !== featureCode) return null;
|
|
440
|
+
const next = {
|
|
441
|
+
...state,
|
|
442
|
+
status: 'failed',
|
|
443
|
+
failureReason: `Health score ${score} below threshold ${threshold}`,
|
|
444
|
+
healthDowngrade: { score, threshold },
|
|
445
|
+
completedAt: state.completedAt ?? new Date().toISOString(),
|
|
446
|
+
};
|
|
447
|
+
writeActiveBuild(dataDir, next);
|
|
448
|
+
return next;
|
|
449
|
+
}
|
|
450
|
+
|
|
418
451
|
// ---------------------------------------------------------------------------
|
|
419
452
|
// Prior dirty lenses sidecar (STRAT-REV-5: selective re-review)
|
|
420
453
|
// ---------------------------------------------------------------------------
|
|
@@ -1934,6 +1967,10 @@ export async function runBuild(featureCode, opts = {}) {
|
|
|
1934
1967
|
}
|
|
1935
1968
|
|
|
1936
1969
|
// COMP-HEALTH: finalize signals and compute composite health score
|
|
1970
|
+
// COMP-MOBILE-1-1: when the gate downgrades the build, the reason is kept
|
|
1971
|
+
// for the history record — health-gate failures have no failed step, so
|
|
1972
|
+
// the lastFailedStep-derived failureReason would otherwise be generic.
|
|
1973
|
+
let healthDowngradeReason = null;
|
|
1937
1974
|
if (streamWriter) {
|
|
1938
1975
|
try {
|
|
1939
1976
|
// Runtime errors signal — accumulated across all steps
|
|
@@ -1993,6 +2030,19 @@ export async function runBuild(featureCode, opts = {}) {
|
|
|
1993
2030
|
console.warn(` [health] Build health score ${score} is below gate threshold ${threshold} — marking build as failed`);
|
|
1994
2031
|
// Enforce: downgrade build status so the build is reported as failed
|
|
1995
2032
|
buildStatus = 'failed';
|
|
2033
|
+
// COMP-MOBILE-1-1: re-persist the downgrade to active-build.json so the
|
|
2034
|
+
// file watcher re-broadcasts buildState over /ws/vision. Without this,
|
|
2035
|
+
// the terminal write above already said 'complete' and clients never
|
|
2036
|
+
// learn the build actually failed (mobile compensated via history).
|
|
2037
|
+
// Identity-guarded: no-ops if a concurrent build replaced the file.
|
|
2038
|
+
const downgraded = persistHealthGateDowngrade(dataDir, {
|
|
2039
|
+
score,
|
|
2040
|
+
threshold,
|
|
2041
|
+
flowId: response?.flow_id ?? null,
|
|
2042
|
+
featureCode,
|
|
2043
|
+
});
|
|
2044
|
+
healthDowngradeReason = downgraded?.failureReason
|
|
2045
|
+
?? `Health score ${score} below threshold ${threshold}`;
|
|
1996
2046
|
}
|
|
1997
2047
|
|
|
1998
2048
|
console.log(` Health score: ${score}/100 (${Object.keys(breakdown).length} dimensions scored)`);
|
|
@@ -2010,7 +2060,7 @@ export async function runBuild(featureCode, opts = {}) {
|
|
|
2010
2060
|
const lastFailedStep = [...stepHistory].reverse().find(s => s.outcome === 'failed');
|
|
2011
2061
|
const failureReason = buildStatus === 'complete'
|
|
2012
2062
|
? null
|
|
2013
|
-
: (lastFailedStep?.summary ?? `Build ${buildStatus}`);
|
|
2063
|
+
: (lastFailedStep?.summary ?? healthDowngradeReason ?? `Build ${buildStatus}`);
|
|
2014
2064
|
appendBuildHistory(dataDir, {
|
|
2015
2065
|
featureCode,
|
|
2016
2066
|
flowId: response?.flow_id ?? null,
|
|
@@ -2025,6 +2075,9 @@ export async function runBuild(featureCode, opts = {}) {
|
|
|
2025
2075
|
stepCount: stepHistory.length,
|
|
2026
2076
|
failureReason,
|
|
2027
2077
|
itemId,
|
|
2078
|
+
// COMP-MOBILE-1-1: compact per-step results so history consumers can
|
|
2079
|
+
// render which-step-failed without the live active-build state.
|
|
2080
|
+
steps: projectHistorySteps(stepHistory),
|
|
2028
2081
|
});
|
|
2029
2082
|
}
|
|
2030
2083
|
|
|
@@ -4311,12 +4364,7 @@ function syncStepHistory(dataDir, stepHistory) {
|
|
|
4311
4364
|
cumulativeOutputTokens += h.output_tokens ?? 0;
|
|
4312
4365
|
return {
|
|
4313
4366
|
id: h.stepId,
|
|
4314
|
-
status: h.outcome
|
|
4315
|
-
: h.outcome === 'failed' ? 'failed'
|
|
4316
|
-
: h.outcome === 'approve' ? 'done'
|
|
4317
|
-
: h.outcome === 'revise' ? 'revised'
|
|
4318
|
-
: h.outcome === 'kill' ? 'killed'
|
|
4319
|
-
: h.outcome ?? 'done',
|
|
4367
|
+
status: stepOutcomeToStatus(h.outcome),
|
|
4320
4368
|
summary: h.summary ?? null,
|
|
4321
4369
|
artifact: h.artifact ?? null,
|
|
4322
4370
|
agent: h.agent ?? null,
|