glimmervoid 0.44.0 → 0.44.2

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 (163) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/glimmervoid.js +8 -8
  3. package/dist/chunks/{adapters-CSRTLFiZ.js → adapters-7AfJ6yb3.js} +2 -2
  4. package/dist/chunks/{adapters-DjDtNufj.js → adapters-B_ss_kZh.js} +1 -1
  5. package/dist/chunks/{agent-api-cli-ep_5T7Hx.js → agent-api-cli-prUJ5ZGN.js} +1 -1
  6. package/dist/chunks/{agent-api-cli-CVgij_62.js → agent-api-cli-zwuWZlwk.js} +1 -1
  7. package/dist/chunks/{agent-api-core-DmPT6Hc_.js → agent-api-core-DQwd2ClI.js} +1 -1
  8. package/dist/chunks/{config-CGRYpcBQ.js → config-DlKkg6IX.js} +16 -1
  9. package/dist/chunks/{config-store-B1u3WA5t.js → config-store-DIrwF5iQ.js} +51 -7
  10. package/dist/chunks/config-store-LYSRHNQs.js +1 -0
  11. package/dist/chunks/{contracts-Fup4hhP9.js → contracts-lxJ0sQEl.js} +48 -15
  12. package/dist/chunks/{main-DPtmg7Bn.js → main-BCbulgNv.js} +352 -45
  13. package/dist/chunks/{pair-cli-BwOTWShx.js → pair-cli-B3VRcrHm.js} +2 -2
  14. package/dist/chunks/{remote-config-DWWnz5dP.js → remote-config-C91HwjWq.js} +1 -1
  15. package/dist/chunks/{settings-cli-C_owm3rw.js → settings-cli-C9eCc60b.js} +4 -4
  16. package/dist/chunks/{settings-readout-core-C_JzSeF7.js → settings-readout-core-DK1m5TUq.js} +1 -1
  17. package/dist/chunks/{ssh-sign-cli-CDjUtDKa.js → ssh-sign-cli-DCnHgHqo.js} +1 -1
  18. package/dist/client/assets/action-status-DXcC95xv.js +1 -0
  19. package/dist/client/assets/action-status-DXcC95xv.js.br +0 -0
  20. package/dist/client/assets/benchmark-panel-Cssmnd3z.js +1 -0
  21. package/dist/client/assets/benchmark-panel-Cssmnd3z.js.br +0 -0
  22. package/dist/client/assets/dom-helpers-CcEFPh-F.js +4 -0
  23. package/dist/client/assets/dom-helpers-CcEFPh-F.js.br +0 -0
  24. package/dist/client/assets/hooks-panel-Cli8EeBB.js +1 -0
  25. package/dist/client/assets/hooks-panel-Cli8EeBB.js.br +0 -0
  26. package/dist/client/assets/index-C3nOrTwM.css +2 -0
  27. package/dist/client/assets/index-C3nOrTwM.css.br +0 -0
  28. package/dist/client/assets/index-C8u3ZjM3.js +173 -0
  29. package/dist/client/assets/index-C8u3ZjM3.js.br +0 -0
  30. package/dist/client/assets/issues-panel-Bev1wadi.js +1 -0
  31. package/dist/client/assets/issues-panel-Bev1wadi.js.br +0 -0
  32. package/dist/client/assets/modal-CvDX5-_2.js +1 -0
  33. package/dist/client/assets/modal-CvDX5-_2.js.br +0 -0
  34. package/dist/client/assets/poll-ago-Dj148faJ.js +1 -0
  35. package/dist/client/assets/poll-ago-Dj148faJ.js.br +0 -0
  36. package/dist/client/assets/pr-queue-columns-Jleg5z3W.js +1 -0
  37. package/dist/client/assets/pr-queue-columns-Jleg5z3W.js.br +0 -0
  38. package/dist/client/assets/radar-panel-Dtp4ZzT3.js +1 -0
  39. package/dist/client/assets/radar-panel-Dtp4ZzT3.js.br +0 -0
  40. package/dist/client/assets/review-queue-panel-BQvU_-xl.js +2 -0
  41. package/dist/client/assets/review-queue-panel-BQvU_-xl.js.br +0 -0
  42. package/dist/client/assets/settings-panel-DegKCsoZ.js +3 -0
  43. package/dist/client/assets/settings-panel-DegKCsoZ.js.br +0 -0
  44. package/dist/client/assets/sprite-bee-DwCVghaj.png +0 -0
  45. package/dist/client/assets/sprite-cat-DRx9MYM3.png +0 -0
  46. package/dist/client/assets/sprite-cow-BX3Phf6B.png +0 -0
  47. package/dist/client/assets/sprite-deer-DwQYMzDV.png +0 -0
  48. package/dist/client/assets/sprite-dragon-CTIHOQJ3.png +0 -0
  49. package/dist/client/assets/sprite-fox-BI43RV3z.png +0 -0
  50. package/dist/client/assets/sprite-frog-CwGTpt-c.png +0 -0
  51. package/dist/client/assets/sprite-giraffe-DwM3MmKG.png +0 -0
  52. package/dist/client/assets/sprite-hamster-WN4q03Wr.png +0 -0
  53. package/dist/client/assets/sprite-hedgehog-CM9XZtPS.png +0 -0
  54. package/dist/client/assets/sprite-horse-B5CMO0Ue.png +0 -0
  55. package/dist/client/assets/sprite-owl-BybpXmvP.png +0 -0
  56. package/dist/client/assets/sprite-panda-DxAHDNb3.png +0 -0
  57. package/dist/client/assets/sprite-penguin-Du588fg8.png +0 -0
  58. package/dist/client/assets/sprite-pig-BTuwvuhq.png +0 -0
  59. package/dist/client/assets/sprite-red-panda-5y9J8xSy.png +0 -0
  60. package/dist/client/assets/sprite-sheep-vHUTjc5U.png +0 -0
  61. package/dist/client/assets/sprite-unicorn-CJ3g8Zet.png +0 -0
  62. package/dist/client/assets/sprite-whale-C3Galw4z.png +0 -0
  63. package/dist/client/assets/trace-panel-DFqImX92.js +1 -0
  64. package/dist/client/assets/trace-panel-DFqImX92.js.br +0 -0
  65. package/dist/client/assets/trail-acacia-5Fr79eBl.png +0 -0
  66. package/dist/client/assets/trail-acacia-frame2-D83GtoaY.png +0 -0
  67. package/dist/client/assets/trail-acacia-frame3-BBXTo5I-.png +0 -0
  68. package/dist/client/assets/trail-acacia-frame4-Xv9ZEsyD.png +0 -0
  69. package/dist/client/assets/trail-acorns-BOCEZemb.png +0 -0
  70. package/dist/client/assets/trail-acorns-frame2-BhHnaBud.png +0 -0
  71. package/dist/client/assets/trail-acorns-frame3-DKXXievy.png +0 -0
  72. package/dist/client/assets/trail-acorns-frame4-Ch2VXeMA.png +0 -0
  73. package/dist/client/assets/trail-bamboo-GqKJxCTV.png +0 -0
  74. package/dist/client/assets/trail-bamboo-frame2-bHacG8f_.png +0 -0
  75. package/dist/client/assets/trail-bamboo-frame3-CaoctCwJ.png +0 -0
  76. package/dist/client/assets/trail-bamboo-frame4-CqBfq3ff.png +0 -0
  77. package/dist/client/assets/trail-bubbles-frame2-eNpysXFZ.png +0 -0
  78. package/dist/client/assets/trail-bubbles-frame3-CWwqOJLM.png +0 -0
  79. package/dist/client/assets/trail-bubbles-frame4-Dj9TUXsV.png +0 -0
  80. package/dist/client/assets/trail-bubbles-pZ5FzCq7.png +0 -0
  81. package/dist/client/assets/trail-clouds-D18nQlSc.png +0 -0
  82. package/dist/client/assets/trail-clouds-frame2-W-_5l_i2.png +0 -0
  83. package/dist/client/assets/trail-clouds-frame3-CGQnOEBI.png +0 -0
  84. package/dist/client/assets/trail-clouds-frame4-CvlkFN6d.png +0 -0
  85. package/dist/client/assets/trail-clover-Ci7hUdO0.png +0 -0
  86. package/dist/client/assets/trail-clover-frame2-Z6NRhQ3U.png +0 -0
  87. package/dist/client/assets/trail-clover-frame3-0srIKU22.png +0 -0
  88. package/dist/client/assets/trail-clover-frame4-BO9UjM_-.png +0 -0
  89. package/dist/client/assets/trail-daisies-DVEPmnHq.png +0 -0
  90. package/dist/client/assets/trail-daisies-frame2-C_3-bnO5.png +0 -0
  91. package/dist/client/assets/trail-daisies-frame3-CR7GzXzm.png +0 -0
  92. package/dist/client/assets/trail-daisies-frame4-CKQDb8cR.png +0 -0
  93. package/dist/client/assets/trail-dust-Cf48D_ja.png +0 -0
  94. package/dist/client/assets/trail-dust-frame2-DAisulyH.png +0 -0
  95. package/dist/client/assets/trail-dust-frame3-BLi-DUzo.png +0 -0
  96. package/dist/client/assets/trail-dust-frame4-DGXo_Q2f.png +0 -0
  97. package/dist/client/assets/trail-embers-c-vlGDDo.png +0 -0
  98. package/dist/client/assets/trail-embers-frame2-wCK1DXpW.png +0 -0
  99. package/dist/client/assets/trail-embers-frame3-C5QS1ZRt.png +0 -0
  100. package/dist/client/assets/trail-embers-frame4-DA-O9bwZ.png +0 -0
  101. package/dist/client/assets/trail-hearts-DQwkXjr0.png +0 -0
  102. package/dist/client/assets/trail-hearts-frame2-DbyTUdl2.png +0 -0
  103. package/dist/client/assets/trail-hearts-frame3-XHaluU_W.png +0 -0
  104. package/dist/client/assets/trail-hearts-frame4-BA0W9inL.png +0 -0
  105. package/dist/client/assets/trail-honey-BC7CvXOJ.png +0 -0
  106. package/dist/client/assets/trail-honey-frame2-C4tRQx2J.png +0 -0
  107. package/dist/client/assets/trail-honey-frame3-V4pdDsZr.png +0 -0
  108. package/dist/client/assets/trail-honey-frame4-BqfUOIZk.png +0 -0
  109. package/dist/client/assets/trail-leaves-Di39skyY.png +0 -0
  110. package/dist/client/assets/trail-leaves-frame2-Dibep-05.png +0 -0
  111. package/dist/client/assets/trail-leaves-frame3-ByxojOFR.png +0 -0
  112. package/dist/client/assets/trail-leaves-frame4-CQGuAWJE.png +0 -0
  113. package/dist/client/assets/trail-logomarks-eIe8WIQx.png +0 -0
  114. package/dist/client/assets/trail-logomarks-frame2-Dw7X4i4F.png +0 -0
  115. package/dist/client/assets/trail-logomarks-frame3-CwoFgR8k.png +0 -0
  116. package/dist/client/assets/trail-logomarks-frame4-B7tFxRZO.png +0 -0
  117. package/dist/client/assets/trail-paws-C4cgGpTt.png +0 -0
  118. package/dist/client/assets/trail-paws-frame2-D8gNCPFb.png +0 -0
  119. package/dist/client/assets/trail-paws-frame3-BiEhbm80.png +0 -0
  120. package/dist/client/assets/trail-paws-frame4-BLLXXSyZ.png +0 -0
  121. package/dist/client/assets/trail-rainbow-BavE03WZ.png +0 -0
  122. package/dist/client/assets/trail-rainbow-frame2-BGZ7ZuQD.png +0 -0
  123. package/dist/client/assets/trail-rainbow-frame3-CY3FOgWe.png +0 -0
  124. package/dist/client/assets/trail-rainbow-frame4-DPWH6W3T.png +0 -0
  125. package/dist/client/assets/trail-seeds-BVCYzFRY.png +0 -0
  126. package/dist/client/assets/trail-seeds-frame2-CgopUUJh.png +0 -0
  127. package/dist/client/assets/trail-seeds-frame3-D2rIJzox.png +0 -0
  128. package/dist/client/assets/trail-seeds-frame4-WbnqCHlJ.png +0 -0
  129. package/dist/client/assets/trail-snow-BmXmGNtx.png +0 -0
  130. package/dist/client/assets/trail-snow-frame2-BQC5GITf.png +0 -0
  131. package/dist/client/assets/trail-snow-frame3-1GIpb4hr.png +0 -0
  132. package/dist/client/assets/trail-snow-frame4-BB4B66p3.png +0 -0
  133. package/dist/client/assets/trail-sparkles-D3Ivb6ob.png +0 -0
  134. package/dist/client/assets/trail-sparkles-frame2-DR03q4T0.png +0 -0
  135. package/dist/client/assets/trail-sparkles-frame3-DtdWWuVM.png +0 -0
  136. package/dist/client/assets/trail-sparkles-frame4-ea8pBjiu.png +0 -0
  137. package/dist/client/assets/trail-stars-EgySiFbH.png +0 -0
  138. package/dist/client/assets/trail-stars-frame2-BOXk5jcm.png +0 -0
  139. package/dist/client/assets/trail-stars-frame3-DJ2AW0RA.png +0 -0
  140. package/dist/client/assets/trail-stars-frame4-BcSJ1AVu.png +0 -0
  141. package/dist/client/assets/ui-prefs-CavQQH-s.js +1 -0
  142. package/dist/client/assets/ui-prefs-CavQQH-s.js.br +0 -0
  143. package/dist/client/assets/usage-panel-CEJqXYIA.js +1 -0
  144. package/dist/client/assets/usage-panel-CEJqXYIA.js.br +0 -0
  145. package/dist/client/assets/visions-panel-Dm3iKlhv.js +1 -0
  146. package/dist/client/assets/visions-panel-Dm3iKlhv.js.br +0 -0
  147. package/dist/client/assets/xterm-BdQ2Kshh.js +79 -0
  148. package/dist/client/assets/xterm-BdQ2Kshh.js.br +0 -0
  149. package/dist/client/assets/zod-BRLv4KqJ.js.br +0 -0
  150. package/dist/client/fonts/CommitMono-OFL.txt.br +0 -0
  151. package/dist/client/fonts/commit-mono-400-regular-core.woff2 +0 -0
  152. package/dist/client/fonts/commit-mono-700-regular-core.woff2 +0 -0
  153. package/dist/client/index.html +10 -5
  154. package/dist/client/index.html.br +0 -0
  155. package/dist/client/octicons-LICENSE.txt.br +3 -0
  156. package/dist/server/index.js +1 -1
  157. package/package.json +1 -1
  158. package/dist/chunks/config-store-D4vUBcUX.js +0 -1
  159. package/dist/client/assets/index-BedqDfKJ.js +0 -177
  160. package/dist/client/assets/index-o9J4_Orv.css +0 -2
  161. package/dist/client/assets/xterm-kR64YvZ-.js +0 -79
  162. package/dist/client/fonts/commit-mono-400-italic.woff2 +0 -0
  163. package/dist/client/fonts/commit-mono-700-italic.woff2 +0 -0
