@dylanpiercey/work 0.0.78 → 0.0.79

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 (251) hide show
  1. package/README.md +5 -0
  2. package/dist/{_BXcFivfU.js → _DYjQjuVZ.js} +87 -4
  3. package/dist/{_DmInpMdK.js → _D_A7Htaq.js} +628 -461
  4. package/dist/_DjE4lBg7.js +2 -0
  5. package/dist/{_CIRawosE.js → _vIpKl--3.js} +86 -68
  6. package/dist/index.mjs +1609 -1354
  7. package/dist/public/assets/{_QmV76A7t.js → _5nMs3hE8.js} +1 -1
  8. package/dist/public/assets/_5nMs3hE8.js.br +0 -0
  9. package/dist/public/assets/{_CP08H0Hc2.js → _B0PcvEn-2.js} +1 -1
  10. package/dist/public/assets/_B0PcvEn-2.js.br +0 -0
  11. package/dist/public/assets/{_Ch2r3zkq.js → _B0qmVjen.js} +1 -1
  12. package/dist/public/assets/_B0qmVjen.js.br +0 -0
  13. package/dist/public/assets/{_fKphobCQ2.js → _B6N7XS-E2.js} +1 -1
  14. package/dist/public/assets/_B6N7XS-E2.js.br +0 -0
  15. package/dist/public/assets/{_DcyxnO_L.js → _B6suEvQQ.js} +1 -1
  16. package/dist/public/assets/_B6suEvQQ.js.br +0 -0
  17. package/dist/public/assets/{_BXCrQpbO.js → _BCLA5mzd.js} +1 -1
  18. package/dist/public/assets/_BCLA5mzd.js.br +0 -0
  19. package/dist/public/assets/{_Bb18WOXF2.js → _BEyxQXzF2.js} +1 -1
  20. package/dist/public/assets/_BEyxQXzF2.js.br +0 -0
  21. package/dist/public/assets/{_B-rCQK6E2.js → _BMzyCCjh2.js} +1 -1
  22. package/dist/public/assets/_BMzyCCjh2.js.br +0 -0
  23. package/dist/public/assets/{_BDryV2Iq2.js → _BOb23Mxu2.js} +1 -1
  24. package/dist/public/assets/_BOb23Mxu2.js.br +0 -0
  25. package/dist/public/assets/{_DFpNQ9Jh2.js → _BQ3Sbfev2.js} +1 -1
  26. package/dist/public/assets/{_DLlSIOdl.js → _BWEWFDdh.js} +1 -1
  27. package/dist/public/assets/_BWEWFDdh.js.br +0 -0
  28. package/dist/public/assets/{_BY1EMdJe.js → _BXBAlZRb.js} +1 -1
  29. package/dist/public/assets/_BXBAlZRb.js.br +0 -0
  30. package/dist/public/assets/{_B3OOfSnY.js → _B_TQEHF1.js} +1 -1
  31. package/dist/public/assets/_B_TQEHF1.js.br +0 -0
  32. package/dist/public/assets/{_B2sPsxr6.js → _Bj4YaGbW.js} +1 -1
  33. package/dist/public/assets/_Bj4YaGbW.js.br +0 -0
  34. package/dist/public/assets/{_BMf7OxnD2.js → _BjiEroCJ2.js} +1 -1
  35. package/dist/public/assets/_BjiEroCJ2.js.br +0 -0
  36. package/dist/public/assets/{_B7EwF5ES.js → _BnBX-rho.js} +1 -1
  37. package/dist/public/assets/_BnBX-rho.js.br +0 -0
  38. package/dist/public/assets/{_Di6EUgJm.js → _BnJsDtAt.js} +1 -1
  39. package/dist/public/assets/_BnJsDtAt.js.br +0 -0
  40. package/dist/public/assets/{_78u04HgF.js → _BoP77A_V.js} +1 -1
  41. package/dist/public/assets/_BoP77A_V.js.br +0 -0
  42. package/dist/public/assets/{_CpSNxSlG2.js → _BssKLycr2.js} +1 -1
  43. package/dist/public/assets/_BssKLycr2.js.br +0 -0
  44. package/dist/public/assets/{_tCsKb_54.js → _C0Pe1By2.js} +1 -1
  45. package/dist/public/assets/_C0Pe1By2.js.br +0 -0
  46. package/dist/public/assets/{_Cz_zsRzV.js → _C4UNGTaE.js} +1 -1
  47. package/dist/public/assets/_C4UNGTaE.js.br +0 -0
  48. package/dist/public/assets/{_CY_ILFGT2.js → _C6zuhH732.js} +1 -1
  49. package/dist/public/assets/_C6zuhH732.js.br +0 -0
  50. package/dist/public/assets/{_DpCUVJaX.js → _C7d5HpCI.js} +1 -1
  51. package/dist/public/assets/_C7d5HpCI.js.br +0 -0
  52. package/dist/public/assets/{_CDgIQild.js → _C9VpnMv8.js} +1 -1
  53. package/dist/public/assets/_C9VpnMv8.js.br +0 -0
  54. package/dist/public/assets/{_BwkztFC6.js → _CB0XIEp7.js} +1 -1
  55. package/dist/public/assets/_CB0XIEp7.js.br +0 -0
  56. package/dist/public/assets/{_ClLSUByz.js → _CBI5dWW1.js} +1 -1
  57. package/dist/public/assets/_CBI5dWW1.js.br +0 -0
  58. package/dist/public/assets/{_L1XH-kms2.js → _CF37bG-Q2.js} +1 -1
  59. package/dist/public/assets/_CF37bG-Q2.js.br +0 -0
  60. package/dist/public/assets/{_CEuxLe6F.js → _CIo8CLly.js} +1 -1
  61. package/dist/public/assets/_CIo8CLly.js.br +0 -0
  62. package/dist/public/assets/{_PYheEV7-.js → _CMv8_JTR.js} +1 -1
  63. package/dist/public/assets/_CMv8_JTR.js.br +0 -0
  64. package/dist/public/assets/{_uzk-PflR.js → _CSj-Z7XJ.js} +1 -1
  65. package/dist/public/assets/_CSj-Z7XJ.js.br +0 -0
  66. package/dist/public/assets/{_CwtMe3VA2.js → _CeTEgNI52.js} +1 -1
  67. package/dist/public/assets/_CeTEgNI52.js.br +0 -0
  68. package/dist/public/assets/{_BblaM8g32.js → _Cfzqdxjh2.js} +1 -1
  69. package/dist/public/assets/_Cfzqdxjh2.js.br +0 -0
  70. package/dist/public/assets/{_DHGvh-M_.js → _ChEePKsL.js} +1 -1
  71. package/dist/public/assets/_ChEePKsL.js.br +0 -0
  72. package/dist/public/assets/{_CSMKCI00.js → _CjfD3eqt.js} +1 -1
  73. package/dist/public/assets/_CjfD3eqt.js.br +0 -0
  74. package/dist/public/assets/{_bTLfsDw92.js → _CmoosGH72.js} +1 -1
  75. package/dist/public/assets/_CmoosGH72.js.br +0 -0
  76. package/dist/public/assets/{_Dt86fZPh.js → _CnFFm3ju.js} +1 -1
  77. package/dist/public/assets/_CnFFm3ju.js.br +0 -0
  78. package/dist/public/assets/{_CBum66PC.js → _CqCS-TFj.js} +1 -1
  79. package/dist/public/assets/_CqCS-TFj.js.br +0 -0
  80. package/dist/public/assets/{_Rj3Bb6_I.js → _CqR_auoj.js} +1 -1
  81. package/dist/public/assets/_CqR_auoj.js.br +0 -0
  82. package/dist/public/assets/{_B54sk_Fc.js → _Ctz_CMRN.js} +1 -1
  83. package/dist/public/assets/_Ctz_CMRN.js.br +0 -0
  84. package/dist/public/assets/{_9-_KI7I4.js → _CxPP5Bqs.js} +1 -1
  85. package/dist/public/assets/_CxPP5Bqs.js.br +0 -0
  86. package/dist/public/assets/{_BW4jFkhN.js → _Czz-MMTu.js} +1 -1
  87. package/dist/public/assets/_Czz-MMTu.js.br +0 -0
  88. package/dist/public/assets/{_BacOB_KW.js → _D14PFcsd.js} +1 -1
  89. package/dist/public/assets/{_BPVcHu-J2.js → _D8ar8Pg82.js} +1 -1
  90. package/dist/public/assets/{_BJdkAMTU.js → _DBU5qokm.js} +1 -1
  91. package/dist/public/assets/_DBU5qokm.js.br +0 -0
  92. package/dist/public/assets/{_CdUSs9iK.js → _DBhOhjp-.js} +1 -1
  93. package/dist/public/assets/_DBhOhjp-.js.br +0 -0
  94. package/dist/public/assets/{_yxN-WdAM.js → _DJ4WX01K.js} +1 -1
  95. package/dist/public/assets/_DJ4WX01K.js.br +0 -0
  96. package/dist/public/assets/{_CEz9SXP-.js → _DMXIRb5J.js} +1 -1
  97. package/dist/public/assets/_DMXIRb5J.js.br +0 -0
  98. package/dist/public/assets/{_CAxRBZNm2.js → _DMdTYxLu2.js} +1 -1
  99. package/dist/public/assets/_DMdTYxLu2.js.br +0 -0
  100. package/dist/public/assets/{_Dp32T4Vh.js → _DQ_O5Kdu.js} +1 -1
  101. package/dist/public/assets/_DQ_O5Kdu.js.br +0 -0
  102. package/dist/public/assets/{_1g4fb8wp.js → _DZqXZ3e5.js} +1 -1
  103. package/dist/public/assets/_DZqXZ3e5.js.br +0 -0
  104. package/dist/public/assets/{_DtnacdW_.js → _DdESkQx6.js} +1 -1
  105. package/dist/public/assets/_DdESkQx6.js.br +0 -0
  106. package/dist/public/assets/{_DgiGmj2K.js → _Dg_13haB.js} +1 -1
  107. package/dist/public/assets/_Dg_13haB.js.br +0 -0
  108. package/dist/public/assets/{_HUSrElvd.js → _DkeimbxU.js} +1 -1
  109. package/dist/public/assets/_DkeimbxU.js.br +0 -0
  110. package/dist/public/assets/{_DmdVV0LB.js → _DklnRVwW.js} +1 -1
  111. package/dist/public/assets/_DklnRVwW.js.br +0 -0
  112. package/dist/public/assets/{_OCeErtSr.js → _DlZVWmxG.js} +1 -1
  113. package/dist/public/assets/_DlZVWmxG.js.br +0 -0
  114. package/dist/public/assets/{_BI1ct0k3.js → _Dl_xIwGY.js} +1 -1
  115. package/dist/public/assets/_Dl_xIwGY.js.br +0 -0
  116. package/dist/public/assets/{_ZUiWhALl.js → _DpdbhOXM.js} +1 -1
  117. package/dist/public/assets/_DpdbhOXM.js.br +0 -0
  118. package/dist/public/assets/{_JjCtmL8y2.js → _Dq3JBUhI2.js} +1 -1
  119. package/dist/public/assets/_Dq3JBUhI2.js.br +0 -0
  120. package/dist/public/assets/{_CB_QqJbj.js → _Dw3-4lzD.js} +1 -1
  121. package/dist/public/assets/_Dw3-4lzD.js.br +0 -0
  122. package/dist/public/assets/{_BeWiK2zV.js → _El-gnioo.js} +1 -1
  123. package/dist/public/assets/_El-gnioo.js.br +0 -0
  124. package/dist/public/assets/{_C-mtaCj52.js → _GLvdmbbN2.js} +1 -1
  125. package/dist/public/assets/_GLvdmbbN2.js.br +0 -0
  126. package/dist/public/assets/{_VTTPEs8m2.js → _GNPTJpcC2.js} +1 -1
  127. package/dist/public/assets/_GNPTJpcC2.js.br +0 -0
  128. package/dist/public/assets/{_zOG0vHwY2.js → _J4NG9p8y2.js} +1 -1
  129. package/dist/public/assets/_J4NG9p8y2.js.br +0 -0
  130. package/dist/public/assets/{_B_EBj_B3.js → _M9tReZxn.js} +1 -1
  131. package/dist/public/assets/_M9tReZxn.js.br +0 -0
  132. package/dist/public/assets/{_DqJB33fN2.js → _Ma0bP4Xx2.js} +1 -1
  133. package/dist/public/assets/_Ma0bP4Xx2.js.br +0 -0
  134. package/dist/public/assets/{_CyCGtR1-.js → _OrSdK8GL.js} +1 -1
  135. package/dist/public/assets/_OrSdK8GL.js.br +0 -0
  136. package/dist/public/assets/{_CmJ7zLnv.js → _XOqmR7PZ.js} +1 -1
  137. package/dist/public/assets/_XOqmR7PZ.js.br +0 -0
  138. package/dist/public/assets/{_CsL5aYpd.js → _bsQIR6eh.js} +1 -1
  139. package/dist/public/assets/_bsQIR6eh.js.br +0 -0
  140. package/dist/public/assets/{_CSx4Xqtp.js → _cG9lxcwh.js} +1 -1
  141. package/dist/public/assets/_cG9lxcwh.js.br +0 -0
  142. package/dist/public/assets/{_COb-W2I-.js → _f0zKG2ng.js} +1 -1
  143. package/dist/public/assets/_f0zKG2ng.js.br +0 -0
  144. package/dist/public/assets/{_D2wXmnQK2.js → _fB1Jk0Pw2.js} +1 -1
  145. package/dist/public/assets/_fB1Jk0Pw2.js.br +0 -0
  146. package/dist/public/assets/{_BjPws8fl2.js → _h7Ns5sTj2.js} +1 -1
  147. package/dist/public/assets/_h7Ns5sTj2.js.br +0 -0
  148. package/dist/public/assets/_hJI7SmWv.js +85 -0
  149. package/dist/public/assets/_hJI7SmWv.js.br +0 -0
  150. package/dist/public/assets/{_Dl_YajbL.js → _hd2HONfp.js} +45 -45
  151. package/dist/public/assets/_hd2HONfp.js.br +0 -0
  152. package/dist/public/assets/{_D0vyJ2yE2.js → _mrdnqgxh2.js} +1 -1
  153. package/dist/public/assets/_mrdnqgxh2.js.br +0 -0
  154. package/dist/public/assets/{_-PoErT612.js → _tjzlONDb2.js} +1 -1
  155. package/dist/public/assets/_tjzlONDb2.js.br +0 -0
  156. package/dist/public/assets/app-page-IaztMdEL.css +1 -0
  157. package/dist/public/assets/app-page-IaztMdEL.css.br +0 -0
  158. package/dist/public/assets/diff-view-BrKiFH5B.css +1 -0
  159. package/dist/public/assets/diff-view-BrKiFH5B.css.br +0 -0
  160. package/dist/public/assets/new-U29Wfg5O.js +1 -0
  161. package/dist/public/assets/settings-U29Wfg5O.js +1 -0
  162. package/dist/public/assets/w-U29Wfg5O.js +1 -0
  163. package/dist/public/assets/w._-Canrberm.js +1 -0
  164. package/dist/public/assets/w._-U29Wfg5O.js +1 -0
  165. package/package.json +4 -4
  166. package/dist/_DvlOez7w.js +0 -2
  167. package/dist/public/assets/_-PoErT612.js.br +0 -0
  168. package/dist/public/assets/_1g4fb8wp.js.br +0 -0
  169. package/dist/public/assets/_78u04HgF.js.br +0 -0
  170. package/dist/public/assets/_9-_KI7I4.js.br +0 -0
  171. package/dist/public/assets/_B-rCQK6E2.js.br +0 -0
  172. package/dist/public/assets/_B2sPsxr6.js.br +0 -0
  173. package/dist/public/assets/_B3OOfSnY.js.br +0 -0
  174. package/dist/public/assets/_B54sk_Fc.js.br +0 -0
  175. package/dist/public/assets/_B7EwF5ES.js.br +0 -0
  176. package/dist/public/assets/_BDryV2Iq2.js.br +0 -0
  177. package/dist/public/assets/_BI1ct0k3.js.br +0 -0
  178. package/dist/public/assets/_BJdkAMTU.js.br +0 -0
  179. package/dist/public/assets/_BMf7OxnD2.js.br +0 -0
  180. package/dist/public/assets/_BW4jFkhN.js.br +0 -0
  181. package/dist/public/assets/_BXCrQpbO.js.br +0 -0
  182. package/dist/public/assets/_BY1EMdJe.js.br +0 -0
  183. package/dist/public/assets/_B_EBj_B3.js.br +0 -0
  184. package/dist/public/assets/_Bb18WOXF2.js.br +0 -0
  185. package/dist/public/assets/_BblaM8g32.js.br +0 -0
  186. package/dist/public/assets/_BeWiK2zV.js.br +0 -0
  187. package/dist/public/assets/_BjPws8fl2.js.br +0 -0
  188. package/dist/public/assets/_BwkztFC6.js.br +0 -0
  189. package/dist/public/assets/_C-mtaCj52.js.br +0 -0
  190. package/dist/public/assets/_CAxRBZNm2.js.br +0 -0
  191. package/dist/public/assets/_CB_QqJbj.js.br +0 -0
  192. package/dist/public/assets/_CBum66PC.js.br +0 -0
  193. package/dist/public/assets/_CDgIQild.js.br +0 -0
  194. package/dist/public/assets/_CEuxLe6F.js.br +0 -0
  195. package/dist/public/assets/_CEz9SXP-.js.br +0 -0
  196. package/dist/public/assets/_COb-W2I-.js.br +0 -0
  197. package/dist/public/assets/_CP08H0Hc2.js.br +0 -0
  198. package/dist/public/assets/_CSMKCI00.js.br +0 -0
  199. package/dist/public/assets/_CSx4Xqtp.js.br +0 -0
  200. package/dist/public/assets/_CY_ILFGT2.js.br +0 -0
  201. package/dist/public/assets/_CanTayMh.js +0 -85
  202. package/dist/public/assets/_CanTayMh.js.br +0 -0
  203. package/dist/public/assets/_CdUSs9iK.js.br +0 -0
  204. package/dist/public/assets/_Ch2r3zkq.js.br +0 -0
  205. package/dist/public/assets/_ClLSUByz.js.br +0 -0
  206. package/dist/public/assets/_CmJ7zLnv.js.br +0 -0
  207. package/dist/public/assets/_CpSNxSlG2.js.br +0 -0
  208. package/dist/public/assets/_CsL5aYpd.js.br +0 -0
  209. package/dist/public/assets/_CwtMe3VA2.js.br +0 -0
  210. package/dist/public/assets/_CyCGtR1-.js.br +0 -0
  211. package/dist/public/assets/_Cz_zsRzV.js.br +0 -0
  212. package/dist/public/assets/_D0vyJ2yE2.js.br +0 -0
  213. package/dist/public/assets/_D2wXmnQK2.js.br +0 -0
  214. package/dist/public/assets/_DHGvh-M_.js.br +0 -0
  215. package/dist/public/assets/_DLlSIOdl.js.br +0 -0
  216. package/dist/public/assets/_DcyxnO_L.js.br +0 -0
  217. package/dist/public/assets/_DgiGmj2K.js.br +0 -0
  218. package/dist/public/assets/_Di6EUgJm.js.br +0 -0
  219. package/dist/public/assets/_Dl_YajbL.js.br +0 -0
  220. package/dist/public/assets/_DmdVV0LB.js.br +0 -0
  221. package/dist/public/assets/_Dp32T4Vh.js.br +0 -0
  222. package/dist/public/assets/_DpCUVJaX.js.br +0 -0
  223. package/dist/public/assets/_DqJB33fN2.js.br +0 -0
  224. package/dist/public/assets/_Dt86fZPh.js.br +0 -0
  225. package/dist/public/assets/_DtnacdW_.js.br +0 -0
  226. package/dist/public/assets/_HUSrElvd.js.br +0 -0
  227. package/dist/public/assets/_JjCtmL8y2.js.br +0 -0
  228. package/dist/public/assets/_L1XH-kms2.js.br +0 -0
  229. package/dist/public/assets/_OCeErtSr.js.br +0 -0
  230. package/dist/public/assets/_PYheEV7-.js.br +0 -0
  231. package/dist/public/assets/_QmV76A7t.js.br +0 -0
  232. package/dist/public/assets/_Rj3Bb6_I.js.br +0 -0
  233. package/dist/public/assets/_VTTPEs8m2.js.br +0 -0
  234. package/dist/public/assets/_ZUiWhALl.js.br +0 -0
  235. package/dist/public/assets/_bTLfsDw92.js.br +0 -0
  236. package/dist/public/assets/_fKphobCQ2.js.br +0 -0
  237. package/dist/public/assets/_tCsKb_54.js.br +0 -0
  238. package/dist/public/assets/_uzk-PflR.js.br +0 -0
  239. package/dist/public/assets/_yxN-WdAM.js.br +0 -0
  240. package/dist/public/assets/_zOG0vHwY2.js.br +0 -0
  241. package/dist/public/assets/app-page-tW18Q0xx.css +0 -1
  242. package/dist/public/assets/app-page-tW18Q0xx.css.br +0 -0
  243. package/dist/public/assets/diff-view-DsbgM3jh.css +0 -1
  244. package/dist/public/assets/diff-view-DsbgM3jh.css.br +0 -0
  245. package/dist/public/assets/new-Bh0akN8j.js +0 -1
  246. package/dist/public/assets/settings-Bh0akN8j.js +0 -1
  247. package/dist/public/assets/w-Bh0akN8j.js +0 -1
  248. package/dist/public/assets/w._-Bh0akN8j.js +0 -1
  249. package/dist/public/assets/w._-UlPNND_9.js +0 -1
  250. package/dist/public/icon.svg +0 -4
  251. package/dist/public/manifest.webmanifest +0 -35
