local-operator-ui 0.42.2 → 0.42.4

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 (107) hide show
  1. package/out/main/index.js +2344 -173
  2. package/out/preload/browser-approvals-overlay.js +15 -0
  3. package/out/preload/index.js +45 -1
  4. package/out/renderer/assets/{_basePickBy-BA9uepHv.js → _basePickBy-CvLnUv7q.js} +1 -1
  5. package/out/renderer/assets/{_baseUniq-CVACH15m.js → _baseUniq-BKrt6A4N.js} +1 -1
  6. package/out/renderer/assets/{agent-details-page-xNTNJ7kP.js → agent-details-page-BWSojjKJ.js} +2 -2
  7. package/out/renderer/assets/{agent-hub-page-B-zE3Ln0.js → agent-hub-page-aubDNr6m.js} +1 -1
  8. package/out/renderer/assets/agents-page-DeOCoJow.js +7 -0
  9. package/out/renderer/assets/{approvalsOverlay-BBr6f98F.css → approvalsOverlay-CX3DxhSv.css} +1 -1
  10. package/out/renderer/assets/approvalsOverlay-jdsSQYbC.js +1 -0
  11. package/out/renderer/assets/{arc-DYIy54Kn.js → arc-Bo9HqcA4.js} +1 -1
  12. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-CmfaKw-J.js → architectureDiagram-IEHRJDOE-CjpgkGSs.js} +1 -1
  13. package/out/renderer/assets/{blockDiagram-JOT3LUYC-bQf90tJr.js → blockDiagram-JOT3LUYC-CkF9oOcr.js} +1 -1
  14. package/out/renderer/assets/{book-open-iGajLTwQ.js → book-open-CPvwVqAp.js} +1 -1
  15. package/out/renderer/assets/browser-page-DUwB_Shx.js +1 -0
  16. package/out/renderer/assets/{browser-webauthn-prompt-DX5l4JNA.js → browser-webauthn-prompt-D90b-ibP.js} +1 -1
  17. package/out/renderer/assets/{building-2-bjja6JTC.js → building-2-CTbbzJRN.js} +1 -1
  18. package/out/renderer/assets/{c4Diagram-VJAJSXHY-BxIFIYVW.js → c4Diagram-VJAJSXHY-Br-J2zii.js} +1 -1
  19. package/out/renderer/assets/channel-bs4gvJO_.js +1 -0
  20. package/out/renderer/assets/{chunk-4BMEZGHF-C2LQ_mlD.js → chunk-4BMEZGHF-Cch4oIqI.js} +1 -1
  21. package/out/renderer/assets/{chunk-A2AXSNBT-BKH53MbC.js → chunk-A2AXSNBT-BpTLsrEt.js} +1 -1
  22. package/out/renderer/assets/{chunk-AEK57VVT-CuB5dlAL.js → chunk-AEK57VVT-BA_p-1wW.js} +1 -1
  23. package/out/renderer/assets/{chunk-D6G4REZN-CECeg3Wn.js → chunk-D6G4REZN-C85KCEHq.js} +1 -1
  24. package/out/renderer/assets/{chunk-RZ5BOZE2-D-zkJWYc.js → chunk-RZ5BOZE2-Y0y4RocF.js} +1 -1
  25. package/out/renderer/assets/{chunk-XZIHB7SX-DstteBuH.js → chunk-XZIHB7SX-DK_cB1Vj.js} +1 -1
  26. package/out/renderer/assets/classDiagram-GIVACNV2-CEJVrd67.js +1 -0
  27. package/out/renderer/assets/classDiagram-v2-COTLJTTW-CEJVrd67.js +1 -0
  28. package/out/renderer/assets/clone-BAbNoxcV.js +1 -0
  29. package/out/renderer/assets/{console-mirror-gqAdwBWl.js → console-mirror-BiiClM8r.js} +1 -1
  30. package/out/renderer/assets/{consoleCapture-BQQVRcXT.js → consoleCapture-OAXBv_kp.js} +1 -1
  31. package/out/renderer/assets/{conversation-input-sync-grry80zS.js → conversation-input-sync-BXv32NfB.js} +253 -253
  32. package/out/renderer/assets/{dagre-OKDRZEBW-D6RBxeJd.js → dagre-OKDRZEBW-C9TMqwJP.js} +1 -1
  33. package/out/renderer/assets/{diagram-SSKATNLV--xUREIPn.js → diagram-SSKATNLV-SI8XWzeq.js} +1 -1
  34. package/out/renderer/assets/{diagram-VNBRO52H-BYjZ86BM.js → diagram-VNBRO52H-DnvHZL8L.js} +1 -1
  35. package/out/renderer/assets/{erDiagram-Q7BY3M3F-CmajcoOO.js → erDiagram-Q7BY3M3F-nWqxZ0l9.js} +1 -1
  36. package/out/renderer/assets/error-boundary-CqZRoe9S.js +126 -0
  37. package/out/renderer/assets/{flowDiagram-4HSFHLVR-CtQab7ap.js → flowDiagram-4HSFHLVR-DKJUboz2.js} +1 -1
  38. package/out/renderer/assets/{ganttDiagram-APWFNJXF-CuKez3d0.js → ganttDiagram-APWFNJXF-D0s8LZxz.js} +1 -1
  39. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-D9QOaWwN.js → gitGraphDiagram-7IBYFJ6S-DOu6eUhN.js} +1 -1
  40. package/out/renderer/assets/{graph-Ccifoj7G.js → graph-D4HJHitc.js} +1 -1
  41. package/out/renderer/assets/{hash-EZ0d40pW.js → hash-CzjTtP10.js} +1 -1
  42. package/out/renderer/assets/{heart-Bo3ZudoI.js → heart-B3mi-jou.js} +1 -1
  43. package/out/renderer/assets/{index-Dw4hyitu.js → index-CmbVW2m7.js} +1 -1
  44. package/out/renderer/assets/{index-CLJ4-1jd.js → index-D8glNEcT.js} +1 -1
  45. package/out/renderer/assets/index-UXcKfWo6.css +1 -0
  46. package/out/renderer/assets/index-wz2cjW5P.js +830 -0
  47. package/out/renderer/assets/infoDiagram-PH2N3AL5-DzTCSaMw.js +2 -0
  48. package/out/renderer/assets/{installer-B7DhTrnG.js → installer-DmYDl1Bg.js} +1 -1
  49. package/out/renderer/assets/{journeyDiagram-U35MCT3I-YTjOSo-b.js → journeyDiagram-U35MCT3I-BXdBmrLL.js} +1 -1
  50. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-C1UmNEaT.js → kanban-definition-NDS4AKOZ-B-oT4qjy.js} +1 -1
  51. package/out/renderer/assets/{layout-CWPZ7noV.js → layout-C35xWGut.js} +1 -1
  52. package/out/renderer/assets/{legacy-agents-page-ikCownYN.js → legacy-agents-page-zQ2FJ-pr.js} +4 -4
  53. package/out/renderer/assets/library-page-CB9dDvmn.js +157 -0
  54. package/out/renderer/assets/{mermaid.core-B_nZt27J.js → mermaid.core-5QYeuhdV.js} +5 -5
  55. package/out/renderer/assets/mesh-page-SxvMrMpp.js +1 -0
  56. package/out/renderer/assets/messages-Cq_3N7VC.js +3 -0
  57. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-D-Y3n0RT.js → mindmap-definition-ALO5MXBD-B-cLhV3I.js} +1 -1
  58. package/out/renderer/assets/{mini-BdCfujvn.js → mini-BH-IxQ6K.js} +1 -1
  59. package/out/renderer/assets/{notebook-pen-BvZPJ7Yv.js → notebook-pen-FphG2dMG.js} +1 -1
  60. package/out/renderer/assets/{org-access-C1u_2VVY.js → org-access-DVt3GFMX.js} +1 -1
  61. package/out/renderer/assets/{org-surface-gate-CyIC6H59.js → org-surface-gate-tHnRzD9A.js} +1 -1
  62. package/out/renderer/assets/{page-header-C9IFgiIB.js → page-header-B3bOo0UX.js} +1 -1
  63. package/out/renderer/assets/path-utils-BkJr3--b.js +58 -0
  64. package/out/renderer/assets/{pieDiagram-IB7DONF6-BJ2PZoWa.js → pieDiagram-IB7DONF6-CrHoOvO2.js} +1 -1
  65. package/out/renderer/assets/projects-page-ACh1mgoo.js +45 -0
  66. package/out/renderer/assets/{publication-validation-DAffiuLy.js → publication-validation-D2z_zWQT.js} +1 -1
  67. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-Dpr0N86G.js → quadrantDiagram-7GDLP6J5-DYDa1ECN.js} +1 -1
  68. package/out/renderer/assets/{radar-MK3ICKWK-CwLLK6fK.js → radar-MK3ICKWK-vDf2Es_C.js} +1 -1
  69. package/out/renderer/assets/{radient-auth-buttons-DN7K_uGZ.js → radient-auth-buttons-Di1zLV23.js} +1 -1
  70. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-LI2fP6nJ.js → requirementDiagram-KVF5MWMF-ChyAHYwK.js} +1 -1
  71. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-uUOWgFO1.js → sankeyDiagram-QLVOVGJD-D9wd8zQP.js} +1 -1
  72. package/out/renderer/assets/{schedules-page-Cf1PQGDR.js → schedules-page-BA4nO5Tw.js} +2 -2
  73. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-DperbqVG.js → sequenceDiagram-X6HHIX6F-CBIVQtEP.js} +1 -1
  74. package/out/renderer/assets/{settings-page-CrnST8YF.js → settings-page-D5KhLQHE.js} +3 -3
  75. package/out/renderer/assets/{smartart-qEAWtDlk.js → smartart-58otsUWh.js} +1 -1
  76. package/out/renderer/assets/{stateDiagram-DGXRK772-RvRbNkSX.js → stateDiagram-DGXRK772-DxVyPUM2.js} +1 -1
  77. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-BAggpoNG.js +1 -0
  78. package/out/renderer/assets/team-bridge-page-CJdJd9cs.js +16 -0
  79. package/out/renderer/assets/{timeline-definition-BDJGKUSR-CeQ3AsWj.js → timeline-definition-BDJGKUSR-DRQlSiWd.js} +1 -1
  80. package/out/renderer/assets/{use-download-agent-mutation-C_zDZ6-1.js → use-download-agent-mutation-BAzM19BL.js} +1 -1
  81. package/out/renderer/assets/{use-session-snapshot-BMDB4uZ0.js → use-session-snapshot-0k6Oot8j.js} +1 -1
  82. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-C6-d6maF.js → xychartDiagram-VJFVF3MP-DbSrp_cQ.js} +1 -1
  83. package/out/renderer/browser-approvals-overlay.html +53 -15
  84. package/out/renderer/console-capture.html +6 -6
  85. package/out/renderer/index.html +8 -8
  86. package/out/renderer/installer.html +5 -5
  87. package/out/renderer/mini.html +8 -8
  88. package/package.json +3 -3
  89. package/out/renderer/assets/agents-page-BeZQ1S7f.js +0 -7
  90. package/out/renderer/assets/approvalsOverlay-BmSmF8Ga.js +0 -1
  91. package/out/renderer/assets/browser-page-B63Z8oE2.js +0 -1
  92. package/out/renderer/assets/channel-Blax8LQd.js +0 -1
  93. package/out/renderer/assets/classDiagram-GIVACNV2-DA1IQG_V.js +0 -1
  94. package/out/renderer/assets/classDiagram-v2-COTLJTTW-DA1IQG_V.js +0 -1
  95. package/out/renderer/assets/clone-mVVuLCMS.js +0 -1
  96. package/out/renderer/assets/error-boundary-DfTTKe65.js +0 -126
  97. package/out/renderer/assets/index-ByZv232u.css +0 -1
  98. package/out/renderer/assets/index-LBzSehKd.js +0 -830
  99. package/out/renderer/assets/infoDiagram-PH2N3AL5-DrTRSok5.js +0 -2
  100. package/out/renderer/assets/library-page-DBSSkZvn.js +0 -157
  101. package/out/renderer/assets/mesh-page-CgjL4HIw.js +0 -1
  102. package/out/renderer/assets/messages-Bswe4yCX.js +0 -3
  103. package/out/renderer/assets/path-utils-DC6z9Ymz.js +0 -58
  104. package/out/renderer/assets/projects-page-CwwrR-j7.js +0 -45
  105. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-fK1yLl-v.js +0 -1
  106. package/out/renderer/assets/team-bridge-page-BgcLwc5M.js +0 -16
  107. /package/out/renderer/assets/{index-DXk6NfLu.js → index-DhltrflG.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{_ as s,c as xt,l as E,d as j,V as kt,W as vt,X as _t,Y as bt,D as wt,$ as St,z as Et}from"./mermaid.core-B_nZt27J.js";import{d as nt}from"./arc-DYIy54Kn.js";import"./conversation-input-sync-grry80zS.js";import"./index-DXk6NfLu.js";import"./path-utils-DC6z9Ymz.js";import"./messages-Bswe4yCX.js";import"./error-boundary-DfTTKe65.js";var Q=function(){var n=s(function(x,i,a,c){for(a=a||{},c=x.length;c--;a[x[c]]=i);return a},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],l=[1,10],r=[1,11],d=[1,12],h=[1,13],f=[1,16],m=[1,17],u={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:s(function(i,a,c,p,y,o,w){var v=o.length-1;switch(y){case 1:return o[v-1];case 2:this.$=[];break;case 3:o[v-1].push(o[v]),this.$=o[v-1];break;case 4:case 5:this.$=o[v];break;case 6:case 7:this.$=[];break;case 8:p.getCommonDb().setDiagramTitle(o[v].substr(6)),this.$=o[v].substr(6);break;case 9:this.$=o[v].trim(),p.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[v].trim(),p.getCommonDb().setAccDescription(this.$);break;case 12:p.addSection(o[v].substr(8)),this.$=o[v].substr(8);break;case 15:p.addTask(o[v],0,""),this.$=o[v];break;case 16:p.addEvent(o[v].substr(2)),this.$=o[v];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:l,14:r,16:d,17:h,18:14,19:15,20:f,21:m},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:l,14:r,16:d,17:h,18:14,19:15,20:f,21:m},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:s(function(i,a){if(a.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=a,c}},"parseError"),parse:s(function(i){var a=this,c=[0],p=[],y=[null],o=[],w=this.table,v="",N=0,A=0,V=2,U=1,M=o.slice.call(arguments,1),g=Object.create(this.lexer),b={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&(b.yy[L]=this.yy[L]);g.setInput(i,b.yy),b.yy.lexer=g,b.yy.parser=this,typeof g.yylloc>"u"&&(g.yylloc={});var P=g.yylloc;o.push(P);var W=g.options&&g.options.ranges;typeof b.yy.parseError=="function"?this.parseError=b.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Z(T){c.length=c.length-2*T,y.length=y.length-T,o.length=o.length-T}s(Z,"popStack");function tt(){var T;return T=p.pop()||g.lex()||U,typeof T!="number"&&(T instanceof Array&&(p=T,T=p.pop()),T=a.symbols_[T]||T),T}s(tt,"lex");for(var S,C,I,J,R={},B,$,et,O;;){if(C=c[c.length-1],this.defaultActions[C]?I=this.defaultActions[C]:((S===null||typeof S>"u")&&(S=tt()),I=w[C]&&w[C][S]),typeof I>"u"||!I.length||!I[0]){var K="";O=[];for(B in w[C])this.terminals_[B]&&B>V&&O.push("'"+this.terminals_[B]+"'");g.showPosition?K="Parse error on line "+(N+1)+`:
1
+ import{_ as s,c as xt,l as E,d as j,V as kt,W as vt,X as _t,Y as bt,D as wt,$ as St,z as Et}from"./mermaid.core-5QYeuhdV.js";import{d as nt}from"./arc-Bo9HqcA4.js";import"./conversation-input-sync-BXv32NfB.js";import"./index-DhltrflG.js";import"./path-utils-BkJr3--b.js";import"./messages-Cq_3N7VC.js";import"./error-boundary-CqZRoe9S.js";var Q=function(){var n=s(function(x,i,a,c){for(a=a||{},c=x.length;c--;a[x[c]]=i);return a},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],l=[1,10],r=[1,11],d=[1,12],h=[1,13],f=[1,16],m=[1,17],u={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:s(function(i,a,c,p,y,o,w){var v=o.length-1;switch(y){case 1:return o[v-1];case 2:this.$=[];break;case 3:o[v-1].push(o[v]),this.$=o[v-1];break;case 4:case 5:this.$=o[v];break;case 6:case 7:this.$=[];break;case 8:p.getCommonDb().setDiagramTitle(o[v].substr(6)),this.$=o[v].substr(6);break;case 9:this.$=o[v].trim(),p.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[v].trim(),p.getCommonDb().setAccDescription(this.$);break;case 12:p.addSection(o[v].substr(8)),this.$=o[v].substr(8);break;case 15:p.addTask(o[v],0,""),this.$=o[v];break;case 16:p.addEvent(o[v].substr(2)),this.$=o[v];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:l,14:r,16:d,17:h,18:14,19:15,20:f,21:m},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:l,14:r,16:d,17:h,18:14,19:15,20:f,21:m},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:s(function(i,a){if(a.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=a,c}},"parseError"),parse:s(function(i){var a=this,c=[0],p=[],y=[null],o=[],w=this.table,v="",N=0,A=0,V=2,U=1,M=o.slice.call(arguments,1),g=Object.create(this.lexer),b={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&(b.yy[L]=this.yy[L]);g.setInput(i,b.yy),b.yy.lexer=g,b.yy.parser=this,typeof g.yylloc>"u"&&(g.yylloc={});var P=g.yylloc;o.push(P);var W=g.options&&g.options.ranges;typeof b.yy.parseError=="function"?this.parseError=b.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Z(T){c.length=c.length-2*T,y.length=y.length-T,o.length=o.length-T}s(Z,"popStack");function tt(){var T;return T=p.pop()||g.lex()||U,typeof T!="number"&&(T instanceof Array&&(p=T,T=p.pop()),T=a.symbols_[T]||T),T}s(tt,"lex");for(var S,C,I,J,R={},B,$,et,O;;){if(C=c[c.length-1],this.defaultActions[C]?I=this.defaultActions[C]:((S===null||typeof S>"u")&&(S=tt()),I=w[C]&&w[C][S]),typeof I>"u"||!I.length||!I[0]){var K="";O=[];for(B in w[C])this.terminals_[B]&&B>V&&O.push("'"+this.terminals_[B]+"'");g.showPosition?K="Parse error on line "+(N+1)+`:
2
2
  `+g.showPosition()+`
3
3
  Expecting `+O.join(", ")+", got '"+(this.terminals_[S]||S)+"'":K="Parse error on line "+(N+1)+": Unexpected "+(S==U?"end of input":"'"+(this.terminals_[S]||S)+"'"),this.parseError(K,{text:g.match,token:this.terminals_[S]||S,line:g.yylineno,loc:P,expected:O})}if(I[0]instanceof Array&&I.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+S);switch(I[0]){case 1:c.push(S),y.push(g.yytext),o.push(g.yylloc),c.push(I[1]),S=null,A=g.yyleng,v=g.yytext,N=g.yylineno,P=g.yylloc;break;case 2:if($=this.productions_[I[1]][1],R.$=y[y.length-$],R._$={first_line:o[o.length-($||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-($||1)].first_column,last_column:o[o.length-1].last_column},W&&(R._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),J=this.performAction.apply(R,[v,A,N,b.yy,I[1],y,o].concat(M)),typeof J<"u")return J;$&&(c=c.slice(0,-1*$*2),y=y.slice(0,-1*$),o=o.slice(0,-1*$)),c.push(this.productions_[I[1]][0]),y.push(R.$),o.push(R._$),et=w[c[c.length-2]][c[c.length-1]],c.push(et);break;case 3:return!0}}return!0},"parse")},k=function(){var x={EOF:1,parseError:s(function(a,c){if(this.yy.parser)this.yy.parser.parseError(a,c);else throw new Error(a)},"parseError"),setInput:s(function(i,a){return this.yy=a||this.yy||{},this._input=i,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:s(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var a=i.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:s(function(i){var a=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var p=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===p.length?this.yylloc.first_column:0)+p[p.length-c.length].length-c[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(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:s(function(i){this.unput(this.match.slice(i))},"less"),pastInput:s(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var i=this.pastInput(),a=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{t as z,c as H,n as U,b as N,g as Q,e as V,h as S,i as C,j as D,a as v}from"./en-US-CHJkXXr4.js";import{j as i,c as p,r as B}from"./index-DXk6NfLu.js";import{c as d,u as O,z as Y}from"./error-boundary-DfTTKe65.js";import{t as c}from"./messages-Bswe4yCX.js";import{bs as T,bc as $,bt as P,ap as k,aq as M,ar as q,bn as W,a4 as I,bo as Z}from"./conversation-input-sync-grry80zS.js";import{bR as G,bS as X,bT as J,bU as ee,bV as te,bW as ae,bX as ne,bY as E}from"./index-LBzSehKd.js";import{B as se}from"./book-open-iGajLTwQ.js";import{h as oe,u as A,A as re,q as ie}from"./path-utils-DC6z9Ymz.js";import{b as ce,l as ue}from"./publication-validation-DAffiuLy.js";/**
1
+ import{t as z,c as H,n as U,b as N,g as Q,e as V,h as S,i as C,j as D,a as v}from"./en-US-CHJkXXr4.js";import{j as i,c as p,r as B}from"./index-DhltrflG.js";import{c as d,u as O,z as Y}from"./error-boundary-CqZRoe9S.js";import{t as c}from"./messages-Cq_3N7VC.js";import{br as T,bb as $,bs as P,ap as k,aq as M,ar as q,bm as W,a4 as I,bn as Z}from"./conversation-input-sync-BXv32NfB.js";import{bR as G,bS as X,bT as J,bU as ee,bV as te,bW as ae,bX as ne,bY as E}from"./index-wz2cjW5P.js";import{B as se}from"./book-open-CPvwVqAp.js";import{h as oe,u as A,A as re,q as ie}from"./path-utils-BkJr3--b.js";import{b as ce,l as ue}from"./publication-validation-D2z_zWQT.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{d as c}from"./path-utils-DC6z9Ymz.js";import{r as n}from"./index-DXk6NfLu.js";function s(){const[f,a]=n.useState(null),[l,o]=n.useState(null),r=n.useRef(null),u=n.useCallback(async e=>{r.current=e,a(t=>t&&t.id!==e?null:t),o(t=>t&&t.id!==e?null:t);try{const t=await c({op:"sessions.get",sessionId:e});if(r.current!==e)return;a({id:e,frontend:t.payload.frontend.snapshot})}catch{}try{const t=await c({op:"commands.entities",sessionId:e,command:"effort"});if(r.current!==e)return;o({id:e,entities:t.entities})}catch{}},[]);return{frontend:f?.frontend??null,effortEntities:l?.entities,refresh:u}}export{s as u};
1
+ import{d as c}from"./path-utils-BkJr3--b.js";import{r as n}from"./index-DhltrflG.js";function s(){const[f,a]=n.useState(null),[l,o]=n.useState(null),r=n.useRef(null),u=n.useCallback(async e=>{r.current=e,a(t=>t&&t.id!==e?null:t),o(t=>t&&t.id!==e?null:t);try{const t=await c({op:"sessions.get",sessionId:e});if(r.current!==e)return;a({id:e,frontend:t.payload.frontend.snapshot})}catch{}try{const t=await c({op:"commands.entities",sessionId:e,command:"effort"});if(r.current!==e)return;o({id:e,entities:t.entities})}catch{}},[]);return{frontend:f?.frontend??null,effortEntities:l?.entities,refresh:u}}export{s as u};
@@ -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 hi,z as ri,G as lt,F as Et,H as li,M as ci,i as ui,N as gi}from"./mermaid.core-B_nZt27J.js";import{k as kt,l as Tt,n as Rt}from"./conversation-input-sync-grry80zS.js";import"./index-DXk6NfLu.js";import"./path-utils-DC6z9Ymz.js";import"./messages-Bswe4yCX.js";import"./error-boundary-DfTTKe65.js";var at=function(){var t=n(function(B,h,l,c){for(l=l||{},c=B.length;c--;l[B[c]]=h);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],r=[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(h,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:r,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:r,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:r,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:r,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:r,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:r,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:r,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:r,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(h,l){if(l.recoverable)this.trace(h);else{var c=new Error(h);throw c.hash=l,c}},"parseError"),parse:n(function(h){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(h,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 hi,z as ri,G as lt,F as Et,H as li,M as ci,i as ui,N as gi}from"./mermaid.core-5QYeuhdV.js";import{k as kt,l as Tt,n as Rt}from"./conversation-input-sync-BXv32NfB.js";import"./index-DhltrflG.js";import"./path-utils-BkJr3--b.js";import"./messages-Cq_3N7VC.js";import"./error-boundary-CqZRoe9S.js";var at=function(){var t=n(function(B,h,l,c){for(l=l||{},c=B.length;c--;l[B[c]]=h);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],r=[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(h,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:r,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:r,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:r,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:r,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:r,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:r,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:r,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:r,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(h,l){if(l.recoverable)this.trace(h);else{var c=new Error(h);throw c.hash=l,c}},"parseError"),parse:n(function(h){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(h,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(h,l){return this.yy=l||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:n(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var l=h.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),h},"input"),unput:n(function(h){var l=h.length,c=h.split(/(?:\r\n?|\n)/g);this._input=h+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(h){this.unput(this.match.slice(h))},"less"),pastInput:n(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:n(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:n(function(){var h=this.pastInput(),l=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
@@ -4,16 +4,14 @@
4
4
  <meta charset="UTF-8" />
5
5
  <title>Local Operator Approvals Card</title>
6
6
  <!--
7
- S6a's inert card document (docs/design/browser-approvals-card.md).
7
+ S6b's approvals card document (docs/design/browser-approvals-card.md).
8
8
 
9
- THIS DOCUMENT HAS NO TRUST BOUNDARY YET. It is a static, unfocused
10
- presentation surface used to measure the native child's geometry and
11
- lifecycle before S6b adds a purpose-built preload and two sender-pinned
12
- IPC channels. It has no preload, no IPC, no remote content, no inline
13
- script and no focus target. The first paint's count and the palette are
14
- query parameters; the live count arrives through `setCount`, which owns
15
- the catalogue lookup and the ICU plural. Compositing and the 8 px ring's
16
- hit routing are NOT measurable in this slice and are not claimed.
9
+ THIS DOCUMENT RUNS BEHIND A PURPOSE-BUILT PRELOAD: exactly two verbs cross
10
+ to main (`dismiss`, `decide`) and the model arrives through
11
+ `window.__approvalsCard.setModel` (the seam S6a proved for the count). It
12
+ carries no inline script, no inline style, no remote content and no
13
+ `innerHTML`; every string is written with `textContent`. More options and
14
+ Review all are local view changes: they never cross the boundary.
17
15
 
18
16
  CSP: every capability the card does not need is denied. Script and style
19
17
  are emitted by the app's own build (`script-src 'self'`, `style-src
@@ -23,18 +21,58 @@
23
21
  http-equiv="Content-Security-Policy"
24
22
  content="default-src 'none'; script-src 'self'; style-src 'self'; img-src 'none'; font-src 'none'; connect-src 'none'; object-src 'none'; base-uri 'none'; form-action 'none'"
25
23
  />
26
- <script type="module" crossorigin src="./assets/approvalsOverlay-BmSmF8Ga.js"></script>
27
- <link rel="modulepreload" crossorigin href="./assets/messages-Bswe4yCX.js">
28
- <link rel="stylesheet" crossorigin href="./assets/approvalsOverlay-BBr6f98F.css">
24
+ <script type="module" crossorigin src="./assets/approvalsOverlay-jdsSQYbC.js"></script>
25
+ <link rel="modulepreload" crossorigin href="./assets/messages-Cq_3N7VC.js">
26
+ <link rel="stylesheet" crossorigin href="./assets/approvalsOverlay-CX3DxhSv.css">
29
27
  </head>
30
28
  <body>
31
- <main id="approvals-card" aria-hidden="true">
29
+ <main
30
+ id="approvals-card"
31
+ role="dialog"
32
+ aria-modal="false"
33
+ aria-labelledby="approvals-title"
34
+ tabindex="-1"
35
+ >
32
36
  <p class="card-brand" id="approvals-brand"></p>
33
37
  <header class="card-header">
34
38
  <h1 id="approvals-title"></h1>
39
+ <button type="button" class="card-close" id="approvals-close"></button>
35
40
  </header>
36
- <p class="card-count" id="approvals-count"></p>
37
- <p class="card-detail" id="approvals-detail"></p>
41
+ <div class="card-body">
42
+ <section id="approvals-request">
43
+ <!--
44
+ ONE SENTENCE, like the band's consent card: requester, the verb and
45
+ the exact origin inline in monospace. Three block rows read as three
46
+ unrelated facts and lose the subject of the request (D2).
47
+ -->
48
+ <p class="card-request-line">
49
+ <span id="approvals-requester" class="card-requester"></span>
50
+ <span id="approvals-lead"></span>
51
+ <code id="approvals-origin" class="card-origin"></code>
52
+ </p>
53
+ <p class="card-expiry" id="approvals-expiry"></p>
54
+ <button
55
+ type="button"
56
+ class="card-primary"
57
+ id="approvals-allow-once"
58
+ ></button>
59
+ <!--
60
+ ONE GLOSS LINE. The scoped decisions share the line and update it on
61
+ focus/hover, so the honesty text is available without five repeated
62
+ paragraphs pushing the deny button under the fold (D10/Q2).
63
+ -->
64
+ <p class="card-gloss" id="approvals-gloss"></p>
65
+ <div class="card-secondary" id="approvals-secondary"></div>
66
+ </section>
67
+ <section id="approvals-list" hidden>
68
+ <div class="card-rows" id="approvals-rows" role="list"></div>
69
+ </section>
70
+ <footer class="card-footer">
71
+ <p class="card-error" id="approvals-error" role="alert" hidden></p>
72
+ <button type="button" class="card-review" id="approvals-review"></button>
73
+ <button type="button" class="card-review" id="approvals-back" hidden></button>
74
+ </footer>
75
+ </div>
38
76
  </main>
39
77
  </body>
40
78
  </html>
@@ -6,12 +6,12 @@
6
6
  <title>Local Operator Console Capture</title>
7
7
  <meta http-equiv="Content-Security-Policy"
8
8
  content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:" />
9
- <script type="module" crossorigin src="./assets/consoleCapture-BQQVRcXT.js"></script>
10
- <link rel="modulepreload" crossorigin href="./assets/index-DXk6NfLu.js">
11
- <link rel="modulepreload" crossorigin href="./assets/messages-Bswe4yCX.js">
12
- <link rel="modulepreload" crossorigin href="./assets/path-utils-DC6z9Ymz.js">
13
- <link rel="modulepreload" crossorigin href="./assets/console-mirror-gqAdwBWl.js">
14
- <link rel="stylesheet" crossorigin href="./assets/index-ByZv232u.css">
9
+ <script type="module" crossorigin src="./assets/consoleCapture-OAXBv_kp.js"></script>
10
+ <link rel="modulepreload" crossorigin href="./assets/index-DhltrflG.js">
11
+ <link rel="modulepreload" crossorigin href="./assets/messages-Cq_3N7VC.js">
12
+ <link rel="modulepreload" crossorigin href="./assets/path-utils-BkJr3--b.js">
13
+ <link rel="modulepreload" crossorigin href="./assets/console-mirror-BiiClM8r.js">
14
+ <link rel="stylesheet" crossorigin href="./assets/index-UXcKfWo6.css">
15
15
  <link rel="stylesheet" crossorigin href="./assets/console-mirror-DOrYoP_4.css">
16
16
  </head>
17
17
 
@@ -41,14 +41,14 @@
41
41
  <meta http-equiv="Content-Security-Policy"
42
42
  content="default-src 'self'; connect-src 'self' http://localhost:1111 http://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: lo-supplement: http://localhost:1111 http://127.0.0.1:1111 https://accounts.google.com https://login.microsoftonline.com" />
43
43
  <meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin-allow-popups" />
44
- <script type="module" crossorigin src="./assets/index-LBzSehKd.js"></script>
45
- <link rel="modulepreload" crossorigin href="./assets/index-DXk6NfLu.js">
46
- <link rel="modulepreload" crossorigin href="./assets/messages-Bswe4yCX.js">
47
- <link rel="modulepreload" crossorigin href="./assets/path-utils-DC6z9Ymz.js">
48
- <link rel="modulepreload" crossorigin href="./assets/error-boundary-DfTTKe65.js">
49
- <link rel="modulepreload" crossorigin href="./assets/conversation-input-sync-grry80zS.js">
50
- <link rel="modulepreload" crossorigin href="./assets/console-mirror-gqAdwBWl.js">
51
- <link rel="stylesheet" crossorigin href="./assets/index-ByZv232u.css">
44
+ <script type="module" crossorigin src="./assets/index-wz2cjW5P.js"></script>
45
+ <link rel="modulepreload" crossorigin href="./assets/index-DhltrflG.js">
46
+ <link rel="modulepreload" crossorigin href="./assets/messages-Cq_3N7VC.js">
47
+ <link rel="modulepreload" crossorigin href="./assets/path-utils-BkJr3--b.js">
48
+ <link rel="modulepreload" crossorigin href="./assets/error-boundary-CqZRoe9S.js">
49
+ <link rel="modulepreload" crossorigin href="./assets/conversation-input-sync-BXv32NfB.js">
50
+ <link rel="modulepreload" crossorigin href="./assets/console-mirror-BiiClM8r.js">
51
+ <link rel="stylesheet" crossorigin href="./assets/index-UXcKfWo6.css">
52
52
  <link rel="stylesheet" crossorigin href="./assets/conversation-input-sync-CAX4_ErH.css">
53
53
  <link rel="stylesheet" crossorigin href="./assets/console-mirror-DOrYoP_4.css">
54
54
  <link rel="stylesheet" crossorigin href="./assets/index-DHKnfVbX.css">
@@ -8,11 +8,11 @@
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-B7DhTrnG.js"></script>
12
- <link rel="modulepreload" crossorigin href="./assets/index-DXk6NfLu.js">
13
- <link rel="modulepreload" crossorigin href="./assets/messages-Bswe4yCX.js">
14
- <link rel="modulepreload" crossorigin href="./assets/error-boundary-DfTTKe65.js">
15
- <link rel="stylesheet" crossorigin href="./assets/index-ByZv232u.css">
11
+ <script type="module" crossorigin src="./assets/installer-DmYDl1Bg.js"></script>
12
+ <link rel="modulepreload" crossorigin href="./assets/index-DhltrflG.js">
13
+ <link rel="modulepreload" crossorigin href="./assets/messages-Cq_3N7VC.js">
14
+ <link rel="modulepreload" crossorigin href="./assets/error-boundary-CqZRoe9S.js">
15
+ <link rel="stylesheet" crossorigin href="./assets/index-UXcKfWo6.css">
16
16
  </head>
17
17
 
18
18
  <body>
@@ -6,14 +6,14 @@
6
6
  <title>Local Operator Quick Send</title>
7
7
  <meta http-equiv="Content-Security-Policy"
8
8
  content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:" />
9
- <script type="module" crossorigin src="./assets/mini-BdCfujvn.js"></script>
10
- <link rel="modulepreload" crossorigin href="./assets/index-DXk6NfLu.js">
11
- <link rel="modulepreload" crossorigin href="./assets/messages-Bswe4yCX.js">
12
- <link rel="modulepreload" crossorigin href="./assets/error-boundary-DfTTKe65.js">
13
- <link rel="modulepreload" crossorigin href="./assets/path-utils-DC6z9Ymz.js">
14
- <link rel="modulepreload" crossorigin href="./assets/conversation-input-sync-grry80zS.js">
15
- <link rel="modulepreload" crossorigin href="./assets/use-session-snapshot-BMDB4uZ0.js">
16
- <link rel="stylesheet" crossorigin href="./assets/index-ByZv232u.css">
9
+ <script type="module" crossorigin src="./assets/mini-BH-IxQ6K.js"></script>
10
+ <link rel="modulepreload" crossorigin href="./assets/index-DhltrflG.js">
11
+ <link rel="modulepreload" crossorigin href="./assets/messages-Cq_3N7VC.js">
12
+ <link rel="modulepreload" crossorigin href="./assets/error-boundary-CqZRoe9S.js">
13
+ <link rel="modulepreload" crossorigin href="./assets/path-utils-BkJr3--b.js">
14
+ <link rel="modulepreload" crossorigin href="./assets/conversation-input-sync-BXv32NfB.js">
15
+ <link rel="modulepreload" crossorigin href="./assets/use-session-snapshot-0k6Oot8j.js">
16
+ <link rel="stylesheet" crossorigin href="./assets/index-UXcKfWo6.css">
17
17
  <link rel="stylesheet" crossorigin href="./assets/conversation-input-sync-CAX4_ErH.css">
18
18
  </head>
19
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "local-operator-ui",
3
- "version": "0.42.2",
3
+ "version": "0.42.4",
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",
@@ -90,7 +90,7 @@
90
90
  "test:window-guards": "node scripts/window-guards-electron.test.mjs",
91
91
  "test:window-glass": "node --test scripts/window-glass-cdp.test.mjs",
92
92
  "test:tag-dialogs": "node scripts/run-desktop-tests.mjs scripts/chat-tag-dialogs-immediate.test.mjs",
93
- "test:desktop": "node scripts/run-desktop-tests.mjs scripts/icon-identity.test.mjs scripts/browser-address-overlay.test.mjs scripts/approvals-overlay.test.mjs scripts/browser-view-policy-kinds.test.mjs scripts/browser-page-menu-focus.test.mjs scripts/browser-page-menu.test.mjs scripts/browser-address-raises.test.mjs scripts/browser-site-trigger.test.mjs scripts/browser-startup.test.mjs scripts/agents-config-summary.test.mjs scripts/agents-config-retry.test.mjs scripts/agent-class-toggle.test.mjs scripts/agent-messages-busy.test.mjs scripts/agent-messages-dialog.test.mjs scripts/agent-messages-model.test.mjs scripts/agent-messages-settings.test.mjs scripts/team-member-overrides.test.mjs scripts/update-fleet-drain.test.mjs scripts/at-mentions.test.mjs scripts/directory-listing.test.mjs scripts/slash-token.test.mjs scripts/slash-rank.test.mjs scripts/slash-submit.test.mjs scripts/slash-highlight.test.mjs scripts/slash-contract.test.mjs scripts/slash-row-format.test.mjs scripts/owned-serve-lifecycle.test.mjs scripts/launcher-watch.test.mjs scripts/linux-sandbox.test.mjs scripts/check-evidence-structure.test.mjs scripts/capture-evidence.test.mjs scripts/evidence-tz.test.mjs scripts/desktop-contract.test.mjs scripts/hub-skill-state.test.mjs scripts/transcript-reducer.test.mjs scripts/transcript-focus.test.mjs scripts/transcript-focus-behaviour.test.mjs scripts/transcript-dom-window.test.mjs scripts/transcript-dom-window-hook.test.mjs scripts/tool-compose-lifecycle.test.mjs scripts/transcript-paging.test.mjs scripts/transcript-paging-hook.test.mjs scripts/seed-placement.test.mjs scripts/seed-label-gap.test.mjs scripts/provider-state.test.mjs scripts/stale-agent.test.mjs scripts/desktop-renderer-transport.test.mjs scripts/desktop-proxy.test.mjs scripts/session-stream-token.test.mjs scripts/session-load-recovery.test.mjs scripts/session-load-sequence.test.mjs scripts/provider-grid-error-copy.test.mjs scripts/provider-grid-pin.test.mjs scripts/settings-time-to-error.test.mjs scripts/speech-settings.test.mjs scripts/backend-error-surfaces.test.mjs scripts/canonical-chat.test.mjs scripts/live-update-integrity.test.mjs scripts/stale-caption.test.mjs scripts/desktop-watch-lease.test.mjs scripts/session-switch.test.mjs scripts/session-switcher.test.mjs scripts/chat-search.test.mjs scripts/session-archive-delete.test.mjs scripts/chat-archived.test.mjs scripts/chat-archive-press.test.mjs scripts/desktop-test-lane-bound.test.mjs scripts/palette-search.test.mjs scripts/palette-shortcut.test.mjs scripts/palette-contract.test.mjs scripts/palette-panel-request.test.mjs scripts/run-child-reader.test.mjs scripts/run-detail-model.test.mjs scripts/subagent-pulse.test.mjs scripts/chat-title.test.mjs scripts/clear-search.test.mjs scripts/tool-row.test.mjs scripts/image-gen-card.test.mjs scripts/job-cancel-panel.test.mjs scripts/job-controls.test.mjs scripts/working-line-clock.test.mjs scripts/attachment-url.test.mjs scripts/file-blob-url.test.mjs scripts/desktop-notifier.test.mjs scripts/launch-session.test.mjs scripts/desktop-feed.test.mjs scripts/session-status-feed.test.mjs scripts/viewer-record.test.mjs scripts/desktop-stream.test.mjs scripts/python-bytecode-cache.test.mjs scripts/preload-updater-surface.test.mjs scripts/update-affirmation.test.mjs scripts/update-global-install.test.mjs scripts/update-robustness.test.mjs scripts/merge-update-feed.test.mjs scripts/prune-bundled-resources.test.mjs scripts/bundled-runtime-layout.test.mjs scripts/verify-bundled-uv.test.mjs scripts/managed-python.test.mjs scripts/managed-python-transaction.test.mjs scripts/usage-view.test.mjs scripts/usage-container.test.mjs scripts/session-status.test.mjs scripts/spend-payment-basis.test.mjs scripts/composer-readings.test.mjs scripts/composer-file-drop.test.mjs scripts/ask-draft-swap.test.mjs scripts/ask-queue.test.mjs scripts/session-asks.test.mjs scripts/library-card.test.mjs scripts/library-markdown.test.mjs scripts/library-model.test.mjs scripts/library-page.test.mjs scripts/library-pptx.test.mjs scripts/ask-revise.test.mjs scripts/ask-composer-no-routing.test.mjs scripts/ask-open-policy.test.mjs scripts/ask-open-render.test.mjs scripts/ask-dismiss.test.mjs scripts/ask-dismiss-panel.test.mjs scripts/ask-other.test.mjs scripts/composer-queued-send.test.mjs scripts/composer-tabs.test.mjs scripts/scroll-region-to-top.test.mjs scripts/ask-options.test.mjs scripts/click-proof-expect.test.mjs scripts/window-mode.test.mjs scripts/relaunch-during-quit-proof.test.mjs scripts/about-panel.test.mjs scripts/evidence-manifest.test.mjs scripts/canonical-notice.test.mjs scripts/evidence-histogram-parity.test.mjs scripts/evidence-run-guard.test.mjs scripts/desktop-test-concurrency.test.mjs scripts/desktop-test-memory-guard.test.mjs scripts/run-desktop-tests.test.mjs scripts/mcp-foreign-config-origin.test.mjs scripts/mentioned-files.test.mjs scripts/finder-files.test.mjs scripts/finder-reveal-scroll.test.mjs scripts/session-files-hook.test.mjs scripts/picker-feedback.test.mjs scripts/picker-host-selection.test.mjs scripts/panel-chart-motion.test.mjs scripts/panel-info-credentials.test.mjs scripts/panel-info-fleet.test.mjs scripts/panel-info-session-age.test.mjs scripts/warm-session.test.mjs scripts/submit-latency.test.mjs scripts/completion-view-ack.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 scripts/new-chat-shortcut.test.mjs scripts/reconnect-page-gap.test.mjs scripts/context-readout-monotonic.test.mjs scripts/browser-host.test.mjs scripts/check-vendored.test.mjs scripts/check-design-kit.test.mjs scripts/check-geometry-sources.test.mjs scripts/chat-session-status.test.mjs scripts/draft-selection.test.mjs scripts/draft-slash-identity.test.mjs scripts/toast-lifetime.test.mjs scripts/toast-close-placement.test.mjs scripts/storybook-query-fixture.test.mjs scripts/mcp-list-query.test.mjs scripts/mcp-target-resolution.test.mjs scripts/mcp-auth-surface.test.mjs scripts/mcp-failure-routing.test.mjs scripts/daemon-discovery.test.mjs scripts/daemon-health-state.test.mjs scripts/daemon-observation.test.mjs scripts/session-cookies.test.mjs scripts/move-session.test.mjs scripts/frontend-replace.test.mjs scripts/browser-chord.test.mjs scripts/browser-page-controls.test.mjs scripts/browser-find-row.test.mjs scripts/browser-chord-renderer.test.mjs scripts/browser-chrome.test.mjs scripts/browser-tab-management.test.mjs scripts/browser-queue-expiry.test.mjs scripts/dev-driver-gate.test.mjs scripts/renderer-driver-api.test.mjs scripts/logger-log-dir.test.mjs scripts/draft-splash.test.mjs scripts/suggestion-stack.test.mjs scripts/suggestion-stack-react.test.mjs scripts/notifications-off.test.mjs scripts/agent-shell-spawn-env.test.mjs scripts/notification-launch.test.mjs scripts/notification-spawn-sites.test.mjs scripts/chrome-keychain.test.mjs scripts/interrupt-control.test.mjs scripts/interrupt-slot-hold-react.test.mjs scripts/chat-sidebar-archive.test.mjs scripts/chat-sidebar-hover-intent.test.mjs scripts/chat-sidebar-selection.test.mjs scripts/message-quote.test.mjs scripts/panel-chart-hover.test.mjs scripts/panel-read-policy.test.mjs scripts/composer-suggestions.test.mjs scripts/composer-tip-react.test.mjs scripts/sidebar-catalogue-gate.test.mjs scripts/telemetry-launch.test.mjs scripts/telemetry-spawn-sites.test.mjs scripts/sidebar-focus-hold.test.mjs scripts/credential-capture.test.mjs scripts/soft-breaks.test.mjs scripts/credential-composer.test.mjs scripts/secret-ask.test.mjs scripts/run-panel-navigation.test.mjs scripts/panel-rail.test.mjs scripts/backend-settings-tiers.test.mjs scripts/settings-language-row.test.mjs scripts/backend-settings-collapse.test.mjs scripts/check-build-env.test.mjs scripts/asks-app-regression.test.mjs scripts/test-inventory.test.mjs scripts/conflict-markers.test.mjs scripts/compact-receipt.test.mjs scripts/chat-image-expand.test.mjs scripts/prune-python-seed.test.mjs scripts/mcp-auth-complete-no-retry.test.mjs scripts/panel-presentation.test.mjs scripts/turn-timestamp.test.mjs scripts/analytics-session-table.test.mjs scripts/theme-grid-navigation.test.mjs scripts/theme-registry-exhaustiveness.test.mjs scripts/scheduled-task-model.test.mjs scripts/backend-setting-combos.test.mjs scripts/model-setting-options.test.mjs scripts/searchable-select.test.mjs scripts/backend-settings-drafts.test.mjs scripts/retention-duration.test.mjs scripts/typed-row-call-sites.test.mjs scripts/palette-focus.test.mjs scripts/composer-seeding.test.mjs scripts/skill-invocation.test.mjs scripts/skill-list.test.mjs scripts/skill-highlight.test.mjs scripts/theme-inline.test.mjs scripts/composer-refusal.test.mjs scripts/ci-scope.test.mjs scripts/browser-tab-strip-focus.test.mjs scripts/projects-board-focus.test.mjs scripts/browser-file-transfer-row.test.mjs scripts/link-targets.test.mjs scripts/link-actions.test.mjs scripts/chat-link-affordances.test.mjs scripts/streaming-markdown-parity.test.mjs scripts/transcription-failure-copy.test.mjs scripts/backend-version-drift.test.mjs scripts/live-seed-placement.test.mjs scripts/agents-publication.test.mjs scripts/agent-hub-queries.test.mjs scripts/install-builtin-batch.test.mjs scripts/install-progress.test.mjs scripts/attention-seen.test.mjs scripts/mark-all-read-control.test.mjs scripts/update-global-guard.test.mjs scripts/delivery-gate.test.mjs scripts/canvas-file-freshness.test.mjs scripts/no-websocket-plane.test.mjs scripts/update-window-report.test.mjs scripts/canvas-tab-close.test.mjs scripts/chat-sidebar-pins.test.mjs scripts/webauthn.test.mjs scripts/render-mac-entitlements.test.mjs scripts/row-state-floors.test.mjs scripts/pairing-card-copy.test.mjs scripts/update-install-copy.test.mjs scripts/update-shipit.test.mjs scripts/console-close.test.mjs scripts/console-host.test.mjs scripts/console-pack.test.mjs scripts/settings-account-gate.test.mjs scripts/sidebar-pin-order.test.mjs scripts/sidebar-split.test.mjs scripts/radient-session-issue.test.mjs scripts/console-pane.test.mjs scripts/console-i18n-fit.test.mjs scripts/console-mirror.test.mjs scripts/shell-path.test.mjs scripts/build-env-guard.test.mjs scripts/install-scripts-network.test.mjs scripts/console-pane-render.test.mjs scripts/settings-section-routes.test.mjs scripts/authoring-refresh.test.mjs scripts/verify-macos-artifacts.test.mjs scripts/provider-chip-verdict.test.mjs scripts/child-reader-foot-react.test.mjs scripts/backend-spawn-address.test.mjs scripts/connectivity-banner-copy.test.mjs scripts/connectivity-banner-notice.test.mjs scripts/chat-list-sections.test.mjs scripts/chat-keyboard-regions.test.mjs scripts/chat-sidebar-agents.test.mjs scripts/chat-sidebar-view.test.mjs scripts/chat-sidebar-time-order.test.mjs scripts/chat-sidebar-layout.test.mjs scripts/drafts-clear-on-send.test.mjs scripts/chat-sidebar-drafts.test.mjs scripts/undo-toasts.test.mjs scripts/chat-sidebar-sections.test.mjs scripts/titlebar-options.test.mjs scripts/lane-leading.test.mjs scripts/panel-top-inset.test.mjs scripts/trace-fold-model.test.mjs scripts/trace-fold-behaviour.test.mjs scripts/chat-status-strip.test.mjs scripts/chat-pane-floors.test.mjs scripts/path-utils.test.mjs scripts/window-chrome.test.mjs scripts/chat-sidebar-scope-paging.test.mjs scripts/chat-sidebar-connection-voices.test.mjs scripts/integration-model.test.mjs scripts/mcp-catalog-parity.test.mjs scripts/mcp-catalog-transport.test.mjs scripts/btw-aside.test.mjs scripts/composer-send-failure.test.mjs scripts/composer-text-authority.test.mjs scripts/shared-composer.test.mjs scripts/analytics-rate-format.test.mjs scripts/provider-catalog.test.mjs scripts/provider-sign-in-flow.test.mjs scripts/provider-status.test.mjs scripts/evidence-sign-in-states.test.mjs scripts/provider-detail-remount.test.mjs scripts/model-select-store.test.mjs scripts/onboarding-step-block.test.mjs scripts/onboarding-default-model.test.mjs scripts/onboarding-i18n-contract.test.mjs scripts/server-release-notes.test.mjs scripts/no-hardlink-write.test.mjs scripts/canvas-goals.test.mjs scripts/overlay-drag-zones.test.mjs scripts/message-surface-floors.test.mjs scripts/media-surface-floors.test.mjs scripts/header-identity-model.test.mjs scripts/pane-slot-ground.test.mjs scripts/projects-tab.test.mjs scripts/agent-hub-org-sharing.test.mjs scripts/agent-hub-public-teams.test.mjs scripts/agent-hub-skills-tab-count.test.mjs scripts/agent-hub-teams-tab-count.test.mjs scripts/mesh-tab.test.mjs scripts/peers-catalogue.test.mjs scripts/onboarding-search-step.test.mjs scripts/provider-error-guidance.test.mjs scripts/radient-verify-callout.test.mjs scripts/phone-access-block.test.mjs scripts/sidebar-account-reconnect.test.mjs scripts/stopped-row-measure.test.mjs scripts/aida-rail-marks.test.mjs scripts/aida-sidebar.test.mjs scripts/currency-math.test.mjs scripts/mesh-canvas-bench.test.mjs scripts/agents-offer-dismiss.test.mjs scripts/projects-card-click.test.mjs scripts/lane-registration.test.mjs scripts/team-initials.test.mjs scripts/projects-sheet.test.mjs scripts/turn-collapse-model.test.mjs scripts/collapse-plan-per-pass.test.mjs scripts/turn-collapse-behaviour.test.mjs scripts/checkpoint-model.test.mjs scripts/checkpoint-rail.test.mjs scripts/use-checkpoints.test.mjs scripts/reveal-record.test.mjs scripts/transcript-loader.test.mjs scripts/transcript-deep-jump.test.mjs scripts/thread-search-contract.test.mjs scripts/thread-search-model.test.mjs scripts/thread-search-overlay.test.mjs scripts/use-thread-search.test.mjs scripts/notification-lifetime.test.mjs scripts/transcript-rail-refusal.test.mjs scripts/use-active-checkpoint.test.mjs scripts/held-claim-reach.test.mjs scripts/hold-escape-claim.test.mjs scripts/hotkey-registration.test.mjs scripts/mini-view-dictation.test.mjs scripts/mini-view-contract.test.mjs scripts/ptt-keymap-binding.test.mjs scripts/cross-session-visibility.test.mjs scripts/fold-open.test.mjs scripts/transcript-foot-slot.test.mjs scripts/chat-remote.test.mjs scripts/chat-session-copy-id.test.mjs scripts/header-identity-menu.test.mjs scripts/hub-updates.test.mjs scripts/hub-link-view.test.mjs scripts/hub-link-copy.test.mjs scripts/hub-links-scene.test.mjs scripts/hub-skills-capability.test.mjs scripts/hub-skill-alias.test.mjs scripts/hub-mutation-safety.test.mjs scripts/monitor-controls.test.mjs scripts/monitor-cancel-dialog.test.mjs scripts/child-transcript-paging.test.mjs scripts/loader-state-machine.test.mjs scripts/transcript-cursor-continuity.test.mjs scripts/older-history-slot.test.mjs scripts/chat-session-subagents.test.mjs scripts/message-actions.test.mjs scripts/transcript-copy-affordances.test.mjs scripts/update-indicator-segments.test.mjs scripts/reload-picker-close.test.mjs scripts/picker-default-checkbox.test.mjs scripts/projects-time-window.test.mjs scripts/audio-recording-levels.test.mjs scripts/chat-sidebar-row-menu.test.mjs scripts/chat-sidebar-tags.test.mjs scripts/navigation-gesture.test.mjs scripts/fleet-asks.test.mjs scripts/right-slot-width.test.mjs scripts/right-slot-memory.test.mjs scripts/transcript-fade.test.mjs scripts/agents-config-probe-cadence.test.mjs scripts/turn-segments.test.mjs scripts/turn-partition-predicate.test.mjs scripts/chat-device-model.test.mjs scripts/chat-device-placement.test.mjs scripts/org-teams-summary.test.mjs scripts/markdown-table-widths.test.mjs scripts/turn-answer-rail.test.mjs scripts/scrollbar-activity.test.mjs scripts/stt-mic-gate-session.test.mjs scripts/transcript-perflush-perf.test.mjs scripts/speech-clip.test.mjs scripts/speech-store.test.mjs scripts/speech-controls.test.mjs scripts/speech-selection.test.mjs scripts/speech-user-copy.test.mjs scripts/response-copy.test.mjs scripts/pre-push-gate.test.mjs scripts/update-rollover.test.mjs scripts/projects-filters.test.mjs scripts/projects-force-done.test.mjs scripts/projects-search.test.mjs scripts/projects-search-index.test.mjs scripts/projects-sort.test.mjs scripts/project-update-assets.test.mjs scripts/project-view-perf.test.mjs scripts/projects-request-update.test.mjs scripts/projects-inline-edit.test.mjs scripts/speech-target.test.mjs scripts/agents-composer-mount.test.mjs scripts/evidence-fold.test.mjs scripts/projects-quick-send.test.mjs scripts/palette-main-door.test.mjs scripts/external-open-refusal.test.mjs scripts/window-guards.test.mjs scripts/palette-recents.test.mjs scripts/projects-entry-scroll.test.mjs scripts/wake-controls.test.mjs scripts/wake-cancel-panel.test.mjs scripts/code-review-model.test.mjs scripts/code-review-refresh-cue.test.mjs scripts/radient-credits-guidance.test.mjs scripts/quota-notice.test.mjs scripts/use-ever-in-view.test.mjs scripts/image-actions.test.mjs scripts/image-preview-decode.test.mjs scripts/analytics-channels.test.mjs scripts/i18n/check-strings.test.mjs scripts/i18n/typed-keys.test.mjs scripts/i18n/runtime.test.mjs scripts/i18n/format.test.mjs scripts/supplement-model.test.mjs scripts/supplement-row.test.mjs scripts/supplement-collage.test.mjs scripts/supplement-disclosure.test.mjs scripts/supplement-file-actions.test.mjs scripts/supplement-image-grid.test.mjs scripts/preview-signed-urls.test.mjs scripts/language-live-updates.test.mjs scripts/language-dialog.test.mjs scripts/code-review-delayed-flag.test.mjs scripts/code-review-row-layout.test.mjs scripts/audio-meter-stream.test.mjs scripts/keymap-chords.test.mjs scripts/keymap-retention.test.mjs scripts/keymap-registry.test.mjs scripts/keymap-dispatch.test.mjs scripts/keyboard-shortcuts-section.test.mjs scripts/keymap-persistence.test.mjs scripts/transcript-strand-hold.test.mjs scripts/transcript-journal-order.test.mjs scripts/journal-order-query.test.mjs scripts/peer-journal-source.test.mjs scripts/peer-source-unified.test.mjs scripts/i18n/absent-locale.test.mjs scripts/i18n/activation.test.mjs scripts/i18n/locale-parity.test.mjs scripts/i18n/locale-reactivity.test.mjs scripts/i18n/ledger-check.test.mjs scripts/i18n/ledger-assemble.test.mjs scripts/streaming-live-markdown.test.mjs scripts/markdown-remend.test.mjs scripts/stream-order-live.test.mjs scripts/browser-address-history.test.mjs scripts/browser-history-store.test.mjs scripts/browser-address-autocomplete.test.mjs scripts/browser-url-autocomplete.test.mjs scripts/browser-toolbar.test.mjs scripts/copy-button-copy-locale.test.mjs scripts/i18n/context-parity.test.mjs scripts/i18n/check-coverage.test.mjs scripts/browser-start-page.test.mjs scripts/tooltip-browser-view.test.mjs scripts/resolve-package-union.test.mjs scripts/i18n/es-activation.test.mjs scripts/i18n/ru-activation.test.mjs scripts/i18n/vi-activation.test.mjs scripts/skill-row.test.mjs scripts/skill-seal-behaviour.test.mjs scripts/i18n/hi-activation.test.mjs scripts/i18n/zh-CN-activation.test.mjs scripts/projects-i18n-locale.test.mjs scripts/window-glass.test.mjs scripts/window-glass-main.test.mjs scripts/window-glass-renderer.test.mjs scripts/default-effort-options.test.mjs scripts/browser-chrome-gaps.test.mjs scripts/import-settings-view.test.mjs scripts/import-settings-section.test.mjs scripts/audio-engine.test.mjs scripts/waveform-model.test.mjs scripts/sound-player.test.mjs scripts/sounds-fixture.test.mjs scripts/sidebar-tag-drag.test.mjs scripts/receipt-fold-behaviour.test.mjs scripts/team-bridge-model.test.mjs scripts/team-bridge-auth-owner-mount.test.mjs scripts/team-bridge-thread-gate.test.mjs scripts/team-bridge-threads.test.mjs scripts/team-bridge-reactions.test.mjs scripts/team-bridge-reactions-behaviour.test.mjs scripts/team-bridge-scope.test.mjs scripts/dev-shortcuts.test.mjs scripts/i18n/ur-activation.test.mjs scripts/team-bridge-channels.test.mjs scripts/sidebar-tag-picker.test.mjs scripts/team-bridge-notify.test.mjs scripts/team-bridge-notifications-mount.test.mjs scripts/document-direction.test.mjs scripts/sidebar-tag-auto.test.mjs scripts/team-bridge-directory.test.mjs scripts/slash-tags.test.mjs scripts/slash-tags-popup.test.mjs scripts/slash-tags-reopen.test.mjs scripts/sidebar-destinations.test.mjs scripts/team-bridge-banner.test.mjs scripts/team-new-chat-stale-draft.test.mjs scripts/desktop-test-shards.test.mjs scripts/approval-escape.test.mjs scripts/attachment-files.test.mjs scripts/dev-driver-attach.test.mjs scripts/i18n/check-added-strings.test.mjs",
93
+ "test:desktop": "node scripts/run-desktop-tests.mjs scripts/icon-identity.test.mjs scripts/browser-address-overlay.test.mjs scripts/browser-chrome-s4b-probe-rig.test.mjs scripts/approvals-overlay.test.mjs scripts/browser-view-policy-kinds.test.mjs scripts/browser-page-menu-focus.test.mjs scripts/browser-page-menu.test.mjs scripts/browser-address-raises.test.mjs scripts/browser-site-trigger.test.mjs scripts/browser-startup.test.mjs scripts/agents-config-summary.test.mjs scripts/agents-config-retry.test.mjs scripts/agent-class-toggle.test.mjs scripts/agent-messages-busy.test.mjs scripts/agent-messages-dialog.test.mjs scripts/agent-messages-model.test.mjs scripts/agent-messages-settings.test.mjs scripts/team-member-overrides.test.mjs scripts/update-fleet-drain.test.mjs scripts/at-mentions.test.mjs scripts/directory-listing.test.mjs scripts/slash-token.test.mjs scripts/slash-rank.test.mjs scripts/slash-submit.test.mjs scripts/slash-highlight.test.mjs scripts/slash-contract.test.mjs scripts/slash-row-format.test.mjs scripts/owned-serve-lifecycle.test.mjs scripts/launcher-watch.test.mjs scripts/linux-sandbox.test.mjs scripts/check-evidence-structure.test.mjs scripts/capture-evidence.test.mjs scripts/evidence-tz.test.mjs scripts/desktop-contract.test.mjs scripts/hub-skill-state.test.mjs scripts/transcript-reducer.test.mjs scripts/transcript-focus.test.mjs scripts/transcript-focus-behaviour.test.mjs scripts/transcript-dom-window.test.mjs scripts/transcript-dom-window-hook.test.mjs scripts/tool-compose-lifecycle.test.mjs scripts/transcript-paging.test.mjs scripts/transcript-paging-hook.test.mjs scripts/seed-placement.test.mjs scripts/seed-label-gap.test.mjs scripts/provider-state.test.mjs scripts/stale-agent.test.mjs scripts/desktop-renderer-transport.test.mjs scripts/desktop-proxy.test.mjs scripts/session-stream-token.test.mjs scripts/session-load-recovery.test.mjs scripts/session-load-sequence.test.mjs scripts/provider-grid-error-copy.test.mjs scripts/provider-grid-pin.test.mjs scripts/settings-time-to-error.test.mjs scripts/speech-settings.test.mjs scripts/backend-error-surfaces.test.mjs scripts/canonical-chat.test.mjs scripts/live-update-integrity.test.mjs scripts/stale-caption.test.mjs scripts/desktop-watch-lease.test.mjs scripts/session-switch.test.mjs scripts/session-switcher.test.mjs scripts/chat-search.test.mjs scripts/session-archive-delete.test.mjs scripts/chat-archived.test.mjs scripts/chat-archive-press.test.mjs scripts/desktop-test-lane-bound.test.mjs scripts/palette-search.test.mjs scripts/palette-shortcut.test.mjs scripts/palette-contract.test.mjs scripts/palette-panel-request.test.mjs scripts/run-child-reader.test.mjs scripts/run-detail-model.test.mjs scripts/subagent-pulse.test.mjs scripts/chat-title.test.mjs scripts/clear-search.test.mjs scripts/tool-row.test.mjs scripts/image-gen-card.test.mjs scripts/job-cancel-panel.test.mjs scripts/job-controls.test.mjs scripts/working-line-clock.test.mjs scripts/attachment-url.test.mjs scripts/file-blob-url.test.mjs scripts/desktop-notifier.test.mjs scripts/launch-session.test.mjs scripts/desktop-feed.test.mjs scripts/session-status-feed.test.mjs scripts/viewer-record.test.mjs scripts/desktop-stream.test.mjs scripts/python-bytecode-cache.test.mjs scripts/preload-updater-surface.test.mjs scripts/update-affirmation.test.mjs scripts/update-global-install.test.mjs scripts/update-robustness.test.mjs scripts/merge-update-feed.test.mjs scripts/prune-bundled-resources.test.mjs scripts/bundled-runtime-layout.test.mjs scripts/verify-bundled-uv.test.mjs scripts/managed-python.test.mjs scripts/managed-python-transaction.test.mjs scripts/usage-view.test.mjs scripts/usage-container.test.mjs scripts/session-status.test.mjs scripts/spend-payment-basis.test.mjs scripts/composer-readings.test.mjs scripts/composer-file-drop.test.mjs scripts/ask-draft-swap.test.mjs scripts/ask-queue.test.mjs scripts/session-asks.test.mjs scripts/library-card.test.mjs scripts/library-markdown.test.mjs scripts/library-model.test.mjs scripts/library-page.test.mjs scripts/library-pptx.test.mjs scripts/ask-revise.test.mjs scripts/ask-composer-no-routing.test.mjs scripts/ask-open-policy.test.mjs scripts/ask-open-render.test.mjs scripts/ask-dismiss.test.mjs scripts/ask-dismiss-panel.test.mjs scripts/ask-other.test.mjs scripts/composer-queued-send.test.mjs scripts/composer-tabs.test.mjs scripts/scroll-region-to-top.test.mjs scripts/ask-options.test.mjs scripts/click-proof-expect.test.mjs scripts/window-mode.test.mjs scripts/relaunch-during-quit-proof.test.mjs scripts/about-panel.test.mjs scripts/evidence-manifest.test.mjs scripts/canonical-notice.test.mjs scripts/evidence-histogram-parity.test.mjs scripts/evidence-run-guard.test.mjs scripts/desktop-test-concurrency.test.mjs scripts/desktop-test-memory-guard.test.mjs scripts/run-desktop-tests.test.mjs scripts/mcp-foreign-config-origin.test.mjs scripts/mentioned-files.test.mjs scripts/finder-files.test.mjs scripts/finder-reveal-scroll.test.mjs scripts/session-files-hook.test.mjs scripts/picker-feedback.test.mjs scripts/picker-host-selection.test.mjs scripts/panel-chart-motion.test.mjs scripts/panel-info-credentials.test.mjs scripts/panel-info-fleet.test.mjs scripts/panel-info-session-age.test.mjs scripts/warm-session.test.mjs scripts/submit-latency.test.mjs scripts/completion-view-ack.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 scripts/new-chat-shortcut.test.mjs scripts/reconnect-page-gap.test.mjs scripts/context-readout-monotonic.test.mjs scripts/browser-host.test.mjs scripts/check-vendored.test.mjs scripts/check-design-kit.test.mjs scripts/check-geometry-sources.test.mjs scripts/chat-session-status.test.mjs scripts/draft-selection.test.mjs scripts/draft-slash-identity.test.mjs scripts/toast-lifetime.test.mjs scripts/toast-close-placement.test.mjs scripts/storybook-query-fixture.test.mjs scripts/mcp-list-query.test.mjs scripts/mcp-target-resolution.test.mjs scripts/mcp-auth-surface.test.mjs scripts/mcp-failure-routing.test.mjs scripts/daemon-discovery.test.mjs scripts/daemon-health-state.test.mjs scripts/daemon-observation.test.mjs scripts/session-cookies.test.mjs scripts/move-session.test.mjs scripts/frontend-replace.test.mjs scripts/browser-chord.test.mjs scripts/browser-page-controls.test.mjs scripts/browser-find-row.test.mjs scripts/browser-chord-renderer.test.mjs scripts/browser-chrome.test.mjs scripts/browser-tab-management.test.mjs scripts/browser-queue-expiry.test.mjs scripts/dev-driver-gate.test.mjs scripts/renderer-driver-api.test.mjs scripts/logger-log-dir.test.mjs scripts/draft-splash.test.mjs scripts/suggestion-stack.test.mjs scripts/suggestion-stack-react.test.mjs scripts/notifications-off.test.mjs scripts/agent-shell-spawn-env.test.mjs scripts/notification-launch.test.mjs scripts/notification-spawn-sites.test.mjs scripts/chrome-keychain.test.mjs scripts/interrupt-control.test.mjs scripts/interrupt-slot-hold-react.test.mjs scripts/chat-sidebar-archive.test.mjs scripts/chat-sidebar-hover-intent.test.mjs scripts/chat-sidebar-selection.test.mjs scripts/message-quote.test.mjs scripts/panel-chart-hover.test.mjs scripts/panel-read-policy.test.mjs scripts/composer-suggestions.test.mjs scripts/composer-tip-react.test.mjs scripts/sidebar-catalogue-gate.test.mjs scripts/telemetry-launch.test.mjs scripts/telemetry-spawn-sites.test.mjs scripts/sidebar-focus-hold.test.mjs scripts/credential-capture.test.mjs scripts/soft-breaks.test.mjs scripts/credential-composer.test.mjs scripts/secret-ask.test.mjs scripts/run-panel-navigation.test.mjs scripts/panel-rail.test.mjs scripts/backend-settings-tiers.test.mjs scripts/settings-language-row.test.mjs scripts/backend-settings-collapse.test.mjs scripts/check-build-env.test.mjs scripts/asks-app-regression.test.mjs scripts/test-inventory.test.mjs scripts/conflict-markers.test.mjs scripts/compact-receipt.test.mjs scripts/chat-image-expand.test.mjs scripts/prune-python-seed.test.mjs scripts/mcp-auth-complete-no-retry.test.mjs scripts/panel-presentation.test.mjs scripts/turn-timestamp.test.mjs scripts/analytics-session-table.test.mjs scripts/theme-grid-navigation.test.mjs scripts/theme-registry-exhaustiveness.test.mjs scripts/scheduled-task-model.test.mjs scripts/backend-setting-combos.test.mjs scripts/model-setting-options.test.mjs scripts/searchable-select.test.mjs scripts/backend-settings-drafts.test.mjs scripts/retention-duration.test.mjs scripts/typed-row-call-sites.test.mjs scripts/palette-focus.test.mjs scripts/composer-seeding.test.mjs scripts/skill-invocation.test.mjs scripts/skill-list.test.mjs scripts/skill-highlight.test.mjs scripts/theme-inline.test.mjs scripts/composer-refusal.test.mjs scripts/ci-scope.test.mjs scripts/browser-tab-strip-focus.test.mjs scripts/projects-board-focus.test.mjs scripts/browser-file-transfer-row.test.mjs scripts/link-targets.test.mjs scripts/link-actions.test.mjs scripts/chat-link-affordances.test.mjs scripts/streaming-markdown-parity.test.mjs scripts/transcription-failure-copy.test.mjs scripts/backend-version-drift.test.mjs scripts/live-seed-placement.test.mjs scripts/agents-publication.test.mjs scripts/agent-hub-queries.test.mjs scripts/install-builtin-batch.test.mjs scripts/install-progress.test.mjs scripts/attention-seen.test.mjs scripts/mark-all-read-control.test.mjs scripts/update-global-guard.test.mjs scripts/delivery-gate.test.mjs scripts/canvas-file-freshness.test.mjs scripts/no-websocket-plane.test.mjs scripts/update-window-report.test.mjs scripts/canvas-tab-close.test.mjs scripts/chat-sidebar-pins.test.mjs scripts/webauthn.test.mjs scripts/render-mac-entitlements.test.mjs scripts/row-state-floors.test.mjs scripts/pairing-card-copy.test.mjs scripts/update-install-copy.test.mjs scripts/update-shipit.test.mjs scripts/console-close.test.mjs scripts/console-host.test.mjs scripts/console-pack.test.mjs scripts/settings-account-gate.test.mjs scripts/sidebar-pin-order.test.mjs scripts/sidebar-split.test.mjs scripts/radient-session-issue.test.mjs scripts/console-pane.test.mjs scripts/console-i18n-fit.test.mjs scripts/console-mirror.test.mjs scripts/shell-path.test.mjs scripts/build-env-guard.test.mjs scripts/install-scripts-network.test.mjs scripts/console-pane-render.test.mjs scripts/settings-section-routes.test.mjs scripts/authoring-refresh.test.mjs scripts/verify-macos-artifacts.test.mjs scripts/provider-chip-verdict.test.mjs scripts/child-reader-foot-react.test.mjs scripts/backend-spawn-address.test.mjs scripts/connectivity-banner-copy.test.mjs scripts/connectivity-banner-notice.test.mjs scripts/chat-list-sections.test.mjs scripts/chat-keyboard-regions.test.mjs scripts/chat-sidebar-agents.test.mjs scripts/chat-sidebar-view.test.mjs scripts/chat-sidebar-time-order.test.mjs scripts/chat-sidebar-layout.test.mjs scripts/drafts-clear-on-send.test.mjs scripts/chat-sidebar-drafts.test.mjs scripts/undo-toasts.test.mjs scripts/chat-sidebar-sections.test.mjs scripts/titlebar-options.test.mjs scripts/lane-leading.test.mjs scripts/panel-top-inset.test.mjs scripts/trace-fold-model.test.mjs scripts/trace-fold-behaviour.test.mjs scripts/chat-status-strip.test.mjs scripts/chat-pane-floors.test.mjs scripts/path-utils.test.mjs scripts/window-chrome.test.mjs scripts/chat-sidebar-scope-paging.test.mjs scripts/chat-sidebar-connection-voices.test.mjs scripts/integration-model.test.mjs scripts/mcp-catalog-parity.test.mjs scripts/mcp-catalog-transport.test.mjs scripts/btw-aside.test.mjs scripts/composer-send-failure.test.mjs scripts/composer-text-authority.test.mjs scripts/shared-composer.test.mjs scripts/analytics-rate-format.test.mjs scripts/provider-catalog.test.mjs scripts/provider-sign-in-flow.test.mjs scripts/provider-status.test.mjs scripts/evidence-sign-in-states.test.mjs scripts/provider-detail-remount.test.mjs scripts/model-select-store.test.mjs scripts/onboarding-step-block.test.mjs scripts/onboarding-default-model.test.mjs scripts/onboarding-i18n-contract.test.mjs scripts/server-release-notes.test.mjs scripts/no-hardlink-write.test.mjs scripts/canvas-goals.test.mjs scripts/overlay-drag-zones.test.mjs scripts/message-surface-floors.test.mjs scripts/media-surface-floors.test.mjs scripts/header-identity-model.test.mjs scripts/pane-slot-ground.test.mjs scripts/projects-tab.test.mjs scripts/agent-hub-org-sharing.test.mjs scripts/agent-hub-public-teams.test.mjs scripts/agent-hub-skills-tab-count.test.mjs scripts/agent-hub-teams-tab-count.test.mjs scripts/mesh-tab.test.mjs scripts/peers-catalogue.test.mjs scripts/onboarding-search-step.test.mjs scripts/provider-error-guidance.test.mjs scripts/radient-verify-callout.test.mjs scripts/phone-access-block.test.mjs scripts/sidebar-account-reconnect.test.mjs scripts/stopped-row-measure.test.mjs scripts/aida-rail-marks.test.mjs scripts/aida-sidebar.test.mjs scripts/currency-math.test.mjs scripts/mesh-canvas-bench.test.mjs scripts/agents-offer-dismiss.test.mjs scripts/projects-card-click.test.mjs scripts/lane-registration.test.mjs scripts/team-initials.test.mjs scripts/projects-sheet.test.mjs scripts/turn-collapse-model.test.mjs scripts/collapse-plan-per-pass.test.mjs scripts/turn-collapse-behaviour.test.mjs scripts/checkpoint-model.test.mjs scripts/checkpoint-rail.test.mjs scripts/use-checkpoints.test.mjs scripts/reveal-record.test.mjs scripts/transcript-loader.test.mjs scripts/transcript-deep-jump.test.mjs scripts/thread-search-contract.test.mjs scripts/thread-search-model.test.mjs scripts/thread-search-overlay.test.mjs scripts/use-thread-search.test.mjs scripts/notification-lifetime.test.mjs scripts/transcript-rail-refusal.test.mjs scripts/use-active-checkpoint.test.mjs scripts/held-claim-reach.test.mjs scripts/hold-escape-claim.test.mjs scripts/hotkey-registration.test.mjs scripts/mini-view-dictation.test.mjs scripts/mini-view-contract.test.mjs scripts/ptt-keymap-binding.test.mjs scripts/cross-session-visibility.test.mjs scripts/fold-open.test.mjs scripts/transcript-foot-slot.test.mjs scripts/chat-remote.test.mjs scripts/chat-session-copy-id.test.mjs scripts/header-identity-menu.test.mjs scripts/hub-updates.test.mjs scripts/hub-link-view.test.mjs scripts/hub-link-copy.test.mjs scripts/hub-links-scene.test.mjs scripts/hub-skills-capability.test.mjs scripts/hub-skill-alias.test.mjs scripts/hub-mutation-safety.test.mjs scripts/monitor-controls.test.mjs scripts/monitor-cancel-dialog.test.mjs scripts/child-transcript-paging.test.mjs scripts/loader-state-machine.test.mjs scripts/transcript-cursor-continuity.test.mjs scripts/older-history-slot.test.mjs scripts/chat-session-subagents.test.mjs scripts/message-actions.test.mjs scripts/transcript-copy-affordances.test.mjs scripts/update-indicator-segments.test.mjs scripts/reload-picker-close.test.mjs scripts/picker-default-checkbox.test.mjs scripts/projects-time-window.test.mjs scripts/audio-recording-levels.test.mjs scripts/chat-sidebar-row-menu.test.mjs scripts/chat-sidebar-tags.test.mjs scripts/navigation-gesture.test.mjs scripts/fleet-asks.test.mjs scripts/right-slot-width.test.mjs scripts/right-slot-memory.test.mjs scripts/transcript-fade.test.mjs scripts/agents-config-probe-cadence.test.mjs scripts/turn-segments.test.mjs scripts/turn-partition-predicate.test.mjs scripts/chat-device-model.test.mjs scripts/chat-device-placement.test.mjs scripts/org-teams-summary.test.mjs scripts/markdown-table-widths.test.mjs scripts/turn-answer-rail.test.mjs scripts/scrollbar-activity.test.mjs scripts/stt-mic-gate-session.test.mjs scripts/transcript-perflush-perf.test.mjs scripts/speech-clip.test.mjs scripts/speech-store.test.mjs scripts/speech-controls.test.mjs scripts/speech-selection.test.mjs scripts/speech-user-copy.test.mjs scripts/response-copy.test.mjs scripts/pre-push-gate.test.mjs scripts/update-rollover.test.mjs scripts/projects-filters.test.mjs scripts/projects-force-done.test.mjs scripts/projects-search.test.mjs scripts/projects-search-index.test.mjs scripts/projects-sort.test.mjs scripts/project-update-assets.test.mjs scripts/project-view-perf.test.mjs scripts/projects-request-update.test.mjs scripts/projects-inline-edit.test.mjs scripts/speech-target.test.mjs scripts/agents-composer-mount.test.mjs scripts/evidence-fold.test.mjs scripts/projects-quick-send.test.mjs scripts/palette-main-door.test.mjs scripts/external-open-refusal.test.mjs scripts/window-guards.test.mjs scripts/palette-recents.test.mjs scripts/projects-entry-scroll.test.mjs scripts/wake-controls.test.mjs scripts/wake-cancel-panel.test.mjs scripts/code-review-model.test.mjs scripts/code-review-refresh-cue.test.mjs scripts/radient-credits-guidance.test.mjs scripts/quota-notice.test.mjs scripts/use-ever-in-view.test.mjs scripts/image-actions.test.mjs scripts/image-preview-decode.test.mjs scripts/analytics-channels.test.mjs scripts/i18n/check-strings.test.mjs scripts/i18n/typed-keys.test.mjs scripts/i18n/runtime.test.mjs scripts/i18n/format.test.mjs scripts/supplement-model.test.mjs scripts/supplement-row.test.mjs scripts/supplement-collage.test.mjs scripts/supplement-disclosure.test.mjs scripts/supplement-file-actions.test.mjs scripts/supplement-image-grid.test.mjs scripts/preview-signed-urls.test.mjs scripts/language-live-updates.test.mjs scripts/language-dialog.test.mjs scripts/code-review-delayed-flag.test.mjs scripts/code-review-row-layout.test.mjs scripts/audio-meter-stream.test.mjs scripts/keymap-chords.test.mjs scripts/keymap-retention.test.mjs scripts/keymap-registry.test.mjs scripts/keymap-dispatch.test.mjs scripts/keyboard-shortcuts-section.test.mjs scripts/keymap-persistence.test.mjs scripts/transcript-strand-hold.test.mjs scripts/transcript-journal-order.test.mjs scripts/journal-order-query.test.mjs scripts/peer-journal-source.test.mjs scripts/peer-source-unified.test.mjs scripts/i18n/absent-locale.test.mjs scripts/i18n/activation.test.mjs scripts/i18n/locale-parity.test.mjs scripts/i18n/locale-reactivity.test.mjs scripts/i18n/ledger-check.test.mjs scripts/i18n/ledger-assemble.test.mjs scripts/streaming-live-markdown.test.mjs scripts/markdown-remend.test.mjs scripts/stream-order-live.test.mjs scripts/browser-address-history.test.mjs scripts/browser-history-store.test.mjs scripts/browser-address-autocomplete.test.mjs scripts/browser-url-autocomplete.test.mjs scripts/browser-toolbar.test.mjs scripts/copy-button-copy-locale.test.mjs scripts/i18n/context-parity.test.mjs scripts/i18n/check-coverage.test.mjs scripts/browser-start-page.test.mjs scripts/tooltip-browser-view.test.mjs scripts/resolve-package-union.test.mjs scripts/i18n/es-activation.test.mjs scripts/i18n/ru-activation.test.mjs scripts/i18n/vi-activation.test.mjs scripts/skill-row.test.mjs scripts/skill-seal-behaviour.test.mjs scripts/i18n/hi-activation.test.mjs scripts/i18n/zh-CN-activation.test.mjs scripts/projects-i18n-locale.test.mjs scripts/window-glass.test.mjs scripts/window-glass-main.test.mjs scripts/window-glass-renderer.test.mjs scripts/default-effort-options.test.mjs scripts/browser-chrome-gaps.test.mjs scripts/import-settings-view.test.mjs scripts/import-settings-section.test.mjs scripts/audio-engine.test.mjs scripts/waveform-model.test.mjs scripts/sound-player.test.mjs scripts/sounds-fixture.test.mjs scripts/sidebar-tag-drag.test.mjs scripts/receipt-fold-behaviour.test.mjs scripts/team-bridge-model.test.mjs scripts/team-bridge-auth-owner-mount.test.mjs scripts/team-bridge-thread-gate.test.mjs scripts/team-bridge-threads.test.mjs scripts/team-bridge-reactions.test.mjs scripts/team-bridge-reactions-behaviour.test.mjs scripts/team-bridge-scope.test.mjs scripts/dev-shortcuts.test.mjs scripts/i18n/ur-activation.test.mjs scripts/team-bridge-channels.test.mjs scripts/sidebar-tag-picker.test.mjs scripts/team-bridge-notify.test.mjs scripts/team-bridge-notifications-mount.test.mjs scripts/document-direction.test.mjs scripts/rtl-layout.test.mjs scripts/locale-direction.test.mjs scripts/sidebar-tag-auto.test.mjs scripts/team-bridge-directory.test.mjs scripts/slash-tags.test.mjs scripts/slash-tags-popup.test.mjs scripts/slash-tags-reopen.test.mjs scripts/sidebar-destinations.test.mjs scripts/team-bridge-banner.test.mjs scripts/team-new-chat-stale-draft.test.mjs scripts/desktop-test-shards.test.mjs scripts/approval-escape.test.mjs scripts/attachment-files.test.mjs scripts/dev-driver-attach.test.mjs scripts/i18n/check-added-strings.test.mjs scripts/transcription-transient-retry.test.mjs",
94
94
  "check-evidence": "node scripts/check-evidence.mjs",
95
95
  "check-evidence:parity": "node scripts/evidence-histogram-parity.mjs",
96
96
  "check-edit-diffs": "node scripts/check-edit-diffs.mjs",
@@ -249,7 +249,7 @@
249
249
  "appId": "com.local-operator",
250
250
  "electronVersion": "44.3.0",
251
251
  "productName": "Local Operator",
252
- "copyright": "Copyright \u00a9 2025 Radient Inc.",
252
+ "copyright": "Copyright © 2025 Radient Inc.",
253
253
  "asar": {
254
254
  "smartUnpack": false
255
255
  },