@@ -0,0 +1 @@
1
+ import{_n as e,gn as t,vn as n,yn as r}from"./dom-helpers-CcEFPh-F.js";var i=[{name:`Nyan cat`,sprite:`is-cat`,trail:`is-rainbow`},{name:`Unicorn`,sprite:`is-unicorn`,trail:`is-sparkles`},{name:`Dragon`,sprite:`is-dragon`,trail:`is-embers`},{name:`Pig`,sprite:`is-pig`,trail:`is-hearts`},{name:`Whale`,sprite:`is-whale`,trail:`is-bubbles`},{name:`Fox`,sprite:`is-fox`,trail:`is-paws`},{name:`Frog`,sprite:`is-frog`,trail:`is-dust`},{name:`Penguin`,sprite:`is-penguin`,trail:`is-snow`},{name:`Bee`,sprite:`is-bee`,trail:`is-honey`},{name:`Owl`,sprite:`is-owl`,trail:`is-stars`},{name:`Cow`,sprite:`is-cow`,trail:`is-daisies`},{name:`Panda`,sprite:`is-panda`,trail:`is-bamboo`},{name:`Red panda`,sprite:`is-red-panda`,trail:`is-leaves`},{name:`Deer`,sprite:`is-deer`,trail:`is-acorns`},{name:`Horse`,sprite:`is-horse`,trail:`is-clover`},{name:`Sheep`,sprite:`is-sheep`,trail:`is-clouds`},{name:`Hamster`,sprite:`is-hamster`,trail:`is-seeds`},{name:`Giraffe`,sprite:`is-giraffe`,trail:`is-acacia`},{name:`Hedgehog`,sprite:`is-hedgehog`,trail:`is-logomarks`}],a=1/25,o=3;function s(e,t,n){return typeof e!=`number`||!Number.isFinite(e)?t:Math.min(n.max,Math.max(n.min,e))}function c(e){if(!Array.isArray(e))return[];let t=new Set(i.map(e=>e.sprite));return[...new Set(e.filter(e=>typeof e==`string`&&t.has(e)))]}function l(i={}){let a=t,o=n,l=e,u=s(i.flyingAnimalsMinGapSeconds,a.flyingAnimalsMinGapSeconds,o),d=s(i.flyingAnimalsMaxGapSeconds,a.flyingAnimalsMaxGapSeconds,o),f=s(i.flyingAnimalsMinDurationSeconds,a.flyingAnimalsMinDurationSeconds,l),p=s(i.flyingAnimalsMaxDurationSeconds,a.flyingAnimalsMaxDurationSeconds,l);return{flyingAnimalsMinGapSeconds:Math.min(u,d),flyingAnimalsMaxGapSeconds:Math.max(u,d),flyingAnimalsMinDurationSeconds:Math.min(f,p),flyingAnimalsMaxDurationSeconds:Math.max(f,p),flyingAnimalsScale:s(i.flyingAnimalsScale,a.flyingAnimalsScale,r),flyingAnimalsOnPhone:typeof i.flyingAnimalsOnPhone==`boolean`?i.flyingAnimalsOnPhone:a.flyingAnimalsOnPhone,flyingAnimalsExcludedSprites:c(i.flyingAnimalsExcludedSprites)}}function u(e){return i.some(t=>!e.includes(t.sprite))}function d(e,t=-1,n=Math.random){let r=i.flatMap((t,n)=>e.includes(t.sprite)?[]:[n]);if(r.length===0)return null;let a=r.length>1?r.filter(e=>e!==t):r,o=Math.min(1,Math.max(0,n()));return a[Math.min(a.length-1,Math.floor(o*a.length))]}function f(e,t,n=Math.random,r){let s=r===void 0?d(e.flyingAnimalsExcludedSprites,t,n):i.findIndex(e=>e.sprite===r);if(s===null||s<0)return null;let c=e.flyingAnimalsMinDurationSeconds+n()*(e.flyingAnimalsMaxDurationSeconds-e.flyingAnimalsMinDurationSeconds),l=1e3*(e.flyingAnimalsMinGapSeconds+n()*(e.flyingAnimalsMaxGapSeconds-e.flyingAnimalsMinGapSeconds)),u=n()*c,f=n(),p=n()<.5,m=n()<a?o:1;return{animalIndex:s,durationSeconds:c,gapMs:l,firstDelaySeconds:u,verticalProgress:f,isRightToLeft:p,arcProgress:(n()*2-1)*m}}function p({isEnabled:e,hasReducedMotion:t,isPhone:n,options:r}){return t?`Flights are disabled because reduced motion is enabled.`:e?n&&!r.flyingAnimalsOnPhone?`Turn on Show on phone layout to use Fly now here.`:null:`Turn on flying animals to use Fly now.`}var m=`chime`,h=`custom:`,g=`/custom-sounds`,_=Object.freeze({chime:{label:`Chime`,peakGain:.12,tones:[{frequency:659.25,startSeconds:0,durationSeconds:.35,waveform:`sine`},{frequency:987.77,startSeconds:.14,durationSeconds:.5,waveform:`sine`}]},ping:{label:`Soft ping`,peakGain:.08,tones:[{frequency:1046.5,startSeconds:0,durationSeconds:.12,waveform:`triangle`},{frequency:1046.5,startSeconds:.13,durationSeconds:.12,waveform:`triangle`},{frequency:1318.51,startSeconds:.26,durationSeconds:.2,waveform:`triangle`}]},beep:{label:`Beep`,peakGain:.15,tones:[{frequency:880,startSeconds:0,durationSeconds:.2,waveform:`sine`}]}}),ee=Object.freeze(Object.entries(_).map(([e,t])=>({id:e,label:t.label})));function te(e){return`${h}${e}`}function ne(e){return`${g}/${encodeURIComponent(e)}`}function v(e){return e.startsWith(h)&&e.slice(7)||null}function re(e){let t=(e??[]).map(e=>({id:te(e),label:e}));return[...ee,...t]}function ie(e,t){if(typeof e!=`string`)return m;if(Object.hasOwn(_,e))return e;let n=v(e);return n&&(t===null||t.includes(n))?e:m}function ae(e){return typeof e!=`object`||!e||!(`sounds`in e)||!Array.isArray(e.sounds)?[]:e.sounds.filter(e=>typeof e==`string`&&e!==``)}function y(e,t){try{let n=localStorage.getItem(e);return n===null?t:JSON.parse(n)}catch{return t}}function b(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}var x=`↑`,S=`↓`,C=`←`,w=`→`,T=`⌘`,oe=`⌥`,E=Array.from({length:9},(e,t)=>[`Digit${t+1}`,t+1]),D=`KeyJ`,se=new Map([[`Minus`,`-`],[`Equal`,`=`],[`BracketLeft`,`[`],[`BracketRight`,`]`],[`Semicolon`,`;`],[`Quote`,`'`],[`Comma`,`,`],[`Period`,`.`],[`Slash`,`/`],[`Backquote`,"`"],[`Backslash`,`\\`]]),ce=new Set([`KeyQ`,`KeyW`,`KeyT`,`KeyN`,`KeyL`,`KeyR`]),le=new Set([`KeyC`,`KeyV`,`KeyX`,`KeyA`,`KeyZ`]);function O(e){let t=/^(?:Key|Digit)([A-Z0-9])$/.exec(e);return t?t[1]:se.get(e)??null}function k(e){return{action:`next-attention`,keyCaptions:[O(e)??e],label:`Jump to the next session needing you`,stepByCode:new Map([[e,0]])}}var A=[{action:`rail-step`,keyCaptions:[x,S],label:`Previous / next session in the rail`,stepByCode:new Map([[`ArrowUp`,-1],[`ArrowDown`,1]])},{action:`view-step`,keyCaptions:[C,w],label:`Previous / next view tab`,stepByCode:new Map([[`ArrowLeft`,-1],[`ArrowRight`,1]]),unavailablePlatform:`other`},{action:`view-step`,keyCaptions:[`PgUp`,`PgDn`],label:`Previous / next view tab`,stepByCode:new Map([[`PageUp`,-1],[`PageDown`,1]]),unavailablePlatform:`mac`},{action:`session-nth`,keyCaptions:[`1..9`],label:`Jump to session 1 to 9`,stepByCode:new Map(E),isShellChord:!0,needsMacOption:!0},{action:`new-session`,keyCaptions:[`0`],label:`Add a session`,stepByCode:new Map([[`Digit0`,0]]),isShellChord:!0},{action:`merge`,keyCaptions:[`I`],label:`Merge the selected session`,stepByCode:new Map([[`KeyI`,0]])},{action:`resolve-or-resync`,keyCaptions:[`U`],label:`Resolve a parked merge, or resync the base branch`,stepByCode:new Map([[`KeyU`,0]]),isShellChord:!0},{action:`streamer-mode`,keyCaptions:[`\\`],label:`Turn streamer mode on or off`,stepByCode:new Map([[`Backslash`,0]]),isShellChord:!0}];function j(e,t){return[k(t),...A].filter(t=>t.unavailablePlatform!==e)}function M(e){if(O(e)===null)return`Pick a letter, digit or punctuation key.`;if(ce.has(e))return`The browser keeps that shortcut for itself.`;if(le.has(e))return`That shortcut stays with copy, cut, paste, select all and undo.`;let t=A.find(t=>t.stepByCode.has(e));return t?`That key is already used to ${t.label.charAt(0).toLowerCase()}${t.label.slice(1)}.`:null}function ue(e){return typeof e==`string`&&M(e)===null}var de=new Set([`Meta`,`Alt`,`Control`,`Shift`,`OS`]);function fe(e,t){if(e.key===`Escape`)return{kind:`cancelled`};if(de.has(e.key))return{kind:`ignored`};let n=t===`mac`?`Cmd`:`Alt`;if(!N(e,t,k(e.code)))return{kind:`refused`,reason:`Hold ${n} alone while pressing the key.`};let r=M(e.code);return r?{kind:`refused`,reason:r}:{kind:`recorded`,keyCode:e.code}}function pe(e){return/Mac|iPhone|iPad/.test(e)?`mac`:`other`}function N(e,t,n){return e.ctrlKey||e.shiftKey?!1:t===`mac`?e.metaKey&&e.altKey===!!n.needsMacOption:e.altKey&&!e.metaKey}function me(e,t,n){return n.isTerminalFocused&&t!==`mac`&&!!e.isShellChord}var he=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`]);function P(e){return he.has(e.key)?e.key:e.code}function F(e,t,n={isTerminalFocused:!1},r=D){let i=P(e);for(let a of j(t,r)){let r=a.stepByCode.get(i);if(r!==void 0)return!N(e,t,a)||me(a,t,n)?null:{action:a.action,step:r}}return null}function I(e,t){return t===`focus`||t===`zen`&&e.action===`next-attention`}function L(e,t){return e===`mac`?t?.needsMacOption?`${T}${oe}`:T:`Alt`}function R(e,t,n){let r=j(t,n).find(t=>t.action===e);if(!r)throw Error(`Unknown dashboard shortcut: ${e}`);return r}function z(e,t,n=D){let r=R(e,t,n);return[L(t,r),r.keyCaptions.join(` `)]}function ge(e,t){let[n,r]=z(e,t);return t===`mac`?`${n}${r}`:`${n}+${r}`}function _e(e){let t=e===`mac`?`Meta`:`Alt`;return`ArrowUp ArrowDown ${t}+ArrowUp ${t}+ArrowDown`}function ve(e,t=D){let n=e===`mac`?T:`Ctrl`;return[{title:`Dashboard`,items:j(e,t).map(t=>({combos:t.keyCaptions.map(n=>[L(e,t),n]),label:t.label}))},{title:`Navigation`,items:[{combos:[[x],[S]],label:`Move rail highlight (rail focused)`},{combos:[[C],[w]],label:`Switch view tab (tab focused)`}]},{title:`Terminal`,items:[{combos:[[n,`C`]],label:`Copy selection`},{combos:[[n,`V`]],label:`Paste`},{combos:[[n,`Backspace`]],label:`Delete previous word`}]},{title:`General`,items:[{combos:[[`Esc`]],label:`Close dialog / cancel rename`}]}]}var B=`glimmervoid-ui-prefs`,V=`glimmervoid:sidebar-width`,H=e=>t=>typeof t==`boolean`?t:e,U=e=>t=>typeof t==`string`?t:e,W=e=>typeof e==`string`&&e?e:null,G=e=>typeof e==`number`&&Number.isFinite(e)?e:null,K=e=>t=>G(t)??e,q=e=>Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`&&e!==``))]:[],J={soundEnabled:H(!0),soundId:U(m),themeId:U(`phyrexian`),flyingAnimalsEnabled:H(!1),flyingAnimalsMinGapSeconds:K(t.flyingAnimalsMinGapSeconds),flyingAnimalsMaxGapSeconds:K(t.flyingAnimalsMaxGapSeconds),flyingAnimalsMinDurationSeconds:K(t.flyingAnimalsMinDurationSeconds),flyingAnimalsMaxDurationSeconds:K(t.flyingAnimalsMaxDurationSeconds),flyingAnimalsScale:K(t.flyingAnimalsScale),flyingAnimalsOnPhone:H(t.flyingAnimalsOnPhone),flyingAnimalsExcludedSprites:c,notificationsEnabled:H(!0),sessionUsageChips:H(!1),phoneArrowPad:H(!1),nextAttentionKeyCode:e=>ue(e)?e:D,activeView:U(`focus`),lastFocusedSessionId:W,railWidth:G,reviewSidebarExpanded:H(!1),prsQueueWidth:G,prsQueueCollapsed:H(!1),keptProjects:q,traceHiddenKinds:q,dismissedUpdate:W,telemetryNoticeDismissed:H(!1),radarAttentionAck:U(``),prsAttentionAck:U(``),prsUnseenRows:U(``),usageAttentionAck:U(``),visionsAttentionAck:U(``)};function Y(e,t,n){e[t]=J[t](n)}function X(){let e=y(B,{}),t={};for(let n of Object.keys(J))Y(t,n,e?.[n]);return t}function Z(e){return X()[e]}function Q(e,t){let n=X();Y(n,e,t),b(B,n)}var ye=()=>Z(`soundEnabled`),be=e=>Q(`soundEnabled`,e),xe=()=>Z(`soundId`),Se=e=>Q(`soundId`,e),Ce=()=>Z(`notificationsEnabled`),we=e=>Q(`notificationsEnabled`,e),Te=()=>Z(`sessionUsageChips`),Ee=e=>Q(`sessionUsageChips`,e),De=()=>Z(`phoneArrowPad`),Oe=e=>Q(`phoneArrowPad`,e),ke=()=>Z(`nextAttentionKeyCode`),Ae=e=>Q(`nextAttentionKeyCode`,e),je=()=>Z(`themeId`),Me=e=>Q(`themeId`,e),Ne=()=>Z(`flyingAnimalsEnabled`),Pe=e=>Q(`flyingAnimalsEnabled`,e),Fe=()=>Z(`activeView`),Ie=e=>Q(`activeView`,e),Le=()=>Z(`railWidth`),Re=e=>Q(`railWidth`,e),ze=()=>Z(`reviewSidebarExpanded`),Be=e=>Q(`reviewSidebarExpanded`,e),Ve=()=>Z(`prsQueueWidth`),He=e=>Q(`prsQueueWidth`,e),Ue=()=>Z(`prsQueueCollapsed`),We=e=>Q(`prsQueueCollapsed`,e),Ge=()=>Z(`keptProjects`),Ke=e=>Q(`keptProjects`,e),qe=()=>Z(`traceHiddenKinds`),Je=e=>Q(`traceHiddenKinds`,e),Ye=()=>Z(`dismissedUpdate`),Xe=e=>Q(`dismissedUpdate`,e),Ze=()=>Z(`telemetryNoticeDismissed`),Qe=e=>Q(`telemetryNoticeDismissed`,e),$e=()=>Z(`radarAttentionAck`),et=e=>Q(`radarAttentionAck`,e),tt=()=>Z(`prsAttentionAck`),nt=e=>Q(`prsAttentionAck`,e),rt=()=>Z(`prsUnseenRows`),it=e=>Q(`prsUnseenRows`,e),at=()=>Z(`usageAttentionAck`),ot=e=>Q(`usageAttentionAck`,e),st=()=>Z(`visionsAttentionAck`),ct=e=>Q(`visionsAttentionAck`,e),lt=()=>Z(`lastFocusedSessionId`),ut=e=>Q(`lastFocusedSessionId`,e),dt=()=>G(y(V,null)),ft=e=>b(V,G(e)),$=e=>Q(`flyingAnimalsMinGapSeconds`,e),pt=e=>Q(`flyingAnimalsMaxGapSeconds`,e),mt=e=>Q(`flyingAnimalsMinDurationSeconds`,e),ht=e=>Q(`flyingAnimalsMaxDurationSeconds`,e),gt=e=>Q(`flyingAnimalsScale`,e),_t=e=>Q(`flyingAnimalsOnPhone`,e),vt=e=>Q(`flyingAnimalsExcludedSprites`,e),yt=()=>l(X()),bt=()=>{let e=X();return Object.fromEntries(Object.keys(t).map(t=>[t,e[t]]))},xt=()=>b(B,{...X(),...t});export{Se as $,Pe as A,Ae as B,ze as C,f as Ct,xt as D,i as Dt,Ze as E,d as Et,$ as F,He as G,Oe as H,_t as I,Re as J,it as K,gt as L,ht as M,pt as N,Ie as O,mt as P,be as Q,Ke as R,Ue as S,re as St,ye as T,u as Tt,nt as U,we as V,We as W,Ee as X,Be as Y,ft as Z,at as _,_ as _t,Ge as a,I as at,Ce as b,ae as bt,tt as c,F as ct,$e as d,ge as dt,Qe as et,Le as f,pe as ft,qe as g,m as gt,je as h,g as ht,yt as i,ct as it,vt as j,Xe as k,Ve as l,z as lt,xe as m,b as mt,Ye as n,Je as nt,lt as o,_e as ot,dt as p,y as pt,et as q,bt as r,ot as rt,ke as s,fe as st,Fe as t,Me as tt,rt as u,ve as ut,st as v,v as vt,Te as w,p as wt,De as x,ie as xt,Ne as y,ne as yt,ut as z};
@@ -0,0 +1 @@
1
+ import{n as e,o as t,u as n}from"./dom-helpers-CcEFPh-F.js";import{n as r,t as i}from"./poll-ago-Dj148faJ.js";import{$a as a,$i as o,Aa as s,Ba as c,Ca as l,Co as u,Da as d,Ea as ee,Fa as f,Ga as p,Ha as m,Ia as h,Ja as g,Ka as _,La as te,Ma as ne,Na as re,Oa as v,Pa as ie,Qa as ae,Qi as oe,Ra as se,Sa as y,So as ce,Ta as le,Ua as ue,Va as de,Wa as fe,Xa as pe,Xi as me,Ya as he,Za as b,Zi as ge,_a as _e,_o as ve,a as x,aa as ye,ao as be,ba as xe,bo as Se,c as Ce,ca as we,co as Te,d as S,da as C,do as Ee,ds as De,ea as Oe,eo as ke,fa as Ae,fo as je,ga as Me,go as Ne,ha as Pe,ho as Fe,ia as Ie,io as Le,ja as Re,ka as w,l as ze,la as Be,lo as T,ma as Ve,mo as He,na as Ue,no as We,o as E,oa as Ge,oo as Ke,pa as qe,po as Je,qa as Ye,ra as Xe,ro as Ze,s as Qe,sa as $e,so as et,ta as tt,to as nt,u as rt,ua as it,uo as at,va as ot,vo as st,wa as ct,wo as lt,xa as ut,xo as dt,ya as ft,yo as pt,za as mt}from"./index-C8u3ZjM3.js";var D=S(),O=null,k=me,A=ge,j=oe,M=!1,N=null,P=`day`,F=new Set,I=null,L=null,R=null,z=null,B=null,V=null,H=null,U=i(()=>O),W=(t,n)=>e(`usage`,t,n);function G(e,n,r,i){let a=t(`div`,`usage-tile`);i&&i!==`ok`&&(a.dataset.tone=i);let o=t(`span`,`usage-tile-value`,n);a.append(o,t(`span`,`usage-tile-label`,e));let s=r?t(`span`,`usage-tile-sub`,r):null;return s&&a.append(s),{tile:a,valueEl:o,subEl:s}}function K(e){let t=Number(e);return Number.isFinite(t)?Math.min(Math.max(t,0),100):0}function q(e,n,r){let i=t(`div`,`usage-meter`);i.dataset.tone=String(n),i.setAttribute(`role`,`progressbar`),i.setAttribute(`aria-valuemin`,`0`),i.setAttribute(`aria-valuemax`,`100`),i.setAttribute(`aria-label`,r);let a=t(`span`,`usage-meter-fill`);return i.append(a),ht(i,e),i}function ht(e,t){if(!e)return;let n=K(t);e.setAttribute(`aria-valuenow`,String(Math.round(n)));let r=e.querySelector(`.usage-meter-fill`);r&&(r.style.width=`${n}%`)}function J(e,n,r,i){let a=t(`div`,`usage-table-scroll`);a.dataset.usageTable=i;let o=t(`table`,`usage-table`),s=t(`thead`),c=t(`tr`);for(let a of e){let e=t(`th`,a.numeric?`usage-num`:null);if(e.scope=`col`,!a.key){e.textContent=a.label,c.append(e);continue}let o=a.key;e.setAttribute(`aria-sort`,it(n,o));let s=t(`button`,`usage-sort`,a.label);s.type=`button`,s.dataset.sortKey=o,s.addEventListener(`click`,()=>{x(`sort`),N={kind:`sort`,table:i,key:o},r(o)}),e.append(s),c.append(e)}s.append(c);let l=t(`tbody`);return o.append(s,l),a.append(o),{wrap:a,body:l}}function Y(e,n){for(let r of n){let n=t(`td`,r.numeric?`usage-num`:r.className||null,r.node?null:r.text);r.node&&n.append(r.node),r.title&&(n.title=r.title),r.span&&(n.colSpan=r.span),e.append(n)}}function X(e){let n=t(`div`,`usage-share`);if(!Number.isFinite(e))return n.append(t(`span`,`usage-share-text`,d(e))),n;let r=t(`span`,`usage-share-bar`),i=t(`span`,`usage-share-fill`);return i.style.width=`${K(e)}%`,r.append(i),n.append(r,t(`span`,`usage-share-text`,d(e))),n}function gt(){if(!I?.isConnected)return;let e=Number(D.report?.ts);I.textContent=Number.isFinite(e)&&e>0?`Report ${r(e)}`:``}function Z(){if(!L?.isConnected)return;let e=Number(D.sessions?.ts);L.textContent=Number.isFinite(e)&&e>0?`Sessions ${r(e)}`:``}function _t(){let e=Ve(D.report?.activeBlock);e&&(R?.isConnected&&(R.textContent=`${e.pct}%`),z?.isConnected&&(z.textContent=`${ee(e.remainingMinutes)} left`),B?.isConnected&&ht(B,e.pct))}function vt(){let e=t(`div`,`usage-controls`),n=t(`label`,`usage-control`);n.append(t(`span`,`usage-control-label`,`Range`));let r=t(`select`,`usage-select`);for(let e of ye){let n=t(`option`,null,e.label);n.value=e.value,r.append(n)}r.value=D.rangeValue,r.addEventListener(`change`,()=>{x(`range`),Ce(r.value),E()}),n.append(r);let i=t(`button`,`usage-refresh`,`Refresh`);i.type=`button`,i.title=`Re-read every transcript from the start`,i.addEventListener(`click`,()=>{x(`refresh`),E({force:!0})});let a=t(`span`,`usage-refresh-status`,``);return V=i,H=a,qt(),e.append(n,i,a),e}function yt(){let e=W(`Usage`,le(D.report?.daily||[]));e.append(vt()),I=t(`p`,`usage-meta`,``),e.append(I),gt(),U.onTick(gt);let n=ce(D.report);n&&e.append(t(`p`,`usage-warning`,n));let r=p(D.report?.pricing?.missing);return r&&e.append(t(`p`,`usage-warning`,r)),e}function bt(){let e=Xe.filter(({vendor:e})=>ie(D.planLimitsByVendor[e]));if(e.length===0)return null;let n=W(`Plan limits`,We(e.map(({vendor:e})=>e),D.report?.totals)),r=e.length>1,i=t(`div`,`usage-plan-vendors`);for(let{vendor:t,label:n}of e)i.append(xt(D.planLimitsByVendor[t],r?n:null));return n.append(i),n}function xt(e,n){let r=t(`div`,`usage-plan-vendor`);n&&r.append(t(`p`,`usage-plan-vendor-label`,n));let i=nt(e?.ts);if(i){let e=t(`p`,`usage-meta`,i);e.dataset.tone=`warn`,r.append(e)}let a=t(`div`,`usage-plan`);for(let t of Ie){let n=Ze(e,t.key);n&&a.append(St(t,n))}let o=t(`p`,`usage-meta`,``);r.append(a,o);let s=()=>{if(!o.isConnected)return;let t=ke(e?.ts);o.textContent=t?`Plan ${t}`:``};return s(),U.onTick(s),r}function St(e,n){let r=t(`div`,`usage-plan-window`),i=t(`div`,`usage-plan-head`);i.append(t(`span`,`usage-plan-label`,e.label)),i.append(t(`span`,`usage-plan-used`,Le(n)));let a=t(`span`,`usage-plan-reset`,``);i.append(a),r.append(i),Number.isFinite(n.pct)&&r.append(q(n.pct,Se(n.pct),`${e.label} plan limit used`));let o=()=>{a.isConnected&&(a.textContent=at(n.resetsAtMs))};return o(),U.onTick(o),r}function Ct(){let e=s(D.report,D.planLimitsByVendor.claude),n=wt();if(e.length===0&&!n)return null;let r=W(`Glimmervoid overhead`,e.length>0?tt:null);if(e.length>0){let n=t(`div`,`usage-tiles`);for(let t of e){let e=[pe(t),w(t.costUSD)].filter(Boolean).join(`, `);n.append(G(`${t.label}, share of Claude use`,d(t.sharePct),e).tile)}r.append(n);for(let n of e){let e=he(n);e&&r.append(t(`p`,`usage-meta`,`${n.label}: ${e}`))}}return n&&(r.append(t(`p`,`usage-meta`,`Selected range by lane. ${Oe}`)),r.append(n)),r}function wt(){if(!ne(D.report))return null;let e=m(D.report),n=e.reduce((e,t)=>e+(typeof t.costUSD==`number`&&Number.isFinite(t.costUSD)?t.costUSD:0),0),{wrap:r,body:i}=J([{label:`Lane`},{label:`Cost`,numeric:!0},{label:`Tokens`,numeric:!0},{label:`Sessions`,numeric:!0},{label:`Share`,numeric:!0}],null,()=>{},`lane`);for(let r of e){let e=t(`tr`,`usage-row`);r.lane===`other`&&(e.dataset.lane=`other`),Y(e,[{text:de(r.lane),className:`usage-lane-cell`},{text:w(r.costUSD),numeric:!0},{text:v(r.tokens),numeric:!0},{text:ue(r.sessions),numeric:!0},{node:X(b(r.costUSD,n)),className:`usage-share-cell`}]),i.append(e)}return r}function Tt(){let e=D.report?.activeBlock,n=D.report?.blockHours,r=typeof n==`number`&&Number.isFinite(n)?n:5,i=y(D.report?.totals),a=W(`Current block`,i?`${r}h window, ${i}`:`${r}h window`);if(!e){a.append(t(`p`,`usage-empty`,`No active block.`));let e=Et();return e&&a.append(e),a}let o=C(D.report,D.planLimitsByVendor.claude),s=t(`div`,`usage-tiles`);s.append(G(`block tokens`,v(e.tokens??0),w(e.costUSD??0),o).tile);for(let t of xe(e.burn))s.append(G(t.label,t.value,t.sub,o).tile);let c=Ve(e);if(c){let e=G(`elapsed`,`${c.pct}%`,`${ee(c.remainingMinutes)} left`);R=e.valueEl,z=e.subEl,s.append(e.tile)}a.append(s),c&&(B=q(c.pct,`ok`,`Elapsed share of the current block window`),a.append(B),U.onTick(_t));let l=et(e.projection);if(l){let e=t(`p`,`usage-projection`,l);e.dataset.tone=o,a.append(e)}let u=Et();u&&a.append(u);let d=pt(D.report?.tokenLimit);if(!d)return a;let f=fe(D.report?.tokenLimit),p=C(D.report);a.append(q(f,p,`Share of the largest completed block seen, estimated`));let m=t(`p`,`usage-meta`,d);m.dataset.tone=p,a.append(m),a.append(t(`p`,`usage-provenance`,Te(`estimated`)));let h=Ke(e.projection,D.report?.tokenLimit);if(h){let e=t(`p`,`usage-meta`,h);e.dataset.tone=p,a.append(e)}return a}function Et(){let e=D.report?.anomaly;if(!Re(e))return null;let n=t(`p`,`usage-meta`,we(e));return n.dataset.tone=Be(e),n}function Dt(){let e=Ae(D.report?.blocks);if(e.length===0)return null;let n=y(D.report?.totals),r=W(`Recent blocks`,n?`newest first, ${n}`:`newest first`),i=t(`div`,`usage-blocks`),a=e.reduce((e,t)=>Math.max(e,t.tokens),0);for(let n of e){let e=t(`div`,`usage-block`);n.isActive&&(e.dataset.active=`true`),e.append(t(`span`,`usage-block-label`,qe(n.startTs)));let r=t(`span`,`usage-block-bar`),o=t(`span`,`usage-block-fill`);o.style.width=`${K(b(n.tokens,a)??0)}%`,r.append(o),e.append(r),e.append(t(`span`,`usage-block-value`,`${v(n.tokens)} ${w(n.costUSD)}`)),i.append(e)}return r.append(i),r}function Ot(){let e=D.report?.totals||{},n=ct(D.report?.daily,T(D.report)),r=W(`Totals`,[Ge,D.report?.tz?`TZ ${D.report.tz}`:``].filter(Boolean).join(` `)),i=C(D.report,D.planLimitsByVendor.claude),a=t(`div`,`usage-tiles`);a.append(G(`today`,v(n?.tokens??0),w(n?.costUSD??0),i).tile),a.append(G(`range total`,v(e.tokens??0),w(e.costUSD??0)).tile);let o=be(D.report);o&&a.append(G(o.label,o.value,o.sub).tile),r.append(a);let s=kt(e);s&&r.append(s);let c=re(e)?u(e):[];if(c.length>0){let e=t(`div`,`usage-tiles usage-vendor-tiles`);for(let t of c)e.append(G(t.label,v(t.tokens),w(t.costUSD)).tile);r.append(e)}return L=t(`p`,`usage-meta`,``),r.append(L),Z(),U.onTick(Z),r}function kt(e){let n=l(e);if(n.length===0)return null;let r=t(`div`,`usage-compo`),i=t(`div`,`usage-compo-bar`);i.setAttribute(`aria-hidden`,`true`);for(let e of n){if(e.pct<=0)continue;let n=t(`span`,`usage-compo-fill`);n.dataset.part=e.key,n.style.width=`${e.pct}%`,n.title=e.title,i.append(n)}let a=t(`div`,`usage-compo-legend`);for(let e of n){let n=t(`span`,`usage-compo-item`),r=t(`span`,`usage-compo-swatch`);r.dataset.part=e.key,n.append(r,t(`span`,`usage-compo-label`,e.label),t(`span`,`usage-compo-value`,e.value)),a.append(n)}return r.append(i,a),r}function At(){let e=D.report?.savings;if(!f(e))return null;let n=W(`Savings`,``),r=t(`div`,`usage-tiles`),i=Ee(e);i&&r.append(G(`rtk compression`,i.value,i.sub).tile);let a=ut(e);return a&&r.append(G(`Prompt cache`,a.value,a.sub).tile),n.append(r),n}function jt(){let e=ot(D.report);if(e.length===0)return null;let n=W(`Budgets`,`your own ceilings`),r=t(`div`,`usage-budgets`),i=De(`machine-usage`,`usage-daily-budget`,`Budget settings`);r.appendChild(i);for(let n of e){let e=t(`div`,`usage-budget`),i=t(`div`,`usage-budget-head`);i.append(t(`span`,`usage-budget-label`,ft(n.scope))),i.append(t(`span`,`usage-budget-value`,_e(n))),i.append(t(`span`,`usage-budget-pct`,d(Me(n)))),e.append(i),e.append(q(Me(n),n.tone,Pe(n))),r.append(e)}return n.append(r),n}function Mt(){let e=D.report?.daily||[],n=P,r=Ne(a(e,n),k),i=Ue.find(e=>e.value===n)?.label||`Day`,o=W(`Over time`,[se(e)].filter(Boolean).join(`, `));if(o.append(Nt()),r.length===0)return o.append(t(`p`,`usage-empty`,`No usage.`)),o;let s=Ft(e);s&&o.append(s);let{wrap:c,body:l}=J([{label:i,key:`day`},{label:`Tokens`,numeric:!0,key:`tokens`},{label:`Cost`,numeric:!0,key:`costUSD`},{label:`Models`}],k,e=>{k=g(k,e),Q()},`day`);for(let e of r){let r=String(e.day??``),i=t(`tr`,`usage-row`);e.source===`history`&&(i.dataset.source=`history`);let a=ve(e.models),o=`${n}:${r}`,s=It(o,a.length);Y(i,[{node:Pt(e,n),title:r},{text:v(e.tokens),numeric:!0},{text:w(e.costUSD),numeric:!0},{node:s,className:`usage-toggle-cell`}]),l.append(i),a.length!==0&&F.has(o)&&l.append(Lt(a))}return o.append(c),o}function Nt(){let e=t(`div`,`usage-period`);e.setAttribute(`role`,`group`),e.setAttribute(`aria-label`,`Period`);for(let n of Ue){let r=t(`button`,`usage-period-button`,n.label);r.type=`button`,r.dataset.periodView=n.value,r.setAttribute(`aria-pressed`,n.value===P?`true`:`false`),r.addEventListener(`click`,()=>{P!==n.value&&(x(`period`),P=n.value,N={kind:`period`,view:n.value},Q())}),e.append(r)}return e}function Pt(e,n){let r=t(`span`,`usage-period-cell`);return r.append(t(`span`,null,ae(e.day,n))),e.source===`history`&&r.append(t(`span`,`usage-history-tag`,`history`)),r}function Ft(e){let{cells:n,max:r}=te(e,{today:T(D.report)});if(n.length===0||r<=0)return null;let i=t(`div`,`usage-heatmap-scroll`),a=t(`div`,`usage-heatmap`);a.setAttribute(`role`,`img`),a.setAttribute(`aria-label`,`Daily usage for the trailing ${Math.max(...n.map(e=>e.week))+1} weeks`);let s=t(`div`,`usage-heatmap-days`);for(let e of o)s.append(t(`span`,`usage-heatmap-day`,e));for(let e of n){let n=t(`span`,`usage-heatmap-cell`);n.dataset.tone=String(e.tone),e.noData&&(n.dataset.noData=`true`),e.source===`history`&&(n.dataset.source=`history`),n.style.gridColumn=String(e.week+1),n.style.gridRow=String(e.weekday+1),n.title=h(e),a.append(n)}return i.append(s,a),i}function It(e,n){if(n===0)return null;let r=t(`button`,`usage-toggle`,`Models`);return r.type=`button`,r.dataset.usageDay=e,r.setAttribute(`aria-expanded`,F.has(e)?`true`:`false`),r.addEventListener(`click`,()=>{x(`expand`),N={kind:`day`,day:e},F.has(e)?(F.delete(e),Q()):(F.add(e),Q())}),r}function Lt(e){let n=t(`tr`,`usage-row-breakdown`),r=t(`td`,`usage-models`);r.colSpan=4;for(let n of e){let e=t(`span`,`usage-model-chip`);e.append(t(`span`,`usage-model-name`,_(n)),t(`span`,`usage-model-value`,`${v(n.tokens)} ${w(n.costUSD)}`)),r.append(e)}return n.append(r),n}function Rt(e,n){let r=t(`span`,`usage-model-name-wrap`),i=Ye(e,n);return i&&r.append(t(`span`,`usage-vendor-tag`,i)),r.append(t(`span`,null,_(e))),r}function zt(){let e=ve(D.report?.models,A),n=D.report?.totals||{},r=He(n),i=W(`By model`,Fe(r));if(e.length===0)return i.append(t(`p`,`usage-empty`,`No models.`)),i;let{wrap:a,body:o}=J([{label:`Model`,key:`model`},{label:`Tokens`,numeric:!0,key:`tokens`},{label:`Cost`,numeric:!0,key:`costUSD`},{label:`Share`,numeric:!0},{label:`Input`,numeric:!0,key:`input`},{label:`Output`,numeric:!0,key:`output`},{label:`Cache write`,numeric:!0,key:`cacheCreate`},{label:`Cache read`,numeric:!0,key:`cacheRead`}],A,e=>{A=g(A,e),Q()},`model`);for(let i of e){let e=t(`tr`,`usage-row`);Y(e,[{node:Rt(i,n),className:`usage-model-cell`,title:_(i)},{text:v(i.tokens),numeric:!0},{text:w(i.costUSD),numeric:!0},{node:X(b(i[r],n[r])),className:`usage-share-cell`},{text:v(i.input),numeric:!0},{text:v(i.output),numeric:!0},{text:v(i.cacheCreate),numeric:!0},{text:v(i.cacheRead),numeric:!0}]),o.append(e)}return i.append(a),i}function Bt(){let e=st(D.report?.sessions,j),n=lt(e,M),i=D.report?.totals||{},a=He(i),o=W(`By session`,Fe(a));if(e.length===0)return o.append(t(`p`,`usage-empty`,`No sessions.`)),o;let{wrap:s,body:c}=J([{label:`Session`,key:`label`},{label:`Tokens`,numeric:!0,key:`tokens`},{label:`Cost`,numeric:!0,key:`costUSD`},{label:`Share`,numeric:!0},{label:`Last activity`,numeric:!0,key:`lastTs`}],j,e=>{j=g(j,e),Q()},`session`);for(let e of n.rows){let n=t(`tr`,`usage-row`);mt(e)&&(n.dataset.managed=`true`);let o=Je(e),s=t(`span`,`usage-ago`,``);Y(n,[{text:o,className:`usage-session-cell`,title:e.project?String(e.project):o},{text:v(e.tokens),numeric:!0},{text:w(e.costUSD),numeric:!0},{node:X(b(e[a],i[a])),className:`usage-share-cell`},{node:s,numeric:!0}]),U.track(s,Number(e.lastTs),r),c.append(n)}return o.append(s),e.length>10&&o.append(Vt(n.hiddenCount)),o}function Vt(e){let n=t(`div`,`usage-overflow`),r=je(e);r&&n.append(t(`p`,`usage-meta`,r));let i=t(`button`,`usage-toggle`,`All sessions`);return i.type=`button`,i.dataset.usageSessionsToggle=`true`,i.setAttribute(`aria-expanded`,M?`true`:`false`),i.addEventListener(`click`,()=>{x(`expand`),N={kind:`sessions-toggle`},M=!M,Q()}),n.append(i),n}function Ht(){let e=W(`Not available`,``);return e.append(t(`p`,`usage-empty`,dt(D.report))),e.append(t(`p`,`usage-empty`,$e)),e}function Ut(){I=null,L=null,R=null,z=null,B=null,V=null,H=null}function Q({force:e=!1}={}){if(!O||!e&&n(O))return;D=S();let t=O.parentElement,r=t?t.scrollTop:0;U.reset(),Ut(),O.textContent=``,Kt(),t&&(t.scrollTop=r),Wt()}function Wt(){let e=N;if(N=null,!e)return;let t=Gt(e);if(!t||!O)return;let n=O.querySelector(t);n instanceof HTMLElement&&n.focus()}function Gt(e){return e.kind===`day`?`.usage-toggle[data-usage-day="${CSS.escape(e.day)}"]`:e.kind===`period`?`.usage-period-button[data-period-view="${CSS.escape(e.view)}"]`:e.kind===`sessions-toggle`?`.usage-toggle[data-usage-sessions-toggle="true"]`:e.kind===`sort`?`[data-usage-table="${CSS.escape(e.table)}"] .usage-sort[data-sort-key="${CSS.escape(e.key)}"]`:null}function Kt(){if(!O)return;O.append(yt());let e=bt();if(c(D.report)){e&&O.append(e),O.append(Ht());return}if(!D.report){e&&O.append(e),O.append(t(`p`,`usage-empty`,`Waiting for scan.`));return}let n=[e,jt()].filter(e=>e!==null);O.append($(`usage-band-now`,Tt(),n,{sideFirst:!0}));let r=[At()].filter(e=>e!==null);O.append($(`usage-band-spend`,Ot(),r));let i=[Dt()].filter(e=>e!==null);O.append($(`usage-band-trend`,Mt(),i));let a=Ct();a&&O.append(a),O.append(zt(),Bt())}function $(e,n,r,{sideFirst:i=!1}={}){if(r.length===0)return n;let a=t(`div`,`usage-band ${e}`),o=t(`div`,`usage-band-col`);for(let e of r)o.append(e);return i?(a.append(o,n),a):(a.append(n,o),a)}function qt(){let e=rt();V&&(V.disabled=e.isPending),H&&(H.textContent=e.text,e.hasFailure?H.dataset.tone=`error`:delete H.dataset.tone)}function Jt(e){e===`refresh-status`?qt():(D=S(),e===`sessions`&&D.report&&!c(D.report)&&L?.isConnected?Z():Q())}function Yt(e){if(O)return;let r=t(`div`,`usage-content`);e.appendChild(r),O=r,Qe(()=>!n(O)),ze(Jt),U.ensure(),Q({force:!0})}function Xt(e){e===`shown`&&Q({force:!0}),E()}var Zt={mount:Yt,refresh:Xt};export{Zt as view};
@@ -0,0 +1 @@
1
+ import{A as e,o as t,u as n}from"./dom-helpers-CcEFPh-F.js";import{i as r}from"./action-status-DXcC95xv.js";import{Ai as i,Bi as a,Di as o,Fi as s,Gi as c,Hi as l,Ii as u,Ki as d,Li as f,Mi as p,Ni as m,Oi as h,Pi as g,Ri as _,Ui as v,Vi as y,Wi as b,ds as x,ji as S,ki as C,qi as w,zi as T}from"./index-C8u3ZjM3.js";var E=null,D=null,O=null,k=null,A=null;function j(){let e=t(`section`,`visions-intent`);e.append(t(`h2`,`visions-intent-title`,`Intent`));let n=t(`div`,`visions-intent-list`);return e.append(n),O={list:n},e}function M(e){let n=t(`div`,`visions-intent-item`),r=t(`div`,`visions-intent-head`);r.append(t(`span`,`visions-intent-scope`,e.label),t(`span`,`visions-intent-meta`,e.meta));let i=t(`p`,`visions-intent-text`,e.text);return i.classList.toggle(`visions-intent-none`,!e.hasText),n.classList.toggle(`visions-intent-active`,e.active===!0),n.append(r,i),n}function N(){if(!O)return;let{intent:e,projectNamesById:t}=C();O.list.replaceChildren(...b(e,t).map(M))}function P(e){let n=t(`section`,`visions-doc`),r=t(`div`,`visions-doc-head`),i=t(`h2`,`visions-doc-name`);if(i.textContent=e.name,i.title=e.uri,r.append(i,t(`span`,`visions-doc-count`,c(e))),n.append(r),e.hand&&n.append(F(e.hand)),e.findings.length>0){let r=t(`div`,`visions-findings`);for(let t of e.findings)r.append(L(t));n.append(r)}if(e.comments.length>0){let r=t(`div`,`visions-comments`);for(let t of e.comments)r.append(I(t));n.append(r)}return n}function F(e){let n=t(`div`,`visions-hand`);return n.textContent=d(e),n}function I(e){let n=t(`div`,`visions-comment`),r=t(`div`,`visions-comment-head`);r.append(t(`span`,`visions-comment-chip`,`visions`)),r.append(t(`span`,`visions-comment-line`,T(e))),n.append(r);let i=t(`p`,`visions-comment-message`);return i.textContent=e?.message==null?``:String(e.message),n.append(i),n}function L(e){let n=t(`div`,`visions-finding`);n.append(t(`span`,`visions-finding-line`,a(e)));let r=e?.code==null?``:String(e.code);r&&n.append(t(`span`,`visions-finding-code`,r));let i=t(`span`,`visions-finding-message`);return i.textContent=e?.message==null?``:String(e.message),n.append(i),n}function R({force:e=!1}={}){if(!D||!e&&n(E))return;D.textContent=``;let{findingsByUri:r,commentsByUri:i,handsByUri:a,isEnabled:o}=C(),s=w(r,i,a);if(s.length===0){let e=t(`p`,`visions-empty`,S);if(o===!1){let t=x(`lanes-visions`,`visions-enabled`,`Enable Visions`);e.append(document.createTextNode(` `),t)}D.append(e)}else for(let e of s)D.append(P(e))}function z(){let e=t(`section`,`visions-activity`),n=t(`div`,`visions-activity-head`);n.append(t(`h2`,`visions-activity-title`,`Activity`));let r=t(`span`,`visions-activity-count`);n.append(r),e.append(n);let i=t(`div`,`visions-activity-list`);e.append(i);let a=t(`p`,`visions-activity-overflow`);return e.append(a),k={count:r,list:i,overflow:a},e}function B(e,n){let r=t(`div`,`visions-activity-row`);r.append(t(`span`,`visions-activity-source`,f(e.source))),r.append(t(`span`,`visions-activity-age`,m(e.ts,n))),r.append(t(`span`,`visions-activity-scope`,u(e)));let i=t(`span`,`visions-activity-summary`);return i.textContent=e.summary,r.append(i),r}function V({force:e=!1}={}){if(!k||!e&&n(E))return;let{count:r,list:a,overflow:o}=k,{activityEvents:c,activityOverflow:l}=C();if(r.textContent=g(c.length),a.textContent=``,c.length===0){a.append(t(`p`,`visions-empty`,i)),o.textContent=``;return}let u=Date.now();for(let e of c)a.append(B(e,u));o.textContent=s(l)}function H(){let e=t(`section`,`visions-fixes`),n=t(`div`,`visions-fixes-head`);n.append(t(`h2`,`visions-fixes-title`,`Fixes`));let r=t(`span`,`visions-fixes-count`);n.append(r),e.append(n);let i=t(`div`,`visions-fixes-list`);return e.append(i),A={count:r,list:i},e}function U(e){let n=t(`div`,`visions-fix-row`);n.dataset.applied=e.applied?`yes`:`no`;let r=t(`span`,`visions-fix-file`);r.textContent=_(e.uri)||e.uri,r.title=e.uri,n.append(r),n.append(t(`span`,`visions-fix-line`,l(e))),n.append(t(`span`,`visions-fix-outcome`,v(e))),n.append(t(`span`,`visions-fix-code`,e.code||``));let i=t(`span`,`visions-fix-message`);return i.textContent=e.message,n.append(i),n}function W({force:e=!1}={}){if(!A||!e&&n(E))return;let{count:r,list:i}=A,{fixEntries:a}=C();if(r.textContent=y(a.length),i.textContent=``,a.length===0)i.append(t(`p`,`visions-empty`,p));else for(let e of a)i.append(U(e))}var G=r(`visions-connection-status`);function K(){C().isConnected?G.clear():G.show(`error`,`${e} What you see below is from before the connection dropped.`)}var q={intent:N,feed:()=>R(),fixes:()=>W(),activity:()=>V(),connection:K};function J(){N(),R({force:!0}),W({force:!0}),V({force:!0})}function Y(e){if(E)return;let r=t(`div`,`visions-content`);r.append(G.element,j());let i=t(`div`,`visions-feed`);r.append(i),r.append(H()),r.append(z()),e.appendChild(r),E=r,D=i,o(()=>!n(E)),h(e=>{for(let t of e)q[t]()}),K(),J()}var X={mount:Y,refresh:J};export{X as view};