package/README.md CHANGED
@@ -98,6 +98,11 @@ The usage panel (and `work usage`) reads plan/quota windows straight from each
98
98
  agent CLI's own credentials on disk — Claude, Codex, Cursor, Grok, and Copilot
99
99
  (via `gh`'s token). Providers you are not signed into simply say so.
100
100
 
101
+ Running more than one `work` (a laptop and a desk box, say)? Settings →
102
+ Appearance gives each a name and an accent colour: the tab title, home-screen
103
+ icon, notifications, and the app's chrome all take them, so two windows or
104
+ two installed apps stop looking identical.
105
+
101
106
  PR chips refresh by polling GitHub (faster for a few minutes after a
102
107
  local push via `repo-pushed`). No inbound GitHub webhooks are required.
103
108
 
@@ -6332,6 +6332,79 @@ function keys() {
6332
6332
  }
6333
6333
  return cachedKeys;
6334
6334
  }
6335
+ var ACCENT_RE = /^#[0-9a-f]{6}$/;
6336
+ function normalizeAccent(raw) {
6337
+ const v = (raw || "").trim().toLowerCase();
6338
+ if (!v) return "";
6339
+ const full = /^#?([0-9a-f]{6})$/.exec(v);
6340
+ if (full) return `#${full[1]}`;
6341
+ const short = /^#?([0-9a-f]{3})$/.exec(v);
6342
+ if (short) return `#${[...short[1]].map((c) => c + c).join("")}`;
6343
+ return "";
6344
+ }
6345
+ function normalizeName(raw) {
6346
+ return (raw || "").replace(/\s+/g, " ").trim().slice(0, 32);
6347
+ }
6348
+ function getInstance() {
6349
+ return {
6350
+ name: normalizeName(getSetting("instance.name")),
6351
+ accent: normalizeAccent(getSetting("instance.accent"))
6352
+ };
6353
+ }
6354
+ function setInstance(patch) {
6355
+ if (patch.name !== void 0) setSetting("instance.name", normalizeName(patch.name));
6356
+ if (patch.accent !== void 0) setSetting("instance.accent", normalizeAccent(patch.accent));
6357
+ return getInstance();
6358
+ }
6359
+ /** The app icon as SVG: the `w_` glyph in the instance's accent on the
6360
+ * dark tile, so two installs get two favicons / home-screen icons. */
6361
+ function iconSvg(accent) {
6362
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
6363
+ <rect width="128" height="128" rx="24" fill="#131316"/>
6364
+ <text x="64" y="86" font-family="ui-monospace, monospace" font-size="64" font-weight="700" fill="${accent || "#7c96ff"}" text-anchor="middle">w_</text>
6365
+ </svg>
6366
+ `;
6367
+ }
6368
+ function manifest(inst) {
6369
+ const name = inst.name || "work";
6370
+ const v = inst.accent ? `?v=${inst.accent.slice(1)}` : "";
6371
+ return {
6372
+ id: "/",
6373
+ name,
6374
+ short_name: name.length > 12 ? name.slice(0, 12) : name,
6375
+ description: "Agentic dev workspaces",
6376
+ start_url: "/",
6377
+ display: "standalone",
6378
+ background_color: "#131316",
6379
+ theme_color: inst.accent || "#131316",
6380
+ icons: [
6381
+ {
6382
+ src: `/api/instance/icon${v}`,
6383
+ sizes: "any",
6384
+ type: "image/svg+xml",
6385
+ purpose: "any"
6386
+ },
6387
+ {
6388
+ src: "/icon-192.png",
6389
+ sizes: "192x192",
6390
+ type: "image/png",
6391
+ purpose: "any"
6392
+ },
6393
+ {
6394
+ src: "/icon-512.png",
6395
+ sizes: "512x512",
6396
+ type: "image/png",
6397
+ purpose: "any"
6398
+ },
6399
+ {
6400
+ src: "/icon-maskable-512.png",
6401
+ sizes: "512x512",
6402
+ type: "image/png",
6403
+ purpose: "maskable"
6404
+ }
6405
+ ]
6406
+ };
6407
+ }
6335
6408
  //#endregion
6336
6409
  //#region src/server/agent-state.ts
6337
6410
  var phases = /* @__PURE__ */ new Map();
@@ -6379,8 +6452,9 @@ async function notify(sessionId, reason) {
6379
6452
  const waiting = [.../* @__PURE__ */ new Set([...phases.keys(), ...scraped.keys()])].filter((id) => agentPhase(id) === "waiting").length;
6380
6453
  const summary = summaries.get(sessionId);
6381
6454
  const label = reason === "done" ? "✔ Finished" : "⚠ Needs attention";
6455
+ const inst = getInstance().name;
6382
6456
  sendPush({
6383
- title: `${row.name} · ${row.title || row.agent}`,
6457
+ title: `${inst ? `${inst} · ` : ""}${row.name} · ${row.title || row.agent}`,
6384
6458
  body: summary ? `${label}: ${summary}` : `${label}`,
6385
6459
  tag: `session-${sessionId}`,
6386
6460
  badge: waiting,
@@ -6420,7 +6494,7 @@ function publishChange(sessionId) {
6420
6494
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
6421
6495
  if (row?.workspace_id) {
6422
6496
  const workspaceId = row.workspace_id;
6423
- import("./_DvlOez7w.js").then((m) => m.notifySessionsChanged(workspaceId));
6497
+ import("./_DjE4lBg7.js").then((m) => m.notifySessionsChanged(workspaceId));
6424
6498
  return;
6425
6499
  }
6426
6500
  publish("sessions.changed");
@@ -7862,7 +7936,15 @@ async function panePids() {
7862
7936
  * session with it. A hidden "work-keeper" session pins the server alive
7863
7937
  * (tmux exits when its last session closes). */
7864
7938
  async function ensureTmuxServer() {
7865
- if (await tmux(["has-session"]).then(() => true, () => false)) return;
7939
+ if (await tmux(["has-session"]).then(() => true, () => false)) {
7940
+ await tmux([
7941
+ "set-environment",
7942
+ "-g",
7943
+ "-u",
7944
+ "PORT"
7945
+ ]).catch(() => {});
7946
+ return;
7947
+ }
7866
7948
  await run$1("systemd-run", [
7867
7949
  "--user",
7868
7950
  "--unit=work-tmux",
@@ -8002,6 +8084,7 @@ function cleanEnv() {
8002
8084
  for (const [key, value] of Object.entries(process.env)) {
8003
8085
  if (value === void 0) continue;
8004
8086
  if (agentPrefix.test(key)) continue;
8087
+ if (key === "PORT") continue;
8005
8088
  env[key] = value;
8006
8089
  }
8007
8090
  const home = process.env.HOME || "";
@@ -8042,4 +8125,4 @@ function sleep(ms) {
8042
8125
  return new Promise((resolve) => setTimeout(resolve, ms));
8043
8126
  }
8044
8127
  //#endregion
8045
- export { DEFAULT_GITHUB_HOST as $, setScrapedPhase as A, allPrefs as B, agentBadge as C, agentMeta as D, agentLabel as E, publish as F, setDisabledAgents as G, enabledAgents as H, subscribe as I, doctor as J, setPref as K, subscriberCount as L, deleteSubscription as M, pushPublicKey as N, clearAgentPhase as O, saveSubscription as P, which as Q, subscriberJoins as R, blankRow as S, agentFromCommand as T, getSetting as U, disabledAgents as V, preferredAgent as W, miseVersions as X, ghKnownHosts as Y, setupPath as Z, tmuxName as _, ensureTmuxServer as a, get as at, readHookPayload as b, killWorkspaceSessions as c, gh as ct, newSessionArgs as d, tmux as dt, TOOLS as et, notifySessionsChanged as f, config as ft, sessionStates as g, sendToSession as h, disposeSessions as i, db as it, setSessionViewers as j, setAgentPhase as k, listSessions as l, git as lt, renameSession as m, clearTmuxStarted as n, toolById as nt, getSession as o, workspacePath as ot, panePids as p, setSetting as q, createSession as r, all as rt, killSession as s, TMUX_SOCKET as st, cleanEnv as t, agentById as tt, markTmuxStarted as u, run$1 as ut, tmuxWasStarted as v, agentFamily as w, reportsWorking as x, AGENTS as y, agentChoices as z };
8128
+ export { setSetting as $, setScrapedPhase as A, saveSubscription as B, agentBadge as C, agentMeta as D, agentLabel as E, manifest as F, agentChoices as G, subscribe as H, normalizeAccent as I, enabledAgents as J, allPrefs as K, setInstance as L, ACCENT_RE as M, getInstance as N, clearAgentPhase as O, iconSvg as P, setPref as Q, deleteSubscription as R, blankRow as S, agentFromCommand as T, subscriberCount as U, publish as V, subscriberJoins as W, preferredAgent as X, getSetting as Y, setDisabledAgents as Z, tmuxName as _, tmux as _t, ensureTmuxServer as a, DEFAULT_GITHUB_HOST as at, readHookPayload as b, killWorkspaceSessions as c, toolById as ct, newSessionArgs as d, get as dt, doctor as et, notifySessionsChanged as f, workspacePath as ft, sessionStates as g, run$1 as gt, sendToSession as h, git as ht, disposeSessions as i, which as it, setSessionViewers as j, setAgentPhase as k, listSessions as l, all as lt, renameSession as m, gh as mt, clearTmuxStarted as n, miseVersions as nt, getSession as o, TOOLS as ot, panePids as p, TMUX_SOCKET as pt, disabledAgents as q, createSession as r, setupPath as rt, killSession as s, agentById as st, cleanEnv as t, ghKnownHosts as tt, markTmuxStarted as u, db as ut, tmuxWasStarted as v, config as vt, agentFamily as w, reportsWorking as x, AGENTS as y, pushPublicKey as z };