wherdr 2.3.0 → 2.4.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.
Files changed (162) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{AgentView.CfD2RWZY.css → AgentView.B12D6ccj.css} +1 -1
  3. package/.output/public/_nuxt/AgentView.B12D6ccj.css.br +0 -0
  4. package/.output/public/_nuxt/AgentView.B12D6ccj.css.gz +0 -0
  5. package/.output/public/_nuxt/BDTOz37p.js +1 -0
  6. package/.output/public/_nuxt/BDTOz37p.js.br +0 -0
  7. package/.output/public/_nuxt/BDTOz37p.js.gz +0 -0
  8. package/.output/public/_nuxt/BGD5AamG.js +25 -0
  9. package/.output/public/_nuxt/BGD5AamG.js.br +0 -0
  10. package/.output/public/_nuxt/BGD5AamG.js.gz +0 -0
  11. package/.output/public/_nuxt/BdJIc1Xf.js +1 -0
  12. package/.output/public/_nuxt/BdJIc1Xf.js.br +0 -0
  13. package/.output/public/_nuxt/BdJIc1Xf.js.gz +0 -0
  14. package/.output/public/_nuxt/BxlzUs1i.js +23 -0
  15. package/.output/public/_nuxt/BxlzUs1i.js.br +0 -0
  16. package/.output/public/_nuxt/BxlzUs1i.js.gz +0 -0
  17. package/.output/public/_nuxt/C-BDzEtI.js +3 -0
  18. package/.output/public/_nuxt/C-BDzEtI.js.br +0 -0
  19. package/.output/public/_nuxt/C-BDzEtI.js.gz +0 -0
  20. package/.output/public/_nuxt/{DN2uhp8-.js → CLf2i_DM.js} +1 -1
  21. package/.output/public/_nuxt/CO4sDeSt.js +62 -0
  22. package/.output/public/_nuxt/CO4sDeSt.js.br +0 -0
  23. package/.output/public/_nuxt/CO4sDeSt.js.gz +0 -0
  24. package/.output/public/_nuxt/{BqaV2jLN.js → CPlkxpge.js} +42 -42
  25. package/.output/public/_nuxt/CPlkxpge.js.br +0 -0
  26. package/.output/public/_nuxt/CPlkxpge.js.gz +0 -0
  27. package/.output/public/_nuxt/CTPNZj4T.js +9 -0
  28. package/.output/public/_nuxt/CTPNZj4T.js.br +0 -0
  29. package/.output/public/_nuxt/CTPNZj4T.js.gz +0 -0
  30. package/.output/public/_nuxt/CV6ukk-M.js +1 -0
  31. package/.output/public/_nuxt/CgUSTIM1.js +1 -0
  32. package/.output/public/_nuxt/CgUSTIM1.js.br +0 -0
  33. package/.output/public/_nuxt/CgUSTIM1.js.gz +0 -0
  34. package/.output/public/_nuxt/CwurhZnh.js +123 -0
  35. package/.output/public/_nuxt/CwurhZnh.js.br +0 -0
  36. package/.output/public/_nuxt/CwurhZnh.js.gz +0 -0
  37. package/.output/public/_nuxt/D7fCPncR.js +1 -0
  38. package/.output/public/_nuxt/D7fCPncR.js.br +0 -0
  39. package/.output/public/_nuxt/D7fCPncR.js.gz +0 -0
  40. package/.output/public/_nuxt/DFe-cDm2.js +1 -0
  41. package/.output/public/_nuxt/DFe-cDm2.js.br +0 -0
  42. package/.output/public/_nuxt/DFe-cDm2.js.gz +0 -0
  43. package/.output/public/_nuxt/Dpe9TNcA.js +31 -0
  44. package/.output/public/_nuxt/Dpe9TNcA.js.br +0 -0
  45. package/.output/public/_nuxt/Dpe9TNcA.js.gz +0 -0
  46. package/.output/public/_nuxt/{board.CeTYM1XN.css → board.fZYj3O-m.css} +1 -1
  47. package/.output/public/_nuxt/board.fZYj3O-m.css.br +0 -0
  48. package/.output/public/_nuxt/board.fZYj3O-m.css.gz +0 -0
  49. package/.output/public/_nuxt/builds/latest.json +1 -1
  50. package/.output/public/_nuxt/builds/meta/75cc4ea7-3027-463a-aa3e-29e474ed7173.json +1 -0
  51. package/.output/public/_nuxt/entry.KNdllmoL.css +2 -0
  52. package/.output/public/_nuxt/entry.KNdllmoL.css.br +0 -0
  53. package/.output/public/_nuxt/entry.KNdllmoL.css.gz +0 -0
  54. package/.output/public/sw.js +1 -1
  55. package/.output/server/chunks/_/branding.mjs +1 -1
  56. package/.output/server/chunks/_/package.mjs +1 -1
  57. package/.output/server/chunks/_/selfupdate.mjs +1 -1
  58. package/.output/server/chunks/_/updates.mjs +18 -5
  59. package/.output/server/chunks/_/worktrees.mjs +1 -1
  60. package/.output/server/chunks/_/ws.mjs +1 -1
  61. package/.output/server/chunks/nitro/nitro.mjs +813 -487
  62. package/.output/server/chunks/raw/install-claude-statusline.mjs +1 -1
  63. package/.output/server/chunks/routes/api/search.get.mjs +55 -2
  64. package/.output/server/chunks/routes/api/seen.post.mjs +1 -1
  65. package/.output/server/chunks/routes/api/send-now.post.mjs +53 -0
  66. package/.output/server/chunks/routes/api/sessions.get.mjs +1 -1
  67. package/.output/server/chunks/routes/api/sessions.post.mjs +1 -1
  68. package/.output/server/chunks/routes/api/settings-tab.post.mjs +1 -1
  69. package/.output/server/chunks/routes/api/settings.get.mjs +1 -1
  70. package/.output/server/chunks/routes/api/settings.post.mjs +1 -1
  71. package/.output/server/chunks/routes/api/space.post.mjs +1 -1
  72. package/.output/server/chunks/routes/api/split-command.post.mjs +157 -0
  73. package/.output/server/chunks/routes/api/tasks/action.post.mjs +1 -1
  74. package/.output/server/chunks/routes/api/tasks/add.post.mjs +1 -1
  75. package/.output/server/chunks/routes/api/tasks/after.post.mjs +1 -1
  76. package/.output/server/chunks/routes/api/tasks/approve.post.mjs +1 -1
  77. package/.output/server/chunks/routes/api/tasks/archive-done.post.mjs +1 -1
  78. package/.output/server/chunks/routes/api/tasks/archived.get.mjs +1 -1
  79. package/.output/server/chunks/routes/api/tasks/autopilot.get.mjs +1 -1
  80. package/.output/server/chunks/routes/api/tasks/autopilot.post.mjs +1 -1
  81. package/.output/server/chunks/routes/api/tasks/board-settings.get.mjs +1 -1
  82. package/.output/server/chunks/routes/api/tasks/board-settings.post.mjs +1 -1
  83. package/.output/server/chunks/routes/api/tasks/coordinator.get.mjs +1 -1
  84. package/.output/server/chunks/routes/api/tasks/coordinator.post.mjs +1 -1
  85. package/.output/server/chunks/routes/api/tasks/describe.post.mjs +1 -1
  86. package/.output/server/chunks/routes/api/tasks/details.get.mjs +1 -1
  87. package/.output/server/chunks/routes/api/tasks/limit.post.mjs +1 -1
  88. package/.output/server/chunks/routes/api/tasks/links.get.mjs +1 -1
  89. package/.output/server/chunks/routes/api/tasks/models.get.mjs +1 -1
  90. package/.output/server/chunks/routes/api/tasks/pick.post.mjs +1 -1
  91. package/.output/server/chunks/routes/api/tasks/project.get.mjs +1 -1
  92. package/.output/server/chunks/routes/api/tasks/project.post.mjs +1 -1
  93. package/.output/server/chunks/routes/api/tasks/question.post.mjs +1 -1
  94. package/.output/server/chunks/routes/api/tasks/scheduled.get.mjs +1 -1
  95. package/.output/server/chunks/routes/api/tasks/settings.get.mjs +1 -1
  96. package/.output/server/chunks/routes/api/tasks/start.get.mjs +1 -1
  97. package/.output/server/chunks/routes/api/tasks/tell.post.mjs +1 -1
  98. package/.output/server/chunks/routes/api/tasks.get.mjs +1 -1
  99. package/.output/server/chunks/routes/api/unqueue.post.mjs +1 -1
  100. package/.output/server/chunks/routes/icons/_name_.get.mjs +1 -1
  101. package/.output/server/chunks/routes/renderer.mjs +2 -2
  102. package/.output/server/chunks/routes/uploads/_...name_.get.mjs +1 -1
  103. package/.output/server/chunks/routes/ws/_..._.mjs +1 -1
  104. package/.output/server/chunks/routes/ws/events.mjs +5 -1
  105. package/.output/server/chunks/routes/ws/term.mjs +1 -1
  106. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  107. package/.output/server/index.mjs +1 -1
  108. package/.output/server/package.json +1 -1
  109. package/docs/README.md +3 -0
  110. package/docs/board.md +8 -1
  111. package/docs/design.md +112 -0
  112. package/docs/devices.md +5 -0
  113. package/docs/herdr-projects-1x.md +28 -0
  114. package/docs/home.md +9 -0
  115. package/docs/installation.md +12 -0
  116. package/docs/quotas.md +6 -0
  117. package/docs/release-notes-2.4.0.md +37 -0
  118. package/package.json +1 -1
  119. package/.output/public/_nuxt/30nuHmZs.js +0 -1
  120. package/.output/public/_nuxt/30nuHmZs.js.br +0 -0
  121. package/.output/public/_nuxt/30nuHmZs.js.gz +0 -0
  122. package/.output/public/_nuxt/AgentView.CfD2RWZY.css.br +0 -0
  123. package/.output/public/_nuxt/AgentView.CfD2RWZY.css.gz +0 -0
  124. package/.output/public/_nuxt/BF2qZ0lx.js +0 -31
  125. package/.output/public/_nuxt/BF2qZ0lx.js.br +0 -0
  126. package/.output/public/_nuxt/BF2qZ0lx.js.gz +0 -0
  127. package/.output/public/_nuxt/BU6Ihnb9.js +0 -62
  128. package/.output/public/_nuxt/BU6Ihnb9.js.br +0 -0
  129. package/.output/public/_nuxt/BU6Ihnb9.js.gz +0 -0
  130. package/.output/public/_nuxt/BmF5BXwf.js +0 -23
  131. package/.output/public/_nuxt/BmF5BXwf.js.br +0 -0
  132. package/.output/public/_nuxt/BmF5BXwf.js.gz +0 -0
  133. package/.output/public/_nuxt/BqaV2jLN.js.br +0 -0
  134. package/.output/public/_nuxt/BqaV2jLN.js.gz +0 -0
  135. package/.output/public/_nuxt/C_pXkozx.js +0 -1
  136. package/.output/public/_nuxt/C_pXkozx.js.br +0 -0
  137. package/.output/public/_nuxt/C_pXkozx.js.gz +0 -0
  138. package/.output/public/_nuxt/Cq1IlvFx.js +0 -3
  139. package/.output/public/_nuxt/Cq1IlvFx.js.br +0 -0
  140. package/.output/public/_nuxt/Cq1IlvFx.js.gz +0 -0
  141. package/.output/public/_nuxt/DNk1pHah.js +0 -1
  142. package/.output/public/_nuxt/DNk1pHah.js.br +0 -0
  143. package/.output/public/_nuxt/DNk1pHah.js.gz +0 -0
  144. package/.output/public/_nuxt/DcQrp3bD.js +0 -25
  145. package/.output/public/_nuxt/DcQrp3bD.js.br +0 -0
  146. package/.output/public/_nuxt/DcQrp3bD.js.gz +0 -0
  147. package/.output/public/_nuxt/I_R_EgeO.js +0 -1
  148. package/.output/public/_nuxt/L_vgVKcG.js +0 -105
  149. package/.output/public/_nuxt/L_vgVKcG.js.br +0 -0
  150. package/.output/public/_nuxt/L_vgVKcG.js.gz +0 -0
  151. package/.output/public/_nuxt/RI4B_b2M.js +0 -9
  152. package/.output/public/_nuxt/RI4B_b2M.js.br +0 -0
  153. package/.output/public/_nuxt/RI4B_b2M.js.gz +0 -0
  154. package/.output/public/_nuxt/Y-4S7Nuf.js +0 -1
  155. package/.output/public/_nuxt/Y-4S7Nuf.js.br +0 -0
  156. package/.output/public/_nuxt/Y-4S7Nuf.js.gz +0 -0
  157. package/.output/public/_nuxt/board.CeTYM1XN.css.br +0 -0
  158. package/.output/public/_nuxt/board.CeTYM1XN.css.gz +0 -0
  159. package/.output/public/_nuxt/builds/meta/9240e8b5-8099-4108-9ff2-34b7f376d31a.json +0 -1
  160. package/.output/public/_nuxt/entry._gNxiS8l.css +0 -2
  161. package/.output/public/_nuxt/entry._gNxiS8l.css.br +0 -0
  162. package/.output/public/_nuxt/entry._gNxiS8l.css.gz +0 -0
