claude-doom-statusbar 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +116 -0
- package/assets/images/hud.png +0 -0
- package/assets/images/mugshot/STFST01-blockart-08.png +0 -0
- package/assets/images/mugshot/STFST01-orig-08.png +0 -0
- package/assets/images/mugshot/alpha/STFDEAD0.png +0 -0
- package/assets/images/mugshot/alpha/STFEVL0.png +0 -0
- package/assets/images/mugshot/alpha/STFEVL1.png +0 -0
- package/assets/images/mugshot/alpha/STFEVL2.png +0 -0
- package/assets/images/mugshot/alpha/STFEVL3.png +0 -0
- package/assets/images/mugshot/alpha/STFEVL4.png +0 -0
- package/assets/images/mugshot/alpha/STFGOD0.png +0 -0
- package/assets/images/mugshot/alpha/STFKILL0.png +0 -0
- package/assets/images/mugshot/alpha/STFKILL1.png +0 -0
- package/assets/images/mugshot/alpha/STFKILL2.png +0 -0
- package/assets/images/mugshot/alpha/STFKILL3.png +0 -0
- package/assets/images/mugshot/alpha/STFKILL4.png +0 -0
- package/assets/images/mugshot/alpha/STFOUCH0.png +0 -0
- package/assets/images/mugshot/alpha/STFOUCH1.png +0 -0
- package/assets/images/mugshot/alpha/STFOUCH2.png +0 -0
- package/assets/images/mugshot/alpha/STFOUCH3.png +0 -0
- package/assets/images/mugshot/alpha/STFOUCH4.png +0 -0
- package/assets/images/mugshot/alpha/STFST00.png +0 -0
- package/assets/images/mugshot/alpha/STFST01.png +0 -0
- package/assets/images/mugshot/alpha/STFST02.png +0 -0
- package/assets/images/mugshot/alpha/STFST10.png +0 -0
- package/assets/images/mugshot/alpha/STFST11.png +0 -0
- package/assets/images/mugshot/alpha/STFST12.png +0 -0
- package/assets/images/mugshot/alpha/STFST20.png +0 -0
- package/assets/images/mugshot/alpha/STFST21.png +0 -0
- package/assets/images/mugshot/alpha/STFST22.png +0 -0
- package/assets/images/mugshot/alpha/STFST30.png +0 -0
- package/assets/images/mugshot/alpha/STFST31.png +0 -0
- package/assets/images/mugshot/alpha/STFST32.png +0 -0
- package/assets/images/mugshot/alpha/STFST40.png +0 -0
- package/assets/images/mugshot/alpha/STFST41.png +0 -0
- package/assets/images/mugshot/alpha/STFST42.png +0 -0
- package/assets/images/mugshot/alpha/STFTL00.png +0 -0
- package/assets/images/mugshot/alpha/STFTL10.png +0 -0
- package/assets/images/mugshot/alpha/STFTL20.png +0 -0
- package/assets/images/mugshot/alpha/STFTL30.png +0 -0
- package/assets/images/mugshot/alpha/STFTL40.png +0 -0
- package/assets/images/mugshot/alpha/STFTR00.png +0 -0
- package/assets/images/mugshot/alpha/STFTR10.png +0 -0
- package/assets/images/mugshot/alpha/STFTR20.png +0 -0
- package/assets/images/mugshot/alpha/STFTR30.png +0 -0
- package/assets/images/mugshot/alpha/STFTR40.png +0 -0
- package/assets/images/mugshot/ans/10/STFDEAD0.ans +10 -0
- package/assets/images/mugshot/ans/10/STFEVL0.ans +10 -0
- package/assets/images/mugshot/ans/10/STFEVL1.ans +10 -0
- package/assets/images/mugshot/ans/10/STFEVL2.ans +10 -0
- package/assets/images/mugshot/ans/10/STFEVL3.ans +10 -0
- package/assets/images/mugshot/ans/10/STFEVL4.ans +10 -0
- package/assets/images/mugshot/ans/10/STFGOD0.ans +10 -0
- package/assets/images/mugshot/ans/10/STFKILL0.ans +10 -0
- package/assets/images/mugshot/ans/10/STFKILL1.ans +10 -0
- package/assets/images/mugshot/ans/10/STFKILL2.ans +10 -0
- package/assets/images/mugshot/ans/10/STFKILL3.ans +10 -0
- package/assets/images/mugshot/ans/10/STFKILL4.ans +10 -0
- package/assets/images/mugshot/ans/10/STFOUCH0.ans +10 -0
- package/assets/images/mugshot/ans/10/STFOUCH1.ans +10 -0
- package/assets/images/mugshot/ans/10/STFOUCH2.ans +10 -0
- package/assets/images/mugshot/ans/10/STFOUCH3.ans +10 -0
- package/assets/images/mugshot/ans/10/STFOUCH4.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST00.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST01.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST02.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST10.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST11.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST12.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST20.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST21.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST22.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST30.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST31.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST32.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST40.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST41.ans +10 -0
- package/assets/images/mugshot/ans/10/STFST42.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTL00.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTL10.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTL20.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTL30.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTL40.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTR00.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTR10.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTR20.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTR30.ans +10 -0
- package/assets/images/mugshot/ans/10/STFTR40.ans +10 -0
- package/assets/images/mugshot/ans/11/STFDEAD0.ans +11 -0
- package/assets/images/mugshot/ans/11/STFEVL0.ans +11 -0
- package/assets/images/mugshot/ans/11/STFEVL1.ans +11 -0
- package/assets/images/mugshot/ans/11/STFEVL2.ans +11 -0
- package/assets/images/mugshot/ans/11/STFEVL3.ans +11 -0
- package/assets/images/mugshot/ans/11/STFEVL4.ans +11 -0
- package/assets/images/mugshot/ans/11/STFGOD0.ans +11 -0
- package/assets/images/mugshot/ans/11/STFKILL0.ans +11 -0
- package/assets/images/mugshot/ans/11/STFKILL1.ans +11 -0
- package/assets/images/mugshot/ans/11/STFKILL2.ans +11 -0
- package/assets/images/mugshot/ans/11/STFKILL3.ans +11 -0
- package/assets/images/mugshot/ans/11/STFKILL4.ans +11 -0
- package/assets/images/mugshot/ans/11/STFOUCH0.ans +11 -0
- package/assets/images/mugshot/ans/11/STFOUCH1.ans +11 -0
- package/assets/images/mugshot/ans/11/STFOUCH2.ans +11 -0
- package/assets/images/mugshot/ans/11/STFOUCH3.ans +11 -0
- package/assets/images/mugshot/ans/11/STFOUCH4.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST00.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST01.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST02.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST10.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST11.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST12.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST20.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST21.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST22.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST30.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST31.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST32.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST40.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST41.ans +11 -0
- package/assets/images/mugshot/ans/11/STFST42.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTL00.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTL10.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTL20.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTL30.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTL40.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTR00.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTR10.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTR20.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTR30.ans +11 -0
- package/assets/images/mugshot/ans/11/STFTR40.ans +11 -0
- package/assets/images/mugshot/ans/12/STFDEAD0.ans +12 -0
- package/assets/images/mugshot/ans/12/STFEVL0.ans +12 -0
- package/assets/images/mugshot/ans/12/STFEVL1.ans +12 -0
- package/assets/images/mugshot/ans/12/STFEVL2.ans +12 -0
- package/assets/images/mugshot/ans/12/STFEVL3.ans +12 -0
- package/assets/images/mugshot/ans/12/STFEVL4.ans +12 -0
- package/assets/images/mugshot/ans/12/STFGOD0.ans +12 -0
- package/assets/images/mugshot/ans/12/STFKILL0.ans +12 -0
- package/assets/images/mugshot/ans/12/STFKILL1.ans +12 -0
- package/assets/images/mugshot/ans/12/STFKILL2.ans +12 -0
- package/assets/images/mugshot/ans/12/STFKILL3.ans +12 -0
- package/assets/images/mugshot/ans/12/STFKILL4.ans +12 -0
- package/assets/images/mugshot/ans/12/STFOUCH0.ans +12 -0
- package/assets/images/mugshot/ans/12/STFOUCH1.ans +12 -0
- package/assets/images/mugshot/ans/12/STFOUCH2.ans +12 -0
- package/assets/images/mugshot/ans/12/STFOUCH3.ans +12 -0
- package/assets/images/mugshot/ans/12/STFOUCH4.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST00.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST01.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST02.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST10.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST11.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST12.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST20.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST21.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST22.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST30.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST31.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST32.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST40.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST41.ans +12 -0
- package/assets/images/mugshot/ans/12/STFST42.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTL00.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTL10.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTL20.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTL30.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTL40.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTR00.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTR10.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTR20.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTR30.ans +12 -0
- package/assets/images/mugshot/ans/12/STFTR40.ans +12 -0
- package/assets/images/mugshot/ans/13/STFDEAD0.ans +13 -0
- package/assets/images/mugshot/ans/13/STFEVL0.ans +13 -0
- package/assets/images/mugshot/ans/13/STFEVL1.ans +13 -0
- package/assets/images/mugshot/ans/13/STFEVL2.ans +13 -0
- package/assets/images/mugshot/ans/13/STFEVL3.ans +13 -0
- package/assets/images/mugshot/ans/13/STFEVL4.ans +13 -0
- package/assets/images/mugshot/ans/13/STFGOD0.ans +13 -0
- package/assets/images/mugshot/ans/13/STFKILL0.ans +13 -0
- package/assets/images/mugshot/ans/13/STFKILL1.ans +13 -0
- package/assets/images/mugshot/ans/13/STFKILL2.ans +13 -0
- package/assets/images/mugshot/ans/13/STFKILL3.ans +13 -0
- package/assets/images/mugshot/ans/13/STFKILL4.ans +13 -0
- package/assets/images/mugshot/ans/13/STFOUCH0.ans +13 -0
- package/assets/images/mugshot/ans/13/STFOUCH1.ans +13 -0
- package/assets/images/mugshot/ans/13/STFOUCH2.ans +13 -0
- package/assets/images/mugshot/ans/13/STFOUCH3.ans +13 -0
- package/assets/images/mugshot/ans/13/STFOUCH4.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST00.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST01.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST02.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST10.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST11.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST12.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST20.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST21.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST22.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST30.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST31.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST32.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST40.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST41.ans +13 -0
- package/assets/images/mugshot/ans/13/STFST42.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTL00.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTL10.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTL20.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTL30.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTL40.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTR00.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTR10.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTR20.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTR30.ans +13 -0
- package/assets/images/mugshot/ans/13/STFTR40.ans +13 -0
- package/assets/images/mugshot/ans/14/STFDEAD0.ans +14 -0
- package/assets/images/mugshot/ans/14/STFEVL0.ans +14 -0
- package/assets/images/mugshot/ans/14/STFEVL1.ans +14 -0
- package/assets/images/mugshot/ans/14/STFEVL2.ans +14 -0
- package/assets/images/mugshot/ans/14/STFEVL3.ans +14 -0
- package/assets/images/mugshot/ans/14/STFEVL4.ans +14 -0
- package/assets/images/mugshot/ans/14/STFGOD0.ans +14 -0
- package/assets/images/mugshot/ans/14/STFKILL0.ans +14 -0
- package/assets/images/mugshot/ans/14/STFKILL1.ans +14 -0
- package/assets/images/mugshot/ans/14/STFKILL2.ans +14 -0
- package/assets/images/mugshot/ans/14/STFKILL3.ans +14 -0
- package/assets/images/mugshot/ans/14/STFKILL4.ans +14 -0
- package/assets/images/mugshot/ans/14/STFOUCH0.ans +14 -0
- package/assets/images/mugshot/ans/14/STFOUCH1.ans +14 -0
- package/assets/images/mugshot/ans/14/STFOUCH2.ans +14 -0
- package/assets/images/mugshot/ans/14/STFOUCH3.ans +14 -0
- package/assets/images/mugshot/ans/14/STFOUCH4.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST00.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST01.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST02.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST10.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST11.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST12.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST20.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST21.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST22.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST30.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST31.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST32.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST40.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST41.ans +14 -0
- package/assets/images/mugshot/ans/14/STFST42.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTL00.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTL10.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTL20.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTL30.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTL40.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTR00.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTR10.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTR20.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTR30.ans +14 -0
- package/assets/images/mugshot/ans/14/STFTR40.ans +14 -0
- package/assets/images/mugshot/ans/15/STFDEAD0.ans +15 -0
- package/assets/images/mugshot/ans/15/STFEVL0.ans +15 -0
- package/assets/images/mugshot/ans/15/STFEVL1.ans +15 -0
- package/assets/images/mugshot/ans/15/STFEVL2.ans +15 -0
- package/assets/images/mugshot/ans/15/STFEVL3.ans +15 -0
- package/assets/images/mugshot/ans/15/STFEVL4.ans +15 -0
- package/assets/images/mugshot/ans/15/STFGOD0.ans +15 -0
- package/assets/images/mugshot/ans/15/STFKILL0.ans +15 -0
- package/assets/images/mugshot/ans/15/STFKILL1.ans +15 -0
- package/assets/images/mugshot/ans/15/STFKILL2.ans +15 -0
- package/assets/images/mugshot/ans/15/STFKILL3.ans +15 -0
- package/assets/images/mugshot/ans/15/STFKILL4.ans +15 -0
- package/assets/images/mugshot/ans/15/STFOUCH0.ans +15 -0
- package/assets/images/mugshot/ans/15/STFOUCH1.ans +15 -0
- package/assets/images/mugshot/ans/15/STFOUCH2.ans +15 -0
- package/assets/images/mugshot/ans/15/STFOUCH3.ans +15 -0
- package/assets/images/mugshot/ans/15/STFOUCH4.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST00.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST01.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST02.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST10.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST11.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST12.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST20.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST21.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST22.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST30.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST31.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST32.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST40.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST41.ans +15 -0
- package/assets/images/mugshot/ans/15/STFST42.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTL00.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTL10.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTL20.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTL30.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTL40.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTR00.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTR10.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTR20.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTR30.ans +15 -0
- package/assets/images/mugshot/ans/15/STFTR40.ans +15 -0
- package/assets/images/mugshot/ans/16/STFDEAD0.ans +16 -0
- package/assets/images/mugshot/ans/16/STFEVL0.ans +15 -0
- package/assets/images/mugshot/ans/16/STFEVL1.ans +15 -0
- package/assets/images/mugshot/ans/16/STFEVL2.ans +15 -0
- package/assets/images/mugshot/ans/16/STFEVL3.ans +15 -0
- package/assets/images/mugshot/ans/16/STFEVL4.ans +15 -0
- package/assets/images/mugshot/ans/16/STFGOD0.ans +15 -0
- package/assets/images/mugshot/ans/16/STFKILL0.ans +15 -0
- package/assets/images/mugshot/ans/16/STFKILL1.ans +15 -0
- package/assets/images/mugshot/ans/16/STFKILL2.ans +15 -0
- package/assets/images/mugshot/ans/16/STFKILL3.ans +15 -0
- package/assets/images/mugshot/ans/16/STFKILL4.ans +15 -0
- package/assets/images/mugshot/ans/16/STFOUCH0.ans +16 -0
- package/assets/images/mugshot/ans/16/STFOUCH1.ans +16 -0
- package/assets/images/mugshot/ans/16/STFOUCH2.ans +16 -0
- package/assets/images/mugshot/ans/16/STFOUCH3.ans +16 -0
- package/assets/images/mugshot/ans/16/STFOUCH4.ans +16 -0
- package/assets/images/mugshot/ans/16/STFST00.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST01.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST02.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST10.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST11.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST12.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST20.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST21.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST22.ans +15 -0
- package/assets/images/mugshot/ans/16/STFST30.ans +16 -0
- package/assets/images/mugshot/ans/16/STFST31.ans +16 -0
- package/assets/images/mugshot/ans/16/STFST32.ans +16 -0
- package/assets/images/mugshot/ans/16/STFST40.ans +16 -0
- package/assets/images/mugshot/ans/16/STFST41.ans +16 -0
- package/assets/images/mugshot/ans/16/STFST42.ans +16 -0
- package/assets/images/mugshot/ans/16/STFTL00.ans +15 -0
- package/assets/images/mugshot/ans/16/STFTL10.ans +15 -0
- package/assets/images/mugshot/ans/16/STFTL20.ans +15 -0
- package/assets/images/mugshot/ans/16/STFTL30.ans +16 -0
- package/assets/images/mugshot/ans/16/STFTL40.ans +16 -0
- package/assets/images/mugshot/ans/16/STFTR00.ans +15 -0
- package/assets/images/mugshot/ans/16/STFTR10.ans +15 -0
- package/assets/images/mugshot/ans/16/STFTR20.ans +15 -0
- package/assets/images/mugshot/ans/16/STFTR30.ans +15 -0
- package/assets/images/mugshot/ans/16/STFTR40.ans +15 -0
- package/assets/images/mugshot/ans/4/STFDEAD0.ans +4 -0
- package/assets/images/mugshot/ans/4/STFEVL0.ans +4 -0
- package/assets/images/mugshot/ans/4/STFEVL1.ans +4 -0
- package/assets/images/mugshot/ans/4/STFEVL2.ans +4 -0
- package/assets/images/mugshot/ans/4/STFEVL3.ans +4 -0
- package/assets/images/mugshot/ans/4/STFEVL4.ans +4 -0
- package/assets/images/mugshot/ans/4/STFGOD0.ans +4 -0
- package/assets/images/mugshot/ans/4/STFKILL0.ans +4 -0
- package/assets/images/mugshot/ans/4/STFKILL1.ans +4 -0
- package/assets/images/mugshot/ans/4/STFKILL2.ans +4 -0
- package/assets/images/mugshot/ans/4/STFKILL3.ans +4 -0
- package/assets/images/mugshot/ans/4/STFKILL4.ans +4 -0
- package/assets/images/mugshot/ans/4/STFOUCH0.ans +4 -0
- package/assets/images/mugshot/ans/4/STFOUCH1.ans +4 -0
- package/assets/images/mugshot/ans/4/STFOUCH2.ans +4 -0
- package/assets/images/mugshot/ans/4/STFOUCH3.ans +4 -0
- package/assets/images/mugshot/ans/4/STFOUCH4.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST00.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST01.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST02.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST10.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST11.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST12.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST20.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST21.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST22.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST30.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST31.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST32.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST40.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST41.ans +4 -0
- package/assets/images/mugshot/ans/4/STFST42.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTL00.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTL10.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTL20.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTL30.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTL40.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTR00.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTR10.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTR20.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTR30.ans +4 -0
- package/assets/images/mugshot/ans/4/STFTR40.ans +4 -0
- package/assets/images/mugshot/ans/5/STFDEAD0.ans +5 -0
- package/assets/images/mugshot/ans/5/STFEVL0.ans +5 -0
- package/assets/images/mugshot/ans/5/STFEVL1.ans +5 -0
- package/assets/images/mugshot/ans/5/STFEVL2.ans +5 -0
- package/assets/images/mugshot/ans/5/STFEVL3.ans +5 -0
- package/assets/images/mugshot/ans/5/STFEVL4.ans +5 -0
- package/assets/images/mugshot/ans/5/STFGOD0.ans +5 -0
- package/assets/images/mugshot/ans/5/STFKILL0.ans +5 -0
- package/assets/images/mugshot/ans/5/STFKILL1.ans +5 -0
- package/assets/images/mugshot/ans/5/STFKILL2.ans +5 -0
- package/assets/images/mugshot/ans/5/STFKILL3.ans +5 -0
- package/assets/images/mugshot/ans/5/STFKILL4.ans +5 -0
- package/assets/images/mugshot/ans/5/STFOUCH0.ans +5 -0
- package/assets/images/mugshot/ans/5/STFOUCH1.ans +5 -0
- package/assets/images/mugshot/ans/5/STFOUCH2.ans +5 -0
- package/assets/images/mugshot/ans/5/STFOUCH3.ans +5 -0
- package/assets/images/mugshot/ans/5/STFOUCH4.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST00.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST01.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST02.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST10.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST11.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST12.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST20.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST21.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST22.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST30.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST31.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST32.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST40.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST41.ans +5 -0
- package/assets/images/mugshot/ans/5/STFST42.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTL00.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTL10.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTL20.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTL30.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTL40.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTR00.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTR10.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTR20.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTR30.ans +5 -0
- package/assets/images/mugshot/ans/5/STFTR40.ans +5 -0
- package/assets/images/mugshot/ans/6/STFDEAD0.ans +6 -0
- package/assets/images/mugshot/ans/6/STFEVL0.ans +6 -0
- package/assets/images/mugshot/ans/6/STFEVL1.ans +6 -0
- package/assets/images/mugshot/ans/6/STFEVL2.ans +6 -0
- package/assets/images/mugshot/ans/6/STFEVL3.ans +6 -0
- package/assets/images/mugshot/ans/6/STFEVL4.ans +6 -0
- package/assets/images/mugshot/ans/6/STFGOD0.ans +6 -0
- package/assets/images/mugshot/ans/6/STFKILL0.ans +6 -0
- package/assets/images/mugshot/ans/6/STFKILL1.ans +6 -0
- package/assets/images/mugshot/ans/6/STFKILL2.ans +6 -0
- package/assets/images/mugshot/ans/6/STFKILL3.ans +6 -0
- package/assets/images/mugshot/ans/6/STFKILL4.ans +6 -0
- package/assets/images/mugshot/ans/6/STFOUCH0.ans +6 -0
- package/assets/images/mugshot/ans/6/STFOUCH1.ans +6 -0
- package/assets/images/mugshot/ans/6/STFOUCH2.ans +6 -0
- package/assets/images/mugshot/ans/6/STFOUCH3.ans +6 -0
- package/assets/images/mugshot/ans/6/STFOUCH4.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST00.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST01.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST02.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST10.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST11.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST12.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST20.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST21.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST22.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST30.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST31.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST32.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST40.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST41.ans +6 -0
- package/assets/images/mugshot/ans/6/STFST42.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTL00.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTL10.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTL20.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTL30.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTL40.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTR00.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTR10.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTR20.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTR30.ans +6 -0
- package/assets/images/mugshot/ans/6/STFTR40.ans +6 -0
- package/assets/images/mugshot/ans/7/STFDEAD0.ans +7 -0
- package/assets/images/mugshot/ans/7/STFEVL0.ans +7 -0
- package/assets/images/mugshot/ans/7/STFEVL1.ans +7 -0
- package/assets/images/mugshot/ans/7/STFEVL2.ans +7 -0
- package/assets/images/mugshot/ans/7/STFEVL3.ans +7 -0
- package/assets/images/mugshot/ans/7/STFEVL4.ans +7 -0
- package/assets/images/mugshot/ans/7/STFGOD0.ans +7 -0
- package/assets/images/mugshot/ans/7/STFKILL0.ans +7 -0
- package/assets/images/mugshot/ans/7/STFKILL1.ans +7 -0
- package/assets/images/mugshot/ans/7/STFKILL2.ans +7 -0
- package/assets/images/mugshot/ans/7/STFKILL3.ans +7 -0
- package/assets/images/mugshot/ans/7/STFKILL4.ans +7 -0
- package/assets/images/mugshot/ans/7/STFOUCH0.ans +7 -0
- package/assets/images/mugshot/ans/7/STFOUCH1.ans +7 -0
- package/assets/images/mugshot/ans/7/STFOUCH2.ans +7 -0
- package/assets/images/mugshot/ans/7/STFOUCH3.ans +7 -0
- package/assets/images/mugshot/ans/7/STFOUCH4.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST00.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST01.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST02.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST10.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST11.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST12.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST20.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST21.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST22.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST30.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST31.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST32.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST40.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST41.ans +7 -0
- package/assets/images/mugshot/ans/7/STFST42.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTL00.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTL10.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTL20.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTL30.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTL40.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTR00.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTR10.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTR20.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTR30.ans +7 -0
- package/assets/images/mugshot/ans/7/STFTR40.ans +7 -0
- package/assets/images/mugshot/ans/8/STFDEAD0.ans +8 -0
- package/assets/images/mugshot/ans/8/STFEVL0.ans +8 -0
- package/assets/images/mugshot/ans/8/STFEVL1.ans +8 -0
- package/assets/images/mugshot/ans/8/STFEVL2.ans +8 -0
- package/assets/images/mugshot/ans/8/STFEVL3.ans +8 -0
- package/assets/images/mugshot/ans/8/STFEVL4.ans +8 -0
- package/assets/images/mugshot/ans/8/STFGOD0.ans +8 -0
- package/assets/images/mugshot/ans/8/STFKILL0.ans +8 -0
- package/assets/images/mugshot/ans/8/STFKILL1.ans +8 -0
- package/assets/images/mugshot/ans/8/STFKILL2.ans +8 -0
- package/assets/images/mugshot/ans/8/STFKILL3.ans +8 -0
- package/assets/images/mugshot/ans/8/STFKILL4.ans +8 -0
- package/assets/images/mugshot/ans/8/STFOUCH0.ans +8 -0
- package/assets/images/mugshot/ans/8/STFOUCH1.ans +8 -0
- package/assets/images/mugshot/ans/8/STFOUCH2.ans +8 -0
- package/assets/images/mugshot/ans/8/STFOUCH3.ans +8 -0
- package/assets/images/mugshot/ans/8/STFOUCH4.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST00.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST01.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST02.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST10.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST11.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST12.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST20.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST21.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST22.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST30.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST31.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST32.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST40.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST41.ans +8 -0
- package/assets/images/mugshot/ans/8/STFST42.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTL00.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTL10.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTL20.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTL30.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTL40.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTR00.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTR10.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTR20.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTR30.ans +8 -0
- package/assets/images/mugshot/ans/8/STFTR40.ans +8 -0
- package/assets/images/mugshot/ans/9/STFDEAD0.ans +9 -0
- package/assets/images/mugshot/ans/9/STFEVL0.ans +9 -0
- package/assets/images/mugshot/ans/9/STFEVL1.ans +9 -0
- package/assets/images/mugshot/ans/9/STFEVL2.ans +9 -0
- package/assets/images/mugshot/ans/9/STFEVL3.ans +9 -0
- package/assets/images/mugshot/ans/9/STFEVL4.ans +9 -0
- package/assets/images/mugshot/ans/9/STFGOD0.ans +9 -0
- package/assets/images/mugshot/ans/9/STFKILL0.ans +9 -0
- package/assets/images/mugshot/ans/9/STFKILL1.ans +9 -0
- package/assets/images/mugshot/ans/9/STFKILL2.ans +9 -0
- package/assets/images/mugshot/ans/9/STFKILL3.ans +9 -0
- package/assets/images/mugshot/ans/9/STFKILL4.ans +9 -0
- package/assets/images/mugshot/ans/9/STFOUCH0.ans +9 -0
- package/assets/images/mugshot/ans/9/STFOUCH1.ans +9 -0
- package/assets/images/mugshot/ans/9/STFOUCH2.ans +9 -0
- package/assets/images/mugshot/ans/9/STFOUCH3.ans +9 -0
- package/assets/images/mugshot/ans/9/STFOUCH4.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST00.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST01.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST02.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST10.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST11.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST12.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST20.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST21.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST22.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST30.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST31.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST32.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST40.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST41.ans +9 -0
- package/assets/images/mugshot/ans/9/STFST42.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTL00.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTL10.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTL20.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTL30.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTL40.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTR00.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTR10.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTR20.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTR30.ans +9 -0
- package/assets/images/mugshot/ans/9/STFTR40.ans +9 -0
- package/assets/images/mugshot/wad/STFDEAD0.png +0 -0
- package/assets/images/mugshot/wad/STFEVL0.png +0 -0
- package/assets/images/mugshot/wad/STFEVL1.png +0 -0
- package/assets/images/mugshot/wad/STFEVL2.png +0 -0
- package/assets/images/mugshot/wad/STFEVL3.png +0 -0
- package/assets/images/mugshot/wad/STFEVL4.png +0 -0
- package/assets/images/mugshot/wad/STFGOD0.png +0 -0
- package/assets/images/mugshot/wad/STFKILL0.png +0 -0
- package/assets/images/mugshot/wad/STFKILL1.png +0 -0
- package/assets/images/mugshot/wad/STFKILL2.png +0 -0
- package/assets/images/mugshot/wad/STFKILL3.png +0 -0
- package/assets/images/mugshot/wad/STFKILL4.png +0 -0
- package/assets/images/mugshot/wad/STFOUCH0.png +0 -0
- package/assets/images/mugshot/wad/STFOUCH1.png +0 -0
- package/assets/images/mugshot/wad/STFOUCH2.png +0 -0
- package/assets/images/mugshot/wad/STFOUCH3.png +0 -0
- package/assets/images/mugshot/wad/STFOUCH4.png +0 -0
- package/assets/images/mugshot/wad/STFST00.png +0 -0
- package/assets/images/mugshot/wad/STFST01.png +0 -0
- package/assets/images/mugshot/wad/STFST02.png +0 -0
- package/assets/images/mugshot/wad/STFST10.png +0 -0
- package/assets/images/mugshot/wad/STFST11.png +0 -0
- package/assets/images/mugshot/wad/STFST12.png +0 -0
- package/assets/images/mugshot/wad/STFST20.png +0 -0
- package/assets/images/mugshot/wad/STFST21.png +0 -0
- package/assets/images/mugshot/wad/STFST22.png +0 -0
- package/assets/images/mugshot/wad/STFST30.png +0 -0
- package/assets/images/mugshot/wad/STFST31.png +0 -0
- package/assets/images/mugshot/wad/STFST32.png +0 -0
- package/assets/images/mugshot/wad/STFST40.png +0 -0
- package/assets/images/mugshot/wad/STFST41.png +0 -0
- package/assets/images/mugshot/wad/STFST42.png +0 -0
- package/assets/images/mugshot/wad/STFTL00.png +0 -0
- package/assets/images/mugshot/wad/STFTL10.png +0 -0
- package/assets/images/mugshot/wad/STFTL20.png +0 -0
- package/assets/images/mugshot/wad/STFTL30.png +0 -0
- package/assets/images/mugshot/wad/STFTL40.png +0 -0
- package/assets/images/mugshot/wad/STFTR00.png +0 -0
- package/assets/images/mugshot/wad/STFTR10.png +0 -0
- package/assets/images/mugshot/wad/STFTR20.png +0 -0
- package/assets/images/mugshot/wad/STFTR30.png +0 -0
- package/assets/images/mugshot/wad/STFTR40.png +0 -0
- package/bin/cli.js +163 -0
- package/package.json +39 -0
- package/presets/default.toml +30 -0
- package/presets/full.toml +80 -0
- package/presets/minimal.toml +19 -0
- package/src/ansi.js +20 -0
- package/src/face.js +126 -0
- package/src/hook.js +136 -0
- package/src/render.js +463 -0
- package/src/statusline.js +318 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Claude Code statusLine — the live DOOM HUD wired to real session data.
|
|
3
|
+
// Port of statusline.py. Reads the statusline JSON on stdin, fills metric values
|
|
4
|
+
// (+ git via shell, system metrics, the hook state file, the advisor transcript),
|
|
5
|
+
// picks the mugshot, and renders a preset.
|
|
6
|
+
//
|
|
7
|
+
// settings.json:
|
|
8
|
+
// "statusLine": { "type": "command",
|
|
9
|
+
// "command": "node /abs/path/src/statusline.js", "refreshInterval": 1 }
|
|
10
|
+
// Config: $DOOMBAR_PRESET (default presets/default.toml) State: $MUGSHOT_STATE
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
readFileSync, writeFileSync, openSync, fstatSync, readSync, closeSync, statfsSync,
|
|
14
|
+
} from "node:fs";
|
|
15
|
+
import os from "node:os";
|
|
16
|
+
import path from "node:path";
|
|
17
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
18
|
+
import { spawnSync } from "node:child_process";
|
|
19
|
+
import { parse as parseToml } from "smol-toml";
|
|
20
|
+
import { pyround, sgrFg } from "./ansi.js";
|
|
21
|
+
import { buildBar, setValues, OK, TEXT, CRIT } from "./render.js";
|
|
22
|
+
|
|
23
|
+
const HERE = path.dirname(fileURLToPath(import.meta.url));
|
|
24
|
+
const REPO = path.dirname(HERE);
|
|
25
|
+
const TMP = os.tmpdir();
|
|
26
|
+
|
|
27
|
+
const DECAY = 1.5; // seconds a reaction holds before relaxing to idle
|
|
28
|
+
const IDLE_CYCLE = 2; // seconds per idle glance
|
|
29
|
+
const GOD_FLASH = 3.0; // seconds the mugshot stays god after an advisor consult lands
|
|
30
|
+
const GEIGER_WINDOW = 30.0; // must match the hook's window
|
|
31
|
+
const GEIGER_BINS = 14;
|
|
32
|
+
|
|
33
|
+
const has = (o, k) => Object.prototype.hasOwnProperty.call(o || {}, k);
|
|
34
|
+
|
|
35
|
+
function git(cwd, ...args) {
|
|
36
|
+
try {
|
|
37
|
+
const r = spawnSync("git", ["-C", cwd, ...args], { encoding: "utf8", timeout: 1000 });
|
|
38
|
+
return r.status === 0 ? r.stdout.trim() : null;
|
|
39
|
+
} catch {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function _dur(secsF) {
|
|
45
|
+
let secs = Math.max(0, Math.trunc(secsF));
|
|
46
|
+
const d = Math.floor(secs / 86400); secs %= 86400;
|
|
47
|
+
const h = Math.floor(secs / 3600); secs %= 3600;
|
|
48
|
+
const m = Math.floor(secs / 60);
|
|
49
|
+
const s = secs % 60;
|
|
50
|
+
if (d) return `${d}d${h}h`;
|
|
51
|
+
if (h) return `${h}h${String(m).padStart(2, "0")}m`;
|
|
52
|
+
if (m) return `${m}m`;
|
|
53
|
+
return `${s}s`;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function _link(text, url) {
|
|
57
|
+
return url ? `\x1b]8;;${url}\x1b\\${text}\x1b]8;;\x1b\\` : text;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function _prettyModel(mid) {
|
|
61
|
+
mid = mid.replace(/\[.*?\]$/, "").replace("claude-", "");
|
|
62
|
+
const parts = mid.split("-");
|
|
63
|
+
return parts.length ? `${parts[0][0].toUpperCase()}${parts[0].slice(1)} ${parts.slice(1).join(".")}`.trim() : mid;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function advisorInfo(p) {
|
|
67
|
+
let chunk;
|
|
68
|
+
try {
|
|
69
|
+
const fd = openSync(p, "r");
|
|
70
|
+
const size = fstatSync(fd).size;
|
|
71
|
+
const start = Math.max(0, size - 65536);
|
|
72
|
+
const buf = Buffer.alloc(size - start);
|
|
73
|
+
readSync(fd, buf, 0, buf.length, start);
|
|
74
|
+
closeSync(fd);
|
|
75
|
+
chunk = buf.toString("utf8");
|
|
76
|
+
} catch {
|
|
77
|
+
return [null, null];
|
|
78
|
+
}
|
|
79
|
+
let model = null, resTs = null;
|
|
80
|
+
for (const ln of chunk.split("\n")) {
|
|
81
|
+
if (!ln.includes("advisorModel") && !ln.includes("advisor_tool_result")) continue;
|
|
82
|
+
let o;
|
|
83
|
+
try { o = JSON.parse(ln); } catch { continue; }
|
|
84
|
+
if (o.advisorModel) model = o.advisorModel; // last wins
|
|
85
|
+
const c = (o.message || {}).content;
|
|
86
|
+
if (Array.isArray(c) && c.some((b) => b.type === "advisor_tool_result")) resTs = o.timestamp || resTs;
|
|
87
|
+
}
|
|
88
|
+
return [model ? _prettyModel(model) : null, resTs];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function godFlash(data, advTs, now) {
|
|
92
|
+
const sid = String(data.session_id || "default").replace(/[^A-Za-z0-9_-]/g, "_").slice(0, 48);
|
|
93
|
+
const cache = path.join(TMP, `mugshot_adv_${sid}.json`);
|
|
94
|
+
let c = {};
|
|
95
|
+
try { c = JSON.parse(readFileSync(cache, "utf8")); } catch { c = {}; }
|
|
96
|
+
if (advTs && advTs !== c.seen) {
|
|
97
|
+
if ("seen" in c) c.god_until = now + GOD_FLASH; // not the first scan -> a fresh consult
|
|
98
|
+
c.seen = advTs;
|
|
99
|
+
try { writeFileSync(cache, JSON.stringify(c)); } catch { /* ignore */ }
|
|
100
|
+
}
|
|
101
|
+
return c.god_until || 0;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const f = sgrFg;
|
|
105
|
+
|
|
106
|
+
export function buildValues(data) {
|
|
107
|
+
const v = {};
|
|
108
|
+
const cw = data.context_window || {};
|
|
109
|
+
if ("used_percentage" in cw) v["context.hp"] = pyround(cw.used_percentage);
|
|
110
|
+
const rl = data.rate_limits || {};
|
|
111
|
+
if (rl.five_hour) v["ratelimit.5h"] = pyround(rl.five_hour.used_percentage);
|
|
112
|
+
if (rl.seven_day) v["ratelimit.7d"] = pyround(rl.seven_day.used_percentage);
|
|
113
|
+
if (rl.five_hour && rl.five_hour.resets_at) v["usage.reset5h"] = _dur(rl.five_hour.resets_at - Date.now() / 1000);
|
|
114
|
+
if (rl.seven_day && rl.seven_day.resets_at) v["usage.reset7d"] = _dur(rl.seven_day.resets_at - Date.now() / 1000);
|
|
115
|
+
const cost = data.cost || {};
|
|
116
|
+
if ("total_cost_usd" in cost) v["cost.total"] = "$" + cost.total_cost_usd.toFixed(2);
|
|
117
|
+
if ("total_duration_ms" in cost) v["sys.session"] = _dur(cost.total_duration_ms / 1000);
|
|
118
|
+
if ("total_lines_added" in cost || "total_lines_removed" in cost) {
|
|
119
|
+
const a = cost.total_lines_added || 0, r = cost.total_lines_removed || 0;
|
|
120
|
+
v["loc.churn"] = `${f(OK)}+${a}${f(TEXT)} / ${f(CRIT)}-${r}`;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const m = data.model || {};
|
|
124
|
+
if (m.display_name) v["model.name"] = m.display_name.split(" (")[0];
|
|
125
|
+
const eff = (data.effort || {}).level;
|
|
126
|
+
if (eff) {
|
|
127
|
+
const icon = { low: "🌒", medium: "🌓", high: "🌔", xhigh: "🌕", max: "🌞" };
|
|
128
|
+
v["model.effort"] = icon[eff] || "🌓";
|
|
129
|
+
}
|
|
130
|
+
const cwm = (data.context_window || {}).context_window_size;
|
|
131
|
+
if (cwm) v["model.window"] = cwm >= 1000000 ? `${Math.floor(cwm / 1000000)}M` : `${Math.floor(cwm / 1000)}K`;
|
|
132
|
+
const th = data.thinking || {};
|
|
133
|
+
const mode = [];
|
|
134
|
+
if ("enabled" in th) mode.push(`💭 ${th.enabled ? "on" : "off"}`);
|
|
135
|
+
if ("fast_mode" in data) mode.push(`🚀 ${data.fast_mode ? "on" : "off"}`);
|
|
136
|
+
if (mode.length) v["model.mode"] = mode.join(" ");
|
|
137
|
+
const style = (data.output_style || {}).name;
|
|
138
|
+
if (style) v["model.style"] = style;
|
|
139
|
+
|
|
140
|
+
const repo = (data.workspace || {}).repo || {};
|
|
141
|
+
let repoUrl = "";
|
|
142
|
+
if (repo.host && repo.owner && repo.name) repoUrl = `https://${repo.host}/${repo.owner}/${repo.name}`;
|
|
143
|
+
|
|
144
|
+
const cwd = data.cwd || (data.workspace || {}).current_dir;
|
|
145
|
+
if (cwd) {
|
|
146
|
+
const name = path.basename(cwd.replace(/[/\\]+$/, "")) || cwd;
|
|
147
|
+
try { v["loc.cwd"] = _link(name, pathToFileURL(cwd).href); } catch { v["loc.cwd"] = name; }
|
|
148
|
+
const br = git(cwd, "branch", "--show-current");
|
|
149
|
+
if (br) v["git.branch"] = repoUrl ? _link(br, `${repoUrl}/tree/${br}`) : br;
|
|
150
|
+
const lr = git(cwd, "rev-list", "--count", "--left-right", "@{u}...HEAD");
|
|
151
|
+
if (lr && lr.includes("\t")) {
|
|
152
|
+
const [behind, ahead] = lr.split("\t");
|
|
153
|
+
v["git.behind"] = `↓${behind}`; v["git.ahead"] = `↑${ahead}`;
|
|
154
|
+
}
|
|
155
|
+
const st = git(cwd, "status", "--porcelain");
|
|
156
|
+
if (st !== null) v["git.status"] = String(st.split("\n").filter((l) => l.trim()).length);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const pr = data.pr || {};
|
|
160
|
+
if (pr.number || pr.url) {
|
|
161
|
+
const label = pr.number ? `#${pr.number}` : pr.review_state || "PR";
|
|
162
|
+
v["pr.state"] = _link(label, pr.url);
|
|
163
|
+
}
|
|
164
|
+
return v;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function _pick(bucket) {
|
|
168
|
+
let x = Math.imul(bucket, 0x9e3779b1) >>> 0;
|
|
169
|
+
x = (x ^ (x >>> 15)) >>> 0;
|
|
170
|
+
x = Math.imul(x, 0x85ebca77) >>> 0;
|
|
171
|
+
x = (x ^ (x >>> 13)) >>> 0;
|
|
172
|
+
return x % 3;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function statePath(data) {
|
|
176
|
+
if (process.env.MUGSHOT_STATE) return process.env.MUGSHOT_STATE;
|
|
177
|
+
const sid = String(data.session_id || "default").replace(/[^A-Za-z0-9_-]/g, "_").slice(0, 48);
|
|
178
|
+
return path.join(TMP, `mugshot_${sid}.json`);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
function readState(data) {
|
|
182
|
+
try { return JSON.parse(readFileSync(statePath(data), "utf8")); } catch { return {}; }
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
function ramPercent() {
|
|
186
|
+
try { return pyround((1 - os.freemem() / os.totalmem()) * 100); } catch { return null; }
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
function cpuPercent() {
|
|
190
|
+
let total = 0, idle = 0;
|
|
191
|
+
try {
|
|
192
|
+
for (const c of os.cpus()) { for (const k in c.times) total += c.times[k]; idle += c.times.idle; }
|
|
193
|
+
} catch { return null; }
|
|
194
|
+
const cache = path.join(TMP, "mugshot_cpu.json");
|
|
195
|
+
let prev = null;
|
|
196
|
+
try { prev = JSON.parse(readFileSync(cache, "utf8")); } catch { /* none */ }
|
|
197
|
+
try { writeFileSync(cache, JSON.stringify({ total, idle })); } catch { /* ignore */ }
|
|
198
|
+
if (!prev) return null;
|
|
199
|
+
const dt = total - prev.total, di = idle - prev.idle;
|
|
200
|
+
return dt > 0 ? pyround(Math.max(0, Math.min(100, 100 * (1 - di / dt)))) : null;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function sysValues(cwd) {
|
|
204
|
+
const v = {};
|
|
205
|
+
const ram = ramPercent();
|
|
206
|
+
if (ram !== null) v["sys.ram"] = ram;
|
|
207
|
+
const cpu = cpuPercent();
|
|
208
|
+
if (cpu !== null) v["sys.cpu"] = `${cpu}%`;
|
|
209
|
+
try {
|
|
210
|
+
const stat = statfsSync(cwd || process.cwd());
|
|
211
|
+
v["sys.disk"] = pyround(((stat.blocks - stat.bfree) / stat.blocks) * 100);
|
|
212
|
+
} catch { /* ignore */ }
|
|
213
|
+
const d = new Date();
|
|
214
|
+
v["sys.clock"] = `${String(d.getHours()).padStart(2, "0")}:${String(d.getMinutes()).padStart(2, "0")}`;
|
|
215
|
+
return v;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
const PERM = { plan: "📋 plan", auto: "⏩ auto", acceptEdits: "⏩ auto", bypassPermissions: "⏩ bypass" };
|
|
219
|
+
const OK_RGB = [96, 200, 104]; // matches render.js OK (done, green)
|
|
220
|
+
const CRIT_RGB = [224, 84, 64]; // matches render.js CRIT (deleted, red)
|
|
221
|
+
const TASK_MARK = { completed: ["✓", OK_RGB], deleted: ["✗", CRIT_RGB], in_progress: ["▶", null], pending: ["🎯", null] };
|
|
222
|
+
const TASK_ORDER = { completed: 0, deleted: 1, in_progress: 2, pending: 3 }; // settled first, then open
|
|
223
|
+
|
|
224
|
+
export function activityValues(st, now) {
|
|
225
|
+
const v = {};
|
|
226
|
+
if (PERM[st.mode]) v["model.permission"] = PERM[st.mode];
|
|
227
|
+
if ("spans" in st) {
|
|
228
|
+
const binw = GEIGER_WINDOW / GEIGER_BINS;
|
|
229
|
+
const start0 = now - GEIGER_WINDOW;
|
|
230
|
+
const series = new Array(GEIGER_BINS).fill(0);
|
|
231
|
+
for (const [s0, e0] of st.spans) {
|
|
232
|
+
let e = e0 === null ? now : e0;
|
|
233
|
+
const s = Math.max(s0, start0);
|
|
234
|
+
e = Math.min(e, now);
|
|
235
|
+
if (e <= s) continue;
|
|
236
|
+
const i0 = Math.max(0, Math.floor((s - start0) / binw));
|
|
237
|
+
const i1 = Math.min(GEIGER_BINS - 1, Math.floor((e - start0) / binw - 1e-9));
|
|
238
|
+
for (let i = i0; i <= i1; i++) {
|
|
239
|
+
const bs = start0 + i * binw;
|
|
240
|
+
series[i] += Math.min(e, bs + binw) - Math.max(s, bs);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
v["act.geiger"] = series.map((c) => Math.min(1.0, c / binw));
|
|
244
|
+
}
|
|
245
|
+
// AGENTS + TASKS boxes (and their ACTIVITY counts) are always shown, even empty.
|
|
246
|
+
const squad = st.squad || {};
|
|
247
|
+
v["act.agents"] = String(Object.keys(squad).length);
|
|
248
|
+
const agents = Object.values(squad).sort((a, b) => a.start - b.start);
|
|
249
|
+
v["act.subagents"] = agents.map((a) => {
|
|
250
|
+
let label = a.desc || a.type || "agent";
|
|
251
|
+
if ([...label].length > 20) label = [...label].slice(0, 19).join("") + "…";
|
|
252
|
+
return [label, _dur(now - a.start)];
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
const tasks = st.tasks && typeof st.tasks === "object" ? Object.values(st.tasks) : [];
|
|
256
|
+
const live = tasks.filter((t) => t.status !== "deleted");
|
|
257
|
+
const done = live.filter((t) => t.status === "completed").length;
|
|
258
|
+
v["act.tasks"] = `${done}/${live.length}`;
|
|
259
|
+
const ordered = tasks
|
|
260
|
+
.map((t) => ({ ...t }))
|
|
261
|
+
.sort((a, b) => (TASK_ORDER[a.status] - TASK_ORDER[b.status]) || (a.ts - b.ts));
|
|
262
|
+
v["act.tasklist"] = ordered.map((t) => {
|
|
263
|
+
const [mark, markRgb] = TASK_MARK[t.status] || ["🎯", null];
|
|
264
|
+
return { mark, markRgb, text: t.title };
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
if ("errors" in st) v["act.errors"] = String(st.errors);
|
|
268
|
+
return v;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function main() {
|
|
272
|
+
let data = {};
|
|
273
|
+
try { data = JSON.parse(readFileSync(0, "utf8")); } catch { data = {}; }
|
|
274
|
+
|
|
275
|
+
const preset = process.env.DOOMBAR_PRESET || path.join(REPO, "presets", "default.toml");
|
|
276
|
+
const cfg = parseToml(readFileSync(preset, "utf8"));
|
|
277
|
+
|
|
278
|
+
const now = Date.now() / 1000;
|
|
279
|
+
const st = readState(data);
|
|
280
|
+
const cwd = data.cwd || (data.workspace || {}).current_dir;
|
|
281
|
+
const values = { ...buildValues(data), ...activityValues(st, now), ...sysValues(cwd) };
|
|
282
|
+
const [advModel, advTs] = advisorInfo(data.transcript_path || "");
|
|
283
|
+
if (advModel) values["advisor.model"] = advModel;
|
|
284
|
+
const god_until = godFlash(data, advTs, now);
|
|
285
|
+
setValues(values);
|
|
286
|
+
|
|
287
|
+
let exhausted;
|
|
288
|
+
if ("ratelimit.5h" in values || "ratelimit.7d" in values) {
|
|
289
|
+
const rem = Math.min(
|
|
290
|
+
100 - (values["ratelimit.5h"] || 0),
|
|
291
|
+
"ratelimit.7d" in values ? 100 - values["ratelimit.7d"] : 100,
|
|
292
|
+
);
|
|
293
|
+
exhausted = rem <= 0;
|
|
294
|
+
} else {
|
|
295
|
+
exhausted = (values["context.hp"] || 0) >= 99;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
const spriteFor = (hp) => {
|
|
299
|
+
if (exhausted) return "STFDEAD0";
|
|
300
|
+
if (now < god_until) return "STFGOD0";
|
|
301
|
+
if (st.expr && now - (st.ts || 0) < DECAY) {
|
|
302
|
+
const map = {
|
|
303
|
+
ouch: `STFOUCH${hp}`, kill: `STFKILL${hp}`, evl: `STFEVL${hp}`,
|
|
304
|
+
tl: `STFTL${hp}0`, tr: `STFTR${hp}0`,
|
|
305
|
+
};
|
|
306
|
+
return map[st.expr] || `STFST${hp}1`;
|
|
307
|
+
}
|
|
308
|
+
return `STFST${hp}${_pick(Math.floor(now / IDLE_CYCLE))}`;
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
const target = parseInt(process.env.COLUMNS || "100", 10);
|
|
312
|
+
const res = buildBar(cfg, target, spriteFor);
|
|
313
|
+
process.stdout.write(res.lines.join("\n") + "\n");
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
if (process.argv[1] && fileURLToPath(import.meta.url) === path.resolve(process.argv[1])) {
|
|
317
|
+
main();
|
|
318
|
+
}
|