wherdr 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{WLQjK8uJ.js → 8ksjcuDu.js} +51 -41
  3. package/.output/public/_nuxt/B7QP1TFs.js +23 -0
  4. package/.output/public/_nuxt/{CiYar6hg.js → BOpBIziZ.js} +2 -2
  5. package/.output/public/_nuxt/BWXdFfeg.js +17 -0
  6. package/.output/public/_nuxt/COFCNFpG.js +83 -0
  7. package/.output/public/_nuxt/{C2T9fQ4f.js → Cd8j9O5w.js} +1 -1
  8. package/.output/public/_nuxt/{C12eXl5z.js → CkZ8t6uB.js} +1 -1
  9. package/.output/public/_nuxt/{CctS2Xn6.js → D4Yz4rat.js} +4 -4
  10. package/.output/public/_nuxt/{B6qBWHWB.js → D7sxNXx1.js} +1 -1
  11. package/.output/public/_nuxt/DViwOclv.js +1 -0
  12. package/.output/public/_nuxt/DoD7Qb5P.js +30 -0
  13. package/.output/public/_nuxt/{BMIe8p_3.js → DyBZDSCV.js} +1 -1
  14. package/.output/public/_nuxt/builds/latest.json +1 -1
  15. package/.output/public/_nuxt/builds/meta/7afbf062-5369-4002-b20d-7a582ff6e0f1.json +1 -0
  16. package/.output/public/_nuxt/{entry.cKR16VqG.css → entry.Crt1r4l3.css} +1 -1
  17. package/.output/public/_nuxt/hePW80VL.js +1 -0
  18. package/.output/public/sw.js +1 -1
  19. package/.output/server/chunks/_/branding.mjs +1 -1
  20. package/.output/server/chunks/_/package.mjs +96 -0
  21. package/.output/server/chunks/_/plugins.mjs +1 -1
  22. package/.output/server/chunks/_/projectBoard.mjs +1 -1
  23. package/.output/server/chunks/_/projectsPlugin.mjs +1 -1
  24. package/.output/server/chunks/_/selfupdate.mjs +82 -0
  25. package/.output/server/chunks/_/updates.mjs +50 -0
  26. package/.output/server/chunks/_/worktrees.mjs +1 -1
  27. package/.output/server/chunks/_/ws.mjs +1 -1
  28. package/.output/server/chunks/nitro/nitro.mjs +1670 -899
  29. package/.output/server/chunks/raw/herdr-plugin.mjs +1 -1
  30. package/.output/server/chunks/routes/api/_..._.mjs +5 -1
  31. package/.output/server/chunks/routes/api/agents.post.mjs +5 -1
  32. package/.output/server/chunks/routes/api/ask-tab.post.mjs +5 -1
  33. package/.output/server/chunks/routes/api/attach.post.mjs +5 -1
  34. package/.output/server/chunks/routes/api/auth/disable.post.mjs +5 -1
  35. package/.output/server/chunks/routes/api/auth/lock-all.post.mjs +5 -1
  36. package/.output/server/chunks/routes/api/auth/lock.post.mjs +5 -1
  37. package/.output/server/chunks/routes/api/auth/login/options.post.mjs +5 -1
  38. package/.output/server/chunks/routes/api/auth/login/verify.post.mjs +5 -1
  39. package/.output/server/chunks/routes/api/auth/max-session.post.mjs +5 -1
  40. package/.output/server/chunks/routes/api/auth/register/options.post.mjs +5 -1
  41. package/.output/server/chunks/routes/api/auth/register/verify.post.mjs +5 -1
  42. package/.output/server/chunks/routes/api/auth/status.get.mjs +5 -1
  43. package/.output/server/chunks/routes/api/changes.get.mjs +5 -1
  44. package/.output/server/chunks/routes/api/chat/image.get.mjs +5 -1
  45. package/.output/server/chunks/routes/api/chat.get.mjs +5 -1
  46. package/.output/server/chunks/routes/api/choose.post.mjs +5 -1
  47. package/.output/server/chunks/routes/api/claude-statusline.post.mjs +5 -1
  48. package/.output/server/chunks/routes/api/close/status.get.mjs +5 -1
  49. package/.output/server/chunks/routes/api/close.post.mjs +5 -1
  50. package/.output/server/chunks/routes/api/codex-update.post.mjs +5 -1
  51. package/.output/server/chunks/routes/api/commands.get.mjs +5 -1
  52. package/.output/server/chunks/routes/api/config.get.mjs +5 -1
  53. package/.output/server/chunks/routes/api/dirs.get.mjs +5 -1
  54. package/.output/server/chunks/routes/api/dismiss.post.mjs +5 -1
  55. package/.output/server/chunks/routes/api/effort.post.mjs +5 -1
  56. package/.output/server/chunks/routes/api/efforts.get.mjs +5 -1
  57. package/.output/server/chunks/routes/api/file.post.mjs +5 -1
  58. package/.output/server/chunks/routes/api/gitroot.get.mjs +5 -1
  59. package/.output/server/chunks/routes/api/health.get.mjs +36 -0
  60. package/.output/server/chunks/routes/api/index.get.mjs +5 -1
  61. package/.output/server/chunks/routes/api/input.post.mjs +5 -1
  62. package/.output/server/chunks/routes/api/interrupt.post.mjs +5 -1
  63. package/.output/server/chunks/routes/api/isgit.get.mjs +5 -1
  64. package/.output/server/chunks/routes/api/machine/awake.get.mjs +5 -1
  65. package/.output/server/chunks/routes/api/machine/awake.post.mjs +5 -1
  66. package/.output/server/chunks/routes/api/machine/order.get.mjs +5 -1
  67. package/.output/server/chunks/routes/api/machine/order.post.mjs +5 -1
  68. package/.output/server/chunks/routes/api/machine/rename.post.mjs +5 -1
  69. package/.output/server/chunks/routes/api/menu.post.mjs +5 -1
  70. package/.output/server/chunks/routes/api/model.post.mjs +5 -1
  71. package/.output/server/chunks/routes/api/models.get.mjs +5 -1
  72. package/.output/server/chunks/routes/api/nav.post.mjs +5 -1
  73. package/.output/server/chunks/routes/api/onboarding.get.mjs +5 -1
  74. package/.output/server/chunks/routes/api/onboarding.post.mjs +5 -1
  75. package/.output/server/chunks/routes/api/phone.get.mjs +5 -6
  76. package/.output/server/chunks/routes/api/phone.post.mjs +5 -6
  77. package/.output/server/chunks/routes/api/plugins/actions.get.mjs +5 -1
  78. package/.output/server/chunks/routes/api/plugins/invoke.post.mjs +5 -1
  79. package/.output/server/chunks/routes/api/plugins/profiles.get.mjs +5 -1
  80. package/.output/server/chunks/routes/api/plugins/projects.get.mjs +5 -1
  81. package/.output/server/chunks/routes/api/plugins/projects.post.mjs +5 -1
  82. package/.output/server/chunks/routes/api/plugins/thread-limits.get.mjs +6 -2
  83. package/.output/server/chunks/routes/api/plugins/thread-limits.post.mjs +6 -2
  84. package/.output/server/chunks/routes/api/project/report.get.mjs +5 -1
  85. package/.output/server/chunks/routes/api/prompt.post.mjs +6 -2
  86. package/.output/server/chunks/routes/api/push/quiet.post.mjs +6 -2
  87. package/.output/server/chunks/routes/api/push/subscribe.post.mjs +6 -2
  88. package/.output/server/chunks/routes/api/push/test.post.mjs +6 -2
  89. package/.output/server/chunks/routes/api/push/unsubscribe.post.mjs +6 -2
  90. package/.output/server/chunks/routes/api/quotas.get.mjs +6 -2
  91. package/.output/server/chunks/routes/api/rename.post.mjs +5 -1
  92. package/.output/server/chunks/routes/api/requeue.post.mjs +6 -2
  93. package/.output/server/chunks/routes/api/restart.get.mjs +5 -1
  94. package/.output/server/chunks/routes/api/restart.post.mjs +5 -1
  95. package/.output/server/chunks/routes/api/reveal.post.mjs +5 -1
  96. package/.output/server/chunks/routes/api/screen-key.post.mjs +6 -2
  97. package/.output/server/chunks/routes/api/screen.get.mjs +6 -2
  98. package/.output/server/chunks/routes/api/search.get.mjs +6 -2
  99. package/.output/server/chunks/routes/api/seen.post.mjs +6 -2
  100. package/.output/server/chunks/routes/api/sessions.get.mjs +6 -2
  101. package/.output/server/chunks/routes/api/sessions.post.mjs +6 -2
  102. package/.output/server/chunks/routes/api/space.post.mjs +6 -2
  103. package/.output/server/chunks/routes/api/state.get.mjs +6 -2
  104. package/.output/server/chunks/routes/api/unqueue.post.mjs +6 -2
  105. package/.output/server/chunks/routes/api/update/status.get.mjs +38 -0
  106. package/.output/server/chunks/routes/api/update.get.mjs +11 -50
  107. package/.output/server/chunks/routes/api/update.post.mjs +41 -0
  108. package/.output/server/chunks/routes/api/upload.post.mjs +5 -1
  109. package/.output/server/chunks/routes/api/worktrees/remove.post.mjs +5 -1
  110. package/.output/server/chunks/routes/api/worktrees.get.mjs +5 -1
  111. package/.output/server/chunks/routes/favicon.ico.get.mjs +5 -1
  112. package/.output/server/chunks/routes/icons/_name_.get.mjs +6 -2
  113. package/.output/server/chunks/routes/renderer.mjs +7 -3
  114. package/.output/server/chunks/routes/uploads/_...name_.get.mjs +6 -2
  115. package/.output/server/chunks/routes/ws/_..._.mjs +6 -2
  116. package/.output/server/chunks/routes/ws/events.mjs +6 -2
  117. package/.output/server/chunks/routes/ws/mirror.mjs +6 -2
  118. package/.output/server/chunks/routes/ws/term.mjs +8 -4
  119. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  120. package/.output/server/index.mjs +6 -2
  121. package/.output/server/package.json +1 -1
  122. package/README.md +110 -23
  123. package/bin/lib/commands.mjs +42 -8
  124. package/bin/lib/core.mjs +17 -2
  125. package/bin/lib/tailnet.d.mts +12 -3
  126. package/bin/lib/tailnet.mjs +103 -25
  127. package/bin/lib/updater.mjs +267 -0
  128. package/package.json +2 -1
  129. package/.output/public/_nuxt/BpQH8Ho1.js +0 -1
  130. package/.output/public/_nuxt/BrAeJIZR.js +0 -30
  131. package/.output/public/_nuxt/CYxHnMNH.js +0 -83
  132. package/.output/public/_nuxt/DLLQgP0d.js +0 -1
  133. package/.output/public/_nuxt/Dwh-l2rQ.js +0 -17
  134. package/.output/public/_nuxt/builds/meta/6466b0ab-7935-460c-abdf-2ea632dae6d0.json +0 -1
  135. package/.output/public/_nuxt/whFLy_Ne.js +0 -23
  136. package/.output/server/chunks/_/phone.mjs +0 -343