@@ -15,7 +15,7 @@
15
15
  var sw = self;
16
16
  var CACHE = "wherdr-v1";
17
17
  var NETWORK_WAIT_MS = 3e3;
18
- var PRECACHE = ["/", ...[{"revision":"e6a852ba6e2a724d2255af526cb04083","url":"manifest.webmanifest"},{"revision":"b1a14fab8c06784649bf26c636747a86","url":"manifest-en.webmanifest"},{"revision":null,"url":"_nuxt/wherdr-symbols.C1LsPKmg.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-powerline.B_kAMxXr.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-octicons.Hl4VEx8m.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-material-4.CO_PudDR.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-material-3.8xz7iX-Y.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-material-2.C_flbBWO.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-material-1.BdvqkCqW.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-extension.Dai_ky39.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-devicons.ZMSFX1sW.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-codicons.CtEsfSAf.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-awesome.DQ3_iAfa.woff2"},{"revision":null,"url":"_nuxt/settings.Cdb21nNw.css"},{"revision":null,"url":"_nuxt/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2"},{"revision":null,"url":"_nuxt/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2"},{"revision":null,"url":"_nuxt/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2"},{"revision":null,"url":"_nuxt/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2"},{"revision":null,"url":"_nuxt/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2"},{"revision":null,"url":"_nuxt/inter-vietnamese-wght-normal.CBcvBZtf.woff2"},{"revision":null,"url":"_nuxt/inter-latin-wght-normal.Dx4kXJAl.woff2"},{"revision":null,"url":"_nuxt/inter-latin-ext-wght-normal.DO1Apj_S.woff2"},{"revision":null,"url":"_nuxt/inter-greek-wght-normal.CkhJZR-_.woff2"},{"revision":null,"url":"_nuxt/inter-greek-ext-wght-normal.DlzME5K_.woff2"},{"revision":null,"url":"_nuxt/inter-cyrillic-wght-normal.DqGufNeO.woff2"},{"revision":null,"url":"_nuxt/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2"},{"revision":null,"url":"_nuxt/hePW80VL.js"},{"revision":null,"url":"_nuxt/error-500.Bwd7zAaE.css"},{"revision":null,"url":"_nuxt/error-404.Bb87HomL.css"},{"revision":null,"url":"_nuxt/entry._gNxiS8l.css"},{"revision":null,"url":"_nuxt/board.CeTYM1XN.css"},{"revision":null,"url":"_nuxt/archivo-vietnamese-wght-normal.XAtsl5Q_.woff2"},{"revision":null,"url":"_nuxt/archivo-latin-wght-normal.E0tuGl4L.woff2"},{"revision":null,"url":"_nuxt/archivo-latin-ext-wght-normal.C4zznr8T.woff2"},{"revision":null,"url":"_nuxt/Y-4S7Nuf.js"},{"revision":null,"url":"_nuxt/RI4B_b2M.js"},{"revision":null,"url":"_nuxt/L_vgVKcG.js"},{"revision":null,"url":"_nuxt/I_R_EgeO.js"},{"revision":null,"url":"_nuxt/DcQrp3bD.js"},{"revision":null,"url":"_nuxt/DNk1pHah.js"},{"revision":null,"url":"_nuxt/DN2uhp8-.js"},{"revision":null,"url":"_nuxt/Cq1IlvFx.js"},{"revision":null,"url":"_nuxt/C_pXkozx.js"},{"revision":null,"url":"_nuxt/CXJnLmWv.js"},{"revision":null,"url":"_nuxt/CDWjMk9C.js"},{"revision":null,"url":"_nuxt/C25ROUa9.js"},{"revision":null,"url":"_nuxt/BqaV2jLN.js"},{"revision":null,"url":"_nuxt/Bpoxvzh6.js"},{"revision":null,"url":"_nuxt/BmF5BXwf.js"},{"revision":null,"url":"_nuxt/Bd17z0YL.js"},{"revision":null,"url":"_nuxt/BYZVrreW.js"},{"revision":null,"url":"_nuxt/BU6Ihnb9.js"},{"revision":null,"url":"_nuxt/BF2qZ0lx.js"},{"revision":null,"url":"_nuxt/BDNMzG2s.js"},{"revision":null,"url":"_nuxt/B2KlcBQ-.js"},{"revision":null,"url":"_nuxt/AgentView.CfD2RWZY.css"},{"revision":null,"url":"_nuxt/30nuHmZs.js"},{"revision":"b1f17e8fd8e0582fdde7d0ed80adea52","url":"_nuxt/builds/latest.json"},{"revision":null,"url":"_nuxt/builds/meta/9240e8b5-8099-4108-9ff2-34b7f376d31a.json"}].map((e) => "/" + (typeof e === "string" ? e : e.url).replace(/^\//, ""))];
18
+ var PRECACHE = ["/", ...[{"revision":"e6a852ba6e2a724d2255af526cb04083","url":"manifest.webmanifest"},{"revision":"b1a14fab8c06784649bf26c636747a86","url":"manifest-en.webmanifest"},{"revision":null,"url":"_nuxt/wherdr-symbols.C1LsPKmg.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-powerline.B_kAMxXr.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-octicons.Hl4VEx8m.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-material-4.CO_PudDR.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-material-3.8xz7iX-Y.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-material-2.C_flbBWO.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-material-1.BdvqkCqW.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-extension.Dai_ky39.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-devicons.ZMSFX1sW.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-codicons.CtEsfSAf.woff2"},{"revision":null,"url":"_nuxt/wherdr-nerd-awesome.DQ3_iAfa.woff2"},{"revision":null,"url":"_nuxt/settings.Cdb21nNw.css"},{"revision":null,"url":"_nuxt/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2"},{"revision":null,"url":"_nuxt/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2"},{"revision":null,"url":"_nuxt/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2"},{"revision":null,"url":"_nuxt/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2"},{"revision":null,"url":"_nuxt/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2"},{"revision":null,"url":"_nuxt/inter-vietnamese-wght-normal.CBcvBZtf.woff2"},{"revision":null,"url":"_nuxt/inter-latin-wght-normal.Dx4kXJAl.woff2"},{"revision":null,"url":"_nuxt/inter-latin-ext-wght-normal.DO1Apj_S.woff2"},{"revision":null,"url":"_nuxt/inter-greek-wght-normal.CkhJZR-_.woff2"},{"revision":null,"url":"_nuxt/inter-greek-ext-wght-normal.DlzME5K_.woff2"},{"revision":null,"url":"_nuxt/inter-cyrillic-wght-normal.DqGufNeO.woff2"},{"revision":null,"url":"_nuxt/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2"},{"revision":null,"url":"_nuxt/hePW80VL.js"},{"revision":null,"url":"_nuxt/error-500.Bwd7zAaE.css"},{"revision":null,"url":"_nuxt/error-404.Bb87HomL.css"},{"revision":null,"url":"_nuxt/entry.KNdllmoL.css"},{"revision":null,"url":"_nuxt/board.fZYj3O-m.css"},{"revision":null,"url":"_nuxt/archivo-vietnamese-wght-normal.XAtsl5Q_.woff2"},{"revision":null,"url":"_nuxt/archivo-latin-wght-normal.E0tuGl4L.woff2"},{"revision":null,"url":"_nuxt/archivo-latin-ext-wght-normal.C4zznr8T.woff2"},{"revision":null,"url":"_nuxt/Dpe9TNcA.js"},{"revision":null,"url":"_nuxt/DFe-cDm2.js"},{"revision":null,"url":"_nuxt/D7fCPncR.js"},{"revision":null,"url":"_nuxt/CwurhZnh.js"},{"revision":null,"url":"_nuxt/CgUSTIM1.js"},{"revision":null,"url":"_nuxt/CXJnLmWv.js"},{"revision":null,"url":"_nuxt/CV6ukk-M.js"},{"revision":null,"url":"_nuxt/CTPNZj4T.js"},{"revision":null,"url":"_nuxt/CPlkxpge.js"},{"revision":null,"url":"_nuxt/CO4sDeSt.js"},{"revision":null,"url":"_nuxt/CLf2i_DM.js"},{"revision":null,"url":"_nuxt/CDWjMk9C.js"},{"revision":null,"url":"_nuxt/C25ROUa9.js"},{"revision":null,"url":"_nuxt/C-BDzEtI.js"},{"revision":null,"url":"_nuxt/BxlzUs1i.js"},{"revision":null,"url":"_nuxt/Bpoxvzh6.js"},{"revision":null,"url":"_nuxt/BdJIc1Xf.js"},{"revision":null,"url":"_nuxt/Bd17z0YL.js"},{"revision":null,"url":"_nuxt/BYZVrreW.js"},{"revision":null,"url":"_nuxt/BGD5AamG.js"},{"revision":null,"url":"_nuxt/BDTOz37p.js"},{"revision":null,"url":"_nuxt/BDNMzG2s.js"},{"revision":null,"url":"_nuxt/B2KlcBQ-.js"},{"revision":null,"url":"_nuxt/AgentView.B12D6ccj.css"},{"revision":"bff8cb35087735ca3272b598a917118a","url":"_nuxt/builds/latest.json"},{"revision":null,"url":"_nuxt/builds/meta/75cc4ea7-3027-463a-aa3e-29e474ed7173.json"}].map((e) => "/" + (typeof e === "string" ? e : e.url).replace(/^\//, ""))];
19
19
  sw.addEventListener("install", (e) => {
20
20
  e.waitUntil((async () => {
21
21
  const c = await caches.open(CACHE);
@@ -1,4 +1,4 @@
1
- import { s as sendError, cm as useStorage, aw as setResponseHeader } from '../nitro/nitro.mjs';
1
+ import { s as sendError, cv as useStorage, aw as setResponseHeader } from '../nitro/nitro.mjs';
2
2
  import fs from 'node:fs';
3
3
  import path from 'node:path';
4
4
 
@@ -1,5 +1,5 @@
1
1
  var name = "wherdr";
2
- var version = "2.3.0";
2
+ var version = "2.4.0";
3
3
  var license = "MIT";
4
4
  var type = "module";
5
5
  var description = "Unofficial mobile web client (PWA) to drive the coding agents running in Herdr";
@@ -3,7 +3,7 @@ import fs from 'node:fs';
3
3
  import os from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { p as pkg } from './package.mjs';
6
- import { cf as installMode, H as HerdrError, aa as log, cg as oneTapMode, cj as updateRunning } from '../nitro/nitro.mjs';
6
+ import { cp as installMode, H as HerdrError, aa as log, cq as oneTapMode, ct as updateRunning } from '../nitro/nitro.mjs';
7
7
  import { c as checkUpdate, R as REPO } from './updates.mjs';
8
8
 
9
9
  function wherdrDir(env = process.env) {
@@ -1,5 +1,5 @@
1
1
  import { p as pkg } from './package.mjs';
2
- import { cf as installMode, cg as oneTapMode, ch as updateCommand, ci as compareVersions } from '../nitro/nitro.mjs';
2
+ import { cp as installMode, cq as oneTapMode, cr as updateCommand, cs as compareVersions } from '../nitro/nitro.mjs';
3
3
 
4
4
  const REPO = "afloury/wherdr";
5
5
  const RELEASES_URL = `https://api.github.com/repos/${REPO}/releases?per_page=100`;
@@ -17,9 +17,16 @@ function createUpdateChecker(opts) {
17
17
  const res = await opts.fetch(RELEASES_URL);
18
18
  if (!res.ok) throw new Error("http");
19
19
  const releases = await res.json();
20
- const body = releases.filter((r) => !r.draft && !r.prerelease && /^v\d+\.\d+\.\d+$/.test(String(r.tag_name))).sort((a, b) => compareVersions(String(b.tag_name), String(a.tag_name)))[0];
20
+ const stable = releases.filter((r) => !r.draft && !r.prerelease && /^v\d+\.\d+\.\d+$/.test(String(r.tag_name))).sort((a, b) => compareVersions(String(b.tag_name), String(a.tag_name)));
21
+ const body = stable[0];
21
22
  if (!body || typeof body.tag_name !== "string") throw new Error("tag");
22
- const candidate = { version: body.tag_name.replace(/^v/, ""), url: typeof body.html_url === "string" ? body.html_url : "" };
23
+ const missed = [...new Set(stable.map((r) => String(r.tag_name).replace(/^v/, "")))].filter((version) => compareVersions(version, opts.current) > 0);
24
+ const candidate = {
25
+ version: body.tag_name.replace(/^v/, ""),
26
+ url: typeof body.html_url === "string" ? body.html_url : "",
27
+ missed,
28
+ truncated: releases.length >= 100
29
+ };
23
30
  const mode = installMode(opts.env.WHERDR_INSTALL);
24
31
  if (mode === "plugin") {
25
32
  const archive = `https://github.com/${REPO}/releases/download/v${candidate.version}/wherdr-${candidate.version}.tgz`;
@@ -59,7 +66,7 @@ function createUpdateChecker(opts) {
59
66
  }
60
67
  return async function check() {
61
68
  const mode = installMode(opts.env.WHERDR_INSTALL);
62
- const base = { current: opts.current, mode, command: updateCommand(mode, REPO), oneTap: oneTapMode(mode) };
69
+ const base = { current: opts.current, mode, command: updateCommand(mode, REPO), oneTap: oneTapMode(mode), behind: 0, missed: [], behindAtLeast: false };
63
70
  if (String(opts.env.WHERDR_UPDATE_CHECK || "").toLowerCase() === "off") return { ...base, latest: null, url: null, checked: false };
64
71
  if (now() >= nextAt) {
65
72
  pending != null ? pending : pending = refresh().finally(() => {
@@ -68,7 +75,13 @@ function createUpdateChecker(opts) {
68
75
  await pending;
69
76
  }
70
77
  const newer = cached && compareVersions(cached.version, opts.current) > 0;
71
- return { ...base, latest: newer ? cached.version : null, url: newer ? cached.url || null : null, checked: !!cached };
78
+ return {
79
+ ...base,
80
+ latest: newer ? cached.version : null,
81
+ url: newer ? cached.url || null : null,
82
+ checked: !!cached,
83
+ ...newer ? { behind: cached.missed.length, missed: cached.missed.slice(0, 5), behindAtLeast: cached.truncated } : {}
84
+ };
72
85
  };
73
86
  }
74
87
  function fetchUpdateResource(url, request = fetch) {
@@ -1,4 +1,4 @@
1
- import { ck as allMachines, $ as getMachine, H as HerdrError, a_ as splitId, aZ as herdrOn, p as poll, an as recentDirs, cl as joinId, a$ as getState } from '../nitro/nitro.mjs';
1
+ import { cu as allMachines, $ as getMachine, H as HerdrError, a_ as splitId, aZ as herdrOn, p as poll, an as recentDirs, bY as joinId, a$ as getState } from '../nitro/nitro.mjs';
2
2
 
3
3
  const opts = { trust_repository: true };
4
4
  async function machineWorktrees(m) {
@@ -1,4 +1,4 @@
1
- import { ct as networkReady, cu as ensureFresh, cv as gateDecision, cw as sameOrigin, cx as hostAllowed, k as auth, cy as checkRequestClient, cz as onNetworkReading } from '../nitro/nitro.mjs';
1
+ import { cC as networkReady, cD as ensureFresh, cE as gateDecision, cF as sameOrigin, cG as hostAllowed, k as auth, cH as checkRequestClient, cI as onNetworkReading } from '../nitro/nitro.mjs';
2
2
 
3
3
  var _a, _b;
4
4
  const WS_MAX = 256 * 1024;