wherdr 1.2.0 → 1.3.1

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 (124) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{AgentView.DE2GDt4O.css → AgentView.C4YOwvZG.css} +1 -1
  3. package/.output/public/_nuxt/{BIA9pZvC.js → B6qBWHWB.js} +1 -1
  4. package/.output/public/_nuxt/BMIe8p_3.js +2 -0
  5. package/.output/public/_nuxt/BrAeJIZR.js +30 -0
  6. package/.output/public/_nuxt/C12eXl5z.js +1 -0
  7. package/.output/public/_nuxt/{DxO1TBoK.js → C2T9fQ4f.js} +1 -1
  8. package/.output/public/_nuxt/CYxHnMNH.js +83 -0
  9. package/.output/public/_nuxt/{D903WmCE.js → CctS2Xn6.js} +1 -1
  10. package/.output/public/_nuxt/{Bta8at9w.js → CiYar6hg.js} +1 -1
  11. package/.output/public/_nuxt/{CjKICX3g.js → Dwh-l2rQ.js} +11 -11
  12. package/.output/public/_nuxt/{e5N4AqCN.js → WLQjK8uJ.js} +41 -41
  13. package/.output/public/_nuxt/builds/latest.json +1 -1
  14. package/.output/public/_nuxt/builds/meta/6466b0ab-7935-460c-abdf-2ea632dae6d0.json +1 -0
  15. package/.output/public/_nuxt/{entry.SHBiCXBL.css → entry.cKR16VqG.css} +1 -1
  16. package/.output/public/_nuxt/whFLy_Ne.js +23 -0
  17. package/.output/public/sw.js +1 -1
  18. package/.output/server/chunks/_/branding.mjs +1 -1
  19. package/.output/server/chunks/_/plugins.mjs +10 -2
  20. package/.output/server/chunks/_/worktrees.mjs +1 -1
  21. package/.output/server/chunks/_/ws.mjs +1 -1
  22. package/.output/server/chunks/nitro/nitro.mjs +626 -436
  23. package/.output/server/chunks/raw/bump-homebrew.mjs +7 -0
  24. package/.output/server/chunks/raw/herdr-plugin.mjs +1 -1
  25. package/.output/server/chunks/routes/api/_..._.mjs +1 -0
  26. package/.output/server/chunks/routes/api/agents.post.mjs +1 -0
  27. package/.output/server/chunks/routes/api/ask-tab.post.mjs +1 -0
  28. package/.output/server/chunks/routes/api/attach.post.mjs +1 -0
  29. package/.output/server/chunks/routes/api/auth/disable.post.mjs +1 -0
  30. package/.output/server/chunks/routes/api/auth/lock-all.post.mjs +1 -0
  31. package/.output/server/chunks/routes/api/auth/lock.post.mjs +1 -0
  32. package/.output/server/chunks/routes/api/auth/login/options.post.mjs +1 -0
  33. package/.output/server/chunks/routes/api/auth/login/verify.post.mjs +1 -0
  34. package/.output/server/chunks/routes/api/auth/max-session.post.mjs +1 -0
  35. package/.output/server/chunks/routes/api/auth/register/options.post.mjs +1 -0
  36. package/.output/server/chunks/routes/api/auth/register/verify.post.mjs +1 -0
  37. package/.output/server/chunks/routes/api/auth/status.get.mjs +1 -0
  38. package/.output/server/chunks/routes/api/changes.get.mjs +1 -0
  39. package/.output/server/chunks/routes/api/chat/image.get.mjs +1 -0
  40. package/.output/server/chunks/routes/api/chat.get.mjs +1 -0
  41. package/.output/server/chunks/routes/api/choose.post.mjs +1 -0
  42. package/.output/server/chunks/routes/api/claude-statusline.post.mjs +1 -0
  43. package/.output/server/chunks/routes/api/close/status.get.mjs +1 -0
  44. package/.output/server/chunks/routes/api/close.post.mjs +1 -0
  45. package/.output/server/chunks/routes/api/codex-update.post.mjs +1 -0
  46. package/.output/server/chunks/routes/api/commands.get.mjs +1 -0
  47. package/.output/server/chunks/routes/api/config.get.mjs +1 -0
  48. package/.output/server/chunks/routes/api/dirs.get.mjs +1 -0
  49. package/.output/server/chunks/routes/api/dismiss.post.mjs +1 -0
  50. package/.output/server/chunks/routes/api/effort.post.mjs +1 -0
  51. package/.output/server/chunks/routes/api/efforts.get.mjs +1 -0
  52. package/.output/server/chunks/routes/api/file.post.mjs +1 -0
  53. package/.output/server/chunks/routes/api/gitroot.get.mjs +1 -0
  54. package/.output/server/chunks/routes/api/index.get.mjs +1 -0
  55. package/.output/server/chunks/routes/api/input.post.mjs +1 -0
  56. package/.output/server/chunks/routes/api/interrupt.post.mjs +1 -0
  57. package/.output/server/chunks/routes/api/isgit.get.mjs +1 -0
  58. package/.output/server/chunks/routes/api/machine/awake.get.mjs +1 -0
  59. package/.output/server/chunks/routes/api/machine/awake.post.mjs +1 -0
  60. package/.output/server/chunks/routes/api/machine/order.get.mjs +1 -0
  61. package/.output/server/chunks/routes/api/machine/order.post.mjs +1 -0
  62. package/.output/server/chunks/routes/api/machine/rename.post.mjs +1 -0
  63. package/.output/server/chunks/routes/api/menu.post.mjs +1 -0
  64. package/.output/server/chunks/routes/api/model.post.mjs +1 -0
  65. package/.output/server/chunks/routes/api/models.get.mjs +1 -0
  66. package/.output/server/chunks/routes/api/nav.post.mjs +1 -0
  67. package/.output/server/chunks/routes/api/onboarding.get.mjs +1 -0
  68. package/.output/server/chunks/routes/api/onboarding.post.mjs +1 -0
  69. package/.output/server/chunks/routes/api/phone.get.mjs +1 -0
  70. package/.output/server/chunks/routes/api/phone.post.mjs +1 -0
  71. package/.output/server/chunks/routes/api/plugins/actions.get.mjs +1 -0
  72. package/.output/server/chunks/routes/api/plugins/invoke.post.mjs +1 -0
  73. package/.output/server/chunks/routes/api/plugins/profiles.get.mjs +1 -0
  74. package/.output/server/chunks/routes/api/plugins/projects.get.mjs +1 -0
  75. package/.output/server/chunks/routes/api/plugins/projects.post.mjs +1 -0
  76. package/.output/server/chunks/routes/api/plugins/thread-limits.get.mjs +1 -0
  77. package/.output/server/chunks/routes/api/plugins/thread-limits.post.mjs +1 -0
  78. package/.output/server/chunks/routes/api/project/report.get.mjs +1 -0
  79. package/.output/server/chunks/routes/api/prompt.post.mjs +1 -0
  80. package/.output/server/chunks/routes/api/push/quiet.post.mjs +1 -0
  81. package/.output/server/chunks/routes/api/push/subscribe.post.mjs +1 -0
  82. package/.output/server/chunks/routes/api/push/test.post.mjs +1 -0
  83. package/.output/server/chunks/routes/api/push/unsubscribe.post.mjs +1 -0
  84. package/.output/server/chunks/routes/api/quotas.get.mjs +1 -0
  85. package/.output/server/chunks/routes/api/rename.post.mjs +1 -0
  86. package/.output/server/chunks/routes/api/requeue.post.mjs +1 -0
  87. package/.output/server/chunks/routes/api/restart.get.mjs +1 -0
  88. package/.output/server/chunks/routes/api/restart.post.mjs +1 -0
  89. package/.output/server/chunks/routes/api/reveal.post.mjs +1 -0
  90. package/.output/server/chunks/routes/api/screen-key.post.mjs +1 -0
  91. package/.output/server/chunks/routes/api/screen.get.mjs +8 -5
  92. package/.output/server/chunks/routes/api/search.get.mjs +2 -1
  93. package/.output/server/chunks/routes/api/seen.post.mjs +2 -1
  94. package/.output/server/chunks/routes/api/sessions.get.mjs +2 -1
  95. package/.output/server/chunks/routes/api/sessions.post.mjs +2 -1
  96. package/.output/server/chunks/routes/api/space.post.mjs +2 -1
  97. package/.output/server/chunks/routes/api/state.get.mjs +1 -0
  98. package/.output/server/chunks/routes/api/unqueue.post.mjs +2 -1
  99. package/.output/server/chunks/routes/api/update.get.mjs +3 -2
  100. package/.output/server/chunks/routes/api/upload.post.mjs +1 -0
  101. package/.output/server/chunks/routes/api/worktrees/remove.post.mjs +1 -0
  102. package/.output/server/chunks/routes/api/worktrees.get.mjs +1 -0
  103. package/.output/server/chunks/routes/favicon.ico.get.mjs +1 -0
  104. package/.output/server/chunks/routes/icons/_name_.get.mjs +2 -1
  105. package/.output/server/chunks/routes/renderer.mjs +3 -2
  106. package/.output/server/chunks/routes/uploads/_...name_.get.mjs +2 -1
  107. package/.output/server/chunks/routes/ws/_..._.mjs +2 -1
  108. package/.output/server/chunks/routes/ws/events.mjs +2 -1
  109. package/.output/server/chunks/routes/ws/mirror.mjs +1 -1
  110. package/.output/server/chunks/routes/ws/term.mjs +2 -96
  111. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  112. package/.output/server/index.mjs +2 -1
  113. package/.output/server/package.json +1 -1
  114. package/README.md +107 -23
  115. package/bin/lib/brew.mjs +86 -0
  116. package/bin/lib/commands.mjs +32 -8
  117. package/bin/lib/core.mjs +7 -2
  118. package/package.json +1 -1
  119. package/.output/public/_nuxt/BDI8xNSb.js +0 -2
  120. package/.output/public/_nuxt/BevNMnQ2.js +0 -83
  121. package/.output/public/_nuxt/CA9mI3eg.js +0 -23
  122. package/.output/public/_nuxt/DBu2-cEy.js +0 -30
  123. package/.output/public/_nuxt/DJE_XMLO.js +0 -1
  124. package/.output/public/_nuxt/builds/meta/211609c0-be04-46c5-a6b0-566bc0c4a3dd.json +0 -1
@@ -19,6 +19,7 @@ import webpush from 'web-push';
19
19
  import os from 'node:os';
20
20
  import { spawn, execFile } from 'node:child_process';
21
21
  import net from 'node:net';
22
+ import readline from 'node:readline';
22
23
  import fs$1 from 'node:fs/promises';
23
24
  import { fileURLToPath } from 'node:url';
24
25
  import { verifyAuthenticationResponse, generateAuthenticationOptions, verifyRegistrationResponse, generateRegistrationOptions } from '@simplewebauthn/server';