@@ -0,0 +1 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));export{s as n,l as r,o as t};
@@ -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/yzABg5xl.js"},{"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/whFLy_Ne.js"},{"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/error-500.Bwd7zAaE.css"},{"revision":null,"url":"_nuxt/error-404.Bb87HomL.css"},{"revision":null,"url":"_nuxt/entry.cKR16VqG.css"},{"revision":null,"url":"_nuxt/bLP7Jj-b.js"},{"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/WLQjK8uJ.js"},{"revision":null,"url":"_nuxt/SiL1FJ5s.js"},{"revision":null,"url":"_nuxt/Dwh-l2rQ.js"},{"revision":null,"url":"_nuxt/DLLQgP0d.js"},{"revision":null,"url":"_nuxt/CiYar6hg.js"},{"revision":null,"url":"_nuxt/Ci8N4mWR.js"},{"revision":null,"url":"_nuxt/CctS2Xn6.js"},{"revision":null,"url":"_nuxt/CYxHnMNH.js"},{"revision":null,"url":"_nuxt/CXG-cOdh.js"},{"revision":null,"url":"_nuxt/CWwyK2XK.js"},{"revision":null,"url":"_nuxt/C2T9fQ4f.js"},{"revision":null,"url":"_nuxt/C12eXl5z.js"},{"revision":null,"url":"_nuxt/BrAeJIZR.js"},{"revision":null,"url":"_nuxt/BpQH8Ho1.js"},{"revision":null,"url":"_nuxt/Bd17z0YL.js"},{"revision":null,"url":"_nuxt/BMIe8p_3.js"},{"revision":null,"url":"_nuxt/BDNMzG2s.js"},{"revision":null,"url":"_nuxt/B6qBWHWB.js"},{"revision":null,"url":"_nuxt/AgentView.C4YOwvZG.css"},{"revision":"b0698e9fff42ccc1cf8ef50ceeaacdd7","url":"_nuxt/builds/latest.json"},{"revision":null,"url":"_nuxt/builds/meta/6466b0ab-7935-460c-abdf-2ea632dae6d0.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/yzABg5xl.js"},{"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/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.Crt1r4l3.css"},{"revision":null,"url":"_nuxt/bLP7Jj-b.js"},{"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/SiL1FJ5s.js"},{"revision":null,"url":"_nuxt/DyBZDSCV.js"},{"revision":null,"url":"_nuxt/DoD7Qb5P.js"},{"revision":null,"url":"_nuxt/DViwOclv.js"},{"revision":null,"url":"_nuxt/D7sxNXx1.js"},{"revision":null,"url":"_nuxt/D4Yz4rat.js"},{"revision":null,"url":"_nuxt/CkZ8t6uB.js"},{"revision":null,"url":"_nuxt/Ci8N4mWR.js"},{"revision":null,"url":"_nuxt/Cd8j9O5w.js"},{"revision":null,"url":"_nuxt/CXG-cOdh.js"},{"revision":null,"url":"_nuxt/CWwyK2XK.js"},{"revision":null,"url":"_nuxt/COFCNFpG.js"},{"revision":null,"url":"_nuxt/Bd17z0YL.js"},{"revision":null,"url":"_nuxt/BWXdFfeg.js"},{"revision":null,"url":"_nuxt/BOpBIziZ.js"},{"revision":null,"url":"_nuxt/BDNMzG2s.js"},{"revision":null,"url":"_nuxt/B7QP1TFs.js"},{"revision":null,"url":"_nuxt/AgentView.C4YOwvZG.css"},{"revision":null,"url":"_nuxt/8ksjcuDu.js"},{"revision":"1292385bc85e7918dcd3f376296d99dc","url":"_nuxt/builds/latest.json"},{"revision":null,"url":"_nuxt/builds/meta/7afbf062-5369-4002-b20d-7a582ff6e0f1.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, bo as useStorage, bp as setResponseHeader } from '../nitro/nitro.mjs';
1
+ import { s as sendError, bp as useStorage, bq as setResponseHeader } from '../nitro/nitro.mjs';
2
2
  import fs from 'node:fs';
