local-operator-ui 0.19.7 → 0.20.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.
Files changed (69) hide show
  1. package/bin/ensure-electron.js +47 -0
  2. package/bin/linux-sandbox.js +27 -18
  3. package/bin/postinstall.js +55 -33
  4. package/out/main/index.js +194 -417
  5. package/out/renderer/assets/{_basePickBy-C411r4Fr.js → _basePickBy-C7yOlBwG.js} +1 -1
  6. package/out/renderer/assets/{_baseUniq-Bt63j3mu.js → _baseUniq-BxWDXUxR.js} +1 -1
  7. package/out/renderer/assets/{agent-details-page-DujEqAzR.js → agent-details-page-DGusXpiv.js} +1 -1
  8. package/out/renderer/assets/{agent-hub-page-C3kMnXTf.js → agent-hub-page-BEy-xjst.js} +1 -1
  9. package/out/renderer/assets/{agents-page-NEQ4hFtm.js → agents-page-VfOUQ-yP.js} +2 -2
  10. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-BqpmUfyo.js → architectureDiagram-IEHRJDOE-358ZDLa0.js} +1 -1
  11. package/out/renderer/assets/{blockDiagram-JOT3LUYC-CnQwEPXO.js → blockDiagram-JOT3LUYC-tzEHVS4j.js} +1 -1
  12. package/out/renderer/assets/{c4Diagram-VJAJSXHY-Dk_OmMLJ.js → c4Diagram-VJAJSXHY-D3tP-CCo.js} +1 -1
  13. package/out/renderer/assets/channel-D37fF6my.js +1 -0
  14. package/out/renderer/assets/{chunk-4BMEZGHF-BdRWhpmN.js → chunk-4BMEZGHF-BKUSTR_S.js} +1 -1
  15. package/out/renderer/assets/{chunk-A2AXSNBT-yHqgRYdq.js → chunk-A2AXSNBT-DvXPJSTp.js} +1 -1
  16. package/out/renderer/assets/{chunk-AEK57VVT-BanBKJ_s.js → chunk-AEK57VVT-iJyV8fDW.js} +1 -1
  17. package/out/renderer/assets/{chunk-D6G4REZN-CuQN5RTN.js → chunk-D6G4REZN-B3DDJ3MU.js} +1 -1
  18. package/out/renderer/assets/{chunk-RZ5BOZE2-C8fBZeNu.js → chunk-RZ5BOZE2-Dbn_07ZJ.js} +1 -1
  19. package/out/renderer/assets/{chunk-XZIHB7SX-6KNcbSfo.js → chunk-XZIHB7SX-ChdMxZnm.js} +1 -1
  20. package/out/renderer/assets/classDiagram-GIVACNV2-CcnNtrPC.js +1 -0
  21. package/out/renderer/assets/classDiagram-v2-COTLJTTW-CcnNtrPC.js +1 -0
  22. package/out/renderer/assets/clone-DPqLvbSr.js +1 -0
  23. package/out/renderer/assets/{compact-pagination-Ovp_kll1.js → compact-pagination-duvMYksr.js} +1 -1
  24. package/out/renderer/assets/{dagre-OKDRZEBW-DzfvIYmf.js → dagre-OKDRZEBW-BuSM1V0w.js} +1 -1
  25. package/out/renderer/assets/{diagram-SSKATNLV-Bpyw0frR.js → diagram-SSKATNLV-39xt9Mcn.js} +1 -1
  26. package/out/renderer/assets/{diagram-VNBRO52H-r7KETc_A.js → diagram-VNBRO52H-Bgyt_DWD.js} +1 -1
  27. package/out/renderer/assets/{erDiagram-Q7BY3M3F-BBPxCrm9.js → erDiagram-Q7BY3M3F-DNfsSD46.js} +1 -1
  28. package/out/renderer/assets/{flowDiagram-4HSFHLVR-Bqfojzvn.js → flowDiagram-4HSFHLVR-DbS8UHwN.js} +1 -1
  29. package/out/renderer/assets/{ganttDiagram-APWFNJXF-Cd7hVnw4.js → ganttDiagram-APWFNJXF-Dxdp2V-6.js} +1 -1
  30. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-Dxoexd6b.js → gitGraphDiagram-7IBYFJ6S-BLrXJPe3.js} +1 -1
  31. package/out/renderer/assets/{graph-DoZ-YflA.js → graph-Cgkq5xQ7.js} +1 -1
  32. package/out/renderer/assets/{icon-DaedMBiD.css → icon-HSrrv8O-.css} +1 -1
  33. package/out/renderer/assets/{index-s958Ss2_.js → index-C4RcIL0i.js} +1 -1
  34. package/out/renderer/assets/{index-DXDWG455.js → index-CLwRuOtJ.js} +47 -47
  35. package/out/renderer/assets/{index-Bvsuxozx.js → index-lEoaSpWQ.js} +1 -1
  36. package/out/renderer/assets/{infoDiagram-PH2N3AL5-B6Q2kq6y.js → infoDiagram-PH2N3AL5-DR6So_J8.js} +1 -1
  37. package/out/renderer/assets/{installer-poO56j69.js → installer-Ck14_4Oh.js} +1 -1
  38. package/out/renderer/assets/{journeyDiagram-U35MCT3I-YvFhqi_4.js → journeyDiagram-U35MCT3I-DubpieGX.js} +1 -1
  39. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-hUPw4d6Q.js → kanban-definition-NDS4AKOZ-BtwsU2Rg.js} +1 -1
  40. package/out/renderer/assets/{layout-DL79cPuU.js → layout-BDeRPl4h.js} +1 -1
  41. package/out/renderer/assets/{legacy-agents-page-Bc9_mRrf.js → legacy-agents-page-ZyBMetf1.js} +1 -1
  42. package/out/renderer/assets/{mermaid.core-DY-qM3jW.js → mermaid.core-d-O-_a6F.js} +5 -5
  43. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-BIr3BZFI.js → mindmap-definition-ALO5MXBD-BCZdiKEB.js} +1 -1
  44. package/out/renderer/assets/{page-header-zecAylNs.js → page-header-D-uc8qqA.js} +1 -1
  45. package/out/renderer/assets/{parseISO-DLnRjbkm.js → parseISO-PdZfrqAM.js} +1 -1
  46. package/out/renderer/assets/{pieDiagram-IB7DONF6-DEfXQAHX.js → pieDiagram-IB7DONF6-Bd2e7gHe.js} +1 -1
  47. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-DTbs_0uW.js → quadrantDiagram-7GDLP6J5-oypZsih9.js} +1 -1
  48. package/out/renderer/assets/{radar-MK3ICKWK-YpweuwYm.js → radar-MK3ICKWK-c4YagPOX.js} +1 -1
  49. package/out/renderer/assets/{radient-auth-buttons--VhWRhuh.js → radient-auth-buttons-BUlY7XDi.js} +1 -1
  50. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-DV8bmMki.js → requirementDiagram-KVF5MWMF-7UoAwEus.js} +1 -1
  51. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-BpZDUCJV.js → sankeyDiagram-QLVOVGJD-JStPMuRd.js} +1 -1
  52. package/out/renderer/assets/{schedules-page-Co1Ixrkk.js → schedules-page-IjBtVuIo.js} +1 -1
  53. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-B4x4_BhD.js → sequenceDiagram-X6HHIX6F-Lene9gQ-.js} +1 -1
  54. package/out/renderer/assets/{settings-page-yvoJPfPs.js → settings-page-BqJRfztd.js} +1 -1
  55. package/out/renderer/assets/{square-pen-CdJTC74b.js → square-pen-CQEKS3JT.js} +1 -1
  56. package/out/renderer/assets/{stateDiagram-DGXRK772-DHIWQgsa.js → stateDiagram-DGXRK772-umC2tGUK.js} +1 -1
  57. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Cp1tcztr.js +1 -0
  58. package/out/renderer/assets/{timeline-definition-BDJGKUSR-rcUcUcdw.js → timeline-definition-BDJGKUSR-h2KfXqek.js} +1 -1
  59. package/out/renderer/assets/{use-agent-like-mutation-_CPevTyx.js → use-agent-like-mutation-BanZ02f7.js} +1 -1
  60. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-CiY7ytjm.js → xychartDiagram-VJFVF3MP-BOH5ZQcH.js} +1 -1
  61. package/out/renderer/index.html +3 -3
  62. package/out/renderer/installer.html +3 -3
  63. package/package.json +69 -58
  64. package/out/renderer/assets/channel-QDS9FjQE.js +0 -1
  65. package/out/renderer/assets/classDiagram-GIVACNV2-CsOBNtuH.js +0 -1
  66. package/out/renderer/assets/classDiagram-v2-COTLJTTW-CsOBNtuH.js +0 -1
  67. package/out/renderer/assets/clone-BmqcgcfO.js +0 -1
  68. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CQi1jyLr.js +0 -1
  69. /package/out/renderer/assets/{icon-DMNb6cX-.js → icon-RIkwUxL5.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{_ as n,s as ii,g as ei,t as vt,q as si,a as ni,b as ai,l as Lt,K as oi,e as ri,z as hi,G as lt,F as Et,H as li,M as ci,i as ui,N as gi}from"./mermaid.core-DY-qM3jW.js";import{b as kt}from"./band-CquvqAHh.js";import{l as Tt}from"./linear-BfLTrHPc.js";import{l as Rt}from"./step-DMJAOHzS.js";import"./index-DXDWG455.js";import"./icon-DMNb6cX-.js";import"./init-Dmth1JHB.js";import"./ordinal-DILIJJjt.js";var at=function(){var t=n(function(B,r,l,c){for(l=l||{},c=B.length;c--;l[B[c]]=r);return l},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],o=[1,5],p=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],T=[1,25],E=[1,26],S=[1,28],R=[1,29],I=[1,30],V=[1,31],_=[1,32],L=[1,33],f=[1,34],C=[1,35],h=[1,36],D=[1,37],N=[1,43],yt=[1,42],bt=[1,47],$=[1,50],b=[1,10,12,14,16,18,19,21,23,34,35,36],J=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],P=[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],At=[1,64],tt={trace:n(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:n(function(r,l,c,u,y,a,X){var x=a.length-1;switch(y){case 5:u.setOrientation(a[x]);break;case 9:u.setDiagramTitle(a[x].text.trim());break;case 12:u.setLineData({text:"",type:"text"},a[x]);break;case 13:u.setLineData(a[x-1],a[x]);break;case 14:u.setBarData({text:"",type:"text"},a[x]);break;case 15:u.setBarData(a[x-1],a[x]);break;case 16:this.$=a[x].trim(),u.setAccTitle(this.$);break;case 17:case 18:this.$=a[x].trim(),u.setAccDescription(this.$);break;case 19:this.$=a[x-1];break;case 20:this.$=[Number(a[x-2]),...a[x]];break;case 21:this.$=[Number(a[x])];break;case 22:u.setXAxisTitle(a[x]);break;case 23:u.setXAxisTitle(a[x-1]);break;case 24:u.setXAxisTitle({type:"text",text:""});break;case 25:u.setXAxisBand(a[x]);break;case 26:u.setXAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 27:this.$=a[x-1];break;case 28:this.$=[a[x-2],...a[x]];break;case 29:this.$=[a[x]];break;case 30:u.setYAxisTitle(a[x]);break;case 31:u.setYAxisTitle(a[x-1]);break;case 32:u.setYAxisTitle({type:"text",text:""});break;case 33:u.setYAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 37:this.$={text:a[x],type:"text"};break;case 38:this.$={text:a[x],type:"text"};break;case 39:this.$={text:a[x],type:"markdown"};break;case 40:this.$=a[x];break;case 41:this.$=a[x-1]+""+a[x];break}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,34:o,35:p,36:g}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:o,35:p,36:g}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:o,35:p,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:o,35:p,36:g}),{1:[2,3]},t(m,[2,5]),t(i,[2,7],{4:22,34:o,35:p,36:g}),{11:23,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{11:39,13:38,24:N,27:yt,29:40,30:41,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{11:45,15:44,27:bt,33:46,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{11:49,17:48,24:$,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{11:52,17:51,24:$,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{20:[1,53]},{22:[1,54]},t(b,[2,18]),{1:[2,2]},t(b,[2,8]),t(b,[2,9]),t(J,[2,37],{40:55,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D}),t(J,[2,38]),t(J,[2,39]),t(P,[2,40]),t(P,[2,42]),t(P,[2,43]),t(P,[2,44]),t(P,[2,45]),t(P,[2,46]),t(P,[2,47]),t(P,[2,48]),t(P,[2,49]),t(P,[2,50]),t(P,[2,51]),t(b,[2,10]),t(b,[2,22],{30:41,29:56,24:N,27:yt}),t(b,[2,24]),t(b,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},t(b,[2,11]),t(b,[2,30],{33:60,27:bt}),t(b,[2,32]),{31:[1,61]},t(b,[2,12]),{17:62,24:$},{25:63,27:At},t(b,[2,14]),{17:65,24:$},t(b,[2,16]),t(b,[2,17]),t(P,[2,41]),t(b,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(b,[2,31]),{27:[1,69]},t(b,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(b,[2,15]),t(b,[2,26]),t(b,[2,27]),{11:59,32:72,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},t(b,[2,33]),t(b,[2,19]),{25:73,27:At},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:n(function(r,l){if(l.recoverable)this.trace(r);else{var c=new Error(r);throw c.hash=l,c}},"parseError"),parse:n(function(r){var l=this,c=[0],u=[],y=[null],a=[],X=this.table,x="",G=0,Ct=0,Kt=2,wt=1,Zt=a.slice.call(arguments,1),A=Object.create(this.lexer),W={yy:{}};for(var it in this.yy)Object.prototype.hasOwnProperty.call(this.yy,it)&&(W.yy[it]=this.yy[it]);A.setInput(r,W.yy),W.yy.lexer=A,W.yy.parser=this,typeof A.yylloc>"u"&&(A.yylloc={});var et=A.yylloc;a.push(et);var Jt=A.options&&A.options.ranges;typeof W.yy.parseError=="function"?this.parseError=W.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ti(k){c.length=c.length-2*k,y.length=y.length-k,a.length=a.length-k}n(ti,"popStack");function St(){var k;return k=u.pop()||A.lex()||wt,typeof k!="number"&&(k instanceof Array&&(u=k,k=u.pop()),k=l.symbols_[k]||k),k}n(St,"lex");for(var w,O,v,st,z={},j,M,_t,Q;;){if(O=c[c.length-1],this.defaultActions[O]?v=this.defaultActions[O]:((w===null||typeof w>"u")&&(w=St()),v=X[O]&&X[O][w]),typeof v>"u"||!v.length||!v[0]){var nt="";Q=[];for(j in X[O])this.terminals_[j]&&j>Kt&&Q.push("'"+this.terminals_[j]+"'");A.showPosition?nt="Parse error on line "+(G+1)+`:
1
+ import{_ as n,s as ii,g as ei,t as vt,q as si,a as ni,b as ai,l as Lt,K as oi,e as ri,z as hi,G as lt,F as Et,H as li,M as ci,i as ui,N as gi}from"./mermaid.core-d-O-_a6F.js";import{b as kt}from"./band-CquvqAHh.js";import{l as Tt}from"./linear-BfLTrHPc.js";import{l as Rt}from"./step-DMJAOHzS.js";import"./index-CLwRuOtJ.js";import"./icon-RIkwUxL5.js";import"./init-Dmth1JHB.js";import"./ordinal-DILIJJjt.js";var at=function(){var t=n(function(B,r,l,c){for(l=l||{},c=B.length;c--;l[B[c]]=r);return l},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],o=[1,5],p=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],T=[1,25],E=[1,26],S=[1,28],R=[1,29],I=[1,30],V=[1,31],_=[1,32],L=[1,33],f=[1,34],C=[1,35],h=[1,36],D=[1,37],N=[1,43],yt=[1,42],bt=[1,47],$=[1,50],b=[1,10,12,14,16,18,19,21,23,34,35,36],J=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],P=[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],At=[1,64],tt={trace:n(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:n(function(r,l,c,u,y,a,X){var x=a.length-1;switch(y){case 5:u.setOrientation(a[x]);break;case 9:u.setDiagramTitle(a[x].text.trim());break;case 12:u.setLineData({text:"",type:"text"},a[x]);break;case 13:u.setLineData(a[x-1],a[x]);break;case 14:u.setBarData({text:"",type:"text"},a[x]);break;case 15:u.setBarData(a[x-1],a[x]);break;case 16:this.$=a[x].trim(),u.setAccTitle(this.$);break;case 17:case 18:this.$=a[x].trim(),u.setAccDescription(this.$);break;case 19:this.$=a[x-1];break;case 20:this.$=[Number(a[x-2]),...a[x]];break;case 21:this.$=[Number(a[x])];break;case 22:u.setXAxisTitle(a[x]);break;case 23:u.setXAxisTitle(a[x-1]);break;case 24:u.setXAxisTitle({type:"text",text:""});break;case 25:u.setXAxisBand(a[x]);break;case 26:u.setXAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 27:this.$=a[x-1];break;case 28:this.$=[a[x-2],...a[x]];break;case 29:this.$=[a[x]];break;case 30:u.setYAxisTitle(a[x]);break;case 31:u.setYAxisTitle(a[x-1]);break;case 32:u.setYAxisTitle({type:"text",text:""});break;case 33:u.setYAxisRangeData(Number(a[x-2]),Number(a[x]));break;case 37:this.$={text:a[x],type:"text"};break;case 38:this.$={text:a[x],type:"text"};break;case 39:this.$={text:a[x],type:"markdown"};break;case 40:this.$=a[x];break;case 41:this.$=a[x-1]+""+a[x];break}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,34:o,35:p,36:g}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:o,35:p,36:g}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:o,35:p,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:o,35:p,36:g}),{1:[2,3]},t(m,[2,5]),t(i,[2,7],{4:22,34:o,35:p,36:g}),{11:23,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{11:39,13:38,24:N,27:yt,29:40,30:41,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{11:45,15:44,27:bt,33:46,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{11:49,17:48,24:$,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{11:52,17:51,24:$,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},{20:[1,53]},{22:[1,54]},t(b,[2,18]),{1:[2,2]},t(b,[2,8]),t(b,[2,9]),t(J,[2,37],{40:55,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D}),t(J,[2,38]),t(J,[2,39]),t(P,[2,40]),t(P,[2,42]),t(P,[2,43]),t(P,[2,44]),t(P,[2,45]),t(P,[2,46]),t(P,[2,47]),t(P,[2,48]),t(P,[2,49]),t(P,[2,50]),t(P,[2,51]),t(b,[2,10]),t(b,[2,22],{30:41,29:56,24:N,27:yt}),t(b,[2,24]),t(b,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},t(b,[2,11]),t(b,[2,30],{33:60,27:bt}),t(b,[2,32]),{31:[1,61]},t(b,[2,12]),{17:62,24:$},{25:63,27:At},t(b,[2,14]),{17:65,24:$},t(b,[2,16]),t(b,[2,17]),t(P,[2,41]),t(b,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(b,[2,31]),{27:[1,69]},t(b,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(b,[2,15]),t(b,[2,26]),t(b,[2,27]),{11:59,32:72,37:24,38:T,39:E,40:27,41:S,42:R,43:I,44:V,45:_,46:L,47:f,48:C,49:h,50:D},t(b,[2,33]),t(b,[2,19]),{25:73,27:At},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:n(function(r,l){if(l.recoverable)this.trace(r);else{var c=new Error(r);throw c.hash=l,c}},"parseError"),parse:n(function(r){var l=this,c=[0],u=[],y=[null],a=[],X=this.table,x="",G=0,Ct=0,Kt=2,wt=1,Zt=a.slice.call(arguments,1),A=Object.create(this.lexer),W={yy:{}};for(var it in this.yy)Object.prototype.hasOwnProperty.call(this.yy,it)&&(W.yy[it]=this.yy[it]);A.setInput(r,W.yy),W.yy.lexer=A,W.yy.parser=this,typeof A.yylloc>"u"&&(A.yylloc={});var et=A.yylloc;a.push(et);var Jt=A.options&&A.options.ranges;typeof W.yy.parseError=="function"?this.parseError=W.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ti(k){c.length=c.length-2*k,y.length=y.length-k,a.length=a.length-k}n(ti,"popStack");function St(){var k;return k=u.pop()||A.lex()||wt,typeof k!="number"&&(k instanceof Array&&(u=k,k=u.pop()),k=l.symbols_[k]||k),k}n(St,"lex");for(var w,O,v,st,z={},j,M,_t,Q;;){if(O=c[c.length-1],this.defaultActions[O]?v=this.defaultActions[O]:((w===null||typeof w>"u")&&(w=St()),v=X[O]&&X[O][w]),typeof v>"u"||!v.length||!v[0]){var nt="";Q=[];for(j in X[O])this.terminals_[j]&&j>Kt&&Q.push("'"+this.terminals_[j]+"'");A.showPosition?nt="Parse error on line "+(G+1)+`:
2
2
  `+A.showPosition()+`
3
3
  Expecting `+Q.join(", ")+", got '"+(this.terminals_[w]||w)+"'":nt="Parse error on line "+(G+1)+": Unexpected "+(w==wt?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(nt,{text:A.match,token:this.terminals_[w]||w,line:A.yylineno,loc:et,expected:Q})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+w);switch(v[0]){case 1:c.push(w),y.push(A.yytext),a.push(A.yylloc),c.push(v[1]),w=null,Ct=A.yyleng,x=A.yytext,G=A.yylineno,et=A.yylloc;break;case 2:if(M=this.productions_[v[1]][1],z.$=y[y.length-M],z._$={first_line:a[a.length-(M||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(M||1)].first_column,last_column:a[a.length-1].last_column},Jt&&(z._$.range=[a[a.length-(M||1)].range[0],a[a.length-1].range[1]]),st=this.performAction.apply(z,[x,Ct,G,W.yy,v[1],y,a].concat(Zt)),typeof st<"u")return st;M&&(c=c.slice(0,-1*M*2),y=y.slice(0,-1*M),a=a.slice(0,-1*M)),c.push(this.productions_[v[1]][0]),y.push(z.$),a.push(z._$),_t=X[c[c.length-2]][c[c.length-1]],c.push(_t);break;case 3:return!0}}return!0},"parse")},Qt=function(){var B={EOF:1,parseError:n(function(l,c){if(this.yy.parser)this.yy.parser.parseError(l,c);else throw new Error(l)},"parseError"),setInput:n(function(r,l){return this.yy=l||this.yy||{},this._input=r,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:n(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:n(function(r){var l=r.length,c=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var u=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),c.length-1&&(this.yylineno-=c.length-1);var y=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:c?(c.length===u.length?this.yylloc.first_column:0)+u[u.length-c.length].length-c[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(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:n(function(r){this.unput(this.match.slice(r))},"less"),pastInput:n(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n(function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
@@ -24,9 +24,9 @@
24
24
  <meta http-equiv="Content-Security-Policy"
25
25
  content="default-src 'self'; connect-src 'self' http://localhost:1111 http://127.0.0.1:1111 ws://localhost:1111 ws://127.0.0.1:1111 http://localhost:8080 http://127.0.0.1:8080 https://api.radienthq.com https://us.i.posthog.com https://login.microsoftonline.com https://accounts.google.com; script-src 'self' https://us-assets.i.posthog.com https://accounts.google.com https://login.microsoftonline.com; style-src 'self' 'unsafe-inline' data:; img-src 'self' data: blob: http://localhost:1111 http://127.0.0.1:1111; media-src 'self' blob: http://localhost:1111 http://127.0.0.1:1111; font-src 'self' data:; frame-src 'self' data: blob: http://localhost:1111 http://127.0.0.1:1111 https://accounts.google.com https://login.microsoftonline.com" />
26
26
  <meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin-allow-popups" />
27
- <script type="module" crossorigin src="./assets/index-DXDWG455.js"></script>
28
- <link rel="modulepreload" crossorigin href="./assets/icon-DMNb6cX-.js">
29
- <link rel="stylesheet" crossorigin href="./assets/icon-DaedMBiD.css">
27
+ <script type="module" crossorigin src="./assets/index-CLwRuOtJ.js"></script>
28
+ <link rel="modulepreload" crossorigin href="./assets/icon-RIkwUxL5.js">
29
+ <link rel="stylesheet" crossorigin href="./assets/icon-HSrrv8O-.css">
30
30
  <link rel="stylesheet" crossorigin href="./assets/index-aW0Bo_1a.css">
31
31
  </head>
32
32
 
@@ -8,9 +8,9 @@
8
8
  <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
9
9
  <meta http-equiv="Content-Security-Policy"
10
10
  content="default-src 'self'; connect-src 'self' http://localhost:1111 http://127.0.0.1:1111; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: http://localhost:1111 http://127.0.0.1:1111; media-src 'self' http://localhost:1111 http://127.0.0.1:1111; font-src 'self' data:" />
11
- <script type="module" crossorigin src="./assets/installer-poO56j69.js"></script>
12
- <link rel="modulepreload" crossorigin href="./assets/icon-DMNb6cX-.js">
13
- <link rel="stylesheet" crossorigin href="./assets/icon-DaedMBiD.css">
11
+ <script type="module" crossorigin src="./assets/installer-Ck14_4Oh.js"></script>
12
+ <link rel="modulepreload" crossorigin href="./assets/icon-RIkwUxL5.js">
13
+ <link rel="stylesheet" crossorigin href="./assets/icon-HSrrv8O-.css">
14
14
  </head>
15
15
 
16
16
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "local-operator-ui",
3
- "version": "0.19.7",
3
+ "version": "0.20.1",
4
4
  "productName": "Local Operator",
5
5
  "description": "User interface for AI agent assistants that run Python code safely on your device through an intuitive chat interface. Supports local and cloud LLM models with built-in security features.",
6
6
  "main": "./out/main/index.js",
@@ -54,6 +54,8 @@
54
54
  "dev": "npx dotenv-cli -e .env -- bash -c 'export $(grep -v '^#' .env | xargs) && electron-vite dev'",
55
55
  "dev:headless": "LOCAL_OPERATOR_UI_WINDOW_MODE=headless pnpm dev",
56
56
  "build": "electron-vite build",
57
+ "//prebuild": "The build compiles main/preload to V8 bytecode for the pinned Electron, so it needs a real node_modules/electron/dist before electron-vite runs. Since Electron 42 nothing fetches that during an install except our own postinstall, so this hook covers the trees that hook cannot reach (--ignore-scripts, or a dist/ removed by hand) and fails the build by name instead of letting it die inside the bytecode step with an ENOENT. build:npm needs no runtime: it deliberately emits plain JS (LOCAL_OPERATOR_UI_NO_BYTECODE=true).",
58
+ "prebuild": "node ./bin/ensure-electron.js",
57
59
  "prebuild:npm": "rm -rf out/main out/preload",
58
60
  "build:npm": "LOCAL_OPERATOR_UI_NO_BYTECODE=true electron-vite build",
59
61
  "postbuild:npm": "chmod +x ./bin/local-operator-ui.js",
@@ -67,10 +69,11 @@
67
69
  "check-types:main": "tsc --noEmit -p tsconfig.node.json",
68
70
  "check-types:renderer": "tsc --noEmit -p tsconfig.app.json",
69
71
  "check-types": "pnpm run check-types:main && pnpm run check-types:renderer",
70
- "test:desktop": "node scripts/run-desktop-tests.mjs scripts/linux-sandbox.test.mjs scripts/capture-evidence.test.mjs scripts/desktop-contract.test.mjs scripts/transcript-reducer.test.mjs scripts/transcript-paging.test.mjs scripts/provider-state.test.mjs scripts/stale-agent.test.mjs scripts/desktop-renderer-transport.test.mjs scripts/provider-grid-error-copy.test.mjs scripts/settings-time-to-error.test.mjs scripts/backend-error-surfaces.test.mjs scripts/canonical-chat.test.mjs scripts/run-detail-model.test.mjs scripts/chat-title.test.mjs scripts/tool-row.test.mjs scripts/attachment-url.test.mjs scripts/desktop-notifier.test.mjs scripts/python-bytecode-cache.test.mjs scripts/update-robustness.test.mjs scripts/usage-view.test.mjs scripts/usage-container.test.mjs scripts/session-status.test.mjs scripts/window-mode.test.mjs scripts/evidence-manifest.test.mjs scripts/desktop-test-concurrency.test.mjs scripts/run-desktop-tests.test.mjs scripts/mcp-foreign-config-origin.test.mjs scripts/picker-feedback.test.mjs scripts/warm-session.test.mjs scripts/submit-latency.test.mjs scripts/echo-delivery.test.mjs",
72
+ "test:desktop": "node scripts/run-desktop-tests.mjs scripts/linux-sandbox.test.mjs scripts/capture-evidence.test.mjs scripts/desktop-contract.test.mjs scripts/transcript-reducer.test.mjs scripts/transcript-paging.test.mjs scripts/provider-state.test.mjs scripts/stale-agent.test.mjs scripts/desktop-renderer-transport.test.mjs scripts/provider-grid-error-copy.test.mjs scripts/settings-time-to-error.test.mjs scripts/backend-error-surfaces.test.mjs scripts/canonical-chat.test.mjs scripts/run-detail-model.test.mjs scripts/chat-title.test.mjs scripts/clear-search.test.mjs scripts/tool-row.test.mjs scripts/attachment-url.test.mjs scripts/desktop-notifier.test.mjs scripts/python-bytecode-cache.test.mjs scripts/update-robustness.test.mjs scripts/prune-python-resource.test.mjs scripts/usage-view.test.mjs scripts/usage-container.test.mjs scripts/session-status.test.mjs scripts/window-mode.test.mjs scripts/evidence-manifest.test.mjs scripts/desktop-test-concurrency.test.mjs scripts/run-desktop-tests.test.mjs scripts/mcp-foreign-config-origin.test.mjs scripts/picker-feedback.test.mjs scripts/warm-session.test.mjs scripts/submit-latency.test.mjs scripts/echo-delivery.test.mjs scripts/check-runtime-deps.test.mjs scripts/new-chat-row.test.mjs scripts/new-chat-row-evidence.test.mjs",
71
73
  "check-themes": "node scripts/generate-theme-css.mjs --check && node scripts/contrast-contract.mjs",
72
74
  "check-evidence": "node scripts/check-evidence.mjs",
73
75
  "check-edit-diffs": "node scripts/check-edit-diffs.mjs",
76
+ "check-runtime-deps": "node scripts/check-runtime-deps.mjs",
74
77
  "gen-themes": "node scripts/generate-theme-css.mjs",
75
78
  "bundle-size": "node scripts/bundle-size.mjs",
76
79
  "startup-closure": "node scripts/startup-closure.mjs",
@@ -89,41 +92,72 @@
89
92
  "build-storybook": "storybook build"
90
93
  },
91
94
  "dependencies": {
95
+ "@electron-toolkit/utils": "^4.0.0",
96
+ "dotenv": "^16.5.0",
97
+ "electron-log": "^4.4.8",
98
+ "electron-updater": "^6.8.9",
99
+ "posthog-node": "^4.11.3",
100
+ "zod": "^3.24.2"
101
+ },
102
+ "//types-node-pin": "Declared in devDependencies and pinned exactly, rather than left to the peer that used to supply it. @electron-toolkit/tsconfig peers on `@types/node: *`, so a full re-resolution floats it to whatever major is current; a range here would re-float the same way. It matters because the renderer typecheck compiles against the lib level this package implies: 22.x carries the es2020 compatibility shims that declare `Array.prototype.at`, 24.x dropped them, and floating it surfaced two TS2550 errors in files nothing here touches. Declaring it makes that a reviewed line instead of a resolution accident.",
103
+ "//packaged-node-modules-exclusions": "The list above excludes Electron's own dependency tree from the packaged app, which electron-builder copies because `electron` is in optionalDependencies (the npm/npx channel needs it at install time). `@electron/get`, `@electron-internal/extract-zip` and their deps exist to download and unpack the Electron runtime during an INSTALL; a packaged app never runs them. Measured on a --dir artifact of 0.19.7: 8 packages outside the production closure, 7.0 MB of them unpacked into app.asar.unpacked and the rest inside a 26 MB app.asar (@types/node alone 2.4 MB). None is a module request anywhere in out/**, and the closure scripts/check-packaged-closure.mjs computes over the six declared runtime dependencies contains none of them. They are named rather than pattern-matched because electron-builder has no 'skip this dependency's tree' switch: a future Electron bump that adds a dependency needs this list re-derived from the same diff.",
104
+ "//electron-pin": "Two pins, one runtime, and they must move together. optionalDependencies.electron is what the npm/npx channel installs and what bin/local-operator-ui.js checks at launch; build.electronVersion is what electron-builder packages into the installers. electron-builder does NOT read optionalDependencies (findFromPackageMetadata inspects devDependencies then dependencies only), so without the explicit build.electronVersion it silently falls back to whatever electron happens to sit in node_modules, and a bump against a stale tree keeps building the old runtime. Bump both, or scripts/test-publish-workflow.mjs fails. dmg-builder and electron-builder-squirrel-windows are app-builder-lib's peers and the builder refuses to resolve when they disagree with it, so all three move as one version.",
105
+ "optionalDependencies": {
106
+ "electron": "44.3.0"
107
+ },
108
+ "devDependencies": {
109
+ "@babel/helpers": "^7.26.10",
110
+ "@babel/runtime": "^7.26.10",
111
+ "@biomejs/biome": "^1.9.4",
112
+ "@chromatic-com/storybook": "^3.2.5",
92
113
  "@codemirror/language": "^6.11.1",
93
114
  "@codemirror/search": "^6.5.6",
94
115
  "@codemirror/state": "^6.5.2",
95
116
  "@codemirror/view": "^6.37.1",
96
- "@electron-toolkit/utils": "^4.0.0",
117
+ "@electron-toolkit/preload": "^3.0.1",
118
+ "@electron-toolkit/tsconfig": "^1.0.1",
119
+ "@electron/notarize": "^2.5.0",
97
120
  "@emotion/react": "^11.14.0",
98
121
  "@emotion/styled": "^11.14.0",
99
122
  "@lezer/highlight": "^1.2.1",
100
123
  "@mui/material": "^6.4.2",
101
124
  "@mui/x-date-pickers": "^8.3.1",
102
- "@openid/appauth": "1.3.2",
125
+ "@storybook/addon-essentials": "^8.6.4",
126
+ "@storybook/addon-interactions": "^8.6.4",
127
+ "@storybook/blocks": "^8.6.4",
128
+ "@storybook/react": "^8.6.4",
129
+ "@storybook/react-vite": "^8.6.4",
130
+ "@storybook/test": "^8.6.4",
103
131
  "@tailwindcss/vite": "4.3.3",
104
132
  "@tanstack/react-query": "^5.67.1",
105
133
  "@tanstack/react-query-devtools": "^5.67.1",
134
+ "@types/hast": "^3.0.4",
135
+ "@types/node": "22.14.1",
136
+ "@types/react": "18.3.18",
137
+ "@types/react-dom": "18.3.5",
138
+ "@types/react-syntax-highlighter": "^15.5.13",
139
+ "@types/xlsx": "^0.0.36",
106
140
  "@uiw/codemirror-extensions-langs": "^4.23.10",
107
- "@uiw/codemirror-theme-basic": "^4.23.10",
108
141
  "@uiw/react-codemirror": "^4.23.10",
142
+ "@vitejs/plugin-react": "^4.3.4",
109
143
  "ag-grid-community": "^33.3.2",
110
144
  "ag-grid-react": "^33.3.2",
111
145
  "class-variance-authority": "0.7.1",
112
146
  "clsx": "2.1.1",
113
147
  "date-fns": "^4.1.0",
114
- "dmg-builder": "26.0.12",
115
- "electron-builder-squirrel-windows": "26.0.12",
116
- "electron-debug": "^3.2.0",
117
- "electron-log": "^4.4.8",
118
- "electron-updater": "^6.6.2",
148
+ "dmg-builder": "26.16.1",
149
+ "dotenv-cli": "^8.0.0",
150
+ "electron-builder": "^26.16.1",
151
+ "electron-builder-squirrel-windows": "26.16.1",
152
+ "electron-vite": "^3.0.0",
153
+ "esbuild": "^0.25.1",
119
154
  "html-react-parser": "^5.2.2",
120
- "jwt-decode": "^4.0.0",
155
+ "icns-lib": "^1.0.1",
156
+ "jest": "^29.7.0",
121
157
  "katex": "^0.16.21",
122
- "keytar": "^7.9.0",
123
158
  "lucide-react": "^0.507.0",
124
159
  "mermaid": "^11.6.0",
125
160
  "posthog-js": "^1.235.0",
126
- "posthog-node": "^4.11.3",
127
161
  "radix-ui": "1.6.7",
128
162
  "react": "^18.3.1",
129
163
  "react-dom": "^18.3.1",
@@ -138,61 +172,28 @@
138
172
  "rehype-remark": "^10.0.1",
139
173
  "rehype-source-map": "^1.0.1",
140
174
  "rehype-stringify": "^10.0.1",
175
+ "remark": "^15.0.1",
141
176
  "remark-gfm": "^4.0.1",
142
177
  "remark-math": "^6.0.0",
143
178
  "remark-parse": "^11.0.0",
144
179
  "remark-rehype": "^11.1.2",
145
180
  "remark-stringify": "^11.0.0",
181
+ "sharp": "^0.33.2",
146
182
  "shepherd.js": "^14.5.0",
147
183
  "sonner": "^2.0.3",
184
+ "storybook": "^8.6.4",
148
185
  "tailwind-merge": "3.6.0",
149
186
  "tailwindcss": "4.3.3",
150
187
  "tw-animate-css": "1.4.0",
188
+ "typescript": "^7.0.2",
151
189
  "unified": "^11.0.5",
152
190
  "unist-util-visit": "^5.0.0",
153
191
  "uuid": "^11.1.0",
154
- "xlsx": "^0.18.5",
155
- "zod": "^3.24.2",
156
- "zustand": "^5.0.3"
157
- },
158
- "//electron-pin": "Two pins, one runtime, and they must move together. optionalDependencies.electron is what the npm/npx channel installs and what bin/local-operator-ui.js checks at launch; build.electronVersion is what electron-builder packages into the installers. electron-builder does NOT read optionalDependencies (findFromPackageMetadata inspects devDependencies then dependencies only), so without the explicit build.electronVersion it silently falls back to whatever electron happens to sit in node_modules, and a bump against a stale tree keeps building the old runtime. Bump both, or scripts/test-publish-workflow.mjs fails.",
159
- "optionalDependencies": {
160
- "electron": "35.5.1"
161
- },
162
- "devDependencies": {
163
- "@babel/helpers": "^7.26.10",
164
- "@babel/runtime": "^7.26.10",
165
- "@biomejs/biome": "^1.9.4",
166
- "@chromatic-com/storybook": "^3.2.5",
167
- "@electron-toolkit/preload": "^3.0.1",
168
- "@electron-toolkit/tsconfig": "^1.0.1",
169
- "@electron/notarize": "^2.5.0",
170
- "@storybook/addon-essentials": "^8.6.4",
171
- "@storybook/addon-interactions": "^8.6.4",
172
- "@storybook/blocks": "^8.6.4",
173
- "@storybook/react": "^8.6.4",
174
- "@storybook/react-vite": "^8.6.4",
175
- "@storybook/test": "^8.6.4",
176
- "@types/hast": "^3.0.4",
177
- "@types/react": "18.3.18",
178
- "@types/react-dom": "18.3.5",
179
- "@types/react-syntax-highlighter": "^15.5.13",
180
- "@types/xlsx": "^0.0.36",
181
- "@vitejs/plugin-react": "^4.3.4",
182
- "dotenv": "^16.5.0",
183
- "dotenv-cli": "^8.0.0",
184
- "electron-builder": "^26.0.12",
185
- "electron-vite": "^3.0.0",
186
- "esbuild": "^0.25.1",
187
- "icns-lib": "^1.0.1",
188
- "jest": "^29.7.0",
189
- "remark": "^15.0.1",
190
- "sharp": "^0.33.2",
191
- "storybook": "^8.6.4",
192
- "typescript": "^5.8.2",
193
192
  "vite": "^6.2.0",
194
193
  "vite-tsconfig-paths": "^5.1.4",
195
- "yaml": "^2.7.0"
194
+ "xlsx": "^0.18.5",
195
+ "yaml": "^2.7.0",
196
+ "zustand": "^5.0.3"
196
197
  },
197
198
  "peerDependencies": {
198
199
  "react": ">=18.0.0",
@@ -203,7 +204,7 @@
203
204
  },
204
205
  "build": {
205
206
  "appId": "com.local-operator",
206
- "electronVersion": "35.5.1",
207
+ "electronVersion": "44.3.0",
207
208
  "productName": "Local Operator",
208
209
  "copyright": "Copyright \u00a9 2025 Radient Inc.",
209
210
  "asar": true,
@@ -212,7 +213,15 @@
212
213
  "bin/**/*",
213
214
  "LICENSE",
214
215
  "README.md",
215
- "!node_modules/electron/**/*"
216
+ "!node_modules/electron/**/*",
217
+ "!node_modules/@electron/get/**/*",
218
+ "!node_modules/@electron-internal/**/*",
219
+ "!node_modules/env-paths/**/*",
220
+ "!node_modules/progress/**/*",
221
+ "!node_modules/sumchecker/**/*",
222
+ "!node_modules/undici/**/*",
223
+ "!node_modules/undici-types/**/*",
224
+ "!node_modules/@types/node/**/*"
216
225
  ],
217
226
  "directories": {
218
227
  "output": "dist",
@@ -235,6 +244,7 @@
235
244
  }
236
245
  ],
237
246
  "afterSign": "scripts/notarize.js",
247
+ "afterPack": "scripts/prune-python-resource.mjs",
238
248
  "mac": {
239
249
  "notarize": false,
240
250
  "category": "public.app-category.developer-tools",
@@ -242,18 +252,19 @@
242
252
  "gatekeeperAssess": false,
243
253
  "entitlements": "build/entitlements.mac.plist",
244
254
  "entitlementsInherit": "build/entitlements.mac.plist",
245
- "x64ArchFiles": "*",
246
255
  "target": [
247
256
  {
248
257
  "target": "dmg",
249
258
  "arch": [
250
- "universal"
259
+ "arm64",
260
+ "x64"
251
261
  ]
252
262
  },
253
263
  {
254
264
  "target": "zip",
255
265
  "arch": [
256
- "universal"
266
+ "arm64",
267
+ "x64"
257
268
  ]
258
269
  }
259
270
  ],
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-DY-qM3jW.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-A2AXSNBT-yHqgRYdq.js";import{_ as i}from"./mermaid.core-DY-qM3jW.js";import"./chunk-RZ5BOZE2-C8fBZeNu.js";import"./index-DXDWG455.js";import"./icon-DMNb6cX-.js";import"./step-DMJAOHzS.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-A2AXSNBT-yHqgRYdq.js";import{_ as i}from"./mermaid.core-DY-qM3jW.js";import"./chunk-RZ5BOZE2-C8fBZeNu.js";import"./index-DXDWG455.js";import"./icon-DMNb6cX-.js";import"./step-DMJAOHzS.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-Bt63j3mu.js";var e=4;function a(o){return r(o,e)}export{a as c};
@@ -1 +0,0 @@
1
- import{s as r,b as e,a,S as s}from"./chunk-AEK57VVT-BanBKJ_s.js";import{_ as i}from"./mermaid.core-DY-qM3jW.js";import"./chunk-RZ5BOZE2-C8fBZeNu.js";import"./index-DXDWG455.js";import"./icon-DMNb6cX-.js";import"./step-DMJAOHzS.js";var u={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{u as diagram};