@@ -8641,79 +8642,83 @@ async function dispose(driver) {
8641
8642
  const _assets = {
8642
8643
  ["scripts:build-nerd-font.py"]: {
8643
8644
  import: () => import('../raw/build-nerd-font.mjs').then(r => r.default || r),
8644
- meta: {"type":"text/plain; charset=utf-8","etag":"\"13aa-ys9YUI0kyQcBWrUDXjdBVLF8Z3E\"","mtime":"2026-10-08T05:18:41.271Z"}
8645
+ meta: {"type":"text/plain; charset=utf-8","etag":"\"13aa-ys9YUI0kyQcBWrUDXjdBVLF8Z3E\"","mtime":"2026-10-08T11:43:41.732Z"}
8645
8646
  },
8646
8647
  ["scripts:build-terminal-font.py"]: {
8647
8648
  import: () => import('../raw/build-terminal-font.mjs').then(r => r.default || r),
8648
- meta: {"type":"text/plain; charset=utf-8","etag":"\"cf5-BDqHg2xDFu+6dg84HBWtyBtrEoU\"","mtime":"2026-10-08T05:18:41.271Z"}
8649
+ meta: {"type":"text/plain; charset=utf-8","etag":"\"cf5-BDqHg2xDFu+6dg84HBWtyBtrEoU\"","mtime":"2026-10-08T11:43:41.732Z"}
8650
+ },
8651
+ ["scripts:bump-homebrew.sh"]: {
8652
+ import: () => import('../raw/bump-homebrew.mjs').then(r => r.default || r),
8653
+ meta: {"type":"application/x-sh","etag":"\"61b-suAgb/6azMZO/UmEjog8x0wZsQA\"","mtime":"2026-10-08T11:43:41.732Z"}
8649
8654
  },
8650
8655
  ["scripts:check-leaks.mjs"]: {
8651
8656
  import: () => import('../raw/check-leaks.mjs').then(r => r.default || r),
8652
- meta: {"type":"text/javascript; charset=utf-8","etag":"\"35b3-41HZueHfw7xuicx4q83qwdTEpbc\"","mtime":"2026-10-08T05:18:41.271Z"}
8657
+ meta: {"type":"text/javascript; charset=utf-8","etag":"\"35b3-41HZueHfw7xuicx4q83qwdTEpbc\"","mtime":"2026-10-08T11:43:41.732Z"}
8653
8658
  },
8654
8659
  ["scripts:dev.wherdr.open.plist"]: {
8655
8660
  import: () => import('../raw/dev.wherdr.open.mjs').then(r => r.default || r),
8656
- meta: {"type":"text/plain; charset=utf-8","etag":"\"1de-12VO2xq63mciP26rEzRh3cGfEkI\"","mtime":"2026-10-08T05:18:41.272Z"}
8661
+ meta: {"type":"text/plain; charset=utf-8","etag":"\"1de-12VO2xq63mciP26rEzRh3cGfEkI\"","mtime":"2026-10-08T11:43:41.732Z"}
8657
8662
  },
8658
8663
  ["scripts:docker-entrypoint.sh"]: {
8659
8664
  import: () => import('../raw/docker-entrypoint.mjs').then(r => r.default || r),
8660
- meta: {"type":"application/x-sh","etag":"\"3f3-8om3/mMriIIJYO+YcdXNJsv8tkI\"","mtime":"2026-10-08T05:18:41.272Z"}
8665
+ meta: {"type":"application/x-sh","etag":"\"3f3-8om3/mMriIIJYO+YcdXNJsv8tkI\"","mtime":"2026-10-08T11:43:41.732Z"}
8661
8666
  },
8662
8667
  ["scripts:herdr-plugin.sh"]: {
8663
8668
  import: () => import('../raw/herdr-plugin.mjs').then(r => r.default || r),
8664
- meta: {"type":"application/x-sh","etag":"\"887f-F/dD9YvP8KxGS4qYILnJsc+sKuw\"","mtime":"2026-10-08T05:18:41.272Z"}
8669
+ meta: {"type":"application/x-sh","etag":"\"89ea-WMEExeYOqeXl5Lacbu/zP6mb8fY\"","mtime":"2026-10-08T11:43:41.732Z"}
8665
8670
  },
8666
8671
  ["scripts:install-claude-statusline.sh"]: {
8667
8672
  import: () => import('../raw/install-claude-statusline.mjs').then(r => r.default || r),
8668
- meta: {"type":"application/x-sh","etag":"\"db6-p7KGlvbZ+Qjt+JiT5yVtU4w3kfg\"","mtime":"2026-10-08T05:18:41.272Z"}
8673
+ meta: {"type":"application/x-sh","etag":"\"db6-p7KGlvbZ+Qjt+JiT5yVtU4w3kfg\"","mtime":"2026-10-08T11:43:41.732Z"}
8669
8674
  },
8670
8675
  ["scripts:install-host-open.sh"]: {
8671
8676
  import: () => import('../raw/install-host-open.mjs').then(r => r.default || r),
8672
- meta: {"type":"application/x-sh","etag":"\"103a-/zplHeQSS471/Vz3quwajHmzFQs\"","mtime":"2026-10-08T05:18:41.273Z"}
8677
+ meta: {"type":"application/x-sh","etag":"\"103a-/zplHeQSS471/Vz3quwajHmzFQs\"","mtime":"2026-10-08T11:43:41.732Z"}
8673
8678
  },
8674
8679
  ["scripts:pack-output.mjs"]: {
8675
8680
  import: () => import('../raw/pack-output.mjs').then(r => r.default || r),
8676
- meta: {"type":"text/javascript; charset=utf-8","etag":"\"54b-eU4eNNIxIecG1kwaLdtiTYODSSI\"","mtime":"2026-10-08T05:18:41.273Z"}
8681
+ meta: {"type":"text/javascript; charset=utf-8","etag":"\"54b-eU4eNNIxIecG1kwaLdtiTYODSSI\"","mtime":"2026-10-08T11:43:41.732Z"}
8677
8682
  },
8678
8683
  ["scripts:reveal.sh"]: {
8679
8684
  import: () => import('../raw/reveal.mjs').then(r => r.default || r),
8680
- meta: {"type":"application/x-sh","etag":"\"72e-h/LTEU7exXdiR3GKqhj71UOwAqQ\"","mtime":"2026-10-08T05:18:41.273Z"}
8685
+ meta: {"type":"application/x-sh","etag":"\"72e-h/LTEU7exXdiR3GKqhj71UOwAqQ\"","mtime":"2026-10-08T11:43:41.732Z"}
8681
8686
  },
8682
8687
  ["scripts:wherdr-open.sh"]: {
8683
8688
  import: () => import('../raw/wherdr-open.mjs').then(r => r.default || r),
8684
- meta: {"type":"application/x-sh","etag":"\"b5b-U5OyQk3hziU9KiUyB/1FT5TkOxk\"","mtime":"2026-10-08T05:18:41.273Z"}
8689
+ meta: {"type":"application/x-sh","etag":"\"b5b-U5OyQk3hziU9KiUyB/1FT5TkOxk\"","mtime":"2026-10-08T11:43:41.732Z"}
8685
8690
  },
8686
8691
  ["server:branding:favicon.ico"]: {
8687
8692
  import: () => import('../raw/favicon.mjs').then(r => r.default || r),
8688
- meta: {"type":"image/vnd.microsoft.icon","etag":"\"3aee-Oem7XTWv+9HEwv9u/3K5QcIjS3E\"","mtime":"2026-10-08T05:18:41.286Z"}
8693
+ meta: {"type":"image/vnd.microsoft.icon","etag":"\"3aee-Oem7XTWv+9HEwv9u/3K5QcIjS3E\"","mtime":"2026-10-08T11:43:41.734Z"}
8689
8694
  },
8690
8695
  ["server:branding:icons:apple-touch-icon.png"]: {
8691
8696
  import: () => import('../raw/apple-touch-icon.mjs').then(r => r.default || r),
8692
- meta: {"type":"image/png","etag":"\"1f8-AVRrBnAhalXrGkFPGdvl0fM7DH8\"","mtime":"2026-10-08T05:18:41.286Z"}
8697
+ meta: {"type":"image/png","etag":"\"1f8-AVRrBnAhalXrGkFPGdvl0fM7DH8\"","mtime":"2026-10-08T11:43:41.734Z"}
8693
8698
  },
8694
8699
  ["server:branding:icons:favicon-32.png"]: {
8695
8700
  import: () => import('../raw/favicon-32.mjs').then(r => r.default || r),
8696
- meta: {"type":"image/png","etag":"\"a3-hAEc+Ymq1aYS3kFLyZK/H18Pge8\"","mtime":"2026-10-08T05:18:41.287Z"}
8701
+ meta: {"type":"image/png","etag":"\"a3-hAEc+Ymq1aYS3kFLyZK/H18Pge8\"","mtime":"2026-10-08T11:43:41.734Z"}
8697
8702
  },
8698
8703
  ["server:branding:icons:icon-192.png"]: {
8699
8704
  import: () => import('../raw/icon-192.mjs').then(r => r.default || r),
8700
- meta: {"type":"image/png","etag":"\"222-kioUoPaSCUaRhKKWw0PRtFbAhxk\"","mtime":"2026-10-08T05:18:41.287Z"}
8705
+ meta: {"type":"image/png","etag":"\"222-kioUoPaSCUaRhKKWw0PRtFbAhxk\"","mtime":"2026-10-08T11:43:41.734Z"}
8701
8706
  },
8702
8707
  ["server:branding:icons:icon-512-maskable.png"]: {
8703
8708
  import: () => import('../raw/icon-512-maskable.mjs').then(r => r.default || r),
8704
- meta: {"type":"image/png","etag":"\"84b-mCXgbBkXk7sqOhmJ8hjp80SN3Qk\"","mtime":"2026-10-08T05:18:41.287Z"}
8709
+ meta: {"type":"image/png","etag":"\"84b-mCXgbBkXk7sqOhmJ8hjp80SN3Qk\"","mtime":"2026-10-08T11:43:41.734Z"}
8705
8710
  },
8706
8711
  ["server:branding:icons:icon-512.png"]: {
8707
8712
  import: () => import('../raw/icon-512.mjs').then(r => r.default || r),
8708
- meta: {"type":"image/png","etag":"\"8fc-ZwRMqAqQZeLLx4iNTZxs09C4Q1I\"","mtime":"2026-10-08T05:18:41.287Z"}
8713
+ meta: {"type":"image/png","etag":"\"8fc-ZwRMqAqQZeLLx4iNTZxs09C4Q1I\"","mtime":"2026-10-08T11:43:41.734Z"}
8709
8714
  },
8710
8715
  ["server:branding:icons:icon-maskable.svg"]: {
8711
8716
  import: () => import('../raw/icon-maskable.mjs').then(r => r.default || r),
8712
- meta: {"type":"image/svg+xml","etag":"\"4a1-7XtnuN5ZOwiwIjpgpj+/Rg9LssY\"","mtime":"2026-10-08T05:18:41.287Z"}
8717
+ meta: {"type":"image/svg+xml","etag":"\"4a1-7XtnuN5ZOwiwIjpgpj+/Rg9LssY\"","mtime":"2026-10-08T11:43:41.734Z"}
8713
8718
  },
8714
8719
  ["server:branding:icons:icon.svg"]: {
8715
8720
  import: () => import('../raw/icon.mjs').then(r => r.default || r),
8716
- meta: {"type":"image/svg+xml","etag":"\"49c-O1XxkWwKTf6VBoC0i4TEPdGPsCw\"","mtime":"2026-10-08T05:18:41.287Z"}
8721
+ meta: {"type":"image/svg+xml","etag":"\"49c-O1XxkWwKTf6VBoC0i4TEPdGPsCw\"","mtime":"2026-10-08T11:43:41.734Z"}
8717
8722
  }
8718
8723
  };
8719
8724
 
@@ -9616,7 +9621,7 @@ function _expandFromEnv(value) {
9616
9621
  const _inlineRuntimeConfig = {
9617
9622
  "app": {
9618
9623
  "baseURL": "/",
9619
- "buildId": "211609c0-be04-46c5-a6b0-566bc0c4a3dd",
9624
+ "buildId": "6466b0ab-7935-460c-abdf-2ea632dae6d0",
9620
9625
  "buildAssetsDir": "/_nuxt/",
9621
9626
  "cdnURL": ""
9622
9627
  },
@@ -10084,7 +10089,7 @@ function cspForHtml(html, host) {
10084
10089
  return CSP_BASE.replace("script-src 'self'", `script-src 'self' ${hashes.join(" ")}`.trim()).replace("connect-src 'self'", `connect-src 'self' ws://${host} wss://${host}`);
10085
10090
  }
10086
10091
 
10087
- const _xsR3lplnA_tFHbX5Mx8wdhd4s3z5yxZJXHLDl8M8ujw = defineNitroPlugin((nitroApp) => {
10092
+ const _9as7ch5sSe9R7BrbrDE2GGZpuA6oP9uMAcL7iRtRgrw = defineNitroPlugin((nitroApp) => {
10088
10093
  nitroApp.hooks.hook("render:response", (response, context) => {
10089
10094
  if (typeof response.body !== "string" || !response.body.includes("<html")) return;
10090
10095
  response.headers = { ...response.headers, "content-security-policy": cspForHtml(response.body, context.event.node.req.headers.host || "") };
@@ -11209,6 +11214,7 @@ const OMP_ENTER = ["\u23CE", "\u{F0311}", "Enter"];
11209
11214
  const OMP_UP_DOWN = ["\u2191/\u2193", "Up/Down"];
11210
11215
  const OMP_CURSOR = ["\u276F", "\uF054", ">"];
11211
11216
  const OMP_SEARCH = ["\u{1F50D}", "\uF002", "[/]"];
11217
+ const OMP_CURRENT = ["\u25CF", "\uF111", "[x]"];
11212
11218
  const OMP_SPINNER = "\u2801-\u28FF";
11213
11219
  const OMP_ASCII_SPINNER = "\\-\\\\|/";
11214
11220
  const ompAlt = (glyphs) => `(?:${glyphs.map((g) => g.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})`;
@@ -11744,10 +11750,10 @@ function inputVisible(text) {
11744
11750
  return lines.some((l, i) => /^\s*›(\s|$)/.test(l) || /^\s*❯(\s|$)/.test(l) && /^\s*─{3,}/.test(lines[i - 1] || "") || /^╰─(\s|$)/.test(l) || bashInput$1(l, lines[i - 1]));
11745
11751
  }
11746
11752
 
11747
- const OMP_SELECTOR_OPEN = /╭─\s*Switch (?:Task )?Model\b/;
11748
- const OMP_SELECTOR_ENTER = new RegExp(`${ompAlt(OMP_ENTER)}\\s*use for (?:this session|Task subagents)`);
11753
+ const OMP_SELECTOR_OPEN = /(?:╭─|\+-)\s*Switch (?:Task )?Model\b/;
11754
+ const OMP_SELECTOR_FOOTER = new RegExp(`${ompAlt(OMP_ENTER)}\\s*use for (?:this session|Task subagents)|${ompAlt(OMP_UP_DOWN)} models\\b`);
11749
11755
  function ompSelectorOnScreen(text) {
11750
- return Boolean(text) && OMP_SELECTOR_OPEN.test(String(text)) && OMP_SELECTOR_ENTER.test(String(text));
11756
+ return Boolean(text) && OMP_SELECTOR_OPEN.test(String(text)) && OMP_SELECTOR_FOOTER.test(String(text));
11751
11757
  }
11752
11758
 
11753
11759
  const cap = (s) => s ? s[0].toUpperCase() + s.slice(1) : s;
@@ -11932,17 +11938,23 @@ function parseModelMenu(text) {
11932
11938
  effort
11933
11939
  };
11934
11940
  }
11935
- const OMP_ROW = /^│(.*?)│(?:\s*│)?\s*$/;
11941
+ const OMP_FRAME_TOP = /^(?:╭─|\+-)\s*Switch (?:Task )?Model\b/;
11942
+ const OMP_FRAME_BOTTOM = /^(?:╰|\+-)/;
11943
+ const OMP_ROW = /^[│|](.*?)[│|](?:\s*[│|])?\s*$/;
11936
11944
  const OMP_MODEL = /^(?:[a-z0-9][\w.-]*(?:\/[\w.-]+)+)/;
11937
11945
  const OMP_OVERCTX = /⦸\s*(context>[^\s]+|context \d+[kKmM]?[^\s]*|[^\s].{0,60})$/;
11938
11946
  const OMP_SEARCH_RE = new RegExp(`^${ompAlt(OMP_SEARCH)}\\s*>\\s*(.*)$`);
11939
11947
  const OMP_CURSOR_RE = new RegExp(`^${ompAlt(OMP_CURSOR)}\\s*`);
11948
+ const OMP_CURRENT_RE = new RegExp(`${ompAlt(OMP_CURRENT)}\\s*$`);
11949
+ const OMP_CUT = /^[\w.\-/]+…/;
11950
+ const OMP_CURRENT_START = new RegExp(`^${ompAlt(OMP_CURRENT)}`);
11951
+ const OMP_CURRENT_ALL = new RegExp(ompAlt(OMP_CURRENT), "g");
11940
11952
  function parseOmpSelector(text) {
11941
11953
  if (!ompSelectorOnScreen(text)) return null;
11942
11954
  const lines = String(text).replace(/\s+$/, "").split("\n");
11943
11955
  let top = -1;
11944
11956
  for (let i = lines.length - 1; i >= 0; i--) {
11945
- if (/^╭─\s*(?:Switch (?:Task )?Model)/.test(lines[i])) {
11957
+ if (OMP_FRAME_TOP.test(lines[i])) {
11946
11958
  top = i;
11947
11959
  break;
11948
11960
  }
@@ -11950,7 +11962,7 @@ function parseOmpSelector(text) {
11950
11962
  if (top < 0) return null;
11951
11963
  const body = [];
11952
11964
  for (const line of lines.slice(top + 1)) {
11953
- if (/╰/.test(line)) break;
11965
+ if (OMP_FRAME_BOTTOM.test(line)) break;
11954
11966
  const m = line.match(OMP_ROW);
11955
11967
  if (!m) return null;
11956
11968
  body.push(m[1].replace(/\s+$/, ""));
@@ -11960,6 +11972,7 @@ function parseOmpSelector(text) {
11960
11972
  let cursor = 0;
11961
11973
  let search = "";
11962
11974
  let separator = null;
11975
+ let truncated = false;
11963
11976
  for (const row of body) {
11964
11977
  const raw = row.trim();
11965
11978
  const q = raw.match(OMP_SEARCH_RE);
@@ -11971,12 +11984,13 @@ function parseOmpSelector(text) {
11971
11984
  const t = (cut < 0 ? raw : raw.slice(0, cut)).trim();
11972
11985
  const cur = OMP_CURSOR_RE.exec(t);
11973
11986
  const model = (cur ? t.slice(cur[0].length) : t).trim();
11987
+ if (OMP_CUT.test(model)) truncated = true;
11974
11988
  if (cur) {
11975
11989
  const hit = model.match(OMP_MODEL);
11976
11990
  if (hit) {
11977
11991
  cursor = options.length;
11978
11992
  const warn = model.slice(hit[0].length).trim().match(OMP_OVERCTX);
11979
- options.push({ label: hit[0], hint: warn ? warn[1].trim() : null, current: /(?:●|\uF111)\s*$/.test(model) });
11993
+ options.push({ label: hit[0], hint: warn ? warn[1].trim() : null, current: OMP_CURRENT_RE.test(model) });
11980
11994
  continue;
11981
11995
  }
11982
11996
  }
@@ -11988,7 +12002,7 @@ function parseOmpSelector(text) {
11988
12002
  }
11989
12003
  if (/^─{3,}/.test(t) && options.length) separator = options.length;
11990
12004
  }
11991
- return { options, cursor, search, separator, task };
12005
+ return { options, cursor, search, separator, task, truncated, width: [...lines[top].trimEnd()].length };
11992
12006
  }
11993
12007
  function ompSelectorCaption(text, id) {
11994
12008
  if (!text || !id) return null;
@@ -11997,15 +12011,15 @@ function ompSelectorCaption(text, id) {
11997
12011
  const candidates = [ompModelLabel(id), name.startsWith("claude-") ? `Claude ${ompModelLabel(id)}` : "", name];
11998
12012
  for (let i = lines.length - 1; i >= 0; i--) {
11999
12013
  const line = lines[i];
12000
- if (!/^│\s*\S/.test(line)) continue;
12001
- const body = line.replace(/^│\s*/, "");
12014
+ if (!/^[│|]\s*\S/.test(line)) continue;
12015
+ const body = line.replace(/^[│|]\s*/, "");
12002
12016
  const hit = candidates.find((c) => body.toLowerCase().startsWith(`${c.toLowerCase()} \xB7`));
12003
12017
  if (!hit) continue;
12004
12018
  const roles = [];
12005
12019
  for (let k = i + 1; k < Math.min(i + 3, lines.length); k++) {
12006
- const r = lines[k].replace(/^│\s*/, "").replace(/\s*│[\s│]*$/, "").trim();
12007
- if (!/^(?:●|\uF111)/.test(r)) break;
12008
- roles.push(...r.split("\xB7").map((s) => s.replace(/●|\uF111/g, "").replace(/\s*[◕◒◍○○◕◒][\s\S]*$/, "").trim()).filter(Boolean));
12020
+ const r = lines[k].replace(/^[│|]\s*/, "").replace(/\s*[│|][\s│|]*$/, "").trim();
12021
+ if (!OMP_CURRENT_START.test(r)) break;
12022
+ roles.push(...r.split("\xB7").map((s) => s.replace(OMP_CURRENT_ALL, "").replace(/\s*(?:[◕◒◍○]|\[)[\s\S]*$/, "").trim()).filter(Boolean));
12009
12023
  }
12010
12024
  return { name: body.split("\xB7")[0].trim(), roles };
12011
12025
  }
@@ -14907,6 +14921,23 @@ function parseWaitScreen(text, { choices = false } = {}) {
14907
14921
  return { kind, title: title ? title.slice(0, 200) : null, lines: body, actions };
14908
14922
  }
14909
14923
 
14924
+ const ROW = /^\s*Settings((?:\s{2,}[A-Z][\w-]*)+)\s*$/;
14925
+ function tabsOfRow(line) {
14926
+ const m = ROW.exec(line);
14927
+ if (!m) return null;
14928
+ const tabs = m[1].trim().split(/\s{2,}/);
14929
+ return tabs.length >= 2 ? tabs : null;
14930
+ }
14931
+ function settingsRowIndex(lines) {
14932
+ return lines.findIndex((l) => tabsOfRow(l) !== null);
14933
+ }
14934
+ function settingsTabs(text) {
14935
+ if (!text) return null;
14936
+ const lines = String(text).split("\n");
14937
+ const i = settingsRowIndex(lines);
14938
+ return i < 0 ? null : tabsOfRow(lines[i]);
14939
+ }
14940
+
14910
14941
  const SGR$1 = /\x1b\[([0-9;]*)m/g;
14911
14942
  const OTHER_ESC = /\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;
14912
14943
  const TOP = /^\s*▔{3,}(?:.*▔)?\s*$/;
@@ -15031,6 +15062,7 @@ function parseMenu(text) {
15031
15062
  const region = rows.slice(top + 1);
15032
15063
  while (region.length && !region[region.length - 1].text.trim()) region.pop();
15033
15064
  if (!region.length) return null;
15065
+ if (settingsRowIndex(region.map((r) => r.text)) >= 0) return null;
15034
15066
  const joined = (from) => parseLegend(region.slice(from).map((r) => r.text.trim()).join(" "));
15035
15067
  let legendAt = -1;
15036
15068
  let legend = null;
@@ -15334,6 +15366,12 @@ const QUEUED_TTL_MS = 60 * 60 * 1e3;
15334
15366
  const norm$3 = (t) => String(t || "").replace(/\s+/g, " ").trim().toLowerCase();
15335
15367
  const bashText = (t) => String(t || "").replace(/^\s*(?:!!?|\$\$?)\s*/, "");
15336
15368
  const isOmpRun = (agent, text) => agent === "omp" && /^\s*(?:!|\$\$?\s)/.test(String(text || ""));
15369
+ function ompRunShown(agent, text, shell) {
15370
+ if (!shell || !isOmpRun(agent, text) || /^\s*\$/.test(text) !== Boolean(shell.python)) return false;
15371
+ const want = bashText(text).replace(/\s+/g, "").toLowerCase().slice(0, 80);
15372
+ const shown = String(shell.command || "").replace(/\s+/g, "").toLowerCase().slice(0, 80);
15373
+ return Boolean(want && shown) && (shown.startsWith(want) || shown.length >= 8 && want.startsWith(shown));
15374
+ }
15337
15375
  function queuedDone(q, items, idle, now, agent) {
15338
15376
  if (now - q.at > QUEUED_TTL_MS) return true;
15339
15377
  if (idle && q.turnSeen && isOmpRun(agent, q.text)) return true;
@@ -15583,22 +15621,25 @@ function unansweredTurn(items, text) {
15583
15621
  const wanted = msgText(text);
15584
15622
  return (wanted ? sameMsg(wanted, last.text) : photosLanded(text, last)) ? last : null;
15585
15623
  }
15624
+ const empty = (box) => !box || box === "!";
15586
15625
  async function takeBackInterrupted(d) {
15626
+ var _a;
15587
15627
  let box = "";
15588
- for (let i = 0; i < 3 && !box; i++) {
15628
+ for (let i = 0; i < 3 && empty(box); i++) {
15589
15629
  box = inputBox(await d.screen().catch(() => "")) || "";
15590
- if (!box) await d.sleep(250);
15630
+ if (empty(box)) await d.sleep(250);
15591
15631
  }
15592
- if (!box) return null;
15632
+ if (empty(box)) return null;
15593
15633
  const last = unansweredLast(await d.chat());
15594
- if (!last || !boxHolds(box, msgText(last.text))) return null;
15634
+ const mine = last && boxHolds(box, msgText(last.text)) ? last : (((_a = d.pending) == null ? void 0 : _a.call(d)) || []).map(msgText).filter((t) => boxHolds(box, t)).map((text) => ({ role: "user", text, ts: null }))[0];
15635
+ if (!mine) return null;
15595
15636
  const lines = box.split("\n").length;
15596
15637
  for (let i = 0; i < 2; i++) {
15597
- if (i && !boxHolds(box, msgText(last.text))) return null;
15638
+ if (i && !boxHolds(box, msgText(mine.text))) return null;
15598
15639
  await d.keys(clearKeys(lines));
15599
15640
  await d.sleep(150);
15600
15641
  box = inputBox(await d.screen().catch(() => "")) || "";
15601
- if (!box) return last;
15642
+ if (empty(box)) return mine;
15602
15643
  }
15603
15644
  return null;
15604
15645
  }
@@ -16295,6 +16336,133 @@ async function readUpload(name) {
16295
16336
  return { type: ext === "jpg" ? "image/jpeg" : `image/${ext}`, body: await fsp$2.readFile(path$1.join(UPLOAD_DIR, name)) };
16296
16337
  }
16297
16338
 
16339
+ const clampInt = (v, lo, hi, dflt) => {
16340
+ const n = parseInt(String(v), 10);
16341
+ return Number.isFinite(n) ? Math.min(hi, Math.max(lo, n)) : dflt;
16342
+ };
16343
+ function openTerm(ws, url) {
16344
+ const pane = url.searchParams.get("pane") || "";
16345
+ if (!PANE_RE.test(pane)) {
16346
+ ws.close(4400, "Invalid pane");
16347
+ return null;
16348
+ }
16349
+ const machine = machineOfPane(pane);
16350
+ if (!machine || !machine.sock()) {
16351
+ ws.send(JSON.stringify({ type: "terminal.closed", reason: machine ? fmt("{machine} is unreachable", { machine: machine.label }) : "unknown machine", code: machine ? "unreachable" : "unknown_machine", machine: machine == null ? void 0 : machine.label }));
16352
+ ws.close(4503, "machine unreachable");
16353
+ return null;
16354
+ }
16355
+ const cols = clampInt(url.searchParams.get("cols"), 10, 400, 80);
16356
+ const rows = clampInt(url.searchParams.get("rows"), 5, 200, 24);
16357
+ const args = ["terminal", "session", "control", splitId(pane).local, "--cols", String(cols), "--rows", String(rows)];
16358
+ if (url.searchParams.get("takeover") === "1") args.push("--takeover");
16359
+ const child = machine.spawnHerdr(args);
16360
+ const sess = { pane, visible: true };
16361
+ termSessions.add(sess);
16362
+ log(`term ${pane} opened ${cols}x${rows}${args.includes("--takeover") ? " (takeover)" : ""}${machine.local ? "" : ` on ${machine.label}`}`);
16363
+ readline.createInterface({ input: child.stdout }).on("line", (line) => {
16364
+ if (ws.isOpen()) ws.send(line);
16365
+ });
16366
+ readline.createInterface({ input: child.stderr }).on("line", (line) => {
16367
+ log(`term ${pane} stderr: ${line}`);
16368
+ if (ws.isOpen()) ws.send(JSON.stringify({ type: "herdr.stderr", message: line }));
16369
+ });
16370
+ child.on("error", (e) => {
16371
+ if (ws.isOpen()) ws.send(JSON.stringify({ type: "terminal.closed", reason: `herdr: ${e.message}` }));
16372
+ ws.close(4500, "herdr error");
16373
+ });
16374
+ child.on("exit", (code) => {
16375
+ termSessions.delete(sess);
16376
+ if (ws.isOpen()) ws.close(4e3, `herdr exit ${code}`);
16377
+ });
16378
+ child.stdin.on("error", () => {
16379
+ });
16380
+ const toChild = (obj) => {
16381
+ if (child.stdin.writable) child.stdin.write(JSON.stringify(obj) + "\n");
16382
+ };
16383
+ return {
16384
+ onMessage(raw) {
16385
+ let m;
16386
+ try {
16387
+ m = JSON.parse(raw);
16388
+ } catch {
16389
+ return;
16390
+ }
16391
+ switch (m && m.type) {
16392
+ case "terminal.input":
16393
+ if (typeof m.text === "string" && m.text.length <= 65536) toChild({ type: "terminal.input", text: m.text });
16394
+ else if (typeof m.bytes === "string" && m.bytes.length <= 9e4) toChild({ type: "terminal.input", bytes: m.bytes });
16395
+ break;
16396
+ case "terminal.resize":
16397
+ toChild({ type: "terminal.resize", cols: clampInt(m.cols, 10, 400, cols), rows: clampInt(m.rows, 5, 200, rows) });
16398
+ break;
16399
+ case "terminal.scroll":
16400
+ if (m.direction === "up" || m.direction === "down") {
16401
+ toChild({ type: "terminal.scroll", direction: m.direction, lines: clampInt(m.lines, 1, 500, 3) });
16402
+ }
16403
+ break;
16404
+ case "keys":
16405
+ if (Array.isArray(m.keys) && m.keys.length <= 32 && m.keys.every((k) => typeof k === "string" && k.length <= 24)) {
16406
+ herdr("pane.send_input", { pane_id: pane, keys: m.keys }).catch((e) => ws.isOpen() && ws.send(JSON.stringify({ type: "web.error", code: e.code, message: e.message })));
16407
+ }
16408
+ break;
16409
+ // Pasted text, as Herdr's pane input: omp receives it as a paste and
16410
+ // turns an image path into an image (typed through wherdr's xterm, which
16411
+ // never learns the program's bracketed paste mode, it stays text).
16412
+ case "paste":
16413
+ if (typeof m.text === "string" && m.text && m.text.length <= 65536) {
16414
+ herdr("pane.send_input", { pane_id: pane, text: m.text }).catch((e) => ws.isOpen() && ws.send(JSON.stringify({ type: "web.error", code: e.code, message: e.message })));
16415
+ }
16416
+ break;
16417
+ case "visibility":
16418
+ sess.visible = Boolean(m.visible);
16419
+ break;
16420
+ }
16421
+ },
16422
+ onClose() {
16423
+ termSessions.delete(sess);
16424
+ toChild({ type: "terminal.release" });
16425
+ child.stdin.end();
16426
+ setTimeout(() => {
16427
+ if (child.exitCode === null) child.kill("SIGTERM");
16428
+ }, 1500);
16429
+ }
16430
+ };
16431
+ }
16432
+ function resizePane(pane, cols, rows) {
16433
+ const machine = machineOfPane(pane);
16434
+ if (!machine || !machine.sock()) return Promise.resolve(false);
16435
+ const child = machine.spawnHerdr(["terminal", "session", "control", splitId(pane).local, "--cols", String(cols), "--rows", String(rows)]);
16436
+ child.stdin.on("error", () => {
16437
+ });
16438
+ const { promise, resolve } = Promise.withResolvers();
16439
+ let done = false;
16440
+ const finish = (ok) => {
16441
+ if (done) return;
16442
+ done = true;
16443
+ clearTimeout(timer);
16444
+ if (child.stdin.writable) child.stdin.write(JSON.stringify({ type: "terminal.release" }) + "\n");
16445
+ child.stdin.end();
16446
+ setTimeout(() => {
16447
+ if (child.exitCode === null) child.kill("SIGTERM");
16448
+ }, 1500);
16449
+ log(`term ${pane} ${ok ? `resized to ${cols}x${rows}` : "resize refused"}`);
16450
+ resolve(ok);
16451
+ };
16452
+ const timer = setTimeout(() => finish(false), 5e3);
16453
+ readline.createInterface({ input: child.stdout }).on("line", (line) => {
16454
+ let m = null;
16455
+ try {
16456
+ m = JSON.parse(line);
16457
+ } catch {
16458
+ }
16459
+ finish((m == null ? void 0 : m.type) === "terminal.frame");
16460
+ });
16461
+ child.on("error", () => finish(false));
16462
+ child.on("exit", () => finish(false));
16463
+ return promise;
16464
+ }
16465
+
16298
16466
  const overrides = /* @__PURE__ */ new Map();
16299
16467
  const observedEfforts = /* @__PURE__ */ new Map();
16300
16468
  async function fallbackModel(p) {
@@ -16568,7 +16736,9 @@ async function closeOmpSelector(paneId) {
16568
16736
  await sleep(400);
16569
16737
  }
16570
16738
  }
16739
+ const OMP_SELECTOR_COLS = 160;
16571
16740
  async function openOmpSelector(p) {
16741
+ var _a, _b, _c;
16572
16742
  await closeOmpSelector(p.id);
16573
16743
  await closePanel(p.id).catch(() => false);
16574
16744
  await herdr("pane.send_input", { pane_id: p.id, keys: ["alt+p"] });
@@ -16581,7 +16751,21 @@ async function openOmpSelector(p) {
16581
16751
  await closeOmpSelector(p.id);
16582
16752
  throw new HerdrError("no_menu", "omp\u2019s model selector did not show up");
16583
16753
  }
16584
- return s;
16754
+ if (!s.truncated) return { s, restore: async () => {
16755
+ } };
16756
+ const cols = s.width;
16757
+ const rows = Number((_c = (_b = (_a = await herdr("pane.get", { pane_id: p.id }).catch(() => null)) == null ? void 0 : _a.pane) == null ? void 0 : _b.scroll) == null ? void 0 : _c.viewport_rows) || 40;
16758
+ const restore = async () => {
16759
+ await resizePane(p.id, cols, rows);
16760
+ };
16761
+ const wide = await resizePane(p.id, OMP_SELECTOR_COLS, rows) ? await waitOmpSelector(p.id, (x) => !x.truncated && !x.task, 4e3) : null;
16762
+ if (!wide) {
16763
+ await closeOmpSelector(p.id);
16764
+ await restore();
16765
+ throw new HerdrError("narrow", "The terminal is too narrow for omp\u2019s model selector \u2014 close wherdr\u2019s terminal or widen the pane, then try again.");
16766
+ }
16767
+ log(`omp selector ${p.id}: pane widened from ${cols} columns`);
16768
+ return { s: wide, restore };
16585
16769
  }
16586
16770
  async function waitOmpModel(p, id, since) {
16587
16771
  const until = Date.now() + 4e3;
@@ -16598,7 +16782,8 @@ async function ompSetModel(paneId, wanted) {
16598
16782
  return withPane(paneId, async (p) => {
16599
16783
  var _a, _b;
16600
16784
  const started = Date.now();
16601
- let s = await openOmpSelector(p);
16785
+ const open = await openOmpSelector(p);
16786
+ let s = open.s;
16602
16787
  try {
16603
16788
  const rank = (sel) => sel.options.findIndex((o) => o.label === id);
16604
16789
  let at = rank(s);
@@ -16634,6 +16819,8 @@ async function ompSetModel(paneId, wanted) {
16634
16819
  await closeOmpSelector(p.id).catch(() => {
16635
16820
  });
16636
16821
  throw e;
16822
+ } finally {
16823
+ await open.restore();
16637
16824
  }
16638
16825
  const text = await screen(p.id).catch(() => "");
16639
16826
  const caption = ompSelectorCaption(text, id);
@@ -16650,14 +16837,7 @@ async function ompListModels(p, refresh) {
16650
16837
  const key = `omp|${((_a = machineOfPane(p.id)) == null ? void 0 : _a.key) || ""}`;
16651
16838
  const hit = listCache.get(key);
16652
16839
  if (hit && !refresh && Date.now() - hit.at < LIST_TTL_MS) return hit;
16653
- let s;
16654
- try {
16655
- s = await openOmpSelector(p);
16656
- } catch (e) {
16657
- await closeOmpSelector(p.id).catch(() => {
16658
- });
16659
- throw e;
16660
- }
16840
+ const { s, restore } = await openOmpSelector(p);
16661
16841
  try {
16662
16842
  const options = s.options.map((o) => ({ label: o.label, hint: o.hint, current: o.current, isDefault: false }));
16663
16843
  const list = { agent: "omp", options, at: Date.now() };
@@ -16667,6 +16847,7 @@ async function ompListModels(p, refresh) {
16667
16847
  } finally {
16668
16848
  await closeOmpSelector(p.id).catch(() => {
16669
16849
  });
16850
+ await restore();
16670
16851
  }
16671
16852
  }
16672
16853
  async function codexEffortMenu(p, model) {
@@ -16884,12 +17065,13 @@ function compareVersions(a, b) {
16884
17065
  return 0;
16885
17066
  }
16886
17067
  function installMode(env) {
16887
- return env === "docker" || env === "docker-build" || env === "npm" ? env : "native";
17068
+ return env === "docker" || env === "docker-build" || env === "npm" || env === "brew" ? env : "native";
16888
17069
  }
16889
17070
  function updateCommand(mode) {
16890
17071
  if (mode === "docker") return "docker compose pull && docker compose up -d";
16891
17072
  if (mode === "docker-build") return "git pull && docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build";
16892
17073
  if (mode === "npm") return "npx wherdr@latest";
17074
+ if (mode === "brew") return "brew upgrade wherdr";
16893
17075
  return "git pull && npm ci && npm run build";
16894
17076
  }
16895
17077
 
@@ -17745,7 +17927,8 @@ async function choicesFor(p, rev, strict, watch = false) {
17745
17927
  askChecks.set(p.id, checks);
17746
17928
  choices = completeClaudeAsk(choices, await transcripts.pendingClaudeQuestions(p).catch(() => []), checks);
17747
17929
  } else if (!choices) askChecks.delete(p.id);
17748
- out = { choices, screen: menu ? null : parseWaitScreen(text, { choices: Boolean(choices) }), menu };
17930
+ const settings = p.agent === "claude" && settingsTabs(text) !== null;
17931
+ out = { choices, screen: menu || settings ? null : parseWaitScreen(text, { choices: Boolean(choices) }), menu };
17749
17932
  noteScreen(p.id, p.agent, text);
17750
17933
  if (choices && (choices.detail || isPermissionQuestion(choices.question))) {
17751
17934
  const named = p.agent === "omp" && choices.detail && choices.detail.tool !== "tool" ? choices.detail.tool : null;
@@ -18017,7 +18200,8 @@ function takeBackFromClaude(p) {
18017
18200
  await herdr("pane.send_input", { pane_id: p.id, keys });
18018
18201
  },
18019
18202
  chat: async () => (await transcripts.chat(p, { fresh: true })).items || [],
18020
- sleep
18203
+ sleep,
18204
+ pending: () => (queued.get(p.id) || []).map((q) => q.text)
18021
18205
  }).catch(() => null);
18022
18206
  }
18023
18207
  async function cancelTurn(p, text) {
@@ -18233,7 +18417,7 @@ function paneCommand(id) {
18233
18417
  return (c == null ? void 0 : c.cmd) || "";
18234
18418
  }
18235
18419
  async function enrich(next, snap, machine) {
18236
- var _a2, _b2;
18420
+ var _a2, _b2, _c;
18237
18421
  const firstSnapshot = !seenMachines.has(machine);
18238
18422
  const prevStatus = new Map((((_a2 = mstates.get(machine)) == null ? void 0 : _a2.panes) || []).map((p) => [p.id, p.status || void 0]));
18239
18423
  const live = new Set(next.panes.map((p) => p.id));
@@ -18268,8 +18452,14 @@ async function enrich(next, snap, machine) {
18268
18452
  }
18269
18453
  if (queued.has(p.id)) {
18270
18454
  reconcileQueued(p);
18271
- const list = queued.get(p.id);
18272
18455
  const before = findPane(p.id);
18456
+ const run = p.agent === "omp" ? (_c = ompStatuses.get(p.id)) == null ? void 0 : _c.shell : null;
18457
+ if (run) {
18458
+ const left = queued.get(p.id).filter((q) => q.held || q.failed || !ompRunShown(p.agent, q.text, run));
18459
+ if (left.length) queued.set(p.id, left);
18460
+ else queued.delete(p.id);
18461
+ }
18462
+ const list = queued.get(p.id);
18273
18463
  const menu = Boolean(before && (before.menu || before.prompt || before.screen)) || restarting(p.id);
18274
18464
  if (list && TURN.has(p.status || "")) {
18275
18465
  for (const q of list) if (!q.held && !q.failed) q.turnSeen = true;
@@ -19025,7 +19215,7 @@ async function cleanAttachments() {
19025
19215
  }
19026
19216
  }
19027
19217
 
19028
- const _j1IKI8flVwGEZOOSOqRNHwZRlp2DKLJYi8K0AOh5cWI = defineNitroPlugin((nitroApp) => {
19218
+ const _mZt23IdRC2vLuqDtWT6mb7m9BgHXq3U5QrnQ7Z5Hc4c = defineNitroPlugin((nitroApp) => {
19029
19219
  initVapid();
19030
19220
  startMachines();
19031
19221
  startPolling();
@@ -19047,402 +19237,402 @@ const _j1IKI8flVwGEZOOSOqRNHwZRlp2DKLJYi8K0AOh5cWI = defineNitroPlugin((nitroApp
19047
19237
  });
19048
19238
 
19049
19239
  const plugins = [
19050
- _xsR3lplnA_tFHbX5Mx8wdhd4s3z5yxZJXHLDl8M8ujw,
19051
- _j1IKI8flVwGEZOOSOqRNHwZRlp2DKLJYi8K0AOh5cWI
19240
+ _9as7ch5sSe9R7BrbrDE2GGZpuA6oP9uMAcL7iRtRgrw,
19241
+ _mZt23IdRC2vLuqDtWT6mb7m9BgHXq3U5QrnQ7Z5Hc4c
19052
19242
  ];
19053
19243
 
19054
19244
  const assets = {
19055
- "/manifest.webmanifest": {
19056
- "type": "application/manifest+json",
19057
- "etag": "\"26e-ykoYuj4V8la457yChW3oQTur8RU\"",
19058
- "mtime": "2026-10-08T05:19:35.697Z",
19059
- "size": 622,
19060
- "path": "../public/manifest.webmanifest"
19061
- },
19062
19245
  "/manifest-en.webmanifest": {
19063
19246
  "type": "application/manifest+json",
19064
19247
  "etag": "\"260-q1JnCK0/ecdKwgeTve6N4I6/mWI\"",
19065
- "mtime": "2026-10-08T05:19:35.698Z",
19248
+ "mtime": "2026-10-08T11:44:03.930Z",
19066
19249
  "size": 608,
19067
19250
  "path": "../public/manifest-en.webmanifest"
19068
19251
  },
19252
+ "/manifest.webmanifest": {
19253
+ "type": "application/manifest+json",
19254
+ "etag": "\"26e-ykoYuj4V8la457yChW3oQTur8RU\"",
19255
+ "mtime": "2026-10-08T11:44:03.930Z",
19256
+ "size": 622,
19257
+ "path": "../public/manifest.webmanifest"
19258
+ },
19069
19259
  "/sw.js": {
19070
19260
  "type": "text/javascript; charset=utf-8",
19071
- "etag": "\"1b1d-bw1HnyskpKGRKYH0dRUFc7IHigE\"",
19072
- "mtime": "2026-10-08T05:19:37.513Z",
19261
+ "etag": "\"1b1d-uKe7we3azu1ltb6U6uThnVqkUn4\"",
19262
+ "mtime": "2026-10-08T11:44:04.183Z",
19073
19263
  "size": 6941,
19074
19264
  "path": "../public/sw.js"
19075
19265
  },
19076
- "/_nuxt/AgentView.DE2GDt4O.css": {
19266
+ "/_nuxt/AgentView.C4YOwvZG.css": {
19077
19267
  "type": "text/css; charset=utf-8",
19078
- "etag": "\"15c8-GxeP4UBrftfPzQaa+JukFd9f7XU\"",
19079
- "mtime": "2026-10-08T05:19:35.680Z",
19268
+ "etag": "\"15c8-yoJUdtWy2mP7U+kxJ717a6Bzxgg\"",
19269
+ "mtime": "2026-10-08T11:44:03.918Z",
19080
19270
  "size": 5576,
19081
- "path": "../public/_nuxt/AgentView.DE2GDt4O.css"
19271
+ "path": "../public/_nuxt/AgentView.C4YOwvZG.css"
19272
+ },
19273
+ "/_nuxt/B6qBWHWB.js": {
19274
+ "type": "text/javascript; charset=utf-8",
19275
+ "etag": "\"13f-jMtJt8dAqnEh2SAOR1babBORdK4\"",
19276
+ "mtime": "2026-10-08T11:44:03.918Z",
19277
+ "size": 319,
19278
+ "path": "../public/_nuxt/B6qBWHWB.js"
19082
19279
  },
19083
19280
  "/_nuxt/BDNMzG2s.js": {
19084
19281
  "type": "text/javascript; charset=utf-8",
19085
19282
  "etag": "\"54-MasMfSk/A98C3Gn9uIOxtFxkWNw\"",
19086
- "mtime": "2026-10-08T05:19:35.680Z",
19283
+ "mtime": "2026-10-08T11:44:03.918Z",
19087
19284
  "size": 84,
19088
19285
  "path": "../public/_nuxt/BDNMzG2s.js"
19089
19286
  },
19090
- "/_nuxt/BIA9pZvC.js": {
19091
- "type": "text/javascript; charset=utf-8",
19092
- "etag": "\"13f-NoN+8Vp/c0xdgK1iiW/Bqymn/do\"",
19093
- "mtime": "2026-10-08T05:19:35.680Z",
19094
- "size": 319,
19095
- "path": "../public/_nuxt/BIA9pZvC.js"
19096
- },
19097
19287
  "/_nuxt/Bd17z0YL.js": {
19098
19288
  "type": "text/javascript; charset=utf-8",
19099
19289
  "etag": "\"1615-CPDn06/EO3pj6KudXz5uMZ0FkhI\"",
19100
- "mtime": "2026-10-08T05:19:35.680Z",
19290
+ "mtime": "2026-10-08T11:44:03.918Z",
19101
19291
  "size": 5653,
19102
19292
  "path": "../public/_nuxt/Bd17z0YL.js"
19103
19293
  },
19104
- "/_nuxt/BDI8xNSb.js": {
19105
- "type": "text/javascript; charset=utf-8",
19106
- "etag": "\"1f353-wYwwIE3KS/qMMoVM1p1ncJ9AdJQ\"",
19107
- "mtime": "2026-10-08T05:19:35.680Z",
19108
- "size": 127827,
19109
- "path": "../public/_nuxt/BDI8xNSb.js"
19110
- },
19111
- "/_nuxt/BevNMnQ2.js": {
19112
- "type": "text/javascript; charset=utf-8",
19113
- "etag": "\"166b4-tXMxeNoORdENHrzcNn/1Wv5PgzA\"",
19114
- "mtime": "2026-10-08T05:19:35.684Z",
19115
- "size": 91828,
19116
- "path": "../public/_nuxt/BevNMnQ2.js"
19117
- },
19118
19294
  "/_nuxt/BpQH8Ho1.js": {
19119
19295
  "type": "text/javascript; charset=utf-8",
19120
19296
  "etag": "\"e3-flLwB9P4XX6B82smMHA/xJ0MHtI\"",
19121
- "mtime": "2026-10-08T05:19:35.680Z",
19297
+ "mtime": "2026-10-08T11:44:03.918Z",
19122
19298
  "size": 227,
19123
19299
  "path": "../public/_nuxt/BpQH8Ho1.js"
19124
19300
  },
19125
- "/_nuxt/CXG-cOdh.js": {
19301
+ "/_nuxt/BMIe8p_3.js": {
19126
19302
  "type": "text/javascript; charset=utf-8",
19127
- "etag": "\"d4e-hM6T4bjr/qfJVvSNRqFH3ePHBQY\"",
19128
- "mtime": "2026-10-08T05:19:35.683Z",
19129
- "size": 3406,
19130
- "path": "../public/_nuxt/CXG-cOdh.js"
19303
+ "etag": "\"1f34c-xbnpB4ou/Yo+mnIWUPmKT1dw6kg\"",
19304
+ "mtime": "2026-10-08T11:44:03.918Z",
19305
+ "size": 127820,
19306
+ "path": "../public/_nuxt/BMIe8p_3.js"
19131
19307
  },
19132
- "/_nuxt/Ci8N4mWR.js": {
19308
+ "/_nuxt/C12eXl5z.js": {
19133
19309
  "type": "text/javascript; charset=utf-8",
19134
- "etag": "\"2426-fCrTYUyhtdHnTmu6ZJeEttvxVMo\"",
19135
- "mtime": "2026-10-08T05:19:35.683Z",
19136
- "size": 9254,
19137
- "path": "../public/_nuxt/Ci8N4mWR.js"
19310
+ "etag": "\"3743-LHJuwpFjgipbDnhMaCyj/9CAzuY\"",
19311
+ "mtime": "2026-10-08T11:44:03.918Z",
19312
+ "size": 14147,
19313
+ "path": "../public/_nuxt/C12eXl5z.js"
19314
+ },
19315
+ "/_nuxt/C2T9fQ4f.js": {
19316
+ "type": "text/javascript; charset=utf-8",
19317
+ "etag": "\"238-ULCQ+lAhpp4nPDbIDScqd3xGFLs\"",
19318
+ "mtime": "2026-10-08T11:44:03.918Z",
19319
+ "size": 568,
19320
+ "path": "../public/_nuxt/C2T9fQ4f.js"
19138
19321
  },
19139
19322
  "/_nuxt/CWwyK2XK.js": {
19140
19323
  "type": "text/javascript; charset=utf-8",
19141
19324
  "etag": "\"7e5e-4BG2J9cvS3sx6WQ360LFqNaThyA\"",
19142
- "mtime": "2026-10-08T05:19:35.682Z",
19325
+ "mtime": "2026-10-08T11:44:03.918Z",
19143
19326
  "size": 32350,
19144
19327
  "path": "../public/_nuxt/CWwyK2XK.js"
19145
19328
  },
19146
- "/_nuxt/Bta8at9w.js": {
19329
+ "/_nuxt/BrAeJIZR.js": {
19147
19330
  "type": "text/javascript; charset=utf-8",
19148
- "etag": "\"16d0e-LpSBQLvrB7mKZ2B8Eicj7etAGdk\"",
19149
- "mtime": "2026-10-08T05:19:35.681Z",
19150
- "size": 93454,
19151
- "path": "../public/_nuxt/Bta8at9w.js"
19331
+ "etag": "\"46cdd-poAuGC5qlfraU64uRa+Yc2AkKhw\"",
19332
+ "mtime": "2026-10-08T11:44:03.918Z",
19333
+ "size": 290013,
19334
+ "path": "../public/_nuxt/BrAeJIZR.js"
19152
19335
  },
19153
- "/_nuxt/CA9mI3eg.js": {
19336
+ "/_nuxt/CXG-cOdh.js": {
19154
19337
  "type": "text/javascript; charset=utf-8",
19155
- "etag": "\"10e62-Gj/BEvPrsjjEc49yjy8kS2xwEak\"",
19156
- "mtime": "2026-10-08T05:19:35.681Z",
19157
- "size": 69218,
19158
- "path": "../public/_nuxt/CA9mI3eg.js"
19338
+ "etag": "\"d4e-hM6T4bjr/qfJVvSNRqFH3ePHBQY\"",
19339
+ "mtime": "2026-10-08T11:44:03.918Z",
19340
+ "size": 3406,
19341
+ "path": "../public/_nuxt/CXG-cOdh.js"
19159
19342
  },
19160
- "/_nuxt/D903WmCE.js": {
19343
+ "/_nuxt/CYxHnMNH.js": {
19161
19344
  "type": "text/javascript; charset=utf-8",
19162
- "etag": "\"16078-H00ZElMWVgCB8cvsQxnUYdLQi6M\"",
19163
- "mtime": "2026-10-08T05:19:35.683Z",
19164
- "size": 90232,
19165
- "path": "../public/_nuxt/D903WmCE.js"
19345
+ "etag": "\"16ad4-A0W9NTd4vhWgkMxHSgPh07/MudQ\"",
19346
+ "mtime": "2026-10-08T11:44:03.918Z",
19347
+ "size": 92884,
19348
+ "path": "../public/_nuxt/CYxHnMNH.js"
19166
19349
  },
19167
- "/_nuxt/DJE_XMLO.js": {
19350
+ "/_nuxt/Ci8N4mWR.js": {
19168
19351
  "type": "text/javascript; charset=utf-8",
19169
- "etag": "\"3747-g3a4DsWbMLg6sYF5kOnmycsf36E\"",
19170
- "mtime": "2026-10-08T05:19:35.683Z",
19171
- "size": 14151,
19172
- "path": "../public/_nuxt/DJE_XMLO.js"
19352
+ "etag": "\"2426-fCrTYUyhtdHnTmu6ZJeEttvxVMo\"",
19353
+ "mtime": "2026-10-08T11:44:03.918Z",
19354
+ "size": 9254,
19355
+ "path": "../public/_nuxt/Ci8N4mWR.js"
19173
19356
  },
19174
- "/_nuxt/CjKICX3g.js": {
19357
+ "/_nuxt/CctS2Xn6.js": {
19175
19358
  "type": "text/javascript; charset=utf-8",
19176
- "etag": "\"38e25-3y44glYBUtcaNNScTkXhryj0Hng\"",
19177
- "mtime": "2026-10-08T05:19:35.683Z",
19178
- "size": 232997,
19179
- "path": "../public/_nuxt/CjKICX3g.js"
19359
+ "etag": "\"16078-Cz/Wvlpwr6os4SjIEqnTr9/8LlU\"",
19360
+ "mtime": "2026-10-08T11:44:03.918Z",
19361
+ "size": 90232,
19362
+ "path": "../public/_nuxt/CctS2Xn6.js"
19180
19363
  },
19181
19364
  "/_nuxt/DLLQgP0d.js": {
19182
19365
  "type": "text/javascript; charset=utf-8",
19183
19366
  "etag": "\"ed-o6vDEpQGmmIRAyMcrFDkG+VrA/Y\"",
19184
- "mtime": "2026-10-08T05:19:35.683Z",
19367
+ "mtime": "2026-10-08T11:44:03.919Z",
19185
19368
  "size": 237,
19186
19369
  "path": "../public/_nuxt/DLLQgP0d.js"
19187
19370
  },
19188
- "/_nuxt/DxO1TBoK.js": {
19371
+ "/_nuxt/CiYar6hg.js": {
19189
19372
  "type": "text/javascript; charset=utf-8",
19190
- "etag": "\"238-1OMWbVecNpkMAQInLDDv0GrMAKQ\"",
19191
- "mtime": "2026-10-08T05:19:35.683Z",
19192
- "size": 568,
19193
- "path": "../public/_nuxt/DxO1TBoK.js"
19373
+ "etag": "\"16f07-We6JfDwPvSXrF5YZ4079o5Xc8i8\"",
19374
+ "mtime": "2026-10-08T11:44:03.918Z",
19375
+ "size": 93959,
19376
+ "path": "../public/_nuxt/CiYar6hg.js"
19194
19377
  },
19195
- "/_nuxt/DBu2-cEy.js": {
19378
+ "/_nuxt/SiL1FJ5s.js": {
19196
19379
  "type": "text/javascript; charset=utf-8",
19197
- "etag": "\"46c8d-rD01iRvr9M7giYlcY+jpl6SIgH8\"",
19198
- "mtime": "2026-10-08T05:19:35.683Z",
19199
- "size": 289933,
19200
- "path": "../public/_nuxt/DBu2-cEy.js"
19380
+ "etag": "\"176ad-/hlyeMkW67OV1A4G2nhIsYJX+vE\"",
19381
+ "mtime": "2026-10-08T11:44:03.919Z",
19382
+ "size": 95917,
19383
+ "path": "../public/_nuxt/SiL1FJ5s.js"
19201
19384
  },
19202
- "/_nuxt/archivo-latin-wght-normal.E0tuGl4L.woff2": {
19203
- "type": "font/woff2",
19204
- "etag": "\"8870-ZUSfFgU3jYpWYbszVY1rxpynehc\"",
19205
- "mtime": "2026-10-08T05:19:35.684Z",
19206
- "size": 34928,
19207
- "path": "../public/_nuxt/archivo-latin-wght-normal.E0tuGl4L.woff2"
19385
+ "/_nuxt/Dwh-l2rQ.js": {
19386
+ "type": "text/javascript; charset=utf-8",
19387
+ "etag": "\"3919e-zK0jGmVhIk455555qPCvrLTDhXs\"",
19388
+ "mtime": "2026-10-08T11:44:03.919Z",
19389
+ "size": 233886,
19390
+ "path": "../public/_nuxt/Dwh-l2rQ.js"
19208
19391
  },
19209
19392
  "/_nuxt/archivo-latin-ext-wght-normal.C4zznr8T.woff2": {
19210
19393
  "type": "font/woff2",
19211
19394
  "etag": "\"7f60-cwHN4xD2RhU0GVBfKzpzYZ7Al6U\"",
19212
- "mtime": "2026-10-08T05:19:35.683Z",
19395
+ "mtime": "2026-10-08T11:44:03.919Z",
19213
19396
  "size": 32608,
19214
19397
  "path": "../public/_nuxt/archivo-latin-ext-wght-normal.C4zznr8T.woff2"
19215
19398
  },
19399
+ "/_nuxt/archivo-latin-wght-normal.E0tuGl4L.woff2": {
19400
+ "type": "font/woff2",
19401
+ "etag": "\"8870-ZUSfFgU3jYpWYbszVY1rxpynehc\"",
19402
+ "mtime": "2026-10-08T11:44:03.919Z",
19403
+ "size": 34928,
19404
+ "path": "../public/_nuxt/archivo-latin-wght-normal.E0tuGl4L.woff2"
19405
+ },
19216
19406
  "/_nuxt/archivo-vietnamese-wght-normal.XAtsl5Q_.woff2": {
19217
19407
  "type": "font/woff2",
19218
19408
  "etag": "\"33b8-4zjQHgOy7y9EDRZs7TDAFDM4Ams\"",
19219
- "mtime": "2026-10-08T05:19:35.684Z",
19409
+ "mtime": "2026-10-08T11:44:03.919Z",
19220
19410
  "size": 13240,
19221
19411
  "path": "../public/_nuxt/archivo-vietnamese-wght-normal.XAtsl5Q_.woff2"
19222
19412
  },
19223
- "/_nuxt/SiL1FJ5s.js": {
19413
+ "/_nuxt/WLQjK8uJ.js": {
19224
19414
  "type": "text/javascript; charset=utf-8",
19225
- "etag": "\"176ad-/hlyeMkW67OV1A4G2nhIsYJX+vE\"",
19226
- "mtime": "2026-10-08T05:19:35.683Z",
19227
- "size": 95917,
19228
- "path": "../public/_nuxt/SiL1FJ5s.js"
19415
+ "etag": "\"9b3fe-Mhwqc5w8lJiuRM/0t8kIRoh6evE\"",
19416
+ "mtime": "2026-10-08T11:44:03.919Z",
19417
+ "size": 635902,
19418
+ "path": "../public/_nuxt/WLQjK8uJ.js"
19229
19419
  },
19230
19420
  "/_nuxt/bLP7Jj-b.js": {
19231
19421
  "type": "text/javascript; charset=utf-8",
19232
19422
  "etag": "\"eab-MDKLGS0aoyNdipefSjbM7x6w6Y8\"",
19233
- "mtime": "2026-10-08T05:19:35.685Z",
19423
+ "mtime": "2026-10-08T11:44:03.919Z",
19234
19424
  "size": 3755,
19235
19425
  "path": "../public/_nuxt/bLP7Jj-b.js"
19236
19426
  },
19237
- "/_nuxt/error-500.Bwd7zAaE.css": {
19238
- "type": "text/css; charset=utf-8",
19239
- "etag": "\"772-nqXXACYtFiPK+D42BNu4uEECARA\"",
19240
- "mtime": "2026-10-08T05:19:35.685Z",
19241
- "size": 1906,
19242
- "path": "../public/_nuxt/error-500.Bwd7zAaE.css"
19243
- },
19244
19427
  "/_nuxt/error-404.Bb87HomL.css": {
19245
19428
  "type": "text/css; charset=utf-8",
19246
19429
  "etag": "\"97d-4h9VfBznldxjqagfMldh1hDncR0\"",
19247
- "mtime": "2026-10-08T05:19:35.685Z",
19430
+ "mtime": "2026-10-08T11:44:03.919Z",
19248
19431
  "size": 2429,
19249
19432
  "path": "../public/_nuxt/error-404.Bb87HomL.css"
19250
19433
  },
19434
+ "/_nuxt/error-500.Bwd7zAaE.css": {
19435
+ "type": "text/css; charset=utf-8",
19436
+ "etag": "\"772-nqXXACYtFiPK+D42BNu4uEECARA\"",
19437
+ "mtime": "2026-10-08T11:44:03.919Z",
19438
+ "size": 1906,
19439
+ "path": "../public/_nuxt/error-500.Bwd7zAaE.css"
19440
+ },
19251
19441
  "/_nuxt/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2": {
19252
19442
  "type": "font/woff2",
19253
19443
  "etag": "\"6568-cF1iUGbboMFZ8TfnP5HiMgl9II0\"",
19254
- "mtime": "2026-10-08T05:19:35.685Z",
19444
+ "mtime": "2026-10-08T11:44:03.919Z",
19255
19445
  "size": 25960,
19256
19446
  "path": "../public/_nuxt/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2"
19257
19447
  },
19258
- "/_nuxt/inter-greek-wght-normal.CkhJZR-_.woff2": {
19448
+ "/_nuxt/inter-cyrillic-wght-normal.DqGufNeO.woff2": {
19259
19449
  "type": "font/woff2",
19260
- "etag": "\"4a34-xor/hj4YNqI52zFecXnUbzQ4Xs4\"",
19261
- "mtime": "2026-10-08T05:19:35.686Z",
19262
- "size": 18996,
19263
- "path": "../public/_nuxt/inter-greek-wght-normal.CkhJZR-_.woff2"
19450
+ "etag": "\"493c-n3Oy9D6jvzfMjpClqox+Zo7ERQQ\"",
19451
+ "mtime": "2026-10-08T11:44:03.919Z",
19452
+ "size": 18748,
19453
+ "path": "../public/_nuxt/inter-cyrillic-wght-normal.DqGufNeO.woff2"
19264
19454
  },
19265
19455
  "/_nuxt/inter-greek-ext-wght-normal.DlzME5K_.woff2": {
19266
19456
  "type": "font/woff2",
19267
19457
  "etag": "\"2be0-BP5iTzJeB8nLqYAgKpWNi5o1Zm8\"",
19268
- "mtime": "2026-10-08T05:19:35.686Z",
19458
+ "mtime": "2026-10-08T11:44:03.919Z",
19269
19459
  "size": 11232,
19270
19460
  "path": "../public/_nuxt/inter-greek-ext-wght-normal.DlzME5K_.woff2"
19271
19461
  },
19272
- "/_nuxt/inter-cyrillic-wght-normal.DqGufNeO.woff2": {
19462
+ "/_nuxt/inter-greek-wght-normal.CkhJZR-_.woff2": {
19273
19463
  "type": "font/woff2",
19274
- "etag": "\"493c-n3Oy9D6jvzfMjpClqox+Zo7ERQQ\"",
19275
- "mtime": "2026-10-08T05:19:35.686Z",
19276
- "size": 18748,
19277
- "path": "../public/_nuxt/inter-cyrillic-wght-normal.DqGufNeO.woff2"
19464
+ "etag": "\"4a34-xor/hj4YNqI52zFecXnUbzQ4Xs4\"",
19465
+ "mtime": "2026-10-08T11:44:03.920Z",
19466
+ "size": 18996,
19467
+ "path": "../public/_nuxt/inter-greek-wght-normal.CkhJZR-_.woff2"
19278
19468
  },
19279
19469
  "/_nuxt/inter-latin-ext-wght-normal.DO1Apj_S.woff2": {
19280
19470
  "type": "font/woff2",
19281
19471
  "etag": "\"14c4c-zz61D7IQFMB9QxHvTAOk/Vh4ibQ\"",
19282
- "mtime": "2026-10-08T05:19:35.686Z",
19472
+ "mtime": "2026-10-08T11:44:03.920Z",
19283
19473
  "size": 85068,
19284
19474
  "path": "../public/_nuxt/inter-latin-ext-wght-normal.DO1Apj_S.woff2"
19285
19475
  },
19476
+ "/_nuxt/inter-latin-wght-normal.Dx4kXJAl.woff2": {
19477
+ "type": "font/woff2",
19478
+ "etag": "\"bc80-8R1ym7Ck2DUNLqPQ/AYs9u8tUpg\"",
19479
+ "mtime": "2026-10-08T11:44:03.920Z",
19480
+ "size": 48256,
19481
+ "path": "../public/_nuxt/inter-latin-wght-normal.Dx4kXJAl.woff2"
19482
+ },
19286
19483
  "/_nuxt/inter-vietnamese-wght-normal.CBcvBZtf.woff2": {
19287
19484
  "type": "font/woff2",
19288
19485
  "etag": "\"280c-nBythjoDQ0+5wVAendJ6wU7Xz2M\"",
19289
- "mtime": "2026-10-08T05:19:35.686Z",
19486
+ "mtime": "2026-10-08T11:44:03.920Z",
19290
19487
  "size": 10252,
19291
19488
  "path": "../public/_nuxt/inter-vietnamese-wght-normal.CBcvBZtf.woff2"
19292
19489
  },
19293
- "/_nuxt/inter-latin-wght-normal.Dx4kXJAl.woff2": {
19490
+ "/_nuxt/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2": {
19294
19491
  "type": "font/woff2",
19295
- "etag": "\"bc80-8R1ym7Ck2DUNLqPQ/AYs9u8tUpg\"",
19296
- "mtime": "2026-10-08T05:19:35.686Z",
19297
- "size": 48256,
19298
- "path": "../public/_nuxt/inter-latin-wght-normal.Dx4kXJAl.woff2"
19492
+ "etag": "\"2f4c-WiAGfn140d4QND3ayQWaCHF8rbE\"",
19493
+ "mtime": "2026-10-08T11:44:03.920Z",
19494
+ "size": 12108,
19495
+ "path": "../public/_nuxt/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2"
19299
19496
  },
19300
19497
  "/_nuxt/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2": {
19301
19498
  "type": "font/woff2",
19302
19499
  "etag": "\"232c-Dnz9DhH4c266e6TziU1pxRkV6FY\"",
19303
- "mtime": "2026-10-08T05:19:35.686Z",
19500
+ "mtime": "2026-10-08T11:44:03.920Z",
19304
19501
  "size": 9004,
19305
19502
  "path": "../public/_nuxt/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2"
19306
19503
  },
19307
19504
  "/_nuxt/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2": {
19308
19505
  "type": "font/woff2",
19309
19506
  "etag": "\"3b5c-HLF7Wvs2Z1IA1cPRs6jnor8OUQ4\"",
19310
- "mtime": "2026-10-08T05:19:35.686Z",
19507
+ "mtime": "2026-10-08T11:44:03.927Z",
19311
19508
  "size": 15196,
19312
19509
  "path": "../public/_nuxt/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2"
19313
19510
  },
19314
- "/_nuxt/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2": {
19511
+ "/_nuxt/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2": {
19315
19512
  "type": "font/woff2",
19316
- "etag": "\"2f4c-WiAGfn140d4QND3ayQWaCHF8rbE\"",
19317
- "mtime": "2026-10-08T05:19:35.686Z",
19318
- "size": 12108,
19319
- "path": "../public/_nuxt/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2"
19320
- },
19321
- "/_nuxt/entry.SHBiCXBL.css": {
19322
- "type": "text/css; charset=utf-8",
19323
- "etag": "\"5f413-f3n+Sg6VQFoGZlw+vPer7+m6eZY\"",
19324
- "mtime": "2026-10-08T05:19:35.685Z",
19325
- "size": 390163,
19326
- "path": "../public/_nuxt/entry.SHBiCXBL.css"
19513
+ "etag": "\"9dd4-5yd+cUUhzrXxdMyYebUeD0qml1M\"",
19514
+ "mtime": "2026-10-08T11:44:03.927Z",
19515
+ "size": 40404,
19516
+ "path": "../public/_nuxt/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2"
19327
19517
  },
19328
19518
  "/_nuxt/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2": {
19329
19519
  "type": "font/woff2",
19330
19520
  "etag": "\"1d50-/Re0MyD6BV8h81wBPVijGZH5GBs\"",
19331
- "mtime": "2026-10-08T05:19:35.686Z",
19521
+ "mtime": "2026-10-08T11:44:03.927Z",
19332
19522
  "size": 7504,
19333
19523
  "path": "../public/_nuxt/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2"
19334
19524
  },
19335
- "/_nuxt/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2": {
19336
- "type": "font/woff2",
19337
- "etag": "\"9dd4-5yd+cUUhzrXxdMyYebUeD0qml1M\"",
19338
- "mtime": "2026-10-08T05:19:35.686Z",
19339
- "size": 40404,
19340
- "path": "../public/_nuxt/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2"
19525
+ "/_nuxt/whFLy_Ne.js": {
19526
+ "type": "text/javascript; charset=utf-8",
19527
+ "etag": "\"10fef-Fe8e6U4rNb//7sdPdQau3Trl7fU\"",
19528
+ "mtime": "2026-10-08T11:44:03.927Z",
19529
+ "size": 69615,
19530
+ "path": "../public/_nuxt/whFLy_Ne.js"
19341
19531
  },
19342
- "/_nuxt/wherdr-nerd-awesome.DQ3_iAfa.woff2": {
19343
- "type": "font/woff2",
19344
- "etag": "\"30178-02mpQKEDb74Ec8LtlhKceB1vHO8\"",
19345
- "mtime": "2026-10-08T05:19:35.686Z",
19346
- "size": 196984,
19347
- "path": "../public/_nuxt/wherdr-nerd-awesome.DQ3_iAfa.woff2"
19532
+ "/_nuxt/entry.cKR16VqG.css": {
19533
+ "type": "text/css; charset=utf-8",
19534
+ "etag": "\"5f50e-lGjGgrLDJlABD7dGL+/Cu4UfQi8\"",
19535
+ "mtime": "2026-10-08T11:44:03.919Z",
19536
+ "size": 390414,
19537
+ "path": "../public/_nuxt/entry.cKR16VqG.css"
19348
19538
  },
19349
19539
  "/_nuxt/wherdr-nerd-codicons.CtEsfSAf.woff2": {
19350
19540
  "type": "font/woff2",
19351
19541
  "etag": "\"d9b0-kmO/x6KCTFRlVipOvl+5XcArGUw\"",
19352
- "mtime": "2026-10-08T05:19:35.686Z",
19542
+ "mtime": "2026-10-08T11:44:03.927Z",
19353
19543
  "size": 55728,
19354
19544
  "path": "../public/_nuxt/wherdr-nerd-codicons.CtEsfSAf.woff2"
19355
19545
  },
19356
- "/_nuxt/wherdr-nerd-devicons.ZMSFX1sW.woff2": {
19546
+ "/_nuxt/wherdr-nerd-awesome.DQ3_iAfa.woff2": {
19357
19547
  "type": "font/woff2",
19358
- "etag": "\"30f78-2RuGTMLnbTBdhlI9ExApyiUeD8c\"",
19359
- "mtime": "2026-10-08T05:19:35.687Z",
19360
- "size": 200568,
19361
- "path": "../public/_nuxt/wherdr-nerd-devicons.ZMSFX1sW.woff2"
19548
+ "etag": "\"30178-02mpQKEDb74Ec8LtlhKceB1vHO8\"",
19549
+ "mtime": "2026-10-08T11:44:03.927Z",
19550
+ "size": 196984,
19551
+ "path": "../public/_nuxt/wherdr-nerd-awesome.DQ3_iAfa.woff2"
19362
19552
  },
19363
19553
  "/_nuxt/wherdr-nerd-extension.Dai_ky39.woff2": {
19364
19554
  "type": "font/woff2",
19365
19555
  "etag": "\"f76c-CjERGtjtOrkpSXy7JyZNl1CAu0U\"",
19366
- "mtime": "2026-10-08T05:19:35.687Z",
19556
+ "mtime": "2026-10-08T11:44:03.927Z",
19367
19557
  "size": 63340,
19368
19558
  "path": "../public/_nuxt/wherdr-nerd-extension.Dai_ky39.woff2"
19369
19559
  },
19370
- "/_nuxt/wherdr-nerd-material-1.BdvqkCqW.woff2": {
19560
+ "/_nuxt/wherdr-nerd-devicons.ZMSFX1sW.woff2": {
19371
19561
  "type": "font/woff2",
19372
- "etag": "\"1e130-1GKpbVoJoRf3AxaKTZS8FjxkOd4\"",
19373
- "mtime": "2026-10-08T05:19:35.687Z",
19374
- "size": 123184,
19375
- "path": "../public/_nuxt/wherdr-nerd-material-1.BdvqkCqW.woff2"
19562
+ "etag": "\"30f78-2RuGTMLnbTBdhlI9ExApyiUeD8c\"",
19563
+ "mtime": "2026-10-08T11:44:03.927Z",
19564
+ "size": 200568,
19565
+ "path": "../public/_nuxt/wherdr-nerd-devicons.ZMSFX1sW.woff2"
19376
19566
  },
19377
19567
  "/_nuxt/wherdr-nerd-material-2.C_flbBWO.woff2": {
19378
19568
  "type": "font/woff2",
19379
19569
  "etag": "\"1f95c-q6dAP964z2dgEvWzAYjTAzBtzBc\"",
19380
- "mtime": "2026-10-08T05:19:35.687Z",
19570
+ "mtime": "2026-10-08T11:44:03.928Z",
19381
19571
  "size": 129372,
19382
19572
  "path": "../public/_nuxt/wherdr-nerd-material-2.C_flbBWO.woff2"
19383
19573
  },
19384
- "/_nuxt/wherdr-nerd-material-4.CO_PudDR.woff2": {
19385
- "type": "font/woff2",
19386
- "etag": "\"1fa80-YcJvpFD/M3vTC4y6SMmp7s8a9gw\"",
19387
- "mtime": "2026-10-08T05:19:35.687Z",
19388
- "size": 129664,
19389
- "path": "../public/_nuxt/wherdr-nerd-material-4.CO_PudDR.woff2"
19390
- },
19391
19574
  "/_nuxt/wherdr-nerd-material-3.8xz7iX-Y.woff2": {
19392
19575
  "type": "font/woff2",
19393
19576
  "etag": "\"2248c-3GBJ1KjkT+xYPhza9V/DKaILa7Y\"",
19394
- "mtime": "2026-10-08T05:19:35.687Z",
19577
+ "mtime": "2026-10-08T11:44:03.928Z",
19395
19578
  "size": 140428,
19396
19579
  "path": "../public/_nuxt/wherdr-nerd-material-3.8xz7iX-Y.woff2"
19397
19580
  },
19398
- "/_nuxt/e5N4AqCN.js": {
19399
- "type": "text/javascript; charset=utf-8",
19400
- "etag": "\"9b3fe-2kvj9/0+okpgdaiK95KVBZYlbsU\"",
19401
- "mtime": "2026-10-08T05:19:35.687Z",
19402
- "size": 635902,
19403
- "path": "../public/_nuxt/e5N4AqCN.js"
19404
- },
19405
- "/_nuxt/wherdr-symbols.C1LsPKmg.woff2": {
19581
+ "/_nuxt/wherdr-nerd-material-1.BdvqkCqW.woff2": {
19406
19582
  "type": "font/woff2",
19407
- "etag": "\"1304-Lwyr1XiDl3FK38nmS/6Pk9wfiWc\"",
19408
- "mtime": "2026-10-08T05:19:35.687Z",
19409
- "size": 4868,
19410
- "path": "../public/_nuxt/wherdr-symbols.C1LsPKmg.woff2"
19583
+ "etag": "\"1e130-1GKpbVoJoRf3AxaKTZS8FjxkOd4\"",
19584
+ "mtime": "2026-10-08T11:44:03.927Z",
19585
+ "size": 123184,
19586
+ "path": "../public/_nuxt/wherdr-nerd-material-1.BdvqkCqW.woff2"
19411
19587
  },
19412
- "/_nuxt/yzABg5xl.js": {
19413
- "type": "text/javascript; charset=utf-8",
19414
- "etag": "\"1c49-W7I7waHyF8BfftITNIl1xCbNFQw\"",
19415
- "mtime": "2026-10-08T05:19:35.687Z",
19416
- "size": 7241,
19417
- "path": "../public/_nuxt/yzABg5xl.js"
19588
+ "/_nuxt/wherdr-nerd-material-4.CO_PudDR.woff2": {
19589
+ "type": "font/woff2",
19590
+ "etag": "\"1fa80-YcJvpFD/M3vTC4y6SMmp7s8a9gw\"",
19591
+ "mtime": "2026-10-08T11:44:03.928Z",
19592
+ "size": 129664,
19593
+ "path": "../public/_nuxt/wherdr-nerd-material-4.CO_PudDR.woff2"
19418
19594
  },
19419
19595
  "/_nuxt/wherdr-nerd-powerline.B_kAMxXr.woff2": {
19420
19596
  "type": "font/woff2",
19421
19597
  "etag": "\"1bc0-iXm39wQwNbm2VjpVBOn72grfku0\"",
19422
- "mtime": "2026-10-08T05:19:35.687Z",
19598
+ "mtime": "2026-10-08T11:44:03.928Z",
19423
19599
  "size": 7104,
19424
19600
  "path": "../public/_nuxt/wherdr-nerd-powerline.B_kAMxXr.woff2"
19425
19601
  },
19426
19602
  "/_nuxt/wherdr-nerd-octicons.Hl4VEx8m.woff2": {
19427
19603
  "type": "font/woff2",
19428
19604
  "etag": "\"f890-FkAsW3iqENK+lU5UlSze0yqnE2s\"",
19429
- "mtime": "2026-10-08T05:19:35.687Z",
19605
+ "mtime": "2026-10-08T11:44:03.928Z",
19430
19606
  "size": 63632,
19431
19607
  "path": "../public/_nuxt/wherdr-nerd-octicons.Hl4VEx8m.woff2"
19432
19608
  },
19609
+ "/_nuxt/wherdr-symbols.C1LsPKmg.woff2": {
19610
+ "type": "font/woff2",
19611
+ "etag": "\"1304-Lwyr1XiDl3FK38nmS/6Pk9wfiWc\"",
19612
+ "mtime": "2026-10-08T11:44:03.928Z",
19613
+ "size": 4868,
19614
+ "path": "../public/_nuxt/wherdr-symbols.C1LsPKmg.woff2"
19615
+ },
19616
+ "/_nuxt/yzABg5xl.js": {
19617
+ "type": "text/javascript; charset=utf-8",
19618
+ "etag": "\"1c49-W7I7waHyF8BfftITNIl1xCbNFQw\"",
19619
+ "mtime": "2026-10-08T11:44:03.928Z",
19620
+ "size": 7241,
19621
+ "path": "../public/_nuxt/yzABg5xl.js"
19622
+ },
19433
19623
  "/_nuxt/builds/latest.json": {
19434
19624
  "type": "application/json",
19435
- "etag": "\"47-vXmDNtP3MHPIBcvrjnH27kdbsp4\"",
19436
- "mtime": "2026-10-08T05:19:35.608Z",
19625
+ "etag": "\"47-InxxMr1b0NpxElCQDYMExsdTFyM\"",
19626
+ "mtime": "2026-10-08T11:44:03.903Z",
19437
19627
  "size": 71,
19438
19628
  "path": "../public/_nuxt/builds/latest.json"
19439
19629
  },
19440
- "/_nuxt/builds/meta/211609c0-be04-46c5-a6b0-566bc0c4a3dd.json": {
19630
+ "/_nuxt/builds/meta/6466b0ab-7935-460c-abdf-2ea632dae6d0.json": {
19441
19631
  "type": "application/json",
19442
- "etag": "\"58-/4vJ2FesA0o7cRotRGQVuyxo82g\"",
19443
- "mtime": "2026-10-08T05:19:35.597Z",
19632
+ "etag": "\"58-DWte5uFWPeAlfWNx7Bc31+0PHIM\"",
19633
+ "mtime": "2026-10-08T11:44:03.899Z",
19444
19634
  "size": 88,
19445
- "path": "../public/_nuxt/builds/meta/211609c0-be04-46c5-a6b0-566bc0c4a3dd.json"
19635
+ "path": "../public/_nuxt/builds/meta/6466b0ab-7935-460c-abdf-2ea632dae6d0.json"
19446
19636
  }
19447
19637
  };
19448
19638
 
@@ -19589,7 +19779,7 @@ function getAsset (id) {
19589
19779
 
19590
19780
  const METHODS = /* @__PURE__ */ new Set(["HEAD", "GET"]);
19591
19781
  const EncodingMap = { gzip: ".gz", br: ".br" };
19592
- const _oStzCE = eventHandler((event) => {
19782
+ const _uN03ln = eventHandler((event) => {
19593
19783
  if (event.method && !METHODS.has(event.method)) {
19594
19784
  return;
19595
19785
  }
@@ -20026,7 +20216,7 @@ function crossSiteRequest(headers) {
20026
20216
  }
20027
20217
 
20028
20218
  const needsUnlock = (p) => p.startsWith("/api/") && !p.startsWith("/api/auth/") || p.startsWith("/uploads/");
20029
- const _049p4f = defineEventHandler((event) => {
20219
+ const _M8hgLp = defineEventHandler((event) => {
20030
20220
  if (!hostAllowed(event.node.req.headers.host)) {
20031
20221
  if (hostRefusalIsHtml(event.path.split("?")[0], event.node.req.headers.accept)) {
20032
20222
  setResponseStatus(event, 403);
@@ -20051,184 +20241,184 @@ const _049p4f = defineEventHandler((event) => {
20051
20241
 
20052
20242
  const _SxA8c9 = defineEventHandler(() => {});
20053
20243
 
20054
- const _lazy_Ze2SjS = () => import('../routes/api/_..._.mjs');
20055
- const _lazy_YuLiF2 = () => import('../routes/api/agents.post.mjs');
20056
- const _lazy_G2dTfZ = () => import('../routes/api/ask-tab.post.mjs');
20057
- const _lazy_tCpV7R = () => import('../routes/api/attach.post.mjs');
20058
- const _lazy_KukUt7 = () => import('../routes/api/auth/disable.post.mjs');
20059
- const _lazy_KV7ZGu = () => import('../routes/api/auth/lock-all.post.mjs');
20060
- const _lazy_y5NaZO = () => import('../routes/api/auth/lock.post.mjs');
20061
- const _lazy_Dxed6_ = () => import('../routes/api/auth/login/options.post.mjs');
20062
- const _lazy_wC3q_p = () => import('../routes/api/auth/login/verify.post.mjs');
20063
- const _lazy_CH_vsl = () => import('../routes/api/auth/max-session.post.mjs');
20064
- const _lazy_Cm3xV0 = () => import('../routes/api/auth/register/options.post.mjs');
20065
- const _lazy_VXKYyJ = () => import('../routes/api/auth/register/verify.post.mjs');
20066
- const _lazy_XMVr5b = () => import('../routes/api/auth/status.get.mjs');
20067
- const _lazy_6FV68W = () => import('../routes/api/changes.get.mjs');
20068
- const _lazy_Ub9OpB = () => import('../routes/api/chat.get.mjs');
20069
- const _lazy_2OHblO = () => import('../routes/api/chat/image.get.mjs');
20070
- const _lazy_8LM30g = () => import('../routes/api/choose.post.mjs');
20071
- const _lazy_8tiXCk = () => import('../routes/api/claude-statusline.post.mjs');
20072
- const _lazy_xbyeXC = () => import('../routes/api/close.post.mjs');
20073
- const _lazy_uep9vr = () => import('../routes/api/close/status.get.mjs');
20074
- const _lazy_7Xb6Yg = () => import('../routes/api/codex-update.post.mjs');
20075
- const _lazy_RoP8Fd = () => import('../routes/api/commands.get.mjs');
20076
- const _lazy_4leiUq = () => import('../routes/api/config.get.mjs');
20077
- const _lazy_ug5NgL = () => import('../routes/api/dirs.get.mjs');
20078
- const _lazy_zF8KMG = () => import('../routes/api/dismiss.post.mjs');
20079
- const _lazy_yPpsi7 = () => import('../routes/api/effort.post.mjs');
20080
- const _lazy_hrKxZW = () => import('../routes/api/efforts.get.mjs');
20081
- const _lazy_VU4Cnx = () => import('../routes/api/file.post.mjs');
20082
- const _lazy_VWtgl1 = () => import('../routes/api/gitroot.get.mjs');
20083
- const _lazy_lnSu73 = () => import('../routes/api/input.post.mjs');
20084
- const _lazy_hSBnBj = () => import('../routes/api/interrupt.post.mjs');
20085
- const _lazy_dS938a = () => import('../routes/api/isgit.get.mjs');
20086
- const _lazy_keVFJb = () => import('../routes/api/machine/awake.get.mjs');
20087
- const _lazy_n3oiL_ = () => import('../routes/api/machine/awake.post.mjs');
20088
- const _lazy_cJc8Sb = () => import('../routes/api/machine/order.get.mjs');
20089
- const _lazy_x0LVNN = () => import('../routes/api/machine/order.post.mjs');
20090
- const _lazy_dEdLtf = () => import('../routes/api/machine/rename.post.mjs');
20091
- const _lazy_01QOjs = () => import('../routes/api/menu.post.mjs');
20092
- const _lazy_ikrMDe = () => import('../routes/api/model.post.mjs');
20093
- const _lazy_AZE3rA = () => import('../routes/api/models.get.mjs');
20094
- const _lazy_Go0eZO = () => import('../routes/api/nav.post.mjs');
20095
- const _lazy_btTnFL = () => import('../routes/api/onboarding.get.mjs');
20096
- const _lazy_24zFra = () => import('../routes/api/onboarding.post.mjs');
20097
- const _lazy_1kFUsT = () => import('../routes/api/phone.get.mjs');
20098
- const _lazy_Z78RxP = () => import('../routes/api/phone.post.mjs');
20099
- const _lazy_gcs_jO = () => import('../routes/api/plugins/actions.get.mjs');
20100
- const _lazy_Hp87sU = () => import('../routes/api/plugins/invoke.post.mjs');
20101
- const _lazy_rEnPdi = () => import('../routes/api/plugins/profiles.get.mjs');
20102
- const _lazy_uMZNEn = () => import('../routes/api/plugins/projects.get.mjs');
20103
- const _lazy_Adc1i_ = () => import('../routes/api/plugins/projects.post.mjs');
20104
- const _lazy_4tTDtd = () => import('../routes/api/plugins/thread-limits.get.mjs');
20105
- const _lazy_1wgFsl = () => import('../routes/api/plugins/thread-limits.post.mjs');
20106
- const _lazy_oJWOca = () => import('../routes/api/index.get.mjs');
20107
- const _lazy_FXGGc3 = () => import('../routes/api/project/report.get.mjs');
20108
- const _lazy_D91wtb = () => import('../routes/api/prompt.post.mjs');
20109
- const _lazy_qd6d5P = () => import('../routes/api/push/quiet.post.mjs');
20110
- const _lazy_CaMQha = () => import('../routes/api/push/subscribe.post.mjs');
20111
- const _lazy_7pHLFw = () => import('../routes/api/push/test.post.mjs');
20112
- const _lazy_uXhIfX = () => import('../routes/api/push/unsubscribe.post.mjs');
20113
- const _lazy_UexmWO = () => import('../routes/api/quotas.get.mjs');
20114
- const _lazy_YToDKi = () => import('../routes/api/rename.post.mjs');
20115
- const _lazy_5fViHp = () => import('../routes/api/requeue.post.mjs');
20116
- const _lazy_dATLK6 = () => import('../routes/api/restart.get.mjs');
20117
- const _lazy_Z6Gyrd = () => import('../routes/api/restart.post.mjs');
20118
- const _lazy__2aMoR = () => import('../routes/api/reveal.post.mjs');
20119
- const _lazy_g9UE0Y = () => import('../routes/api/screen-key.post.mjs');
20120
- const _lazy_5YNdFp = () => import('../routes/api/screen.get.mjs');
20121
- const _lazy_K_1Q5C = () => import('../routes/api/search.get.mjs');
20122
- const _lazy_aNtDsW = () => import('../routes/api/seen.post.mjs');
20123
- const _lazy_mLItmz = () => import('../routes/api/sessions.get.mjs');
20124
- const _lazy_h58Q90 = () => import('../routes/api/sessions.post.mjs');
20125
- const _lazy_2frgG7 = () => import('../routes/api/space.post.mjs');
20126
- const _lazy__IGIGO = () => import('../routes/api/state.get.mjs');
20127
- const _lazy_aQsDUU = () => import('../routes/api/unqueue.post.mjs');
20128
- const _lazy_feyPm2 = () => import('../routes/api/update.get.mjs');
20129
- const _lazy_WSeNkk = () => import('../routes/api/upload.post.mjs');
20130
- const _lazy_ss5tVl = () => import('../routes/api/worktrees.get.mjs');
20131
- const _lazy_oDnlzd = () => import('../routes/api/worktrees/remove.post.mjs');
20132
- const _lazy_TRGvjf = () => import('../routes/favicon.ico.get.mjs');
20133
- const _lazy_tlC29i = () => import('../routes/icons/_name_.get.mjs');
20134
- const _lazy_4TQyVs = () => import('../routes/uploads/_...name_.get.mjs');
20135
- const _lazy_oC6pxq = () => import('../routes/ws/_..._.mjs');
20136
- const _lazy_mYW8Q9 = () => import('../routes/ws/events.mjs');
20137
- const _lazy_RJzjay = () => import('../routes/ws/mirror.mjs');
20138
- const _lazy_MHV2WT = () => import('../routes/ws/term.mjs');
20139
- const _lazy_0XwxzV = () => import('../routes/renderer.mjs');
20244
+ const _lazy__q9lVT = () => import('../routes/api/_..._.mjs');
20245
+ const _lazy_IscTao = () => import('../routes/api/agents.post.mjs');
20246
+ const _lazy__I0sdR = () => import('../routes/api/ask-tab.post.mjs');
20247
+ const _lazy_s3cQhL = () => import('../routes/api/attach.post.mjs');
20248
+ const _lazy_OXBWUz = () => import('../routes/api/auth/disable.post.mjs');
20249
+ const _lazy_rHvHVe = () => import('../routes/api/auth/lock-all.post.mjs');
20250
+ const _lazy_3fqQ_S = () => import('../routes/api/auth/lock.post.mjs');
20251
+ const _lazy_o1C40k = () => import('../routes/api/auth/login/options.post.mjs');
20252
+ const _lazy_DDM4EF = () => import('../routes/api/auth/login/verify.post.mjs');
20253
+ const _lazy_4__oTm = () => import('../routes/api/auth/max-session.post.mjs');
20254
+ const _lazy_7O3TsZ = () => import('../routes/api/auth/register/options.post.mjs');
20255
+ const _lazy_fQByfS = () => import('../routes/api/auth/register/verify.post.mjs');
20256
+ const _lazy_jcfnWB = () => import('../routes/api/auth/status.get.mjs');
20257
+ const _lazy_WhNb61 = () => import('../routes/api/changes.get.mjs');
20258
+ const _lazy_hdSKYJ = () => import('../routes/api/chat.get.mjs');
20259
+ const _lazy_WoSEa6 = () => import('../routes/api/chat/image.get.mjs');
20260
+ const _lazy_GP5Rnx = () => import('../routes/api/choose.post.mjs');
20261
+ const _lazy_pDFD3i = () => import('../routes/api/claude-statusline.post.mjs');
20262
+ const _lazy_f3c9H6 = () => import('../routes/api/close.post.mjs');
20263
+ const _lazy_LgHNKv = () => import('../routes/api/close/status.get.mjs');
20264
+ const _lazy_GF2Rhb = () => import('../routes/api/codex-update.post.mjs');
20265
+ const _lazy_onTn85 = () => import('../routes/api/commands.get.mjs');
20266
+ const _lazy_XuUgLO = () => import('../routes/api/config.get.mjs');
20267
+ const _lazy_y_su18 = () => import('../routes/api/dirs.get.mjs');
20268
+ const _lazy_Z6oqjB = () => import('../routes/api/dismiss.post.mjs');
20269
+ const _lazy_2uy6Z9 = () => import('../routes/api/effort.post.mjs');
20270
+ const _lazy_7FhJOq = () => import('../routes/api/efforts.get.mjs');
20271
+ const _lazy_Wg_MPT = () => import('../routes/api/file.post.mjs');
20272
+ const _lazy_kEWyNy = () => import('../routes/api/gitroot.get.mjs');
20273
+ const _lazy_U4OEhz = () => import('../routes/api/input.post.mjs');
20274
+ const _lazy_PDyMr9 = () => import('../routes/api/interrupt.post.mjs');
20275
+ const _lazy_mtPGaX = () => import('../routes/api/isgit.get.mjs');
20276
+ const _lazy_kMfkHB = () => import('../routes/api/machine/awake.get.mjs');
20277
+ const _lazy_3Y3Fal = () => import('../routes/api/machine/awake.post.mjs');
20278
+ const _lazy_RRMeZz = () => import('../routes/api/machine/order.get.mjs');
20279
+ const _lazy_FdaypK = () => import('../routes/api/machine/order.post.mjs');
20280
+ const _lazy_tShbXi = () => import('../routes/api/machine/rename.post.mjs');
20281
+ const _lazy_wDIuUV = () => import('../routes/api/menu.post.mjs');
20282
+ const _lazy_rVhPCV = () => import('../routes/api/model.post.mjs');
20283
+ const _lazy_zQaTgS = () => import('../routes/api/models.get.mjs');
20284
+ const _lazy_G8ab3Q = () => import('../routes/api/nav.post.mjs');
20285
+ const _lazy_v0Fav3 = () => import('../routes/api/onboarding.get.mjs');
20286
+ const _lazy_8g9ewv = () => import('../routes/api/onboarding.post.mjs');
20287
+ const _lazy_pIkbHh = () => import('../routes/api/phone.get.mjs');
20288
+ const _lazy_uc4VfM = () => import('../routes/api/phone.post.mjs');
20289
+ const _lazy_UhUNDG = () => import('../routes/api/plugins/actions.get.mjs');
20290
+ const _lazy_QUZe1a = () => import('../routes/api/plugins/invoke.post.mjs');
20291
+ const _lazy_5SHkft = () => import('../routes/api/plugins/profiles.get.mjs');
20292
+ const _lazy_mhIdo4 = () => import('../routes/api/plugins/projects.get.mjs');
20293
+ const _lazy_zH9tge = () => import('../routes/api/plugins/projects.post.mjs');
20294
+ const _lazy_qE4HMW = () => import('../routes/api/plugins/thread-limits.get.mjs');
20295
+ const _lazy_ByJj04 = () => import('../routes/api/plugins/thread-limits.post.mjs');
20296
+ const _lazy_WLg2Uu = () => import('../routes/api/index.get.mjs');
20297
+ const _lazy_sQe2ZF = () => import('../routes/api/project/report.get.mjs');
20298
+ const _lazy_wxPObX = () => import('../routes/api/prompt.post.mjs');
20299
+ const _lazy_gHqHgE = () => import('../routes/api/push/quiet.post.mjs');
20300
+ const _lazy_vXOoN7 = () => import('../routes/api/push/subscribe.post.mjs');
20301
+ const _lazy_y3mEYk = () => import('../routes/api/push/test.post.mjs');
20302
+ const _lazy_uxxrNB = () => import('../routes/api/push/unsubscribe.post.mjs');
20303
+ const _lazy_pyinM3 = () => import('../routes/api/quotas.get.mjs');
20304
+ const _lazy_BBdm99 = () => import('../routes/api/rename.post.mjs');
20305
+ const _lazy_wZhfGo = () => import('../routes/api/requeue.post.mjs');
20306
+ const _lazy_CNFo5h = () => import('../routes/api/restart.get.mjs');
20307
+ const _lazy_yDFKBl = () => import('../routes/api/restart.post.mjs');
20308
+ const _lazy_EmFJ9I = () => import('../routes/api/reveal.post.mjs');
20309
+ const _lazy_0DhN9V = () => import('../routes/api/screen-key.post.mjs');
20310
+ const _lazy_5kceYB = () => import('../routes/api/screen.get.mjs');
20311
+ const _lazy_K8ukU6 = () => import('../routes/api/search.get.mjs');
20312
+ const _lazy_NXLBIE = () => import('../routes/api/seen.post.mjs');
20313
+ const _lazy_GOSQuW = () => import('../routes/api/sessions.get.mjs');
20314
+ const _lazy_3y86mR = () => import('../routes/api/sessions.post.mjs');
20315
+ const _lazy_TqhtLZ = () => import('../routes/api/space.post.mjs');
20316
+ const _lazy_oeuOKk = () => import('../routes/api/state.get.mjs');
20317
+ const _lazy_ecbrXA = () => import('../routes/api/unqueue.post.mjs');
20318
+ const _lazy_AUmWqe = () => import('../routes/api/update.get.mjs');
20319
+ const _lazy_5f22vB = () => import('../routes/api/upload.post.mjs');
20320
+ const _lazy_9iwHBL = () => import('../routes/api/worktrees.get.mjs');
20321
+ const _lazy_IA8rJi = () => import('../routes/api/worktrees/remove.post.mjs');
20322
+ const _lazy_dhT5sm = () => import('../routes/favicon.ico.get.mjs');
20323
+ const _lazy_2a3aHZ = () => import('../routes/icons/_name_.get.mjs');
20324
+ const _lazy_MpH2Yl = () => import('../routes/uploads/_...name_.get.mjs');
20325
+ const _lazy_hSqSXW = () => import('../routes/ws/_..._.mjs');
20326
+ const _lazy_N9wZe_ = () => import('../routes/ws/events.mjs');
20327
+ const _lazy_CXgyQE = () => import('../routes/ws/mirror.mjs');
20328
+ const _lazy_Stovcz = () => import('../routes/ws/term.mjs');
20329
+ const _lazy_9gHabX = () => import('../routes/renderer.mjs');
20140
20330
 
20141
20331
  const handlers = [
20142
- { route: '', handler: _oStzCE, lazy: false, middleware: true, method: undefined },
20143
- { route: '', handler: _049p4f, lazy: false, middleware: true, method: undefined },
20144
- { route: '/api/**', handler: _lazy_Ze2SjS, lazy: true, middleware: false, method: undefined },
20145
- { route: '/api/agents', handler: _lazy_YuLiF2, lazy: true, middleware: false, method: "post" },
20146
- { route: '/api/ask-tab', handler: _lazy_G2dTfZ, lazy: true, middleware: false, method: "post" },
20147
- { route: '/api/attach', handler: _lazy_tCpV7R, lazy: true, middleware: false, method: "post" },
20148
- { route: '/api/auth/disable', handler: _lazy_KukUt7, lazy: true, middleware: false, method: "post" },
20149
- { route: '/api/auth/lock-all', handler: _lazy_KV7ZGu, lazy: true, middleware: false, method: "post" },
20150
- { route: '/api/auth/lock', handler: _lazy_y5NaZO, lazy: true, middleware: false, method: "post" },
20151
- { route: '/api/auth/login/options', handler: _lazy_Dxed6_, lazy: true, middleware: false, method: "post" },
20152
- { route: '/api/auth/login/verify', handler: _lazy_wC3q_p, lazy: true, middleware: false, method: "post" },
20153
- { route: '/api/auth/max-session', handler: _lazy_CH_vsl, lazy: true, middleware: false, method: "post" },
20154
- { route: '/api/auth/register/options', handler: _lazy_Cm3xV0, lazy: true, middleware: false, method: "post" },
20155
- { route: '/api/auth/register/verify', handler: _lazy_VXKYyJ, lazy: true, middleware: false, method: "post" },
20156
- { route: '/api/auth/status', handler: _lazy_XMVr5b, lazy: true, middleware: false, method: "get" },
20157
- { route: '/api/changes', handler: _lazy_6FV68W, lazy: true, middleware: false, method: "get" },
20158
- { route: '/api/chat', handler: _lazy_Ub9OpB, lazy: true, middleware: false, method: "get" },
20159
- { route: '/api/chat/image', handler: _lazy_2OHblO, lazy: true, middleware: false, method: "get" },
20160
- { route: '/api/choose', handler: _lazy_8LM30g, lazy: true, middleware: false, method: "post" },
20161
- { route: '/api/claude-statusline', handler: _lazy_8tiXCk, lazy: true, middleware: false, method: "post" },
20162
- { route: '/api/close', handler: _lazy_xbyeXC, lazy: true, middleware: false, method: "post" },
20163
- { route: '/api/close/status', handler: _lazy_uep9vr, lazy: true, middleware: false, method: "get" },
20164
- { route: '/api/codex-update', handler: _lazy_7Xb6Yg, lazy: true, middleware: false, method: "post" },
20165
- { route: '/api/commands', handler: _lazy_RoP8Fd, lazy: true, middleware: false, method: "get" },
20166
- { route: '/api/config', handler: _lazy_4leiUq, lazy: true, middleware: false, method: "get" },
20167
- { route: '/api/dirs', handler: _lazy_ug5NgL, lazy: true, middleware: false, method: "get" },
20168
- { route: '/api/dismiss', handler: _lazy_zF8KMG, lazy: true, middleware: false, method: "post" },
20169
- { route: '/api/effort', handler: _lazy_yPpsi7, lazy: true, middleware: false, method: "post" },
20170
- { route: '/api/efforts', handler: _lazy_hrKxZW, lazy: true, middleware: false, method: "get" },
20171
- { route: '/api/file', handler: _lazy_VU4Cnx, lazy: true, middleware: false, method: "post" },
20172
- { route: '/api/gitroot', handler: _lazy_VWtgl1, lazy: true, middleware: false, method: "get" },
20173
- { route: '/api/input', handler: _lazy_lnSu73, lazy: true, middleware: false, method: "post" },
20174
- { route: '/api/interrupt', handler: _lazy_hSBnBj, lazy: true, middleware: false, method: "post" },
20175
- { route: '/api/isgit', handler: _lazy_dS938a, lazy: true, middleware: false, method: "get" },
20176
- { route: '/api/machine/awake', handler: _lazy_keVFJb, lazy: true, middleware: false, method: "get" },
20177
- { route: '/api/machine/awake', handler: _lazy_n3oiL_, lazy: true, middleware: false, method: "post" },
20178
- { route: '/api/machine/order', handler: _lazy_cJc8Sb, lazy: true, middleware: false, method: "get" },
20179
- { route: '/api/machine/order', handler: _lazy_x0LVNN, lazy: true, middleware: false, method: "post" },
20180
- { route: '/api/machine/rename', handler: _lazy_dEdLtf, lazy: true, middleware: false, method: "post" },
20181
- { route: '/api/menu', handler: _lazy_01QOjs, lazy: true, middleware: false, method: "post" },
20182
- { route: '/api/model', handler: _lazy_ikrMDe, lazy: true, middleware: false, method: "post" },
20183
- { route: '/api/models', handler: _lazy_AZE3rA, lazy: true, middleware: false, method: "get" },
20184
- { route: '/api/nav', handler: _lazy_Go0eZO, lazy: true, middleware: false, method: "post" },
20185
- { route: '/api/onboarding', handler: _lazy_btTnFL, lazy: true, middleware: false, method: "get" },
20186
- { route: '/api/onboarding', handler: _lazy_24zFra, lazy: true, middleware: false, method: "post" },
20187
- { route: '/api/phone', handler: _lazy_1kFUsT, lazy: true, middleware: false, method: "get" },
20188
- { route: '/api/phone', handler: _lazy_Z78RxP, lazy: true, middleware: false, method: "post" },
20189
- { route: '/api/plugins/actions', handler: _lazy_gcs_jO, lazy: true, middleware: false, method: "get" },
20190
- { route: '/api/plugins/invoke', handler: _lazy_Hp87sU, lazy: true, middleware: false, method: "post" },
20191
- { route: '/api/plugins/profiles', handler: _lazy_rEnPdi, lazy: true, middleware: false, method: "get" },
20192
- { route: '/api/plugins/projects', handler: _lazy_uMZNEn, lazy: true, middleware: false, method: "get" },
20193
- { route: '/api/plugins/projects', handler: _lazy_Adc1i_, lazy: true, middleware: false, method: "post" },
20194
- { route: '/api/plugins/thread-limits', handler: _lazy_4tTDtd, lazy: true, middleware: false, method: "get" },
20195
- { route: '/api/plugins/thread-limits', handler: _lazy_1wgFsl, lazy: true, middleware: false, method: "post" },
20196
- { route: '/api/project', handler: _lazy_oJWOca, lazy: true, middleware: false, method: "get" },
20197
- { route: '/api/project/report', handler: _lazy_FXGGc3, lazy: true, middleware: false, method: "get" },
20198
- { route: '/api/prompt', handler: _lazy_D91wtb, lazy: true, middleware: false, method: "post" },
20199
- { route: '/api/push/quiet', handler: _lazy_qd6d5P, lazy: true, middleware: false, method: "post" },
20200
- { route: '/api/push/subscribe', handler: _lazy_CaMQha, lazy: true, middleware: false, method: "post" },
20201
- { route: '/api/push/test', handler: _lazy_7pHLFw, lazy: true, middleware: false, method: "post" },
20202
- { route: '/api/push/unsubscribe', handler: _lazy_uXhIfX, lazy: true, middleware: false, method: "post" },
20203
- { route: '/api/quotas', handler: _lazy_UexmWO, lazy: true, middleware: false, method: "get" },
20204
- { route: '/api/rename', handler: _lazy_YToDKi, lazy: true, middleware: false, method: "post" },
20205
- { route: '/api/requeue', handler: _lazy_5fViHp, lazy: true, middleware: false, method: "post" },
20206
- { route: '/api/restart', handler: _lazy_dATLK6, lazy: true, middleware: false, method: "get" },
20207
- { route: '/api/restart', handler: _lazy_Z6Gyrd, lazy: true, middleware: false, method: "post" },
20208
- { route: '/api/reveal', handler: _lazy__2aMoR, lazy: true, middleware: false, method: "post" },
20209
- { route: '/api/screen-key', handler: _lazy_g9UE0Y, lazy: true, middleware: false, method: "post" },
20210
- { route: '/api/screen', handler: _lazy_5YNdFp, lazy: true, middleware: false, method: "get" },
20211
- { route: '/api/search', handler: _lazy_K_1Q5C, lazy: true, middleware: false, method: "get" },
20212
- { route: '/api/seen', handler: _lazy_aNtDsW, lazy: true, middleware: false, method: "post" },
20213
- { route: '/api/sessions', handler: _lazy_mLItmz, lazy: true, middleware: false, method: "get" },
20214
- { route: '/api/sessions', handler: _lazy_h58Q90, lazy: true, middleware: false, method: "post" },
20215
- { route: '/api/space', handler: _lazy_2frgG7, lazy: true, middleware: false, method: "post" },
20216
- { route: '/api/state', handler: _lazy__IGIGO, lazy: true, middleware: false, method: "get" },
20217
- { route: '/api/unqueue', handler: _lazy_aQsDUU, lazy: true, middleware: false, method: "post" },
20218
- { route: '/api/update', handler: _lazy_feyPm2, lazy: true, middleware: false, method: "get" },
20219
- { route: '/api/upload', handler: _lazy_WSeNkk, lazy: true, middleware: false, method: "post" },
20220
- { route: '/api/worktrees', handler: _lazy_ss5tVl, lazy: true, middleware: false, method: "get" },
20221
- { route: '/api/worktrees/remove', handler: _lazy_oDnlzd, lazy: true, middleware: false, method: "post" },
20222
- { route: '/favicon.ico', handler: _lazy_TRGvjf, lazy: true, middleware: false, method: "get" },
20223
- { route: '/icons/:name', handler: _lazy_tlC29i, lazy: true, middleware: false, method: "get" },
20224
- { route: '/uploads/**:name', handler: _lazy_4TQyVs, lazy: true, middleware: false, method: "get" },
20225
- { route: '/ws/**', handler: _lazy_oC6pxq, lazy: true, middleware: false, method: undefined },
20226
- { route: '/ws/events', handler: _lazy_mYW8Q9, lazy: true, middleware: false, method: undefined },
20227
- { route: '/ws/mirror', handler: _lazy_RJzjay, lazy: true, middleware: false, method: undefined },
20228
- { route: '/ws/term', handler: _lazy_MHV2WT, lazy: true, middleware: false, method: undefined },
20229
- { route: '/__nuxt_error', handler: _lazy_0XwxzV, lazy: true, middleware: false, method: undefined },
20332
+ { route: '', handler: _uN03ln, lazy: false, middleware: true, method: undefined },
20333
+ { route: '', handler: _M8hgLp, lazy: false, middleware: true, method: undefined },
20334
+ { route: '/api/**', handler: _lazy__q9lVT, lazy: true, middleware: false, method: undefined },
20335
+ { route: '/api/agents', handler: _lazy_IscTao, lazy: true, middleware: false, method: "post" },
20336
+ { route: '/api/ask-tab', handler: _lazy__I0sdR, lazy: true, middleware: false, method: "post" },
20337
+ { route: '/api/attach', handler: _lazy_s3cQhL, lazy: true, middleware: false, method: "post" },
20338
+ { route: '/api/auth/disable', handler: _lazy_OXBWUz, lazy: true, middleware: false, method: "post" },
20339
+ { route: '/api/auth/lock-all', handler: _lazy_rHvHVe, lazy: true, middleware: false, method: "post" },
20340
+ { route: '/api/auth/lock', handler: _lazy_3fqQ_S, lazy: true, middleware: false, method: "post" },
20341
+ { route: '/api/auth/login/options', handler: _lazy_o1C40k, lazy: true, middleware: false, method: "post" },
20342
+ { route: '/api/auth/login/verify', handler: _lazy_DDM4EF, lazy: true, middleware: false, method: "post" },
20343
+ { route: '/api/auth/max-session', handler: _lazy_4__oTm, lazy: true, middleware: false, method: "post" },
20344
+ { route: '/api/auth/register/options', handler: _lazy_7O3TsZ, lazy: true, middleware: false, method: "post" },
20345
+ { route: '/api/auth/register/verify', handler: _lazy_fQByfS, lazy: true, middleware: false, method: "post" },
20346
+ { route: '/api/auth/status', handler: _lazy_jcfnWB, lazy: true, middleware: false, method: "get" },
20347
+ { route: '/api/changes', handler: _lazy_WhNb61, lazy: true, middleware: false, method: "get" },
20348
+ { route: '/api/chat', handler: _lazy_hdSKYJ, lazy: true, middleware: false, method: "get" },
20349
+ { route: '/api/chat/image', handler: _lazy_WoSEa6, lazy: true, middleware: false, method: "get" },
20350
+ { route: '/api/choose', handler: _lazy_GP5Rnx, lazy: true, middleware: false, method: "post" },
20351
+ { route: '/api/claude-statusline', handler: _lazy_pDFD3i, lazy: true, middleware: false, method: "post" },
20352
+ { route: '/api/close', handler: _lazy_f3c9H6, lazy: true, middleware: false, method: "post" },
20353
+ { route: '/api/close/status', handler: _lazy_LgHNKv, lazy: true, middleware: false, method: "get" },
20354
+ { route: '/api/codex-update', handler: _lazy_GF2Rhb, lazy: true, middleware: false, method: "post" },
20355
+ { route: '/api/commands', handler: _lazy_onTn85, lazy: true, middleware: false, method: "get" },
20356
+ { route: '/api/config', handler: _lazy_XuUgLO, lazy: true, middleware: false, method: "get" },
20357
+ { route: '/api/dirs', handler: _lazy_y_su18, lazy: true, middleware: false, method: "get" },
20358
+ { route: '/api/dismiss', handler: _lazy_Z6oqjB, lazy: true, middleware: false, method: "post" },
20359
+ { route: '/api/effort', handler: _lazy_2uy6Z9, lazy: true, middleware: false, method: "post" },
20360
+ { route: '/api/efforts', handler: _lazy_7FhJOq, lazy: true, middleware: false, method: "get" },
20361
+ { route: '/api/file', handler: _lazy_Wg_MPT, lazy: true, middleware: false, method: "post" },
20362
+ { route: '/api/gitroot', handler: _lazy_kEWyNy, lazy: true, middleware: false, method: "get" },
20363
+ { route: '/api/input', handler: _lazy_U4OEhz, lazy: true, middleware: false, method: "post" },
20364
+ { route: '/api/interrupt', handler: _lazy_PDyMr9, lazy: true, middleware: false, method: "post" },
20365
+ { route: '/api/isgit', handler: _lazy_mtPGaX, lazy: true, middleware: false, method: "get" },
20366
+ { route: '/api/machine/awake', handler: _lazy_kMfkHB, lazy: true, middleware: false, method: "get" },
20367
+ { route: '/api/machine/awake', handler: _lazy_3Y3Fal, lazy: true, middleware: false, method: "post" },
20368
+ { route: '/api/machine/order', handler: _lazy_RRMeZz, lazy: true, middleware: false, method: "get" },
20369
+ { route: '/api/machine/order', handler: _lazy_FdaypK, lazy: true, middleware: false, method: "post" },
20370
+ { route: '/api/machine/rename', handler: _lazy_tShbXi, lazy: true, middleware: false, method: "post" },
20371
+ { route: '/api/menu', handler: _lazy_wDIuUV, lazy: true, middleware: false, method: "post" },
20372
+ { route: '/api/model', handler: _lazy_rVhPCV, lazy: true, middleware: false, method: "post" },
20373
+ { route: '/api/models', handler: _lazy_zQaTgS, lazy: true, middleware: false, method: "get" },
20374
+ { route: '/api/nav', handler: _lazy_G8ab3Q, lazy: true, middleware: false, method: "post" },
20375
+ { route: '/api/onboarding', handler: _lazy_v0Fav3, lazy: true, middleware: false, method: "get" },
20376
+ { route: '/api/onboarding', handler: _lazy_8g9ewv, lazy: true, middleware: false, method: "post" },
20377
+ { route: '/api/phone', handler: _lazy_pIkbHh, lazy: true, middleware: false, method: "get" },
20378
+ { route: '/api/phone', handler: _lazy_uc4VfM, lazy: true, middleware: false, method: "post" },
20379
+ { route: '/api/plugins/actions', handler: _lazy_UhUNDG, lazy: true, middleware: false, method: "get" },
20380
+ { route: '/api/plugins/invoke', handler: _lazy_QUZe1a, lazy: true, middleware: false, method: "post" },
20381
+ { route: '/api/plugins/profiles', handler: _lazy_5SHkft, lazy: true, middleware: false, method: "get" },
20382
+ { route: '/api/plugins/projects', handler: _lazy_mhIdo4, lazy: true, middleware: false, method: "get" },
20383
+ { route: '/api/plugins/projects', handler: _lazy_zH9tge, lazy: true, middleware: false, method: "post" },
20384
+ { route: '/api/plugins/thread-limits', handler: _lazy_qE4HMW, lazy: true, middleware: false, method: "get" },
20385
+ { route: '/api/plugins/thread-limits', handler: _lazy_ByJj04, lazy: true, middleware: false, method: "post" },
20386
+ { route: '/api/project', handler: _lazy_WLg2Uu, lazy: true, middleware: false, method: "get" },
20387
+ { route: '/api/project/report', handler: _lazy_sQe2ZF, lazy: true, middleware: false, method: "get" },
20388
+ { route: '/api/prompt', handler: _lazy_wxPObX, lazy: true, middleware: false, method: "post" },
20389
+ { route: '/api/push/quiet', handler: _lazy_gHqHgE, lazy: true, middleware: false, method: "post" },
20390
+ { route: '/api/push/subscribe', handler: _lazy_vXOoN7, lazy: true, middleware: false, method: "post" },
20391
+ { route: '/api/push/test', handler: _lazy_y3mEYk, lazy: true, middleware: false, method: "post" },
20392
+ { route: '/api/push/unsubscribe', handler: _lazy_uxxrNB, lazy: true, middleware: false, method: "post" },
20393
+ { route: '/api/quotas', handler: _lazy_pyinM3, lazy: true, middleware: false, method: "get" },
20394
+ { route: '/api/rename', handler: _lazy_BBdm99, lazy: true, middleware: false, method: "post" },
20395
+ { route: '/api/requeue', handler: _lazy_wZhfGo, lazy: true, middleware: false, method: "post" },
20396
+ { route: '/api/restart', handler: _lazy_CNFo5h, lazy: true, middleware: false, method: "get" },
20397
+ { route: '/api/restart', handler: _lazy_yDFKBl, lazy: true, middleware: false, method: "post" },
20398
+ { route: '/api/reveal', handler: _lazy_EmFJ9I, lazy: true, middleware: false, method: "post" },
20399
+ { route: '/api/screen-key', handler: _lazy_0DhN9V, lazy: true, middleware: false, method: "post" },
20400
+ { route: '/api/screen', handler: _lazy_5kceYB, lazy: true, middleware: false, method: "get" },
20401
+ { route: '/api/search', handler: _lazy_K8ukU6, lazy: true, middleware: false, method: "get" },
20402
+ { route: '/api/seen', handler: _lazy_NXLBIE, lazy: true, middleware: false, method: "post" },
20403
+ { route: '/api/sessions', handler: _lazy_GOSQuW, lazy: true, middleware: false, method: "get" },
20404
+ { route: '/api/sessions', handler: _lazy_3y86mR, lazy: true, middleware: false, method: "post" },
20405
+ { route: '/api/space', handler: _lazy_TqhtLZ, lazy: true, middleware: false, method: "post" },
20406
+ { route: '/api/state', handler: _lazy_oeuOKk, lazy: true, middleware: false, method: "get" },
20407
+ { route: '/api/unqueue', handler: _lazy_ecbrXA, lazy: true, middleware: false, method: "post" },
20408
+ { route: '/api/update', handler: _lazy_AUmWqe, lazy: true, middleware: false, method: "get" },
20409
+ { route: '/api/upload', handler: _lazy_5f22vB, lazy: true, middleware: false, method: "post" },
20410
+ { route: '/api/worktrees', handler: _lazy_9iwHBL, lazy: true, middleware: false, method: "get" },
20411
+ { route: '/api/worktrees/remove', handler: _lazy_IA8rJi, lazy: true, middleware: false, method: "post" },
20412
+ { route: '/favicon.ico', handler: _lazy_dhT5sm, lazy: true, middleware: false, method: "get" },
20413
+ { route: '/icons/:name', handler: _lazy_2a3aHZ, lazy: true, middleware: false, method: "get" },
20414
+ { route: '/uploads/**:name', handler: _lazy_MpH2Yl, lazy: true, middleware: false, method: "get" },
20415
+ { route: '/ws/**', handler: _lazy_hSqSXW, lazy: true, middleware: false, method: undefined },
20416
+ { route: '/ws/events', handler: _lazy_N9wZe_, lazy: true, middleware: false, method: undefined },
20417
+ { route: '/ws/mirror', handler: _lazy_CXgyQE, lazy: true, middleware: false, method: undefined },
20418
+ { route: '/ws/term', handler: _lazy_Stovcz, lazy: true, middleware: false, method: undefined },
20419
+ { route: '/__nuxt_error', handler: _lazy_9gHabX, lazy: true, middleware: false, method: undefined },
20230
20420
  { route: '/__nuxt_island/**', handler: _SxA8c9, lazy: false, middleware: false, method: undefined },
20231
- { route: '/**', handler: _lazy_0XwxzV, lazy: true, middleware: false, method: undefined }
20421
+ { route: '/**', handler: _lazy_9gHabX, lazy: true, middleware: false, method: undefined }
20232
20422
  ];
20233
20423
 
20234
20424
  function createNitroApp() {
@@ -20687,5 +20877,5 @@ setupGracefulShutdown(listener, nitroApp);
20687
20877
  }
20688
20878
  const nodeServer = {};
20689
20879
 
20690
- export { recentDirsWithKinds as $, ATTACH_MAX as A, keysFor as B, parseChoices as C, parseOmpField as D, sameQuestion as E, sleep as F, getMachine as G, HerdrError as H, installClaudeStatusline as I, codexStatus as J, codexMenuOpen as K, terminalUpdateLine as L, MACHINE_KEY_RE as M, terminalUpdateDone as N, restarts as O, PANE_RE as P, log as Q, withPaneLock as R, builtinCommands as S, slashCommands as T, UPLOAD_DIR as U, HOME as V, localMachine as W, readSubs as X, vapidPublicKey as Y, pushReady as Z, machineConfigs as _, defineApi as a, quietActive as a$, installedAgentKinds as a0, IN_DOCKER as a1, HOST_OPEN_TARGET as a2, HOST_OPEN_KEY as a3, PANE_RE$1 as a4, splitId as a5, HOST_OPEN_USER as a6, listDirs as a7, closePanel as a8, setEffort as a9, initVapid as aA, herdrOn as aB, getState as aC, HERDR_CHILD_ENV as aD, HERDR_BIN as aE, currentMachineSlots as aF, paneBaseMachine as aG, projectOf as aH, isProjectThread as aI, limitMachineKeys as aJ, validLimit as aK, readThreadLimits as aL, writeThreadLimits as aM, closeTrailingMention as aN, restarting as aO, hasHeld as aP, INPUT_STATES as aQ, inputVisible as aR, shouldHold as aS, sendPrompt as aT, agentPrompt as aU, isBusyError as aV, HOLD_AGENTS as aW, pendingPrompts as aX, parseQuiet as aY, writeGlobalQuiet as aZ, writeSubs as a_, refreshModel as aa, listEfforts as ab, saveUpload as ac, underHome as ad, isSlashCommand as ae, addQueued as af, interruptAgent as ag, takeBackFromClaude as ah, takeBack as ai, isGitRepo as aj, projectFolderKinds as ak, baseMachines as al, DATA_DIR as am, renameMachine as an, readMenu as ao, searchKeys as ap, findEntry as aq, stepToward as ar, clickMovesOnly as as, setModel as at, listModels as au, TOP as av, HOST_LABEL as aw, getRequestHeaders as ax, ENV_APP_URL as ay, APP_URL_FILE as az, screenChoices as b, readGlobalQuiet as b0, validPushSubscription as b1, replaceSubscription as b2, pushSend as b3, readQuotas as b4, retryQueued as b5, parseWaitScreen as b6, hasTranscript as b7, SEARCH_DEADLINE_MS as b8, SEARCH_MAX_RESULTS as b9, defineRenderHandler as bA, createError$1 as bB, destr as bC, getRouteRules as bD, relative as bE, joinURL as bF, getResponseStatusText as bG, getResponseStatus as bH, useNitroApp as bI, nodeServer as bJ, spaceTitle as ba, markSeen as bb, listSessions as bc, openSession as bd, PANE_DIRECTIONS as be, cancelQueued as bf, installMode as bg, updateCommand as bh, compareVersions as bi, allMachines as bj, recentDirs as bk, joinId as bl, useStorage as bm, setResponseHeader as bn, getRouterParam as bo, readUpload as bp, defineWebSocketHandler as bq, eventClients as br, getStateJson as bs, hostAllowed as bt, sameOrigin as bu, mirrorSize as bv, termSessions as bw, useRuntimeConfig as bx, encodePath as by, joinRelativeURL as bz, createAgent as c, defineEventHandler as d, watchScreen as e, findPane as f, choicesCache as g, herdr as h, getQuery as i, saveAttachment as j, auth as k, localMachineLabel as l, machineFor as m, machineOfPane as n, fmt as o, poll as p, transcripts as q, reqOf as r, sendError as s, takenBackOf as t, uploadNames as u, withoutTakenBack as v, withOmpTab as w, withSentText as x, currentModel as y, sendImage as z };
20880
+ export { recentDirsWithKinds as $, ATTACH_MAX as A, keysFor as B, parseChoices as C, parseOmpField as D, sameQuestion as E, sleep as F, getMachine as G, HerdrError as H, installClaudeStatusline as I, codexStatus as J, codexMenuOpen as K, terminalUpdateLine as L, MACHINE_KEY_RE as M, terminalUpdateDone as N, restarts as O, PANE_RE as P, log as Q, withPaneLock as R, builtinCommands as S, slashCommands as T, UPLOAD_DIR as U, HOME as V, localMachine as W, readSubs as X, vapidPublicKey as Y, pushReady as Z, machineConfigs as _, defineApi as a, quietActive as a$, installedAgentKinds as a0, IN_DOCKER as a1, HOST_OPEN_TARGET as a2, HOST_OPEN_KEY as a3, PANE_RE$1 as a4, splitId as a5, HOST_OPEN_USER as a6, listDirs as a7, closePanel as a8, setEffort as a9, initVapid as aA, herdrOn as aB, getState as aC, HERDR_CHILD_ENV as aD, HERDR_BIN as aE, currentMachineSlots as aF, paneBaseMachine as aG, projectOf as aH, isProjectThread as aI, limitMachineKeys as aJ, validLimit as aK, readThreadLimits as aL, writeThreadLimits as aM, closeTrailingMention as aN, restarting as aO, hasHeld as aP, INPUT_STATES as aQ, inputVisible as aR, shouldHold as aS, sendPrompt as aT, agentPrompt as aU, isBusyError as aV, HOLD_AGENTS as aW, pendingPrompts as aX, parseQuiet as aY, writeGlobalQuiet as aZ, writeSubs as a_, refreshModel as aa, listEfforts as ab, saveUpload as ac, underHome as ad, isSlashCommand as ae, addQueued as af, interruptAgent as ag, takeBackFromClaude as ah, takeBack as ai, isGitRepo as aj, projectFolderKinds as ak, baseMachines as al, DATA_DIR as am, renameMachine as an, readMenu as ao, searchKeys as ap, findEntry as aq, stepToward as ar, clickMovesOnly as as, setModel as at, listModels as au, TOP as av, HOST_LABEL as aw, getRequestHeaders as ax, ENV_APP_URL as ay, APP_URL_FILE as az, screenChoices as b, readGlobalQuiet as b0, validPushSubscription as b1, replaceSubscription as b2, pushSend as b3, readQuotas as b4, retryQueued as b5, parseWaitScreen as b6, settingsTabs as b7, tabsOfRow as b8, hasTranscript as b9, encodePath as bA, joinRelativeURL as bB, defineRenderHandler as bC, createError$1 as bD, destr as bE, getRouteRules as bF, relative as bG, joinURL as bH, getResponseStatusText as bI, getResponseStatus as bJ, useNitroApp as bK, nodeServer as bL, SEARCH_DEADLINE_MS as ba, SEARCH_MAX_RESULTS as bb, spaceTitle as bc, markSeen as bd, listSessions as be, openSession as bf, PANE_DIRECTIONS as bg, cancelQueued as bh, installMode as bi, updateCommand as bj, compareVersions as bk, allMachines as bl, recentDirs as bm, joinId as bn, useStorage as bo, setResponseHeader as bp, getRouterParam as bq, readUpload as br, defineWebSocketHandler as bs, eventClients as bt, getStateJson as bu, hostAllowed as bv, sameOrigin as bw, mirrorSize as bx, openTerm as by, useRuntimeConfig as bz, createAgent as c, defineEventHandler as d, watchScreen as e, findPane as f, choicesCache as g, herdr as h, getQuery as i, saveAttachment as j, auth as k, localMachineLabel as l, machineFor as m, machineOfPane as n, fmt as o, poll as p, transcripts as q, reqOf as r, sendError as s, takenBackOf as t, uploadNames as u, withoutTakenBack as v, withOmpTab as w, withSentText as x, currentModel as y, sendImage as z };
20691
20881
  //# sourceMappingURL=nitro.mjs.map