3
3
  import path from 'node:path';
4
4
 
@@ -0,0 +1,96 @@
1
+ var name = "wherdr";
2
+ var version = "1.3.2";
3
+ var license = "MIT";
4
+ var type = "module";
5
+ var description = "Unofficial mobile web client (PWA) to drive the coding agents running in Herdr";
6
+ var keywords = [
7
+ "herdr",
8
+ "pwa",
9
+ "claude-code",
10
+ "codex",
11
+ "coding-agents",
12
+ "remote",
13
+ "mobile"
14
+ ];
15
+ var homepage = "https://wherdr.dev";
16
+ var repository = {
17
+ type: "git",
18
+ url: "git+https://github.com/afloury/wherdr.git"
19
+ };
20
+ var bugs = "https://github.com/afloury/wherdr/issues";
21
+ var bin = {
22
+ wherdr: "bin/wherdr.mjs"
23
+ };
24
+ var files = [
25
+ ".output",
26
+ "!.output/**/*.map",
27
+ "bin"
28
+ ];
29
+ var engines = {
30
+ node: ">=22"
31
+ };
32
+ var scripts = {
33
+ dev: "nuxt dev",
34
+ build: "nuxt build",
35
+ "build:demo": "VITE_WHERDR_DEMO=1 nuxt generate",
36
+ start: "HOST=${HOST:-127.0.0.1} PORT=${PORT:-7683} node .output/server/index.mjs",
37
+ typecheck: "nuxt typecheck",
38
+ test: "vitest run",
39
+ "test:e2e": "playwright test",
40
+ prepare: "nuxt prepare",
41
+ prepack: "nuxt build && node scripts/pack-output.mjs",
42
+ "check:leaks": "node scripts/check-leaks.mjs",
43
+ "hooks:install": "git config core.hooksPath .githooks"
44
+ };
45
+ var dependencies = {
46
+ "qrcode-terminal": "^0.12.0"
47
+ };
48
+ var devDependencies = {
49
+ "@fontsource-variable/archivo": "^5.3.0",
50
+ "@fontsource-variable/inter": "^5.3.0",
51
+ "@fontsource-variable/jetbrains-mono": "^5.3.0",
52
+ "@iconify-json/lucide": "^1.2.136",
53
+ "@nuxt/test-utils": "^4.3.3",
54
+ "@nuxt/ui": "^4.11.2",
55
+ "@playwright/test": "^1.63.0",
56
+ "@simplewebauthn/browser": "^13.3.0",
57
+ "@simplewebauthn/server": "^13.3.3",
58
+ "@types/node": "^22.0.0",
59
+ "@types/web-push": "^3.6.4",
60
+ "@vite-pwa/nuxt": "^1.1.1",
61
+ "@vue/test-utils": "^2.5.1",
62
+ "@xterm/addon-fit": "^0.10.0",
63
+ "@xterm/addon-webgl": "^0.18.0",
64
+ "@xterm/xterm": "^5.5.0",
65
+ dompurify: "^3.4.16",
66
+ "happy-dom": "^20.14.5",
67
+ marked: "^15.0.12",
68
+ nuxt: "^4.5.2",
69
+ tailwindcss: "^4.3.3",
70
+ typescript: "~5.9.3",
71
+ vitest: "^4.1.11",
72
+ vue: "^3.5.0",
73
+ "vue-router": "^4.5.0",
74
+ "vue-tsc": "^3.0.0",
75
+ "web-push": "^3.6.7"
76
+ };
77
+ const pkg = {
78
+ name: name,
79
+ version: version,
80
+ license: license,
81
+ type: type,
82
+ description: description,
83
+ keywords: keywords,
84
+ homepage: homepage,
85
+ repository: repository,
86
+ bugs: bugs,
87
+ bin: bin,
88
+ files: files,
89
+ engines: engines,
90
+ scripts: scripts,
91
+ dependencies: dependencies,
92
+ devDependencies: devDependencies
93
+ };
94
+
95
+ export { pkg as p };
96
+ //# sourceMappingURL=package.mjs.map
@@ -1,4 +1,4 @@
1
- import { m as machineFor, aB as herdrOn, H as HerdrError, f as findPane, a5 as splitId, Q as log, ad as underHome, aj as isGitRepo, o as fmt, aC as getState, F as sleep, aD as HERDR_CHILD_ENV, V as HOME, a1 as IN_DOCKER, aE as HERDR_BIN } from '../nitro/nitro.mjs';
1
+ import { m as machineFor, aA as herdrOn, H as HerdrError, f as findPane, a5 as splitId, Q as log, ad as underHome, aj as isGitRepo, o as fmt, aB as getState, F as sleep, aC as HERDR_CHILD_ENV, V as HOME, a1 as IN_DOCKER, aD as HERDR_BIN } from '../nitro/nitro.mjs';
2
2
  import { execFile } from 'node:child_process';
