@bivy/bivy 0.20.9-staging.2 → 0.20.9-staging.21

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 (131) hide show
  1. package/README.md +6 -5
  2. package/bin/bivy.mjs +13 -56
  3. package/bin/cli-commands.mjs +2 -4
  4. package/bin/guides/talk-to-the-user.md +13 -24
  5. package/dist/agent-instructions.js +12 -14
  6. package/dist/agents/pi/integration.js +1 -1
  7. package/dist/apps/remote-preview.js +3 -0
  8. package/dist/apps/service.js +6 -1
  9. package/dist/apps/styles.css +40 -102
  10. package/dist/automation-reseal.js +30 -0
  11. package/dist/certification/generated.js +1 -1
  12. package/dist/device-registry.js +27 -0
  13. package/dist/ephemeral-teardown.js +11 -1
  14. package/dist/exec.js +4 -1
  15. package/dist/runtime/model-catalog.js +16 -0
  16. package/dist/server.js +73 -62
  17. package/dist/session/event-log.js +98 -41
  18. package/dist/session/inline-image-fetch.js +24 -33
  19. package/dist/session/message-components.js +323 -0
  20. package/dist/session/run-terminal.js +9 -7
  21. package/dist/session/session-tokens.js +1 -1
  22. package/dist/session/transcript-persistence.js +106 -11
  23. package/package.json +6 -6
  24. package/web/assets/AutomationsView-Cobo4Kep.js +51 -0
  25. package/web/assets/{ChangesCard-DcSRy5g_.js → ChangesCard-Bo6E8C_y.js} +3 -3
  26. package/web/assets/LibraryView-BTeMc6BO.js +2 -0
  27. package/web/assets/{ProviderConnect-cpGwBMrU.js → ProviderConnect-CsidS7kq.js} +1 -1
  28. package/web/assets/SessionList-B7IbeXSa.js +1 -0
  29. package/web/assets/Settings-BQRQsQ36.js +10 -0
  30. package/web/assets/{Sheet-D-5t3lJ0.js → Sheet-C0BIPbMr.js} +1 -1
  31. package/web/assets/{Terminal-CjMjKB1f.js → Terminal-BTRgonB5.js} +1 -1
  32. package/web/assets/{VoiceSettings-xv6rjaY2.js → VoiceSettings-UZ1SA0lQ.js} +1 -1
  33. package/web/assets/{abnfDiagram-VCTEODGH-BLT3MLyK.js → abnfDiagram-VCTEODGH-CJoWsvVk.js} +1 -1
  34. package/web/assets/architecture-7GRP2DOG-CuzcodTO.js +1 -0
  35. package/web/assets/{architectureDiagram-5GKGNRK7-BGinLETW.js → architectureDiagram-5GKGNRK7-_qpa4O1v.js} +1 -1
  36. package/web/assets/{blockDiagram-I7D4REHJ-BNiY2HLB.js → blockDiagram-I7D4REHJ-DmLgwSr-.js} +1 -1
  37. package/web/assets/{c4Diagram-7LVT6UL2-46aGfRMd.js → c4Diagram-7LVT6UL2-DeZuOOSk.js} +1 -1
  38. package/web/assets/channel-B0OL-aPd.js +1 -0
  39. package/web/assets/{chunk-4HAMMTFA-CRzer-vm.js → chunk-4HAMMTFA-Cr6O6lBG.js} +1 -1
  40. package/web/assets/{chunk-75Z2AOVW-MFkgf2Ar.js → chunk-75Z2AOVW-gSgNIYMY.js} +1 -1
  41. package/web/assets/{chunk-DU6HZSFF-Bpze6ID8.js → chunk-DU6HZSFF-BacnRf2Y.js} +1 -1
  42. package/web/assets/{chunk-F27PBJKO-Dq3OmNXG.js → chunk-F27PBJKO-DRrpfF1z.js} +1 -1
  43. package/web/assets/{chunk-GMAD6QVW-umDWdG9g.js → chunk-GMAD6QVW-DXCi6v6B.js} +1 -1
  44. package/web/assets/{chunk-GVQU2GXP-DuT1Awt9.js → chunk-GVQU2GXP-Yd74hIeT.js} +1 -1
  45. package/web/assets/{chunk-IMKFNOWR-CpFFccVb.js → chunk-IMKFNOWR-D5xz0-QC.js} +1 -1
  46. package/web/assets/{chunk-L3NEJ4N5-0jRWrASa.js → chunk-L3NEJ4N5-BrS0CGPM.js} +1 -1
  47. package/web/assets/{chunk-OSK3NFVY-CBErW4-p.js → chunk-OSK3NFVY-C6d1DSJe.js} +1 -1
  48. package/web/assets/{chunk-P2QGCYS3-BPMii7LM.js → chunk-P2QGCYS3-BrKgIngm.js} +1 -1
  49. package/web/assets/{chunk-POPQ4Y6H-CHTRMb_C.js → chunk-POPQ4Y6H-Bkwx5BZs.js} +1 -1
  50. package/web/assets/{chunk-PWAF6VOD-BOcNKrmu.js → chunk-PWAF6VOD-AeCCeE0F.js} +1 -1
  51. package/web/assets/{chunk-SHT3W25Y-Dvb-oEDN.js → chunk-SHT3W25Y-01NYjozy.js} +1 -1
  52. package/web/assets/{chunk-SVP7TREG-B4AQIUTK.js → chunk-SVP7TREG-CCh7wXAI.js} +1 -1
  53. package/web/assets/{chunk-TICWLB2K-CWzLTsHW.js → chunk-TICWLB2K-CcWKqwdM.js} +1 -1
  54. package/web/assets/classDiagram-ZZMXUADV-D8dSdFQt.js +1 -0
  55. package/web/assets/classDiagram-v2-VYDZK3BY-D8dSdFQt.js +1 -0
  56. package/web/assets/{cynefin-OW5HDTMX-BPkKT48j.js → cynefin-OW5HDTMX-CYYc_tBE.js} +1 -1
  57. package/web/assets/{cynefinDiagram-5FMLGOSQ-Ck2qLmpR.js → cynefinDiagram-5FMLGOSQ-Dnz7OfxK.js} +1 -1
  58. package/web/assets/{dagre-GXQ25YYZ-BPKEs_49.js → dagre-GXQ25YYZ-di5CyaMt.js} +1 -1
  59. package/web/assets/{diagram-S7CK7UJ4-ou-L5HdJ.js → diagram-S7CK7UJ4-BVC93OLB.js} +1 -1
  60. package/web/assets/{diagram-UQ7AKVKN-DihVn6fF.js → diagram-UQ7AKVKN-D7pXHAvQ.js} +1 -1
  61. package/web/assets/{diagram-VSXAHHWV-BkLtxbP7.js → diagram-VSXAHHWV-d0zW-IUz.js} +1 -1
  62. package/web/assets/{diagram-VX7I27RA-BZ-Z-CwP.js → diagram-VX7I27RA-BRlMo9oa.js} +1 -1
  63. package/web/assets/{diagram-Z3DM3KII-BQN-bGqD.js → diagram-Z3DM3KII-BmfntB1i.js} +1 -1
  64. package/web/assets/{ebnfDiagram-PWID7BFC-aKK1a_it.js → ebnfDiagram-PWID7BFC-BxUYvqsz.js} +1 -1
  65. package/web/assets/{erDiagram-RLTQ6QDP-BGsXtJl-.js → erDiagram-RLTQ6QDP-CbUl1Cqa.js} +1 -1
  66. package/web/assets/eventmodeling-NTZA5JFV-sTVSUyNU.js +1 -0
  67. package/web/assets/flowDiagram-HODETNUW-Beo3zBEU.js +1 -0
  68. package/web/assets/{ganttDiagram-EL5Y4UJY-lrYuyNAe.js → ganttDiagram-EL5Y4UJY-CkpR0avQ.js} +1 -1
  69. package/web/assets/{gitGraph-4MIJSDKK-raj_IxZ8.js → gitGraph-4MIJSDKK-CmbJxSaM.js} +1 -1
  70. package/web/assets/{gitGraphDiagram-WWUBYQGX-DzqRGXuk.js → gitGraphDiagram-WWUBYQGX-iyO408KF.js} +1 -1
  71. package/web/assets/index-B4HaCD-n.css +1 -0
  72. package/web/assets/{index-B6GPr2Pt.js → index-fdEPLcPs.js} +2 -2
  73. package/web/assets/{info-A6RAGUB7-DJVi9SAN.js → info-A6RAGUB7--6JCM0xX.js} +1 -1
  74. package/web/assets/{infoDiagram-27XIBGKW-B2HrGywP.js → infoDiagram-27XIBGKW-Dchx6QcB.js} +1 -1
  75. package/web/assets/{ishikawaDiagram-5VMMS53U-CczIkvWw.js → ishikawaDiagram-5VMMS53U-DOY3izUi.js} +1 -1
  76. package/web/assets/{journeyDiagram-3NMN7TZE-D-h-kwep.js → journeyDiagram-3NMN7TZE-oqZgC9oJ.js} +1 -1
  77. package/web/assets/{kanban-definition-UXKFOSKX-GClrFWfH.js → kanban-definition-UXKFOSKX-HCRC0D9X.js} +1 -1
  78. package/web/assets/{line-pweWV0oc.js → line-qcY2eok7.js} +1 -1
  79. package/web/assets/{mermaid-parser.core-C1vHZCtC.js → mermaid-parser.core-Bullp1xl.js} +3 -3
  80. package/web/assets/{mermaid.core-Df8DJ7AE.js → mermaid.core-FBmsAtMC.js} +4 -4
  81. package/web/assets/{mindmap-definition-YA3MSWOX-BpqA307n.js → mindmap-definition-YA3MSWOX-CfgOAkVQ.js} +1 -1
  82. package/web/assets/mount-IY4-2elJ.js +31 -0
  83. package/web/assets/{packet-AYTQ26CC-afE6T0Hc.js → packet-AYTQ26CC-COAmiopo.js} +1 -1
  84. package/web/assets/{pegDiagram-XKGWAZYB-AAEw7Khy.js → pegDiagram-XKGWAZYB-BYafVbeG.js} +1 -1
  85. package/web/assets/{pie-WAS4IAKB-vtwSUVVK.js → pie-WAS4IAKB-ZYe346n6.js} +1 -1
  86. package/web/assets/{pieDiagram-E7YTZNPT-CDg0SkhS.js → pieDiagram-E7YTZNPT-DnRbaA7i.js} +1 -1
  87. package/web/assets/{quadrantDiagram-AXDQQJYC-_o0rOR26.js → quadrantDiagram-AXDQQJYC-B2uxyKLd.js} +1 -1
  88. package/web/assets/{radar-RG4KPBEZ-_Tf7tpz8.js → radar-RG4KPBEZ-DwFlqYgB.js} +1 -1
  89. package/web/assets/{railroad-74A4TZTK-DM_a0HtL.js → railroad-74A4TZTK-DBv5jh9o.js} +1 -1
  90. package/web/assets/railroad-abnf-HS5TGJTU-VQxaaUVU.js +1 -0
  91. package/web/assets/railroad-ebnf-LZEXJU2U-DWKO1s90.js +1 -0
  92. package/web/assets/railroad-peg-WCYAUIDC-DvViPquF.js +1 -0
  93. package/web/assets/{railroadDiagram-O6MQD6OU-BpQZeQ-f.js → railroadDiagram-O6MQD6OU-CIUFwDWd.js} +1 -1
  94. package/web/assets/{requirementDiagram-BXWQKSXE-DC4US4K_.js → requirementDiagram-BXWQKSXE-BXwDlf9Q.js} +1 -1
  95. package/web/assets/{sankeyDiagram-P5KCCOFB-BUJ9KIqV.js → sankeyDiagram-P5KCCOFB-DTiRcy5E.js} +1 -1
  96. package/web/assets/{sequenceDiagram-WJ2MYXX4-By7D5XFY.js → sequenceDiagram-WJ2MYXX4-DFPRDr4a.js} +1 -1
  97. package/web/assets/settingsRoute-3489vHS0.js +1 -0
  98. package/web/assets/{stateDiagram-D77RDMKH-D0BA3EeM.js → stateDiagram-D77RDMKH-CFQ-4xlY.js} +1 -1
  99. package/web/assets/stateDiagram-v2-MP3YSRHH-DIIQkE2r.js +1 -0
  100. package/web/assets/{swimlanes-42K2YHIH-BNUI3ghm.js → swimlanes-42K2YHIH-Bke6VXs0.js} +1 -1
  101. package/web/assets/swimlanesDiagram-VR7AAH4N-Drds9YUy.js +8 -0
  102. package/web/assets/{timeline-definition-24CTP7MA-DVzeoz4F.js → timeline-definition-24CTP7MA-Cs2-dpWN.js} +1 -1
  103. package/web/assets/{treeView-Q6P3EWNA-CnvdZw-U.js → treeView-Q6P3EWNA-Dr8vsD3U.js} +1 -1
  104. package/web/assets/{treemap-WGGIJYW6-Ax_RXzPk.js → treemap-WGGIJYW6-DbvC3nsA.js} +1 -1
  105. package/web/assets/useStore-BDEjghiw.js +23 -0
  106. package/web/assets/{vennDiagram-4TSXK5OY-CNauH8S4.js → vennDiagram-4TSXK5OY-CdUoLWPo.js} +1 -1
  107. package/web/assets/{wardley-WFR3VGLG-q8WnmSMu.js → wardley-WFR3VGLG-BL7j6fb-.js} +1 -1
  108. package/web/assets/{wardleyDiagram-VM6X3IG4-DKOY4P11.js → wardleyDiagram-VM6X3IG4-BEVYmHWI.js} +1 -1
  109. package/web/assets/{xychartDiagram-S5SC5T6Z-m8KaPfml.js → xychartDiagram-S5SC5T6Z-C9zn_1JB.js} +1 -1
  110. package/web/index.html +2 -2
  111. package/web/sw.js +1 -1
  112. package/dist/ephemeral-exec.js +0 -108
  113. package/dist/session/suggestions.js +0 -17
  114. package/web/assets/AutomationsView-DEild20v.js +0 -51
  115. package/web/assets/LibraryView-Cu0tU0gU.js +0 -2
  116. package/web/assets/Settings-BoTU83-i.js +0 -10
  117. package/web/assets/architecture-7GRP2DOG-s28sMQ0-.js +0 -1
  118. package/web/assets/channel-CPSM7rj7.js +0 -1
  119. package/web/assets/classDiagram-ZZMXUADV-CZ-So67n.js +0 -1
  120. package/web/assets/classDiagram-v2-VYDZK3BY-CZ-So67n.js +0 -1
  121. package/web/assets/eventmodeling-NTZA5JFV-Dd2mk6iz.js +0 -1
  122. package/web/assets/flowDiagram-HODETNUW-D7f1jYIL.js +0 -1
  123. package/web/assets/index-D76QD5dl.css +0 -1
  124. package/web/assets/mount-ISRAcaLu.js +0 -33
  125. package/web/assets/railroad-abnf-HS5TGJTU-BzFZIgti.js +0 -1
  126. package/web/assets/railroad-ebnf-LZEXJU2U-BkKCtTE4.js +0 -1
  127. package/web/assets/railroad-peg-WCYAUIDC-CuXWl9dG.js +0 -1
  128. package/web/assets/settingsRoute-DSj-6Pdo.js +0 -1
  129. package/web/assets/stateDiagram-v2-MP3YSRHH-2_bDqGCB.js +0 -1
  130. package/web/assets/swimlanesDiagram-VR7AAH4N-SmXx3nAj.js +0 -8
  131. package/web/assets/useStore-BznE40dl.js +0 -29