3
3
  import { b as binaryOn } from './projectBoard.mjs';
4
4
  import { c as cleanProjectInput, r as repoArgument, a as projectCommandArgs, b as parseProfileList, s as setupHeader, t as tickerRunning, P as PROJECT_INPUTS, d as readOnlyMessage } from './projectsActions.mjs';
@@ -1,6 +1,6 @@
1
1
  import { execFile } from 'node:child_process';
2
2
  import path from 'node:path';
3
- import { aF as currentMachineSlots, aG as paneBaseMachine, H as HerdrError, m as machineFor, aD as HERDR_CHILD_ENV, aE as HERDR_BIN, aB as herdrOn, aH as projectOf, aI as isProjectThread } from '../nitro/nitro.mjs';
3
+ import { aE as currentMachineSlots, aF as paneBaseMachine, H as HerdrError, m as machineFor, aC as HERDR_CHILD_ENV, aD as HERDR_BIN, aA as herdrOn, aG as projectOf, aH as isProjectThread } from '../nitro/nitro.mjs';
4
4
 
5
5
  const fold = (s) => s.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
6
6
  const KINDS = [
@@ -1,6 +1,6 @@
1
1
  import { promises, constants } from 'node:fs';
2
2
  import path from 'node:path';
3
- import { H as HerdrError, o as fmt, aB as herdrOn } from '../nitro/nitro.mjs';
3
+ import { H as HerdrError, o as fmt, aA as herdrOn } from '../nitro/nitro.mjs';
4
4
 
5
5
  const PROJECTS_REPO = "eliasstravik/herdr-projects";
6
6
  const PROJECTS_INSTALL_ARGS = ["plugin", "install", PROJECTS_REPO, "--yes"];
@@ -0,0 +1,82 @@
1
+ import { spawnSync, spawn } from 'node:child_process';
2
+ import fs from 'node:fs';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
5
+ import { p as pkg } from './package.mjs';
6
+ import { bh as installMode, H as HerdrError, Q as log, bi as oneTapMode, bl as updateRunning } from '../nitro/nitro.mjs';
7
+ import { c as checkUpdate } from './updates.mjs';
8
+
9
+ function wherdrDir(env = process.env) {
10
+ const home = os.homedir();
11
+ const dir = env.WHERDR_DIR || path.join(home, "wherdr");
12
+ return path.resolve(dir === "~" ? home : dir.startsWith("~/") ? path.join(home, dir.slice(2)) : dir);
13
+ }
14
+ function readJob(dir) {
15
+ try {
16
+ const job = JSON.parse(fs.readFileSync(path.join(dir, "update.json"), "utf8"));
17
+ return job && typeof job.state === "string" ? job : null;
18
+ } catch {
19
+ return null;
20
+ }
21
+ }
22
+ function buildPlan(o) {
23
+ if (!oneTapMode(o.mode)) throw new HerdrError("update_manual", "This installation cannot update itself: run the update command");
24
+ if (updateRunning(o.job, o.now)) throw new HerdrError("update_running", "An update is already in progress");
25
+ if (!o.latest || o.to !== o.latest) throw new HerdrError("update_version", "No newer version to install");
26
+ return {
27
+ kind: o.mode,
28
+ from: o.current,
29
+ to: o.latest,
30
+ root: o.root,
31
+ dir: o.dir,
32
+ runtime: o.runtime,
33
+ serverPid: o.pid,
34
+ port: String(o.env.NITRO_PORT || o.env.PORT || 3e3),
35
+ host: String(o.env.NITRO_HOST || o.env.HOST || "127.0.0.1"),
36
+ registry: o.env.npm_config_registry || "https://registry.npmjs.org"
37
+ };
38
+ }
39
+ const packageRoot = () => process.env.WHERDR_ROOT || path.resolve(path.dirname(process.argv[1] || ""), "..", "..");
40
+ async function startUpdate(to) {
41
+ const dir = wherdrDir();
42
+ const info = await checkUpdate();
43
+ const root = packageRoot();
44
+ const plan = buildPlan({
45
+ mode: installMode(process.env.WHERDR_INSTALL),
46
+ current: pkg.version,
47
+ latest: info.latest,
48
+ to,
49
+ job: readJob(dir),
50
+ now: Date.now(),
51
+ root,
52
+ dir,
53
+ runtime: process.execPath,
54
+ pid: process.pid,
55
+ env: process.env
56
+ });
57
+ const source = path.join(root, "bin", "lib", "updater.mjs");
58
+ if (!fs.existsSync(source)) throw new HerdrError("update_manual", "The updater is missing from this installation: run the update command");
59
+ const work = path.join(dir, "update");
60
+ fs.mkdirSync(work, { recursive: true });
61
+ const updater = path.join(work, "updater.mjs");
62
+ const planFile = path.join(work, "plan.json");
63
+ fs.copyFileSync(source, updater);
64
+ fs.writeFileSync(planFile, `${JSON.stringify(plan, null, 2)}
65
+ `);
66
+ const now = Date.now();
67
+ const job = { state: "installing", from: plan.from, to: plan.to, mode: plan.kind, startedAt: now, updatedAt: now };
68
+ fs.writeFileSync(path.join(dir, "update.json"), `${JSON.stringify(job)}
69
+ `);
70
+ const out = fs.openSync(path.join(dir, "update.log"), "a");
71
+ const scoped = !!process.env.INVOCATION_ID && spawnSync("systemd-run", ["--version"], { stdio: "ignore" }).status === 0;
72
+ const [cmd, args] = scoped ? ["systemd-run", ["--user", "--scope", "--collect", "--quiet", process.execPath, updater, planFile]] : [process.execPath, [updater, planFile]];
73
+ const child = spawn(cmd, args, { cwd: dir, env: process.env, detached: true, stdio: ["ignore", out, out] });
74
+ fs.closeSync(out);
75
+ child.on("error", (e) => log(`update: ${e.message}`));
76
+ child.unref();
77
+ log(`update: ${plan.from} \u2192 ${plan.to} (${plan.kind}) started, pid ${child.pid}`);
78
+ return job;
79
+ }
80
+
81
+ export { readJob as r, startUpdate as s, wherdrDir as w };
82
+ //# sourceMappingURL=selfupdate.mjs.map
@@ -0,0 +1,50 @@
1
+ import { p as pkg } from './package.mjs';
2
+ import { bh as installMode, bi as oneTapMode, bj as updateCommand, bk as compareVersions } from '../nitro/nitro.mjs';
3
+
4
+ const REPO = "afloury/wherdr";
5
+ const RELEASES_URL = `https://api.github.com/repos/${REPO}/releases/latest`;
6
+ const DAY_MS = 24 * 60 * 60 * 1e3;
7
+ const RETRY_MS = 60 * 60 * 1e3;
8
+ function createUpdateChecker(opts) {
9
+ var _a;
10
+ const now = (_a = opts.now) != null ? _a : Date.now;
11
+ let cached = null;
12
+ let nextAt = 0;
13
+ let pending = null;
14
+ async function refresh() {
15
+ try {
16
+ const res = await opts.fetch(RELEASES_URL);
17
+ if (!res.ok) throw new Error("http");
18
+ const body = await res.json();
19
+ if (typeof body.tag_name !== "string") throw new Error("tag");
20
+ cached = { version: body.tag_name.replace(/^v/, ""), url: typeof body.html_url === "string" ? body.html_url : "" };
21
+ nextAt = now() + DAY_MS;
22
+ } catch {
23
+ nextAt = now() + RETRY_MS;
24
+ }
25
+ }
26
+ return async function check() {
27
+ const mode = installMode(opts.env.WHERDR_INSTALL);
28
+ const base = { current: opts.current, mode, command: updateCommand(mode, REPO), oneTap: oneTapMode(mode) };
29
+ if (String(opts.env.WHERDR_UPDATE_CHECK || "").toLowerCase() === "off") return { ...base, latest: null, url: null, checked: false };
30
+ if (now() >= nextAt) {
31
+ pending != null ? pending : pending = refresh().finally(() => {
32
+ pending = null;
33
+ });
34
+ await pending;
35
+ }
36
+ const newer = cached && compareVersions(cached.version, opts.current) > 0;
37
+ return { ...base, latest: newer ? cached.version : null, url: newer ? cached.url || null : null, checked: !!cached };
38
+ };
39
+ }
40
+ const checkUpdate = createUpdateChecker({
41
+ current: pkg.version,
42
+ env: process.env,
43
+ fetch: (url) => fetch(url, {
44
+ headers: { accept: "application/vnd.github+json", "user-agent": "wherdr" },
45
+ signal: AbortSignal.timeout(1e4)
46
+ })
47
+ });
48
+
49
+ export { checkUpdate as c };
50
+ //# sourceMappingURL=updates.mjs.map
@@ -1,4 +1,4 @@
1
- import { bl as allMachines, G as getMachine, H as HerdrError, a5 as splitId, aB as herdrOn, p as poll, bm as recentDirs, bn as joinId, aC as getState } from '../nitro/nitro.mjs';
1
+ import { bm as allMachines, G as getMachine, H as HerdrError, a5 as splitId, aA as herdrOn, p as poll, bn as recentDirs, bo as joinId, aB 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 { bv as hostAllowed, bw as sameOrigin, k as auth } from '../nitro/nitro.mjs';
1
+ import { bw as hostAllowed, bx as sameOrigin, k as auth } from '../nitro/nitro.mjs';
2
2
 
3
3
  var _a, _b;
4
4
  const WS_MAX = 256 * 1024;