@@ -1,4 +1,4 @@
1
- import{t as e}from"./rolldown-runtime-hePW80VL.js";import{Nt as t,i as n,t as r}from"./useStore-BznE40dl.js";import{C as i,E as a,M as o,O as s,c,d as l,f as u,h as d,i as f,j as p,k as m,m as h,n as g,o as _,p as v,u as y}from"./Sheet-D-5t3lJ0.js";import{d as ee,f as te,u as ne}from"./ChangesCard-DcSRy5g_.js";import{t as re}from"./jsx-runtime-NZYk81nU.js";import{n as b,r as x}from"./mount-ISRAcaLu.js";var S=t(),C=o(),w=Object.defineProperty,T=Object.getOwnPropertyDescriptor,ie=(e,t)=>{for(var n in t)w(e,n,{get:t[n],enumerable:!0})},E=(e,t,n,r)=>{for(var i=r>1?void 0:r?T(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&w(t,n,i),i},D=(e,t)=>(n,r)=>t(n,r,e),O=`Terminal input`,k={get:()=>O,set:e=>O=e},A=`Too much output to announce, navigate to rows manually to read`,ae={get:()=>A,set:e=>A=e};function oe(e){return e.replace(/\r?\n/g,`\r`)}function j(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function M(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function N(e,t,n,r){e.stopPropagation(),e.clipboardData&&se(e.clipboardData.getData(`text/plain`),t,n,r)}function se(e,t,n,r){e=oe(e),e=j(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function ce(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function le(e,t,n,r,i){ce(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function P(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ue(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var de=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},fe=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},pe=``,me=` `,he=class e{constructor(){this.fg=0,this.bg=0,this.extended=new ge}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},ge=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},_e=class e extends he{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new ge,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?P(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},ve=`di$target`,ye=`di$dependencies`,be=new Map;function xe(e){return e[ye]||[]}function F(e){if(be.has(e))return be.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Se(t,e,r)};return t._id=e,be.set(e,t),t}function Se(e,t,n){t[ve]===t?t[ye].push({id:e,index:n}):(t[ye]=[{id:e,index:n}],t[ve]=t)}var I=F(`BufferService`),Ce=F(`CoreMouseService`),we=F(`CoreService`),Te=F(`CharsetService`),Ee=F(`InstantiationService`),De=F(`LogService`),Oe=F(`OptionsService`),ke=F(`OscLinkService`),Ae=F(`UnicodeService`),je=F(`DecorationService`),Me=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new _e,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(c!==-1||n.hasContent(t)){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Ne(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};Me=E([D(0,I),D(1,Oe),D(2,ke)],Me);function Ne(e,t){if(confirm(`Do you want to navigate to ${t}?
1
+ import{t as e}from"./rolldown-runtime-hePW80VL.js";import{Et as t,i as n,t as r}from"./useStore-BDEjghiw.js";import{C as i,E as a,M as o,O as s,c,d as l,f as u,h as d,i as f,j as p,k as m,m as h,n as g,o as _,p as v,u as y}from"./Sheet-C0BIPbMr.js";import{d as ee,f as te,u as ne}from"./ChangesCard-Bo6E8C_y.js";import{t as re}from"./jsx-runtime-NZYk81nU.js";import{o as b,s as x}from"./mount-IY4-2elJ.js";var S=t(),C=o(),w=Object.defineProperty,T=Object.getOwnPropertyDescriptor,ie=(e,t)=>{for(var n in t)w(e,n,{get:t[n],enumerable:!0})},E=(e,t,n,r)=>{for(var i=r>1?void 0:r?T(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&w(t,n,i),i},D=(e,t)=>(n,r)=>t(n,r,e),O=`Terminal input`,k={get:()=>O,set:e=>O=e},A=`Too much output to announce, navigate to rows manually to read`,ae={get:()=>A,set:e=>A=e};function oe(e){return e.replace(/\r?\n/g,`\r`)}function j(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function M(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function N(e,t,n,r){e.stopPropagation(),e.clipboardData&&se(e.clipboardData.getData(`text/plain`),t,n,r)}function se(e,t,n,r){e=oe(e),e=j(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function ce(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function le(e,t,n,r,i){ce(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function P(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ue(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var de=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},fe=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},pe=``,me=` `,he=class e{constructor(){this.fg=0,this.bg=0,this.extended=new ge}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},ge=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},_e=class e extends he{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new ge,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?P(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},ve=`di$target`,ye=`di$dependencies`,be=new Map;function xe(e){return e[ye]||[]}function F(e){if(be.has(e))return be.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Se(t,e,r)};return t._id=e,be.set(e,t),t}function Se(e,t,n){t[ve]===t?t[ye].push({id:e,index:n}):(t[ye]=[{id:e,index:n}],t[ve]=t)}var I=F(`BufferService`),Ce=F(`CoreMouseService`),we=F(`CoreService`),Te=F(`CharsetService`),Ee=F(`InstantiationService`),De=F(`LogService`),Oe=F(`OptionsService`),ke=F(`OscLinkService`),Ae=F(`UnicodeService`),je=F(`DecorationService`),Me=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new _e,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(c!==-1||n.hasContent(t)){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Ne(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};Me=E([D(0,I),D(1,Oe),D(2,ke)],Me);function Ne(e,t){if(confirm(`Do you want to navigate to ${t}?
2
2
 
3
3
  WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var Pe=F(`CharSizeService`),Fe=F(`CoreBrowserService`),Ie=F(`MouseService`),Le=F(`RenderService`),Re=F(`SelectionService`),ze=F(`CharacterJoinerService`),Be=F(`ThemeService`),Ve=F(`LinkProviderService`),He=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Je.isErrorNoTelemetry(e)?new Je(e.message+`
4
4
 
@@ -1 +1 @@
1
- import{Nt as e,i as t,n}from"./useStore-BznE40dl.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{_ as i,g as a,h as o,m as s}from"./mount-ISRAcaLu.js";var c=e(),l=r();function u({state:e,onManageKey:r}){let[u,d]=(0,c.useState)(()=>a()),[f,p]=(0,c.useState)([]);(0,c.useEffect)(()=>{t.getSttConfig()},[]),(0,c.useEffect)(()=>{if(!(`speechSynthesis`in window))return;let e=()=>p(window.speechSynthesis.getVoices());return e(),window.speechSynthesis.addEventListener(`voiceschanged`,e),()=>window.speechSynthesis.removeEventListener(`voiceschanged`,e)},[]);let m=e=>{let t={...u,...e};d(t),i(t)},h=e.settings.sttConfig,g=h?.providers??[],_=g.some(e=>e.id===`openai`&&e.configured);return(0,l.jsxs)(`div`,{className:`settings-form`,children:[(0,l.jsxs)(`section`,{className:`settings-section`,children:[(0,l.jsx)(`h3`,{children:`Voice input`}),(0,l.jsx)(`p`,{className:`muted settings-intro`,children:`Dictate with the composer mic. Whisper converts speech to text using a Groq or OpenAI key. Add or manage each provider's key below. With no key, supported browsers use built-in dictation.`}),(0,l.jsx)(`label`,{className:`field-label`,children:`Preferred transcription provider`}),(0,l.jsxs)(`div`,{className:`seg-row`,children:[g.map(e=>(0,l.jsx)(`button`,{type:`button`,className:`selectable`,"aria-pressed":h?.provider===e.id,onClick:()=>t.setSttProvider(e.id),children:e.label},e.id)),g.length===0&&(0,l.jsx)(`span`,{className:`muted`,children:`Loading…`})]}),g.map(e=>(0,l.jsxs)(`div`,{className:`voice-provider`,children:[(0,l.jsxs)(`div`,{className:`voice-provider-head`,children:[(0,l.jsx)(`span`,{className:`field-label`,children:e.label}),e.configured?(0,l.jsx)(n,{tone:`ok`,children:`Available`}):(0,l.jsx)(n,{children:`No account key`})]}),(0,l.jsxs)(`div`,{className:`muted small`,children:[e.model,` ·`,` `,(0,l.jsxs)(`button`,{type:`button`,className:`btn link voice-key-link`,onClick:()=>r(e.id),children:[e.configured?`Manage`:`Add`,` `,e.label,` key`]})]})]},e.id))]}),(0,l.jsxs)(`section`,{className:`settings-section`,children:[(0,l.jsx)(`h3`,{children:`Read aloud`}),(0,l.jsx)(`p`,{className:`muted settings-intro`,children:`Choose the reader used by the speaker button on assistant replies. OpenAI speech is higher quality; browser speech is free and stays on this device.`}),(0,l.jsx)(`label`,{className:`field-label`,htmlFor:`speech-reader`,children:`Reader`}),(0,l.jsxs)(`select`,{id:`speech-reader`,className:`picker-search`,value:u.reader,onChange:e=>m({reader:e.target.value}),children:[(0,l.jsx)(`option`,{value:`browser`,children:`Browser voice (free, on-device)`}),(0,l.jsxs)(`option`,{value:`openai`,disabled:!_,children:[`OpenAI neural voice`,_?``:` — add OpenAI key`]})]}),u.reader===`browser`?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`label`,{className:`field-label`,htmlFor:`browser-reader-voice`,children:`Voice`}),(0,l.jsxs)(`select`,{id:`browser-reader-voice`,className:`picker-search`,value:u.browserVoice,onChange:e=>m({browserVoice:e.target.value}),children:[(0,l.jsx)(`option`,{value:``,children:`System default`}),f.map(e=>(0,l.jsxs)(`option`,{value:e.voiceURI,children:[e.name,` (`,e.lang,`)`]},e.voiceURI))]}),(0,l.jsxs)(`label`,{className:`field-label`,htmlFor:`reader-speed`,children:[`Speed · `,u.rate.toFixed(1),`×`]}),(0,l.jsx)(`input`,{id:`reader-speed`,type:`range`,min:`0.7`,max:`1.5`,step:`0.1`,value:u.rate,onChange:e=>m({rate:Number(e.target.value)})})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`label`,{className:`field-label`,htmlFor:`openai-reader-voice`,children:`Voice`}),(0,l.jsx)(`select`,{id:`openai-reader-voice`,className:`picker-search`,value:u.openaiVoice,onChange:e=>m({openaiVoice:e.target.value}),children:s.map(e=>(0,l.jsx)(`option`,{value:e,children:e.charAt(0).toUpperCase()+e.slice(1)},e))}),(0,l.jsx)(`label`,{className:`field-label`,htmlFor:`reader-tone`,children:`Tone`}),(0,l.jsx)(`select`,{id:`reader-tone`,className:`picker-search`,value:u.tone,onChange:e=>m({tone:e.target.value}),children:o.map(e=>(0,l.jsx)(`option`,{value:e.id,children:e.label},e.id))}),(0,l.jsx)(`div`,{className:`muted small`,children:`Uses gpt-4o-mini-tts and your existing OpenAI API key. Audio text is sent to OpenAI and may incur usage charges.`})]})]})]})}export{u as VoiceSettings};
1
+ import{Et as e,i as t,n}from"./useStore-BDEjghiw.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{a as i,i as a,n as o,r as s}from"./mount-IY4-2elJ.js";var c=e(),l=r();function u({state:e,onManageKey:r}){let[u,d]=(0,c.useState)(()=>a()),[f,p]=(0,c.useState)([]);(0,c.useEffect)(()=>{t.getSttConfig()},[]),(0,c.useEffect)(()=>{if(!(`speechSynthesis`in window))return;let e=()=>p(window.speechSynthesis.getVoices());return e(),window.speechSynthesis.addEventListener(`voiceschanged`,e),()=>window.speechSynthesis.removeEventListener(`voiceschanged`,e)},[]);let m=e=>{let t={...u,...e};d(t),i(t)},h=e.settings.sttConfig,g=h?.providers??[],_=g.some(e=>e.id===`openai`&&e.configured);return(0,l.jsxs)(`div`,{className:`settings-form`,children:[(0,l.jsxs)(`section`,{className:`settings-section`,children:[(0,l.jsx)(`h3`,{children:`Voice input`}),(0,l.jsx)(`p`,{className:`muted settings-intro`,children:`Dictate with the composer mic. Whisper converts speech to text using a Groq or OpenAI key. Add or manage each provider's key below. With no key, supported browsers use built-in dictation.`}),(0,l.jsx)(`label`,{className:`field-label`,children:`Preferred transcription provider`}),(0,l.jsxs)(`div`,{className:`seg-row`,children:[g.map(e=>(0,l.jsx)(`button`,{type:`button`,className:`selectable`,"aria-pressed":h?.provider===e.id,onClick:()=>t.setSttProvider(e.id),children:e.label},e.id)),g.length===0&&(0,l.jsx)(`span`,{className:`muted`,children:`Loading…`})]}),g.map(e=>(0,l.jsxs)(`div`,{className:`voice-provider`,children:[(0,l.jsxs)(`div`,{className:`voice-provider-head`,children:[(0,l.jsx)(`span`,{className:`field-label`,children:e.label}),e.configured?(0,l.jsx)(n,{tone:`ok`,children:`Available`}):(0,l.jsx)(n,{children:`No account key`})]}),(0,l.jsxs)(`div`,{className:`muted small`,children:[e.model,` ·`,` `,(0,l.jsxs)(`button`,{type:`button`,className:`btn link voice-key-link`,onClick:()=>r(e.id),children:[e.configured?`Manage`:`Add`,` `,e.label,` key`]})]})]},e.id))]}),(0,l.jsxs)(`section`,{className:`settings-section`,children:[(0,l.jsx)(`h3`,{children:`Read aloud`}),(0,l.jsx)(`p`,{className:`muted settings-intro`,children:`Choose the reader used by the speaker button on assistant replies. OpenAI speech is higher quality; browser speech is free and stays on this device.`}),(0,l.jsx)(`label`,{className:`field-label`,htmlFor:`speech-reader`,children:`Reader`}),(0,l.jsxs)(`select`,{id:`speech-reader`,className:`picker-search`,value:u.reader,onChange:e=>m({reader:e.target.value}),children:[(0,l.jsx)(`option`,{value:`browser`,children:`Browser voice (free, on-device)`}),(0,l.jsxs)(`option`,{value:`openai`,disabled:!_,children:[`OpenAI neural voice`,_?``:` — add OpenAI key`]})]}),u.reader===`browser`?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`label`,{className:`field-label`,htmlFor:`browser-reader-voice`,children:`Voice`}),(0,l.jsxs)(`select`,{id:`browser-reader-voice`,className:`picker-search`,value:u.browserVoice,onChange:e=>m({browserVoice:e.target.value}),children:[(0,l.jsx)(`option`,{value:``,children:`System default`}),f.map(e=>(0,l.jsxs)(`option`,{value:e.voiceURI,children:[e.name,` (`,e.lang,`)`]},e.voiceURI))]}),(0,l.jsxs)(`label`,{className:`field-label`,htmlFor:`reader-speed`,children:[`Speed · `,u.rate.toFixed(1),`×`]}),(0,l.jsx)(`input`,{id:`reader-speed`,type:`range`,min:`0.7`,max:`1.5`,step:`0.1`,value:u.rate,onChange:e=>m({rate:Number(e.target.value)})})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`label`,{className:`field-label`,htmlFor:`openai-reader-voice`,children:`Voice`}),(0,l.jsx)(`select`,{id:`openai-reader-voice`,className:`picker-search`,value:u.openaiVoice,onChange:e=>m({openaiVoice:e.target.value}),children:o.map(e=>(0,l.jsx)(`option`,{value:e,children:e.charAt(0).toUpperCase()+e.slice(1)},e))}),(0,l.jsx)(`label`,{className:`field-label`,htmlFor:`reader-tone`,children:`Tone`}),(0,l.jsx)(`select`,{id:`reader-tone`,className:`picker-search`,value:u.tone,onChange:e=>m({tone:e.target.value}),children:s.map(e=>(0,l.jsx)(`option`,{value:e.id,children:e.label},e.id))}),(0,l.jsx)(`div`,{className:`muted small`,children:`Uses gpt-4o-mini-tts and your existing OpenAI API key. Audio text is sent to OpenAI and may incur usage charges.`})]})]})]})}export{u as VoiceSettings};
@@ -1 +1 @@
1
- import{m as e,t}from"./mermaid-parser.core-C1vHZCtC.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-B6xuSHsQ.js";import"./chunk-DU6HZSFF-Bpze6ID8.js";import{n as i,r as a,t as o}from"./chunk-SVP7TREG-B4AQIUTK.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-Df8DJ7AE.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
1
+ import{m as e,t}from"./mermaid-parser.core-Bullp1xl.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-B6xuSHsQ.js";import"./chunk-DU6HZSFF-BacnRf2Y.js";import{n as i,r as a,t as o}from"./chunk-SVP7TREG-CCh7wXAI.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-FBmsAtMC.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
@@ -0,0 +1 @@
1
+ import"./chunk-FOHPRMQF-DzxwRta7.js";import{M as e}from"./mermaid-parser.core-Bullp1xl.js";export{e as createArchitectureServices};