conductor-oss 0.57.6 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/README.md +1 -1
  2. package/node_modules/@conductor-oss/core/dist/config.js +4 -4
  3. package/node_modules/@conductor-oss/core/dist/config.js.map +1 -1
  4. package/node_modules/@conductor-oss/core/dist/types.d.ts +1 -1
  5. package/node_modules/@conductor-oss/core/dist/types.js +1 -1
  6. package/package.json +5 -5
  7. package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
  8. package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +5 -6
  9. package/web/.next/standalone/packages/web/.next/build-manifest.json +3 -3
  10. package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
  11. package/web/.next/standalone/packages/web/.next/react-loadable-manifest.json +12 -12
  12. package/web/.next/standalone/packages/web/.next/routes-manifest.json +8 -16
  13. package/web/.next/standalone/packages/web/.next/server/app/__clerk/[[...path]]/route.js +1 -1
  14. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page.js +3 -3
  15. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  16. package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +1 -1
  17. package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  18. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  19. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  20. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  21. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  22. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  23. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  24. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +2 -2
  25. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  26. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  27. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +1 -1
  28. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +1 -1
  29. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js +1 -1
  30. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +1 -1
  31. package/web/.next/standalone/packages/web/.next/server/app/api/auth/profile/route.js +1 -1
  32. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js +1 -1
  33. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +1 -1
  34. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/bridges/[bridgeId]/route.js +1 -1
  35. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/bridges/route.js +1 -1
  36. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/app-update/route.js +1 -1
  37. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/repair/route.js +1 -1
  38. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/route.js +1 -1
  39. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/service-restart/route.js +1 -1
  40. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/claims/complete/route.js +1 -1
  41. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/code/route.js +1 -1
  42. package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/route.js +1 -1
  43. package/web/.next/standalone/packages/web/.next/server/app/api/bridges/route.js +1 -1
  44. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +1 -1
  45. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js +1 -1
  46. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +1 -1
  47. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +1 -1
  48. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js +1 -1
  49. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +1 -1
  50. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js +1 -1
  51. package/web/.next/standalone/packages/web/.next/server/app/api/github/projects/route.js +1 -1
  52. package/web/.next/standalone/packages/web/.next/server/app/api/github/projects/sync/route.js +1 -1
  53. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +1 -1
  54. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js +1 -1
  55. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +1 -1
  56. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +1 -1
  57. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +1 -1
  58. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +1 -1
  59. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/bindings/route.js +1 -1
  60. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/feed/route.js +1 -1
  61. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/feed/stream/route.js +1 -1
  62. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/integration/route.js +1 -1
  63. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/interrupt/route.js +1 -1
  64. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/preferences/route.js +1 -1
  65. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/route.js +1 -1
  66. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/send/route.js +1 -1
  67. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/tasks/[task]/handoff/route.js +1 -1
  68. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/tasks/[task]/route.js +1 -1
  69. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatcher/tasks/route.js +1 -1
  70. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/dispatchers/route.js +1 -1
  71. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/open/route.js +1 -1
  72. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/route.js +1 -1
  73. package/web/.next/standalone/packages/web/.next/server/app/api/projects/[id]/setup/route.js +1 -1
  74. package/web/.next/standalone/packages/web/.next/server/app/api/projects/route.js +1 -1
  75. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js +1 -1
  76. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +1 -1
  77. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +1 -1
  78. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
  79. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +1 -1
  80. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +1 -1
  81. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +1 -1
  82. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +1 -1
  83. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +1 -1
  84. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +1 -1
  85. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +1 -1
  86. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js +1 -1
  87. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js +1 -1
  88. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js +1 -1
  89. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +1 -1
  90. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +1 -1
  91. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/relay/route.js +1 -1
  92. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js +1 -1
  93. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/token/route.js +1 -1
  94. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/token/route.js.nft.json +1 -1
  95. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ws/route.js +1 -0
  96. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/{ttyd → ws}/route.js.nft.json +1 -1
  97. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ws/route_client-reference-manifest.js +1 -0
  98. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +1 -1
  99. package/web/.next/standalone/packages/web/.next/server/app/api/skills/activate/route.js +1 -1
  100. package/web/.next/standalone/packages/web/.next/server/app/api/skills/catalog/route.js +1 -1
  101. package/web/.next/standalone/packages/web/.next/server/app/api/skills/deactivate/route.js +1 -1
  102. package/web/.next/standalone/packages/web/.next/server/app/api/skills/install/route.js +1 -1
  103. package/web/.next/standalone/packages/web/.next/server/app/api/skills/installed/route.js +1 -1
  104. package/web/.next/standalone/packages/web/.next/server/app/api/skills/session-active/route.js +1 -1
  105. package/web/.next/standalone/packages/web/.next/server/app/api/skills/uninstall/route.js +1 -1
  106. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +1 -1
  107. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +1 -1
  108. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +1 -1
  109. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js +2 -2
  110. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js.nft.json +1 -1
  111. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page_client-reference-manifest.js +1 -1
  112. package/web/.next/standalone/packages/web/.next/server/app/bridge/install.ps1/route.js +2 -2
  113. package/web/.next/standalone/packages/web/.next/server/app/bridge/install.sh/route.js +2 -2
  114. package/web/.next/standalone/packages/web/.next/server/app/embed/terminal/[id]/page.js +6 -0
  115. package/web/.next/standalone/packages/web/.next/server/app/embed/terminal/[id]/page.js.nft.json +1 -0
  116. package/web/.next/standalone/packages/web/.next/server/app/embed/terminal/[id]/page_client-reference-manifest.js +1 -0
  117. package/web/.next/standalone/packages/web/.next/server/app/icon.svg/route.js +1 -1
  118. package/web/.next/standalone/packages/web/.next/server/app/page.js +2 -2
  119. package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  120. package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  121. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +2 -2
  122. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  123. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  124. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js +2 -2
  125. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js.nft.json +1 -1
  126. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page_client-reference-manifest.js +1 -1
  127. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js +2 -2
  128. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
  129. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
  130. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js +2 -2
  131. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js.nft.json +1 -1
  132. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page_client-reference-manifest.js +1 -1
  133. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js +2 -2
  134. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js.nft.json +1 -1
  135. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page_client-reference-manifest.js +1 -1
  136. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js +2 -2
  137. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
  138. package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
  139. package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +5 -6
  140. package/web/.next/standalone/packages/web/.next/server/chunks/2089.js +3 -3
  141. package/web/.next/standalone/packages/web/.next/server/chunks/{9149.js → 3054.js} +1 -1
  142. package/web/.next/standalone/packages/web/.next/server/chunks/{7548.js → 3414.js} +1 -1
  143. package/web/.next/standalone/packages/web/.next/server/chunks/5068.js +1 -1
  144. package/web/.next/standalone/packages/web/.next/server/chunks/6034.js +1 -1
  145. package/web/.next/standalone/packages/web/.next/server/chunks/626.js +1 -0
  146. package/web/.next/standalone/packages/web/.next/server/chunks/{3540.js → 7737.js} +1 -1
  147. package/web/.next/standalone/packages/web/.next/server/chunks/9030.js +1 -0
  148. package/web/.next/standalone/packages/web/.next/server/chunks/9455.js +1 -1
  149. package/web/.next/standalone/packages/web/.next/server/functions-config-manifest.json +1 -3
  150. package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +1 -1
  151. package/web/.next/standalone/packages/web/.next/server/middleware-react-loadable-manifest.js +1 -1
  152. package/web/.next/standalone/packages/web/.next/server/next-font-manifest.js +1 -1
  153. package/web/.next/standalone/packages/web/.next/server/next-font-manifest.json +1 -1
  154. package/web/.next/standalone/packages/web/.next/server/pages/500.html +1 -1
  155. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  156. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
  157. package/web/.next/standalone/packages/web/.next/static/{2fd2xxj8LPZwZbsGpYttR → EZxyXuDt2fbD_J3ABqLGK}/_buildManifest.js +1 -1
  158. package/web/.next/standalone/packages/web/.next/static/chunks/1698.2bb12e16a46e63e6.js +1 -0
  159. package/web/.next/standalone/packages/web/.next/static/chunks/{2261.cbe7673af7ac2a09.js → 2261.a4a22edc2699e706.js} +1 -1
  160. package/web/.next/{static/chunks/9703-93347b812923255f.js → standalone/packages/web/.next/static/chunks/3301-83bfba2f12daff75.js} +2 -2
  161. package/web/.next/standalone/packages/web/.next/static/chunks/{3838.e16cb2d72c562a24.js → 3838.70eaf44136d75fd9.js} +1 -1
  162. package/web/.next/standalone/packages/web/.next/static/chunks/4094.b94100f0b554a20c.js +1 -0
  163. package/web/.next/standalone/packages/web/.next/static/chunks/{6778.b11dd7c7d98f5ec9.js → 4397.d5c3dfd99c20ef0a.js} +1 -1
  164. package/web/.next/standalone/packages/web/.next/static/chunks/{4443.0816c59f52ded54b.js → 4443.951bc4743a39cfbe.js} +1 -1
  165. package/web/.next/standalone/packages/web/.next/static/chunks/{2969.7ed62af605513fc5.js → 5350.aa94c6b8388dca53.js} +1 -1
  166. package/web/.next/standalone/packages/web/.next/static/chunks/{5493-aa36cf7b22e93079.js → 5493-56abbf2a46a290a7.js} +1 -1
  167. package/web/.next/standalone/packages/web/.next/static/chunks/{1964-5f3bdfb35008cdf0.js → 6778-f675a7009d5d06b5.js} +1 -1
  168. package/web/.next/standalone/packages/web/.next/static/chunks/{8510-7040ccbe7369f319.js → 8510-8433dfaacc306299.js} +1 -1
  169. package/web/.next/standalone/packages/web/.next/static/chunks/app/%5F%5Fclerk/[[...path]]/route-2014857132332e79.js +1 -0
  170. package/web/.next/standalone/packages/web/.next/static/chunks/app/_global-error/page-2014857132332e79.js +1 -0
  171. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/access/route-2014857132332e79.js +1 -0
  172. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/agents/route-2014857132332e79.js +1 -0
  173. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/app-update/route-2014857132332e79.js +1 -0
  174. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/attachments/route-2014857132332e79.js +1 -0
  175. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/auth/profile/route-2014857132332e79.js +1 -0
  176. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/boards/comments/route-2014857132332e79.js +1 -0
  177. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/boards/route-2014857132332e79.js +1 -0
  178. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/bridges/[bridgeId]/route-2014857132332e79.js +1 -0
  179. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/bridges/route-2014857132332e79.js +1 -0
  180. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/app-update/route-2014857132332e79.js +1 -0
  181. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/repair/route-2014857132332e79.js +1 -0
  182. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/route-2014857132332e79.js +1 -0
  183. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/service-restart/route-2014857132332e79.js +1 -0
  184. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/claims/complete/route-2014857132332e79.js +1 -0
  185. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/code/route-2014857132332e79.js +1 -0
  186. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/route-2014857132332e79.js +1 -0
  187. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridges/route-2014857132332e79.js +1 -0
  188. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/config/route-2014857132332e79.js +1 -0
  189. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/context-files/open/route-2014857132332e79.js +1 -0
  190. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/context-files/route-2014857132332e79.js +1 -0
  191. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/events/route-2014857132332e79.js +1 -0
  192. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/executor/health/route-2014857132332e79.js +1 -0
  193. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/filesystem/directory/route-2014857132332e79.js +1 -0
  194. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/filesystem/pick-directory/route-2014857132332e79.js +1 -0
  195. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/projects/route-2014857132332e79.js +1 -0
  196. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/projects/sync/route-2014857132332e79.js +1 -0
  197. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/repos/route-2014857132332e79.js +1 -0
  198. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/webhook/route-2014857132332e79.js +1 -0
  199. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/health/boards/route-2014857132332e79.js +1 -0
  200. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/health/sessions/route-2014857132332e79.js +1 -0
  201. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/notifications/route-2014857132332e79.js +1 -0
  202. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/preferences/route-2014857132332e79.js +1 -0
  203. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/bindings/route-2014857132332e79.js +1 -0
  204. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/feed/route-2014857132332e79.js +1 -0
  205. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/feed/stream/route-2014857132332e79.js +1 -0
  206. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/integration/route-2014857132332e79.js +1 -0
  207. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/interrupt/route-2014857132332e79.js +1 -0
  208. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/preferences/route-2014857132332e79.js +1 -0
  209. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/route-2014857132332e79.js +1 -0
  210. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/send/route-2014857132332e79.js +1 -0
  211. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/[task]/handoff/route-2014857132332e79.js +1 -0
  212. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/[task]/route-2014857132332e79.js +1 -0
  213. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/route-2014857132332e79.js +1 -0
  214. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatchers/route-2014857132332e79.js +1 -0
  215. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/open/route-2014857132332e79.js +1 -0
  216. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/route-2014857132332e79.js +1 -0
  217. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/setup/route-2014857132332e79.js +1 -0
  218. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/route-2014857132332e79.js +1 -0
  219. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/repositories/[id]/route-2014857132332e79.js +1 -0
  220. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/repositories/route-2014857132332e79.js +1 -0
  221. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/actions/route-2014857132332e79.js +1 -0
  222. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/archive/route-2014857132332e79.js +1 -0
  223. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/checks/route-2014857132332e79.js +1 -0
  224. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/diff/route-2014857132332e79.js +1 -0
  225. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/files/route-2014857132332e79.js +1 -0
  226. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/keys/route-2014857132332e79.js +1 -0
  227. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/kill/route-2014857132332e79.js +1 -0
  228. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/output/route-2014857132332e79.js +1 -0
  229. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/output/stream/route-2014857132332e79.js +1 -0
  230. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/dom/route-2014857132332e79.js +1 -0
  231. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/route-2014857132332e79.js +1 -0
  232. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/screenshot/route-2014857132332e79.js +1 -0
  233. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/restore/route-2014857132332e79.js +1 -0
  234. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/route-2014857132332e79.js +1 -0
  235. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/relay/route-2014857132332e79.js +1 -0
  236. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/snapshot/route-2014857132332e79.js +1 -0
  237. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/token/route-2014857132332e79.js +1 -0
  238. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/ws/route-2014857132332e79.js +1 -0
  239. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/route-2014857132332e79.js +1 -0
  240. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/activate/route-2014857132332e79.js +1 -0
  241. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/catalog/route-2014857132332e79.js +1 -0
  242. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/deactivate/route-2014857132332e79.js +1 -0
  243. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/install/route-2014857132332e79.js +1 -0
  244. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/installed/route-2014857132332e79.js +1 -0
  245. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/session-active/route-2014857132332e79.js +1 -0
  246. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/uninstall/route-2014857132332e79.js +1 -0
  247. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/spawn/route-2014857132332e79.js +1 -0
  248. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/workspaces/branches/route-2014857132332e79.js +1 -0
  249. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/workspaces/route-2014857132332e79.js +1 -0
  250. package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/connect/page-4353167bf419a5e2.js +1 -0
  251. package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/install.ps1/route-2014857132332e79.js +1 -0
  252. package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/install.sh/route-2014857132332e79.js +1 -0
  253. package/web/.next/standalone/packages/web/.next/static/chunks/app/embed/terminal/[id]/page-f237abb4e8051e1b.js +3 -0
  254. package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-5dcda65798010dd0.js +1 -0
  255. package/web/.next/standalone/packages/web/.next/static/chunks/app/page-a738f5ee8dd225d5.js +1 -0
  256. package/web/.next/standalone/packages/web/.next/static/chunks/app/sessions/[id]/{page-c5e2da005848302c.js → page-0584f75c0511152f.js} +1 -1
  257. package/web/.next/standalone/packages/web/.next/static/chunks/app/sign-in/hosted/page-2014857132332e79.js +1 -0
  258. package/web/.next/standalone/packages/web/.next/static/chunks/ca465714-4d31bfa1a1fb3e89.js +3 -0
  259. package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/app-error-2014857132332e79.js +1 -0
  260. package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-2014857132332e79.js +1 -0
  261. package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/not-found-2014857132332e79.js +1 -0
  262. package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2014857132332e79.js +1 -0
  263. package/web/.next/standalone/packages/web/.next/static/chunks/webpack-910378af4ef971d5.js +1 -0
  264. package/web/.next/standalone/packages/web/.next/static/css/6ef2fa08dd043252.css +1 -0
  265. package/web/.next/standalone/packages/web/.next/static/css/e079b536879689ec.css +1 -0
  266. package/web/.next/static/{2fd2xxj8LPZwZbsGpYttR → EZxyXuDt2fbD_J3ABqLGK}/_buildManifest.js +1 -1
  267. package/web/.next/static/chunks/1698.2bb12e16a46e63e6.js +1 -0
  268. package/web/.next/static/chunks/{2261.cbe7673af7ac2a09.js → 2261.a4a22edc2699e706.js} +1 -1
  269. package/web/.next/{standalone/packages/web/.next/static/chunks/9703-93347b812923255f.js → static/chunks/3301-83bfba2f12daff75.js} +2 -2
  270. package/web/.next/static/chunks/{3838.e16cb2d72c562a24.js → 3838.70eaf44136d75fd9.js} +1 -1
  271. package/web/.next/static/chunks/4094.b94100f0b554a20c.js +1 -0
  272. package/web/.next/static/chunks/{6778.b11dd7c7d98f5ec9.js → 4397.d5c3dfd99c20ef0a.js} +1 -1
  273. package/web/.next/static/chunks/{4443.0816c59f52ded54b.js → 4443.951bc4743a39cfbe.js} +1 -1
  274. package/web/.next/static/chunks/{2969.7ed62af605513fc5.js → 5350.aa94c6b8388dca53.js} +1 -1
  275. package/web/.next/static/chunks/{5493-aa36cf7b22e93079.js → 5493-56abbf2a46a290a7.js} +1 -1
  276. package/web/.next/static/chunks/{1964-5f3bdfb35008cdf0.js → 6778-f675a7009d5d06b5.js} +1 -1
  277. package/web/.next/static/chunks/{8510-7040ccbe7369f319.js → 8510-8433dfaacc306299.js} +1 -1
  278. package/web/.next/static/chunks/app/%5F%5Fclerk/[[...path]]/route-2014857132332e79.js +1 -0
  279. package/web/.next/static/chunks/app/_global-error/page-2014857132332e79.js +1 -0
  280. package/web/.next/static/chunks/app/api/access/route-2014857132332e79.js +1 -0
  281. package/web/.next/static/chunks/app/api/agents/route-2014857132332e79.js +1 -0
  282. package/web/.next/static/chunks/app/api/app-update/route-2014857132332e79.js +1 -0
  283. package/web/.next/static/chunks/app/api/attachments/route-2014857132332e79.js +1 -0
  284. package/web/.next/static/chunks/app/api/auth/profile/route-2014857132332e79.js +1 -0
  285. package/web/.next/static/chunks/app/api/boards/comments/route-2014857132332e79.js +1 -0
  286. package/web/.next/static/chunks/app/api/boards/route-2014857132332e79.js +1 -0
  287. package/web/.next/static/chunks/app/api/bridge/bridges/[bridgeId]/route-2014857132332e79.js +1 -0
  288. package/web/.next/static/chunks/app/api/bridge/bridges/route-2014857132332e79.js +1 -0
  289. package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/app-update/route-2014857132332e79.js +1 -0
  290. package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/repair/route-2014857132332e79.js +1 -0
  291. package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/route-2014857132332e79.js +1 -0
  292. package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/service-restart/route-2014857132332e79.js +1 -0
  293. package/web/.next/static/chunks/app/api/bridge/devices/claims/complete/route-2014857132332e79.js +1 -0
  294. package/web/.next/static/chunks/app/api/bridge/devices/code/route-2014857132332e79.js +1 -0
  295. package/web/.next/static/chunks/app/api/bridge/devices/route-2014857132332e79.js +1 -0
  296. package/web/.next/static/chunks/app/api/bridges/route-2014857132332e79.js +1 -0
  297. package/web/.next/static/chunks/app/api/config/route-2014857132332e79.js +1 -0
  298. package/web/.next/static/chunks/app/api/context-files/open/route-2014857132332e79.js +1 -0
  299. package/web/.next/static/chunks/app/api/context-files/route-2014857132332e79.js +1 -0
  300. package/web/.next/static/chunks/app/api/events/route-2014857132332e79.js +1 -0
  301. package/web/.next/static/chunks/app/api/executor/health/route-2014857132332e79.js +1 -0
  302. package/web/.next/static/chunks/app/api/filesystem/directory/route-2014857132332e79.js +1 -0
  303. package/web/.next/static/chunks/app/api/filesystem/pick-directory/route-2014857132332e79.js +1 -0
  304. package/web/.next/static/chunks/app/api/github/projects/route-2014857132332e79.js +1 -0
  305. package/web/.next/static/chunks/app/api/github/projects/sync/route-2014857132332e79.js +1 -0
  306. package/web/.next/static/chunks/app/api/github/repos/route-2014857132332e79.js +1 -0
  307. package/web/.next/static/chunks/app/api/github/webhook/route-2014857132332e79.js +1 -0
  308. package/web/.next/static/chunks/app/api/health/boards/route-2014857132332e79.js +1 -0
  309. package/web/.next/static/chunks/app/api/health/sessions/route-2014857132332e79.js +1 -0
  310. package/web/.next/static/chunks/app/api/notifications/route-2014857132332e79.js +1 -0
  311. package/web/.next/static/chunks/app/api/preferences/route-2014857132332e79.js +1 -0
  312. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/bindings/route-2014857132332e79.js +1 -0
  313. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/feed/route-2014857132332e79.js +1 -0
  314. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/feed/stream/route-2014857132332e79.js +1 -0
  315. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/integration/route-2014857132332e79.js +1 -0
  316. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/interrupt/route-2014857132332e79.js +1 -0
  317. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/preferences/route-2014857132332e79.js +1 -0
  318. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/route-2014857132332e79.js +1 -0
  319. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/send/route-2014857132332e79.js +1 -0
  320. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/[task]/handoff/route-2014857132332e79.js +1 -0
  321. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/[task]/route-2014857132332e79.js +1 -0
  322. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/route-2014857132332e79.js +1 -0
  323. package/web/.next/static/chunks/app/api/projects/[id]/dispatchers/route-2014857132332e79.js +1 -0
  324. package/web/.next/static/chunks/app/api/projects/[id]/open/route-2014857132332e79.js +1 -0
  325. package/web/.next/static/chunks/app/api/projects/[id]/route-2014857132332e79.js +1 -0
  326. package/web/.next/static/chunks/app/api/projects/[id]/setup/route-2014857132332e79.js +1 -0
  327. package/web/.next/static/chunks/app/api/projects/route-2014857132332e79.js +1 -0
  328. package/web/.next/static/chunks/app/api/repositories/[id]/route-2014857132332e79.js +1 -0
  329. package/web/.next/static/chunks/app/api/repositories/route-2014857132332e79.js +1 -0
  330. package/web/.next/static/chunks/app/api/sessions/[id]/actions/route-2014857132332e79.js +1 -0
  331. package/web/.next/static/chunks/app/api/sessions/[id]/archive/route-2014857132332e79.js +1 -0
  332. package/web/.next/static/chunks/app/api/sessions/[id]/checks/route-2014857132332e79.js +1 -0
  333. package/web/.next/static/chunks/app/api/sessions/[id]/diff/route-2014857132332e79.js +1 -0
  334. package/web/.next/static/chunks/app/api/sessions/[id]/files/route-2014857132332e79.js +1 -0
  335. package/web/.next/static/chunks/app/api/sessions/[id]/keys/route-2014857132332e79.js +1 -0
  336. package/web/.next/static/chunks/app/api/sessions/[id]/kill/route-2014857132332e79.js +1 -0
  337. package/web/.next/static/chunks/app/api/sessions/[id]/output/route-2014857132332e79.js +1 -0
  338. package/web/.next/static/chunks/app/api/sessions/[id]/output/stream/route-2014857132332e79.js +1 -0
  339. package/web/.next/static/chunks/app/api/sessions/[id]/preview/dom/route-2014857132332e79.js +1 -0
  340. package/web/.next/static/chunks/app/api/sessions/[id]/preview/route-2014857132332e79.js +1 -0
  341. package/web/.next/static/chunks/app/api/sessions/[id]/preview/screenshot/route-2014857132332e79.js +1 -0
  342. package/web/.next/static/chunks/app/api/sessions/[id]/restore/route-2014857132332e79.js +1 -0
  343. package/web/.next/static/chunks/app/api/sessions/[id]/route-2014857132332e79.js +1 -0
  344. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/relay/route-2014857132332e79.js +1 -0
  345. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/snapshot/route-2014857132332e79.js +1 -0
  346. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/token/route-2014857132332e79.js +1 -0
  347. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/ws/route-2014857132332e79.js +1 -0
  348. package/web/.next/static/chunks/app/api/sessions/route-2014857132332e79.js +1 -0
  349. package/web/.next/static/chunks/app/api/skills/activate/route-2014857132332e79.js +1 -0
  350. package/web/.next/static/chunks/app/api/skills/catalog/route-2014857132332e79.js +1 -0
  351. package/web/.next/static/chunks/app/api/skills/deactivate/route-2014857132332e79.js +1 -0
  352. package/web/.next/static/chunks/app/api/skills/install/route-2014857132332e79.js +1 -0
  353. package/web/.next/static/chunks/app/api/skills/installed/route-2014857132332e79.js +1 -0
  354. package/web/.next/static/chunks/app/api/skills/session-active/route-2014857132332e79.js +1 -0
  355. package/web/.next/static/chunks/app/api/skills/uninstall/route-2014857132332e79.js +1 -0
  356. package/web/.next/static/chunks/app/api/spawn/route-2014857132332e79.js +1 -0
  357. package/web/.next/static/chunks/app/api/workspaces/branches/route-2014857132332e79.js +1 -0
  358. package/web/.next/static/chunks/app/api/workspaces/route-2014857132332e79.js +1 -0
  359. package/web/.next/static/chunks/app/bridge/connect/page-4353167bf419a5e2.js +1 -0
  360. package/web/.next/static/chunks/app/bridge/install.ps1/route-2014857132332e79.js +1 -0
  361. package/web/.next/static/chunks/app/bridge/install.sh/route-2014857132332e79.js +1 -0
  362. package/web/.next/static/chunks/app/embed/terminal/[id]/page-f237abb4e8051e1b.js +3 -0
  363. package/web/.next/static/chunks/app/layout-5dcda65798010dd0.js +1 -0
  364. package/web/.next/static/chunks/app/page-a738f5ee8dd225d5.js +1 -0
  365. package/web/.next/static/chunks/app/sessions/[id]/{page-c5e2da005848302c.js → page-0584f75c0511152f.js} +1 -1
  366. package/web/.next/static/chunks/app/sign-in/hosted/page-2014857132332e79.js +1 -0
  367. package/web/.next/static/chunks/ca465714-4d31bfa1a1fb3e89.js +3 -0
  368. package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-2014857132332e79.js +1 -0
  369. package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-2014857132332e79.js +1 -0
  370. package/web/.next/static/chunks/next/dist/client/components/builtin/not-found-2014857132332e79.js +1 -0
  371. package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2014857132332e79.js +1 -0
  372. package/web/.next/static/chunks/webpack-910378af4ef971d5.js +1 -0
  373. package/web/.next/static/css/6ef2fa08dd043252.css +1 -0
  374. package/web/.next/static/css/e079b536879689ec.css +1 -0
  375. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/route.js +0 -1
  376. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/route_client-reference-manifest.js +0 -1
  377. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/token/route.js +0 -1
  378. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/token/route.js.nft.json +0 -1
  379. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/token/route_client-reference-manifest.js +0 -1
  380. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/ws/route.js +0 -1
  381. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/ws/route.js.nft.json +0 -1
  382. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/ws/route_client-reference-manifest.js +0 -1
  383. package/web/.next/standalone/packages/web/.next/server/chunks/3364.js +0 -3
  384. package/web/.next/standalone/packages/web/.next/server/chunks/8039.js +0 -278
  385. package/web/.next/standalone/packages/web/.next/server/chunks/8488.js +0 -1
  386. package/web/.next/standalone/packages/web/.next/static/chunks/1136.122b0a20e0377c72.js +0 -1
  387. package/web/.next/standalone/packages/web/.next/static/chunks/883-535cfc45ad771bdd.js +0 -3
  388. package/web/.next/standalone/packages/web/.next/static/chunks/app/%5F%5Fclerk/[[...path]]/route-da63d844222da45c.js +0 -1
  389. package/web/.next/standalone/packages/web/.next/static/chunks/app/_global-error/page-da63d844222da45c.js +0 -1
  390. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/access/route-da63d844222da45c.js +0 -1
  391. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/agents/route-da63d844222da45c.js +0 -1
  392. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/app-update/route-da63d844222da45c.js +0 -1
  393. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/attachments/route-da63d844222da45c.js +0 -1
  394. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/auth/profile/route-da63d844222da45c.js +0 -1
  395. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/boards/comments/route-da63d844222da45c.js +0 -1
  396. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/boards/route-da63d844222da45c.js +0 -1
  397. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/bridges/[bridgeId]/route-da63d844222da45c.js +0 -1
  398. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/bridges/route-da63d844222da45c.js +0 -1
  399. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/app-update/route-da63d844222da45c.js +0 -1
  400. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/repair/route-da63d844222da45c.js +0 -1
  401. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/route-da63d844222da45c.js +0 -1
  402. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/service-restart/route-da63d844222da45c.js +0 -1
  403. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/claims/complete/route-da63d844222da45c.js +0 -1
  404. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/code/route-da63d844222da45c.js +0 -1
  405. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/route-da63d844222da45c.js +0 -1
  406. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridges/route-da63d844222da45c.js +0 -1
  407. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/config/route-da63d844222da45c.js +0 -1
  408. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/context-files/open/route-da63d844222da45c.js +0 -1
  409. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/context-files/route-da63d844222da45c.js +0 -1
  410. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/events/route-da63d844222da45c.js +0 -1
  411. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/executor/health/route-da63d844222da45c.js +0 -1
  412. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/filesystem/directory/route-da63d844222da45c.js +0 -1
  413. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/filesystem/pick-directory/route-da63d844222da45c.js +0 -1
  414. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/projects/route-da63d844222da45c.js +0 -1
  415. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/projects/sync/route-da63d844222da45c.js +0 -1
  416. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/repos/route-da63d844222da45c.js +0 -1
  417. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/webhook/route-da63d844222da45c.js +0 -1
  418. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/health/boards/route-da63d844222da45c.js +0 -1
  419. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/health/sessions/route-da63d844222da45c.js +0 -1
  420. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/notifications/route-da63d844222da45c.js +0 -1
  421. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/preferences/route-da63d844222da45c.js +0 -1
  422. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/bindings/route-da63d844222da45c.js +0 -1
  423. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/feed/route-da63d844222da45c.js +0 -1
  424. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/feed/stream/route-da63d844222da45c.js +0 -1
  425. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/integration/route-da63d844222da45c.js +0 -1
  426. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/interrupt/route-da63d844222da45c.js +0 -1
  427. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/preferences/route-da63d844222da45c.js +0 -1
  428. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/route-da63d844222da45c.js +0 -1
  429. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/send/route-da63d844222da45c.js +0 -1
  430. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/[task]/handoff/route-da63d844222da45c.js +0 -1
  431. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/[task]/route-da63d844222da45c.js +0 -1
  432. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/route-da63d844222da45c.js +0 -1
  433. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/dispatchers/route-da63d844222da45c.js +0 -1
  434. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/open/route-da63d844222da45c.js +0 -1
  435. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/route-da63d844222da45c.js +0 -1
  436. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/[id]/setup/route-da63d844222da45c.js +0 -1
  437. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/projects/route-da63d844222da45c.js +0 -1
  438. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/repositories/[id]/route-da63d844222da45c.js +0 -1
  439. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/repositories/route-da63d844222da45c.js +0 -1
  440. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/actions/route-da63d844222da45c.js +0 -1
  441. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/archive/route-da63d844222da45c.js +0 -1
  442. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/checks/route-da63d844222da45c.js +0 -1
  443. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/diff/route-da63d844222da45c.js +0 -1
  444. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/files/route-da63d844222da45c.js +0 -1
  445. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/keys/route-da63d844222da45c.js +0 -1
  446. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/kill/route-da63d844222da45c.js +0 -1
  447. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/output/route-da63d844222da45c.js +0 -1
  448. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/output/stream/route-da63d844222da45c.js +0 -1
  449. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/dom/route-da63d844222da45c.js +0 -1
  450. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/route-da63d844222da45c.js +0 -1
  451. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/screenshot/route-da63d844222da45c.js +0 -1
  452. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/restore/route-da63d844222da45c.js +0 -1
  453. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/route-da63d844222da45c.js +0 -1
  454. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/relay/route-da63d844222da45c.js +0 -1
  455. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/snapshot/route-da63d844222da45c.js +0 -1
  456. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/token/route-da63d844222da45c.js +0 -1
  457. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/route-da63d844222da45c.js +0 -1
  458. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/token/route-da63d844222da45c.js +0 -1
  459. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/ws/route-da63d844222da45c.js +0 -1
  460. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/route-da63d844222da45c.js +0 -1
  461. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/activate/route-da63d844222da45c.js +0 -1
  462. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/catalog/route-da63d844222da45c.js +0 -1
  463. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/deactivate/route-da63d844222da45c.js +0 -1
  464. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/install/route-da63d844222da45c.js +0 -1
  465. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/installed/route-da63d844222da45c.js +0 -1
  466. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/session-active/route-da63d844222da45c.js +0 -1
  467. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/skills/uninstall/route-da63d844222da45c.js +0 -1
  468. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/spawn/route-da63d844222da45c.js +0 -1
  469. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/workspaces/branches/route-da63d844222da45c.js +0 -1
  470. package/web/.next/standalone/packages/web/.next/static/chunks/app/api/workspaces/route-da63d844222da45c.js +0 -1
  471. package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/connect/page-69fb7636334c3973.js +0 -1
  472. package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/install.ps1/route-da63d844222da45c.js +0 -1
  473. package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/install.sh/route-da63d844222da45c.js +0 -1
  474. package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-6026ce906f0cd4a4.js +0 -1
  475. package/web/.next/standalone/packages/web/.next/static/chunks/app/page-b6a5c403840a5555.js +0 -1
  476. package/web/.next/standalone/packages/web/.next/static/chunks/app/sign-in/hosted/page-da63d844222da45c.js +0 -1
  477. package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/app-error-da63d844222da45c.js +0 -1
  478. package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-da63d844222da45c.js +0 -1
  479. package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/not-found-da63d844222da45c.js +0 -1
  480. package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-da63d844222da45c.js +0 -1
  481. package/web/.next/standalone/packages/web/.next/static/chunks/webpack-861a73c6545f426f.js +0 -1
  482. package/web/.next/standalone/packages/web/.next/static/css/d31189a7bb85881e.css +0 -1
  483. package/web/.next/static/chunks/1136.122b0a20e0377c72.js +0 -1
  484. package/web/.next/static/chunks/883-535cfc45ad771bdd.js +0 -3
  485. package/web/.next/static/chunks/app/%5F%5Fclerk/[[...path]]/route-da63d844222da45c.js +0 -1
  486. package/web/.next/static/chunks/app/_global-error/page-da63d844222da45c.js +0 -1
  487. package/web/.next/static/chunks/app/api/access/route-da63d844222da45c.js +0 -1
  488. package/web/.next/static/chunks/app/api/agents/route-da63d844222da45c.js +0 -1
  489. package/web/.next/static/chunks/app/api/app-update/route-da63d844222da45c.js +0 -1
  490. package/web/.next/static/chunks/app/api/attachments/route-da63d844222da45c.js +0 -1
  491. package/web/.next/static/chunks/app/api/auth/profile/route-da63d844222da45c.js +0 -1
  492. package/web/.next/static/chunks/app/api/boards/comments/route-da63d844222da45c.js +0 -1
  493. package/web/.next/static/chunks/app/api/boards/route-da63d844222da45c.js +0 -1
  494. package/web/.next/static/chunks/app/api/bridge/bridges/[bridgeId]/route-da63d844222da45c.js +0 -1
  495. package/web/.next/static/chunks/app/api/bridge/bridges/route-da63d844222da45c.js +0 -1
  496. package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/app-update/route-da63d844222da45c.js +0 -1
  497. package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/repair/route-da63d844222da45c.js +0 -1
  498. package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/route-da63d844222da45c.js +0 -1
  499. package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/service-restart/route-da63d844222da45c.js +0 -1
  500. package/web/.next/static/chunks/app/api/bridge/devices/claims/complete/route-da63d844222da45c.js +0 -1
  501. package/web/.next/static/chunks/app/api/bridge/devices/code/route-da63d844222da45c.js +0 -1
  502. package/web/.next/static/chunks/app/api/bridge/devices/route-da63d844222da45c.js +0 -1
  503. package/web/.next/static/chunks/app/api/bridges/route-da63d844222da45c.js +0 -1
  504. package/web/.next/static/chunks/app/api/config/route-da63d844222da45c.js +0 -1
  505. package/web/.next/static/chunks/app/api/context-files/open/route-da63d844222da45c.js +0 -1
  506. package/web/.next/static/chunks/app/api/context-files/route-da63d844222da45c.js +0 -1
  507. package/web/.next/static/chunks/app/api/events/route-da63d844222da45c.js +0 -1
  508. package/web/.next/static/chunks/app/api/executor/health/route-da63d844222da45c.js +0 -1
  509. package/web/.next/static/chunks/app/api/filesystem/directory/route-da63d844222da45c.js +0 -1
  510. package/web/.next/static/chunks/app/api/filesystem/pick-directory/route-da63d844222da45c.js +0 -1
  511. package/web/.next/static/chunks/app/api/github/projects/route-da63d844222da45c.js +0 -1
  512. package/web/.next/static/chunks/app/api/github/projects/sync/route-da63d844222da45c.js +0 -1
  513. package/web/.next/static/chunks/app/api/github/repos/route-da63d844222da45c.js +0 -1
  514. package/web/.next/static/chunks/app/api/github/webhook/route-da63d844222da45c.js +0 -1
  515. package/web/.next/static/chunks/app/api/health/boards/route-da63d844222da45c.js +0 -1
  516. package/web/.next/static/chunks/app/api/health/sessions/route-da63d844222da45c.js +0 -1
  517. package/web/.next/static/chunks/app/api/notifications/route-da63d844222da45c.js +0 -1
  518. package/web/.next/static/chunks/app/api/preferences/route-da63d844222da45c.js +0 -1
  519. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/bindings/route-da63d844222da45c.js +0 -1
  520. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/feed/route-da63d844222da45c.js +0 -1
  521. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/feed/stream/route-da63d844222da45c.js +0 -1
  522. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/integration/route-da63d844222da45c.js +0 -1
  523. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/interrupt/route-da63d844222da45c.js +0 -1
  524. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/preferences/route-da63d844222da45c.js +0 -1
  525. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/route-da63d844222da45c.js +0 -1
  526. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/send/route-da63d844222da45c.js +0 -1
  527. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/[task]/handoff/route-da63d844222da45c.js +0 -1
  528. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/[task]/route-da63d844222da45c.js +0 -1
  529. package/web/.next/static/chunks/app/api/projects/[id]/dispatcher/tasks/route-da63d844222da45c.js +0 -1
  530. package/web/.next/static/chunks/app/api/projects/[id]/dispatchers/route-da63d844222da45c.js +0 -1
  531. package/web/.next/static/chunks/app/api/projects/[id]/open/route-da63d844222da45c.js +0 -1
  532. package/web/.next/static/chunks/app/api/projects/[id]/route-da63d844222da45c.js +0 -1
  533. package/web/.next/static/chunks/app/api/projects/[id]/setup/route-da63d844222da45c.js +0 -1
  534. package/web/.next/static/chunks/app/api/projects/route-da63d844222da45c.js +0 -1
  535. package/web/.next/static/chunks/app/api/repositories/[id]/route-da63d844222da45c.js +0 -1
  536. package/web/.next/static/chunks/app/api/repositories/route-da63d844222da45c.js +0 -1
  537. package/web/.next/static/chunks/app/api/sessions/[id]/actions/route-da63d844222da45c.js +0 -1
  538. package/web/.next/static/chunks/app/api/sessions/[id]/archive/route-da63d844222da45c.js +0 -1
  539. package/web/.next/static/chunks/app/api/sessions/[id]/checks/route-da63d844222da45c.js +0 -1
  540. package/web/.next/static/chunks/app/api/sessions/[id]/diff/route-da63d844222da45c.js +0 -1
  541. package/web/.next/static/chunks/app/api/sessions/[id]/files/route-da63d844222da45c.js +0 -1
  542. package/web/.next/static/chunks/app/api/sessions/[id]/keys/route-da63d844222da45c.js +0 -1
  543. package/web/.next/static/chunks/app/api/sessions/[id]/kill/route-da63d844222da45c.js +0 -1
  544. package/web/.next/static/chunks/app/api/sessions/[id]/output/route-da63d844222da45c.js +0 -1
  545. package/web/.next/static/chunks/app/api/sessions/[id]/output/stream/route-da63d844222da45c.js +0 -1
  546. package/web/.next/static/chunks/app/api/sessions/[id]/preview/dom/route-da63d844222da45c.js +0 -1
  547. package/web/.next/static/chunks/app/api/sessions/[id]/preview/route-da63d844222da45c.js +0 -1
  548. package/web/.next/static/chunks/app/api/sessions/[id]/preview/screenshot/route-da63d844222da45c.js +0 -1
  549. package/web/.next/static/chunks/app/api/sessions/[id]/restore/route-da63d844222da45c.js +0 -1
  550. package/web/.next/static/chunks/app/api/sessions/[id]/route-da63d844222da45c.js +0 -1
  551. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/relay/route-da63d844222da45c.js +0 -1
  552. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/snapshot/route-da63d844222da45c.js +0 -1
  553. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/token/route-da63d844222da45c.js +0 -1
  554. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/route-da63d844222da45c.js +0 -1
  555. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/token/route-da63d844222da45c.js +0 -1
  556. package/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/ws/route-da63d844222da45c.js +0 -1
  557. package/web/.next/static/chunks/app/api/sessions/route-da63d844222da45c.js +0 -1
  558. package/web/.next/static/chunks/app/api/skills/activate/route-da63d844222da45c.js +0 -1
  559. package/web/.next/static/chunks/app/api/skills/catalog/route-da63d844222da45c.js +0 -1
  560. package/web/.next/static/chunks/app/api/skills/deactivate/route-da63d844222da45c.js +0 -1
  561. package/web/.next/static/chunks/app/api/skills/install/route-da63d844222da45c.js +0 -1
  562. package/web/.next/static/chunks/app/api/skills/installed/route-da63d844222da45c.js +0 -1
  563. package/web/.next/static/chunks/app/api/skills/session-active/route-da63d844222da45c.js +0 -1
  564. package/web/.next/static/chunks/app/api/skills/uninstall/route-da63d844222da45c.js +0 -1
  565. package/web/.next/static/chunks/app/api/spawn/route-da63d844222da45c.js +0 -1
  566. package/web/.next/static/chunks/app/api/workspaces/branches/route-da63d844222da45c.js +0 -1
  567. package/web/.next/static/chunks/app/api/workspaces/route-da63d844222da45c.js +0 -1
  568. package/web/.next/static/chunks/app/bridge/connect/page-69fb7636334c3973.js +0 -1
  569. package/web/.next/static/chunks/app/bridge/install.ps1/route-da63d844222da45c.js +0 -1
  570. package/web/.next/static/chunks/app/bridge/install.sh/route-da63d844222da45c.js +0 -1
  571. package/web/.next/static/chunks/app/layout-6026ce906f0cd4a4.js +0 -1
  572. package/web/.next/static/chunks/app/page-b6a5c403840a5555.js +0 -1
  573. package/web/.next/static/chunks/app/sign-in/hosted/page-da63d844222da45c.js +0 -1
  574. package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-da63d844222da45c.js +0 -1
  575. package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-da63d844222da45c.js +0 -1
  576. package/web/.next/static/chunks/next/dist/client/components/builtin/not-found-da63d844222da45c.js +0 -1
  577. package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-da63d844222da45c.js +0 -1
  578. package/web/.next/static/chunks/webpack-861a73c6545f426f.js +0 -1
  579. package/web/.next/static/css/d31189a7bb85881e.css +0 -1
  580. /package/web/.next/standalone/packages/web/.next/static/{2fd2xxj8LPZwZbsGpYttR → EZxyXuDt2fbD_J3ABqLGK}/_ssgManifest.js +0 -0
  581. /package/web/.next/static/{2fd2xxj8LPZwZbsGpYttR → EZxyXuDt2fbD_J3ABqLGK}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"node":{"006a083e182d901846deca615951c788b6ce086c3a":{"workers":{"app/_not-found/page":{"moduleId":"37023","async":false},"app/settings/bridge/page":{"moduleId":"37023","async":false},"app/sign-in/hosted/page":{"moduleId":"37023","async":false},"app/sign-in/sso-callback/page":{"moduleId":"37023","async":false},"app/unlock/page":{"moduleId":"37023","async":false},"app/bridge/connect/page":{"moduleId":"37023","async":false},"app/page":{"moduleId":"37023","async":false},"app/sessions/[id]/page":{"moduleId":"37023","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"37023","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/server/keyless-custom-headers.js","exportedName":"collectKeylessMetadata"},"40e5d64a73ba5b66bc9393bbf9812612972512aef8":{"workers":{"app/_not-found/page":{"moduleId":"37023","async":false},"app/settings/bridge/page":{"moduleId":"37023","async":false},"app/sign-in/hosted/page":{"moduleId":"37023","async":false},"app/sign-in/sso-callback/page":{"moduleId":"37023","async":false},"app/unlock/page":{"moduleId":"37023","async":false},"app/bridge/connect/page":{"moduleId":"37023","async":false},"app/page":{"moduleId":"37023","async":false},"app/sessions/[id]/page":{"moduleId":"37023","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"37023","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/server/keyless-custom-headers.js","exportedName":"formatMetadataHeaders"},"008b482f6fa45be0e4292fb8303ebff20cb1b52597":{"workers":{"app/_not-found/page":{"moduleId":"37023","async":false},"app/settings/bridge/page":{"moduleId":"37023","async":false},"app/sign-in/hosted/page":{"moduleId":"37023","async":false},"app/sign-in/sso-callback/page":{"moduleId":"37023","async":false},"app/unlock/page":{"moduleId":"37023","async":false},"app/bridge/connect/page":{"moduleId":"37023","async":false},"app/page":{"moduleId":"37023","async":false},"app/sessions/[id]/page":{"moduleId":"37023","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"37023","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"detectKeylessEnvDriftAction"},"009fdfe43847733445c7dc455a737a88c4f8126802":{"workers":{"app/_not-found/page":{"moduleId":"37023","async":false},"app/settings/bridge/page":{"moduleId":"37023","async":false},"app/sign-in/hosted/page":{"moduleId":"37023","async":false},"app/sign-in/sso-callback/page":{"moduleId":"37023","async":false},"app/unlock/page":{"moduleId":"37023","async":false},"app/bridge/connect/page":{"moduleId":"37023","async":false},"app/page":{"moduleId":"37023","async":false},"app/sessions/[id]/page":{"moduleId":"37023","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"37023","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"createOrReadKeylessAction"},"00b9386f201860b436de829e1df1052c40fb9344a3":{"workers":{"app/_not-found/page":{"moduleId":"37023","async":false},"app/settings/bridge/page":{"moduleId":"37023","async":false},"app/sign-in/hosted/page":{"moduleId":"37023","async":false},"app/sign-in/sso-callback/page":{"moduleId":"37023","async":false},"app/unlock/page":{"moduleId":"37023","async":false},"app/bridge/connect/page":{"moduleId":"37023","async":false},"app/page":{"moduleId":"37023","async":false},"app/sessions/[id]/page":{"moduleId":"37023","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"37023","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"deleteKeylessAction"},"401c00fc68edcd5de445df2cd35f9d21c6372381d2":{"workers":{"app/_not-found/page":{"moduleId":"37023","async":false},"app/settings/bridge/page":{"moduleId":"37023","async":false},"app/sign-in/hosted/page":{"moduleId":"37023","async":false},"app/sign-in/sso-callback/page":{"moduleId":"37023","async":false},"app/unlock/page":{"moduleId":"37023","async":false},"app/bridge/connect/page":{"moduleId":"37023","async":false},"app/page":{"moduleId":"37023","async":false},"app/sessions/[id]/page":{"moduleId":"37023","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"37023","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"syncKeylessConfigAction"},"0015292057d21420962e7492c61d3b2301be43fe60":{"workers":{"app/_not-found/page":{"moduleId":"66888","async":false},"app/settings/bridge/page":{"moduleId":"66888","async":false},"app/sign-in/hosted/page":{"moduleId":"66888","async":false},"app/sign-in/sso-callback/page":{"moduleId":"66888","async":false},"app/unlock/page":{"moduleId":"66888","async":false},"app/bridge/connect/page":{"moduleId":"66888","async":false},"app/page":{"moduleId":"66888","async":false},"app/sessions/[id]/page":{"moduleId":"66888","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"66888","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/server-actions.js","exportedName":"invalidateCacheAction"}},"edge":{},"encryptionKey":"rvweIeYjRINQqXuSJc3Uv/ptNN45BSXs2tVIXWlKlCQ="}
1
+ {"node":{"00225da9963eeaf5646ab5bf1e916253266f6d4931":{"workers":{"app/_not-found/page":{"moduleId":"22565","async":false},"app/embed/terminal/[id]/page":{"moduleId":"22565","async":false},"app/settings/bridge/page":{"moduleId":"22565","async":false},"app/sign-in/hosted/page":{"moduleId":"22565","async":false},"app/sign-in/sso-callback/page":{"moduleId":"22565","async":false},"app/unlock/page":{"moduleId":"22565","async":false},"app/bridge/connect/page":{"moduleId":"22565","async":false},"app/page":{"moduleId":"22565","async":false},"app/sessions/[id]/page":{"moduleId":"22565","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"22565","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/server/keyless-custom-headers.js","exportedName":"collectKeylessMetadata"},"40bc3eb683205b5cfd730456d43f87400d36c8660c":{"workers":{"app/_not-found/page":{"moduleId":"22565","async":false},"app/embed/terminal/[id]/page":{"moduleId":"22565","async":false},"app/settings/bridge/page":{"moduleId":"22565","async":false},"app/sign-in/hosted/page":{"moduleId":"22565","async":false},"app/sign-in/sso-callback/page":{"moduleId":"22565","async":false},"app/unlock/page":{"moduleId":"22565","async":false},"app/bridge/connect/page":{"moduleId":"22565","async":false},"app/page":{"moduleId":"22565","async":false},"app/sessions/[id]/page":{"moduleId":"22565","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"22565","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/server/keyless-custom-headers.js","exportedName":"formatMetadataHeaders"},"0082f151358b1f326afd2b7679c919a95ecc0c47b0":{"workers":{"app/_not-found/page":{"moduleId":"22565","async":false},"app/embed/terminal/[id]/page":{"moduleId":"22565","async":false},"app/settings/bridge/page":{"moduleId":"22565","async":false},"app/sign-in/hosted/page":{"moduleId":"22565","async":false},"app/sign-in/sso-callback/page":{"moduleId":"22565","async":false},"app/unlock/page":{"moduleId":"22565","async":false},"app/bridge/connect/page":{"moduleId":"22565","async":false},"app/page":{"moduleId":"22565","async":false},"app/sessions/[id]/page":{"moduleId":"22565","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"22565","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"detectKeylessEnvDriftAction"},"00a043bf5f3b14166081847c5414da031816ea2cc8":{"workers":{"app/_not-found/page":{"moduleId":"22565","async":false},"app/embed/terminal/[id]/page":{"moduleId":"22565","async":false},"app/settings/bridge/page":{"moduleId":"22565","async":false},"app/sign-in/hosted/page":{"moduleId":"22565","async":false},"app/sign-in/sso-callback/page":{"moduleId":"22565","async":false},"app/unlock/page":{"moduleId":"22565","async":false},"app/bridge/connect/page":{"moduleId":"22565","async":false},"app/page":{"moduleId":"22565","async":false},"app/sessions/[id]/page":{"moduleId":"22565","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"22565","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"createOrReadKeylessAction"},"00eee83e905e1df447826eea4f51e222d62f3147d1":{"workers":{"app/_not-found/page":{"moduleId":"22565","async":false},"app/embed/terminal/[id]/page":{"moduleId":"22565","async":false},"app/settings/bridge/page":{"moduleId":"22565","async":false},"app/sign-in/hosted/page":{"moduleId":"22565","async":false},"app/sign-in/sso-callback/page":{"moduleId":"22565","async":false},"app/unlock/page":{"moduleId":"22565","async":false},"app/bridge/connect/page":{"moduleId":"22565","async":false},"app/page":{"moduleId":"22565","async":false},"app/sessions/[id]/page":{"moduleId":"22565","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"22565","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"deleteKeylessAction"},"40ae24c00401b0012d6a404f0409b7e41c9d989a4c":{"workers":{"app/_not-found/page":{"moduleId":"22565","async":false},"app/embed/terminal/[id]/page":{"moduleId":"22565","async":false},"app/settings/bridge/page":{"moduleId":"22565","async":false},"app/sign-in/hosted/page":{"moduleId":"22565","async":false},"app/sign-in/sso-callback/page":{"moduleId":"22565","async":false},"app/unlock/page":{"moduleId":"22565","async":false},"app/bridge/connect/page":{"moduleId":"22565","async":false},"app/page":{"moduleId":"22565","async":false},"app/sessions/[id]/page":{"moduleId":"22565","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"22565","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"syncKeylessConfigAction"},"00a82db35998ac19f99a597189f20855fa47095aac":{"workers":{"app/_not-found/page":{"moduleId":"87756","async":false},"app/embed/terminal/[id]/page":{"moduleId":"87756","async":false},"app/settings/bridge/page":{"moduleId":"87756","async":false},"app/sign-in/hosted/page":{"moduleId":"87756","async":false},"app/sign-in/sso-callback/page":{"moduleId":"87756","async":false},"app/unlock/page":{"moduleId":"87756","async":false},"app/bridge/connect/page":{"moduleId":"87756","async":false},"app/page":{"moduleId":"87756","async":false},"app/sessions/[id]/page":{"moduleId":"87756","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"87756","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/server-actions.js","exportedName":"invalidateCacheAction"}},"edge":{},"encryptionKey":"LU4D9cgoIdAeNZb0huJFyrwMdwX6r8XblKn/WnH6m3A="}
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:51,errorRate:1e-4,numBits:978,numHashes:14,bitArray:[1,1,0,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,0,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,1,1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,0,0,1,1,0,0,1,0,1,0,0,1,0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,0,1,1,0,1,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,1,0,1,0,1,0,1,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,1,0,1,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,0,1,1,0,1,0,1,1,1,0,0,1,1,1,1,1,1,0,1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,0,0,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,0,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,1,0,1,1,0]},__routerFilterDynamic:{numItems:8,errorRate:1e-4,numBits:154,numHashes:14,bitArray:[0,1,0,1,1,0,0,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,0,1,1,0,0,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,0,1,1,0,1,0,0,0]},sortedPages:["/_app"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
1
+ self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:51,errorRate:1e-4,numBits:978,numHashes:14,bitArray:[1,1,0,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,0,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,1,1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,0,0,1,1,0,0,1,0,1,0,0,1,0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,0,1,1,0,1,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,1,0,1,0,1,0,1,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,1,0,1,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,0,1,1,0,1,0,1,1,1,0,0,1,1,1,1,1,1,0,1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,0,0,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,0,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,1,0,1,1,0]},__routerFilterDynamic:{numItems:9,errorRate:1e-4,numBits:173,numHashes:14,bitArray:[1,0,0,0,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,1,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,0,1,0]},sortedPages:["/_app"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1698],{11698:(e,n,t)=>{t.r(n),t.d(n,{SessionTerminal:()=>i});var r=t(54568),l=t(7620),u=t(31404);async function o(e,n,t){let r=await fetch((0,u.S)(`/api/sessions/${encodeURIComponent(e)}/keys`,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keys:n})});if(!r.ok){let e=await r.json().catch(()=>null);throw Error(e?.error??`Failed to queue terminal input (${r.status})`)}}let i=(0,l.memo)(function({sessionId:e,bridgeId:n,pendingInsert:t,panelVisible:i=!0,onPendingInsertConsumed:s}){let a=(0,l.useRef)(null),d=(0,l.useRef)(null),c=(0,l.useRef)(0),[m,f]=(0,l.useState)(!1),[b,h]=(0,l.useState)(null),[p,x]=(0,l.useState)(null),w=(0,l.useMemo)(()=>(0,u.S)(`/embed/terminal/${encodeURIComponent(e)}`,n),[n,e]);return(0,l.useEffect)(()=>(f(!1),h(null),null!==d.current&&window.clearTimeout(d.current),d.current=window.setTimeout(()=>{h("The embedded terminal did not finish loading in time.")},15e3),()=>{null!==d.current&&(window.clearTimeout(d.current),d.current=null)}),[w]),(0,l.useEffect)(()=>{if(!t||t.nonce<=c.current)return;c.current=t.nonce;let r=t.inlineText.trim();if(0===r.length)return;let l=!1;return o(e,`${r} `,n).then(()=>{l||(x(null),s?.())}).catch(e=>{l||x(e instanceof Error?e.message:"Failed to queue terminal input.")}),()=>{l=!0}},[n,s,t,e]),(0,r.jsxs)("div",{className:"relative flex h-full min-h-0 w-full min-w-0 flex-col overflow-hidden rounded-none border-0 bg-[#060404] lg:rounded-[14px] lg:border lg:border-white/10 lg:shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]",children:[b?(0,r.jsx)("div",{className:"absolute inset-x-0 top-3 z-10 mx-auto w-fit rounded-full border border-red-500/30 bg-red-500/10 px-3 py-1 text-[12px] text-red-200",children:b}):null,p?(0,r.jsx)("div",{className:"absolute inset-x-0 top-12 z-10 mx-auto w-fit rounded-full border border-amber-500/30 bg-amber-500/10 px-3 py-1 text-[12px] text-amber-100",children:p}):null,(0,r.jsx)("iframe",{ref:a,src:w,title:`Conductor terminal ${e}`,className:"h-full w-full border-0 bg-[#060404]",onLoad:()=>{f(!0),h(null),null!==d.current&&(window.clearTimeout(d.current),d.current=null)}}),i||m?null:(0,r.jsx)("div",{className:"pointer-events-none absolute inset-0 bg-[#060404]"})]})})}}]);
@@ -1,3 +1,3 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2261],{10563:(e,t,r)=>{r.d(t,{s:()=>f});var a=r(54568),s=r(40448),n=r(34041),l=r(34309),i=r(64265),o=r(72410),d=r(46916),c=r(88272),x=r(33866),u=r(64323);let m=["codex","claude-code","gemini","cursor-cli","openclaw"];function p(e){return"xhigh"===e?"Extra High":e.split(/[_-\s]+/g).filter(Boolean).map(e=>e[0]?.toUpperCase()+e.slice(1)).join(" ")}function h({agent:e}){let t=(0,x.h7)(e);return(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 sm:gap-1",children:[(0,a.jsx)(o.N,{seed:{label:e},className:"h-3.5 w-3.5 border-none bg-transparent sm:h-3 sm:w-3"}),(0,a.jsx)("span",{className:"truncate",children:t?.label??e})]})}function b({label:e,title:t,disabled:r=!1,accent:l=!1,triggerClassName:i,contentClassName:o,children:c}){return(0,a.jsxs)(s.bL,{children:[(0,a.jsx)(s.l9,{asChild:!0,disabled:r,children:(0,a.jsxs)("button",{type:"button",disabled:r,title:t,className:(0,d.cn)("inline-flex h-9 min-w-0 items-center gap-1.5 rounded-[11px] border px-2.5 text-[12px] font-medium transition disabled:cursor-not-allowed disabled:opacity-60 sm:h-[30px] sm:gap-1 sm:rounded-[9px] sm:px-2 sm:text-[11.5px]",l?"border-[rgba(214,163,126,0.28)] bg-[rgba(66,44,35,0.94)] text-[#f2d9cd] hover:bg-[rgba(78,52,41,0.98)]":"border-[rgba(255,255,255,0.08)] bg-[#272220] text-[#f3ead8] hover:bg-[#312926]",i),children:[(0,a.jsx)("span",{className:"min-w-0 truncate",children:e}),(0,a.jsx)(n.A,{className:"h-3.5 w-3.5 shrink-0 text-[rgba(255,255,255,0.55)] sm:h-2.5 sm:w-2.5"})]})}),(0,a.jsx)(s.ZL,{children:(0,a.jsx)(s.UC,{align:"start",collisionPadding:8,sideOffset:6,className:(0,d.cn)("z-50 max-h-[70vh] w-[calc(100vw-1rem)] max-w-[22rem] overflow-y-auto rounded-[12px] border border-[rgba(255,255,255,0.08)] bg-[#1c1a19] p-2 shadow-[0_18px_50px_rgba(0,0,0,0.45)] sm:max-h-[22rem] sm:w-auto sm:min-w-[200px] sm:max-w-[26rem] sm:rounded-[10px] sm:p-1.5",o),children:c})})]})}function f({implementationAgent:e,modelSelection:t,modelAccess:r,runtimeModelCatalogs:n,disabled:g=!1,className:v,onImplementationAgentChange:j,onModelSelectionChange:w}){let k=(0,c.Ik)(e,r,n),N=(0,c.xb)(t)??t.catalogModel,y=N?(0,u.M)(e,N):"Change model",S=(0,c.iL)(e,r,n,N),C=k.length>0,A=t.reasoningEffort.trim().toLowerCase();return(0,a.jsxs)("div",{className:(0,d.cn)("grid w-full grid-cols-[repeat(auto-fit,minmax(7.25rem,1fr))] gap-1.5 sm:flex sm:flex-wrap sm:items-center",v),children:[(0,a.jsx)("div",{className:"min-w-0 sm:flex-none",children:(0,a.jsxs)(b,{label:(0,a.jsx)(h,{agent:e}),title:`Change coding agent (${(0,x.h7)(e)?.label??e})`,disabled:g,triggerClassName:"w-full justify-between sm:h-[27px] sm:w-auto sm:justify-start sm:max-w-[6.75rem]",children:[(0,a.jsx)("div",{className:"px-3 pb-2 pt-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:"Coding agent"}),m.map(t=>{let r=(0,x.h7)(t),n=e===t;return(0,a.jsxs)(s.q7,{onSelect:()=>j(t),className:"flex min-h-[40px] cursor-default items-center gap-2.5 rounded-[8px] px-3 py-2 text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)] sm:min-h-[34px] sm:rounded-[7px] sm:px-2 sm:py-1.5 sm:text-[12px]",children:[(0,a.jsx)(o.N,{seed:{label:t},className:"h-4 w-4 border-none bg-transparent sm:h-3.5 sm:w-3.5"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium sm:text-[12.5px]",children:r?.label??t}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[rgba(255,255,255,0.58)] sm:text-[10.5px]",children:r?.description??"Coding agent"})]}),n?(0,a.jsx)(l.A,{className:"h-4 w-4 text-[#f2d9cd] sm:h-3.5 sm:w-3.5"}):null]},t)})]})}),C?(0,a.jsx)("div",{className:"min-w-0 sm:flex-none",children:(0,a.jsxs)(b,{label:y,title:`Change model${N?` (${y})`:""}`,disabled:g,triggerClassName:"w-full justify-between sm:h-[27px] sm:w-auto sm:justify-start sm:max-w-[11.75rem]",contentClassName:"sm:min-w-[220px]",children:[(0,a.jsx)("div",{className:"px-3 pb-2 pt-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:"Change model"}),k.map(t=>{let i=t.id===N;return(0,a.jsxs)(s.q7,{onSelect:()=>{let a=(0,c.iL)(e,r,n,t.id);w({catalogModel:t.id,customModel:"",reasoningEffort:a.some(e=>e.id===A)?A:(0,c.YS)(e,r,n,t.id)})},className:"flex min-h-[40px] cursor-default items-center gap-2.5 rounded-[8px] px-3 py-2 text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)] sm:min-h-[34px] sm:rounded-[7px] sm:px-2 sm:py-1.5 sm:text-[12px]",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium sm:text-[12px]",children:t.label}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[rgba(255,255,255,0.58)] sm:text-[10.5px]",children:t.description})]}),i?(0,a.jsx)(l.A,{className:"h-4 w-4 text-[#f2d9cd] sm:h-3.5 sm:w-3.5"}):null]},t.id)})]})}):null,C&&S.length>0?(0,a.jsx)("div",{className:"min-w-0 sm:flex-none",children:(0,a.jsxs)(b,{label:(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 text-[#d7b6a5] sm:h-3 sm:w-3"}),(0,a.jsx)("span",{children:p(A||S[0].id)})]}),title:`Change thinking level (${p(A||S[0].id)})`,disabled:g,accent:!0,triggerClassName:"w-full justify-between sm:h-[27px] sm:w-auto sm:justify-start sm:max-w-[7rem]",children:[(0,a.jsx)("div",{className:"px-3 pb-2 pt-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:"Thinking"}),S.map(e=>{let r=e.id===A;return(0,a.jsxs)(s.q7,{onSelect:()=>w({...t,reasoningEffort:e.id}),className:"flex min-h-[40px] cursor-default items-center gap-2.5 rounded-[8px] px-3 py-2 text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)] sm:min-h-[34px] sm:rounded-[7px] sm:px-2 sm:py-1.5 sm:text-[12px]",children:[(0,a.jsx)(i.A,{className:"h-4 w-4 text-[#d7b6a5] sm:h-3.5 sm:w-3.5"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium sm:text-[12.5px]",children:e.label}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[rgba(255,255,255,0.58)] sm:text-[10.5px]",children:e.description})]}),r?(0,a.jsx)(l.A,{className:"h-4 w-4 text-[#f2d9cd] sm:h-3.5 sm:w-3.5"}):null]},e.id)})]})}):null]})}},18259:(e,t,r)=>{r.d(t,{AR:()=>n,Fp:()=>i,M_:()=>l,b:()=>o});let a="conductor:project-board-refresh",s=new Set(["dispatcher_task_created","dispatcher_task_updated","dispatcher_task_handed_off"]);function n(e){for(let t of e){let e=function(e){if("system"!==e.kind)return null;let t=e.metadata?.eventType;return"string"==typeof t&&t.trim().length>0?t.trim():null}(t);if(e&&s.has(e))return e}return null}function l(e,t){return!!(e.changedProjectIds?.includes(t)||e.sessions.some(e=>e.projectId===t))||"snapshot_delta"===e.type&&0===e.sessions.length}function i(e){window.dispatchEvent(new CustomEvent(a,{detail:e}))}function o(e,t){let r=r=>{let a=r.detail;a&&a.projectId===e&&t(a)};return window.addEventListener(a,r),()=>{window.removeEventListener(a,r)}}},18510:(e,t,r)=>{r.d(t,{J:()=>s,s:()=>n});var a=r(10926);function s(e){let t=(0,a.C0)(e);if(!t)return"/";let r=new URLSearchParams;return r.set("bridge",t),`/?${r.toString()}`}function n(e,t={}){let r,s=e.trim(),l=(0,a.DW)(s)?s:(r=(0,a.C0)(t.bridgeId))?(0,a.Bp)(r,s):s,i=new URLSearchParams,o=t.tab?.trim();o&&i.set("tab",o);let d=i.toString(),c=`/sessions/${encodeURIComponent(l)}`;return d.length>0?`${c}?${d}`:c}},52261:(e,t,r)=>{r.r(t),r.d(t,{DispatcherPane:()=>eu});var a=r(54568),s=r(40448),n=r(7620),l=r(97509),i=r(58299),o=r(96770),d=r(34309),c=r(44968),x=r(38491),u=r(10563),m=r(79748),p=r(8281),h=r(1426),b=r(2939),f=r(76587),g=r(23555),v=r(45894),j=r(97380),w=r(58588),k=r(69863),N=r(87242),y=r(46548),S=r(14796),C=r(34041),A=r(76265),_=r(26083),E=r(36645),$=r(82797),R=r(72410),I=r(76081),L=r(10926),T=r(46916),M=r(31404),P=r(18510),F=r(18259),D=r(33866),O=r(92070);function U(e,t=32){let{clientHeight:r,scrollHeight:a,scrollTop:s}=e;return![r,a,s].every(Number.isFinite)||Math.max(0,a-r-s)<=Math.max(0,t)}let q={entries:[],totalEntries:0,windowLimit:120,truncated:!1,sessionStatus:null,approvalState:null,parserState:null,runtimeStatus:null,source:null,error:null,integration:null};function z(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function H(e){return"string"==typeof e&&e.trim().length>0?e:null}function W(e){let t=z(e),r=H(t.id),a=H(t.kind),s="string"==typeof t.text?t.text:"";return r&&a?{id:r,kind:a,label:H(t.label)??"Session",text:s,createdAt:H(t.createdAt),attachments:Array.isArray(t.attachments)?t.attachments:[],source:H(t.source)??"session",streaming:!0===t.streaming,metadata:z(t.metadata)}:null}function B(e){let t=z(e),r=H(t.kind);return r?{kind:r,message:"string"==typeof t.message?t.message:"",command:H(t.command)}:null}function J(e){let t=z(e);return 0===Object.keys(t).length?null:t}function K(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=z(e.openclaw),r=z(e.heartbeat),a=z(e.memory),s=H(e.projectId),n=H(e.threadId);return s&&n?{projectId:s,threadId:n,bridgeId:null===e.bridgeId?null:H(e.bridgeId),openclaw:{threadId:null===t.threadId?null:H(t.threadId),sessionId:null===t.sessionId?null:H(t.sessionId)},heartbeat:{state:null===r.state?null:H(r.state),nextAt:null===r.nextAt?null:H(r.nextAt)},memory:{projectPath:null===a.projectPath?null:H(a.projectPath),sessionPath:null===a.sessionPath?null:H(a.sessionPath)}}:null}function G(e){let t=z(e);return{entries:Array.isArray(t.entries)?t.entries.map(W).filter(e=>null!==e):[],totalEntries:"number"==typeof t.totalEntries?t.totalEntries:0,windowLimit:"number"==typeof t.windowLimit?t.windowLimit:120,truncated:!0===t.truncated,sessionStatus:H(t.sessionStatus),approvalState:H(t.approvalState),parserState:B(t.parserState),runtimeStatus:J(t.runtimeStatus),source:H(t.source),error:H(t.error),integration:K(t.integration)}}function Z(e){let t=z(e),r=H(t.id),a=H(t.repo),s=H(t.path);if(!r||!a||!s)return null;let n=z(t.pathHealth);return{id:r,displayName:H(t.displayName)??r,repo:a,path:s,agent:H(t.agent)??"codex",agentPermissions:H(t.agentPermissions)??"skip",agentModel:H(t.agentModel)??"",agentReasoningEffort:H(t.agentReasoningEffort)??"",workspaceMode:H(t.workspaceMode)??"local",runtimeMode:H(t.runtimeMode)??"ttyd",scmMode:H(t.scmMode)??"git",defaultWorkingDirectory:H(t.defaultWorkingDirectory)??"",defaultBranch:H(t.defaultBranch)??"main",devServerScript:H(t.devServerScript)??"",devServerCwd:H(t.devServerCwd)??"",devServerUrl:H(t.devServerUrl)??"",devServerPort:H(t.devServerPort)??"",devServerHost:H(t.devServerHost)??"",devServerPath:H(t.devServerPath)??"",devServerHttps:!0===t.devServerHttps,setupScript:H(t.setupScript)??"",runSetupInParallel:!0===t.runSetupInParallel,cleanupScript:H(t.cleanupScript)??"",archiveScript:H(t.archiveScript)??"",copyFiles:H(t.copyFiles)??"",pathHealth:{exists:!0===n.exists,isGitRepository:!0===n.isGitRepository,suggestedPath:H(n.suggestedPath)}}}function V({value:e,maxLength:t=84,className:r}){let s=e.trim(),l=s.length>t||e.includes("\n"),[i,o]=(0,n.useState)(!1);return l?(0,a.jsx)("button",{type:"button",onClick:()=>o(e=>!e),"aria-expanded":i,title:i?"Collapse text":"Expand text",className:(0,T.cn)("max-w-full text-left transition-colors hover:bg-[rgba(255,255,255,0.08)]",i?"whitespace-pre-wrap break-words":"truncate",r),children:i?s:function(e,t=84){let r=e.replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1)).trimEnd()}…`}(s,t)}):(0,a.jsx)("span",{className:r,children:s})}function Y(e){let t=(0,D.h7)(e);return t?.label?t.label:e.split(/[-_\s]+/g).filter(Boolean).map(e=>e[0]?.toUpperCase()+e.slice(1)).join(" ")}function Q({text:e}){return(0,a.jsx)(p.o,{remarkPlugins:[h.A],className:"min-w-0 break-words [overflow-wrap:anywhere]",components:{h1:({children:e})=>(0,a.jsx)("h1",{className:"mb-5 text-[22px] font-semibold tracking-[-0.03em] text-[var(--vk-text-strong)] last:mb-0 sm:text-[28px] lg:text-[36px]",children:e}),h2:({children:e})=>(0,a.jsx)("h2",{className:"mb-4 mt-8 text-[20px] font-semibold tracking-[-0.02em] text-[var(--vk-text-strong)] first:mt-0 last:mb-0",children:e}),h3:({children:e})=>(0,a.jsx)("h3",{className:"mb-3 mt-6 text-[16px] font-semibold text-[var(--vk-text-normal)] first:mt-0 last:mb-0",children:e}),p:({children:e})=>(0,a.jsx)("p",{className:"mb-3 last:mb-0",children:e}),hr:()=>(0,a.jsx)("hr",{className:"my-8 border-0 border-t border-[var(--vk-border)]"}),pre:({children:e})=>(0,a.jsx)("pre",{className:"mb-4 overflow-x-auto rounded-[10px] border border-[var(--vk-border)] bg-[#151413] p-3 text-[12px] text-[var(--vk-text-normal)] last:mb-0",children:e}),code:({children:e,className:t})=>(0,a.jsx)("code",{className:(0,T.cn)("rounded-[6px] bg-[#171615] px-1.5 py-0.5 font-mono text-[12px] text-[var(--vk-text-normal)]",t),children:e}),ul:({children:e})=>(0,a.jsx)("ul",{className:"mb-3 list-disc pl-5 last:mb-0",children:e}),ol:({children:e})=>(0,a.jsx)("ol",{className:"mb-3 list-decimal pl-5 last:mb-0",children:e}),li:({children:e})=>(0,a.jsx)("li",{className:"mb-1 last:mb-0",children:e}),table:({children:e})=>(0,a.jsx)("div",{className:"mb-4 overflow-x-auto rounded-[12px] border border-[var(--vk-border)]",children:(0,a.jsx)("table",{className:"min-w-full border-collapse text-left text-[13px]",children:e})}),thead:({children:e})=>(0,a.jsx)("thead",{className:"bg-[rgba(255,255,255,0.03)]",children:e}),tbody:({children:e})=>(0,a.jsx)("tbody",{children:e}),tr:({children:e})=>(0,a.jsx)("tr",{className:"border-b border-[var(--vk-border)] last:border-b-0",children:e}),th:({children:e})=>(0,a.jsx)("th",{className:"px-4 py-3 text-[12px] font-medium text-[var(--vk-text-normal)]",children:e}),td:({children:e})=>(0,a.jsx)("td",{className:"px-4 py-3 align-top text-[13px] text-[var(--vk-text-muted)]",children:e})},children:e})}function X({label:e,tone:t="neutral"}){return(0,a.jsxs)("div",{className:(0,T.cn)("mb-3 flex items-center gap-3 rounded-[10px] border px-3 py-2","prompt"===t?"border-[rgba(255,255,255,0.08)] bg-[rgba(255,255,255,0.05)] text-[#f4ede7]":"border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] text-[var(--vk-text-normal)]"),children:[(0,a.jsx)("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-[8px] bg-[rgba(0,0,0,0.22)]",children:(0,a.jsx)(b.A,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium",children:e}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[var(--vk-text-muted)]",children:"Attached context"})]})]})}function ee({toolKind:e,toolTitle:t,className:r="h-4 w-4"}){let s=t.trim().toLowerCase(),n=e?.trim().toLowerCase()??"";return"thinking"===n||"thinking"===s?(0,a.jsx)(f.A,{className:(0,T.cn)(r,"text-[var(--vk-text-normal)]")}):"read"===n||s.startsWith("read ")||s.includes("review request")?(0,a.jsx)(b.A,{className:r}):"write"===n||"edit"===n||"multiedit"===n||s.startsWith("write")||s.startsWith("edit")?(0,a.jsx)(x.A,{className:r}):"grep"===n||"search"===n||"find"===n?(0,a.jsx)(g.A,{className:r}):"ls"===n||"glob"===n||"open"===n?(0,a.jsx)(v.A,{className:r}):"websearch"===n||"webfetch"===n?(0,a.jsx)(j.A,{className:r}):"task"===n||"todowrite"===n?(0,a.jsx)(o.A,{className:r}):s.includes("diff")||s.includes("workspace diff")||s.includes("git diff")?(0,a.jsx)(w.A,{className:r}):"bash"===n||"command"===n||s.startsWith("get diff")||s.startsWith("run ")?(0,a.jsx)(k.A,{className:r}):(0,a.jsx)(N.A,{className:r})}function et(e){switch(e){case"create":return"Task created";case"update":return"Task updated";case"handoff":return"Task handed off"}}function er({entry:e,session:t}){var r;let s=function(e){if(!e)return null;let t=new Date(e).getTime();if(!Number.isFinite(t))return null;let r=Date.now()-t;return r<6e4?"just now":r<36e5?`${Math.max(1,Math.floor(r/6e4))}m ago`:new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(t)}(e.createdAt),n="assistant"===e.kind?"runtime"===e.source?"Thinking":Y(t.metadata.agent?.trim()||"assistant"):e.label||"Session",l=e.attachments.map(e=>{let t=z(e);return H(t.name)??H(t.path)??("string"==typeof e?e:null)}).filter(e=>!!e),i=H(e.metadata.toolTitle)??e.text,d=H(e.metadata.toolKind)?.toLowerCase()??null,c=Array.isArray(r=e.metadata.toolContent)?r.map(e=>H(e)).filter(e=>null!==e):[],x=c[0]??null,u=c[1]??null,m="assistant"===e.kind&&"runtime"===e.source,p="status"===e.kind&&"session-status"===e.source,h=function(e){if("system"!==e.kind)return null;let t=H(e.metadata.eventType),r=null;if("dispatcher_task_created"===t?r="create":"dispatcher_task_updated"===t?r="update":"dispatcher_task_handed_off"===t&&(r="handoff"),!r)return null;let a=H(e.metadata.taskId),s=H(e.metadata.taskRef)??a,n=H(e.metadata.taskTitle);return a&&s&&n?{operation:r,taskId:a,taskRef:s,taskTitle:n,taskRoleLabel:H(e.metadata.taskRoleLabel),taskAgent:H(e.metadata.taskAgent),taskType:H(e.metadata.taskType)}:null}(e);return"tool"===e.kind?(0,a.jsxs)("div",{className:"flex items-start gap-3 text-[13px] text-[var(--vk-text-muted)]",children:[(0,a.jsx)("div",{className:"mt-[2px] flex h-5 w-5 shrink-0 items-center justify-center text-[var(--vk-text-muted)]",children:(0,a.jsx)(ee,{toolKind:d,toolTitle:i,className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium text-[var(--vk-text-normal)]",children:i||"Tool call"}),x?(0,a.jsx)(V,{value:x,maxLength:72,className:"rounded-[6px] bg-[rgba(255,255,255,0.05)] px-2 py-0.5 font-mono text-[11px] text-[var(--vk-text-muted)]"}):null,s?(0,a.jsx)("span",{className:"ml-auto text-[11px] text-[var(--vk-text-muted)]",children:s}):null]}),u?(0,a.jsx)(V,{value:u,maxLength:140,className:"block rounded-[6px] bg-[rgba(255,255,255,0.03)] px-2 py-1 text-[12px] leading-5 text-[var(--vk-text-muted)]"}):null]})]}):h?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[12px] text-[var(--vk-text-muted)]",children:[(0,a.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:et(h.operation)}),s?(0,a.jsx)("span",{className:"ml-auto text-[11px]",children:s}):null]}),(0,a.jsxs)("div",{className:"rounded-[12px] border border-[rgba(129,101,83,0.35)] bg-[rgba(62,47,40,0.72)] px-4 py-3 text-[15px] leading-6 text-[#efe4dc]",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-start gap-2",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"text-[12px] font-medium uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:et(h.operation)}),(0,a.jsx)("p",{className:"mt-1 break-words text-[16px] font-semibold text-[#fff5ee]",children:h.taskTitle})]}),(0,a.jsx)("span",{className:"rounded-full border border-[rgba(255,255,255,0.12)] bg-[rgba(255,255,255,0.06)] px-2.5 py-1 text-[11px] font-medium text-[#fff5ee]",children:h.taskRef})]}),(0,a.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2 text-[11px] text-[rgba(255,255,255,0.72)]",children:[h.taskRoleLabel?(0,a.jsx)("span",{className:"rounded-full bg-[rgba(255,255,255,0.08)] px-2.5 py-1",children:h.taskRoleLabel}):null,h.taskAgent?(0,a.jsx)("span",{className:"rounded-full bg-[rgba(255,255,255,0.08)] px-2.5 py-1",children:Y(h.taskAgent)}):null,h.taskType?(0,a.jsx)("span",{className:"rounded-full bg-[rgba(255,255,255,0.08)] px-2.5 py-1",children:h.taskType}):null]})]})]}):m?(0,a.jsxs)("div",{className:"flex items-start gap-3 text-[13px] text-[var(--vk-text-muted)]",children:[(0,a.jsx)("div",{className:"mt-[2px] flex h-5 w-5 shrink-0 items-center justify-center text-[var(--vk-text-muted)]",children:(0,a.jsx)(f.A,{className:"h-4 w-4 text-[var(--vk-text-normal)]"})}),(0,a.jsx)("div",{className:"min-w-0 flex-1",children:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium text-[var(--vk-text-normal)]",children:"Thinking"}),e.text.trim().length>0?(0,a.jsx)(V,{value:e.text,maxLength:96,className:"rounded-[6px] bg-[rgba(255,255,255,0.05)] px-2 py-0.5 font-mono text-[11px] text-[var(--vk-text-muted)]"}):null,s?(0,a.jsx)("span",{className:"ml-auto text-[11px] text-[var(--vk-text-muted)]",children:s}):null]})})]}):p?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("div",{className:"rounded-[22px] border border-[rgba(113,84,68,0.45)] bg-[rgba(54,40,34,0.9)] px-4 py-3 text-[15px] leading-7 text-[#efe4dc] shadow-[0_8px_18px_rgba(0,0,0,0.14)]",children:(0,a.jsx)(Q,{text:e.text})}),s?(0,a.jsx)("div",{className:"text-right text-[11px] text-[var(--vk-text-muted)]",children:s}):null]}):"user"===e.kind?(0,a.jsxs)("div",{className:"ml-auto max-w-[88%]",children:[(0,a.jsxs)("div",{className:"rounded-[14px] border border-[rgba(124,94,78,0.45)] bg-[rgba(52,39,35,0.92)] px-4 py-3 text-[#f1e7e0] shadow-[0_10px_24px_rgba(0,0,0,0.18)]",children:[l.map(t=>(0,a.jsx)(X,{label:t,tone:"prompt"},`${e.id}-${t}`)),(0,a.jsx)("div",{className:"text-[15px] leading-7 text-[#f4ede7]",children:(0,a.jsx)(Q,{text:e.text})})]}),s?(0,a.jsx)("div",{className:"mt-1 text-right text-[11px] text-[var(--vk-text-muted)]",children:s}):null]}):"assistant"===e.kind?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"text-[15px] leading-8 text-[var(--vk-text-normal)]",children:[l.map(t=>(0,a.jsx)(X,{label:t},`${e.id}-${t}`)),(0,a.jsx)(Q,{text:e.text})]}),s?(0,a.jsx)("div",{className:"text-[11px] text-[var(--vk-text-muted)]",children:s}):null]}):(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[12px] text-[var(--vk-text-muted)]",children:["status"===e.kind?(0,a.jsx)(y.A,{className:"h-3.5 w-3.5"}):(0,a.jsx)(S.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:n}),s?(0,a.jsx)("span",{className:"ml-auto text-[11px]",children:s}):null]}),(0,a.jsxs)("div",{className:(0,T.cn)("rounded-[12px] border px-4 py-3 text-[15px] leading-7","border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] text-[var(--vk-text-muted)]"),children:[l.map(t=>(0,a.jsx)(X,{label:t},`${e.id}-${t}`)),(0,a.jsx)(Q,{text:e.text})]})]})}function ea({project:e,disabled:t=!1,saving:r=!1,onChange:n}){let l=e?.agent?.trim()||"codex";return(0,a.jsxs)(s.bL,{children:[(0,a.jsx)(s.l9,{asChild:!0,children:(0,a.jsxs)("button",{type:"button",disabled:t||!e,className:"inline-flex h-10 w-full min-w-0 max-w-full items-center justify-between gap-3 rounded-[8px] border border-[var(--vk-accent)] bg-[color:color-mix(in_srgb,var(--vk-accent)_88%,black_12%)] px-3 text-left text-[13px] text-white shadow-[0_10px_24px_rgba(0,0,0,0.18)] transition hover:bg-[var(--accent-hover)] disabled:cursor-not-allowed disabled:opacity-60 sm:min-w-[220px] sm:w-auto","aria-label":"Select coding agent",title:e?`Coding agent: ${Y(l)}`:"Project agent unavailable",children:[(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,a.jsx)(R.N,{seed:{label:l},className:"h-5 w-5 border-none bg-transparent"}),(0,a.jsx)("span",{className:"truncate",children:r?"Saving agent…":`Coding Agent \xb7 ${Y(l)}`})]}),r?(0,a.jsx)(i.A,{className:"h-4 w-4 animate-spin"}):(0,a.jsx)(C.A,{className:"h-4 w-4 shrink-0"})]})}),(0,a.jsx)(s.ZL,{children:(0,a.jsxs)(s.UC,{align:"start",sideOffset:8,className:"z-50 min-w-[250px] max-w-[calc(100vw-2rem)] rounded-[10px] border border-[rgba(255,255,255,0.08)] bg-[#1c1a19] p-2 shadow-[0_18px_50px_rgba(0,0,0,0.45)]",children:[(0,a.jsx)("p",{className:"px-3 pb-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Coding agent"}),D.pN.map(e=>{let t=e.name===l;return(0,a.jsxs)(s.q7,{onSelect:()=>n(e.name),className:"flex min-h-[46px] cursor-default items-center gap-3 rounded-[8px] px-3 py-2 text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)]",children:[(0,a.jsx)(R.N,{seed:{label:e.name},className:"h-5 w-5 border-none bg-transparent"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium",children:e.label}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[rgba(255,255,255,0.6)]",children:e.description})]}),t?(0,a.jsx)(d.A,{className:"h-4 w-4 text-white"}):null]},e.name)})]})})]})}let es=new Set(["queued","spawning","running","working"]),en=["## proposed plan","## intended board mutations","## intended tool calls","## task packet","task packet","board mutations"],el=["approve this plan","approve the plan","approve this proposal","request changes","plan-only mode","paused before mutating the board","approve it or request changes","ask for explicit approval","explicit approval"];function ei({session:e,bridgeId:t=null,active:r=!0,onClose:s,onToggleCollapse:l,className:o,hideOpenSessionAction:c=!1,hideRepositoryControls:x=!1,hideSessionStatusBadge:u=!1,headerActions:p=null,composerInsert:h=null,composerToolbar:b=null,apiPaths:f}){let g=(0,m.useRouter)(),[v,j]=(0,n.useState)(q),[w,k]=(0,n.useState)(!0),[N,y]=(0,n.useState)(null),[C,D]=(0,n.useState)(""),[Q,X]=(0,n.useState)(null),[ee,et]=(0,n.useState)(!1),[eo,ed]=(0,n.useState)(null),[ec,ex]=(0,n.useState)(!0),[eu,em]=(0,n.useState)(null),[ep,eh]=(0,n.useState)(!1),eb=(0,n.useRef)(null),ef=(0,n.useRef)(null),eg=(0,n.useRef)(!0),ev=(0,n.useRef)([]),[ej,ew]=(0,n.useState)(!0),[ek,eN]=(0,n.useState)(!1),[ey,eS]=(0,n.useState)(0),eC=r&&ej,eA=(0,n.useRef)(Date.now()),e_=(0,n.useRef)(null),eE=(0,n.useRef)(null),e$=(0,n.useRef)(null),eR=(0,n.useRef)(0),eI=(0,n.useRef)(0),eL=(0,n.useRef)(0),eT=(0,n.useRef)(0),eM=(0,n.useRef)(0),eP=(0,n.useRef)(0),eF=(0,n.useRef)(0),eD=(0,n.useRef)(0),eO=(0,n.useRef)(0);(0,n.useEffect)(()=>{let e=()=>{ew(!document.hidden)};return document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}},[]),(0,n.useEffect)(()=>{eA.current=Date.now(),e_.current=null,eE.current=null,e$.current=null,eR.current=0,eI.current=0,eL.current=0,eT.current=0,eM.current=0,eP.current=0,eF.current=0,eD.current=0,eO.current=0,ev.current=[],eN(!1),eS(0)},[e.id]);let eU=(0,n.useMemo)(()=>({feed:f.feed,stream:f.stream,send:f.send,interrupt:f.interrupt??null,repositories:f.repositories??"/api/repositories"}),[f]),eq=(0,n.useMemo)(()=>{if("project_dispatcher"===e.metadata.sessionKind)return`Dispatcher / ${e.projectId}`;let t=e.issueId?.trim()||e.projectId,r=e.branch?.trim()||(0,L.kV)(e.id).slice(0,8);return`${t} / ${r}`},[e.branch,e.id,e.issueId,e.metadata.sessionKind,e.projectId]),ez=(0,n.useMemo)(()=>Y(eo?.agent?.trim()||e.metadata.agent?.trim()||"agent"),[eo?.agent,e.metadata.agent]),eH=(0,n.useMemo)(()=>v.sessionStatus?.trim()||e.status,[v.sessionStatus,e.status]),eW=(0,n.useMemo)(()=>eH.trim().toLowerCase(),[eH]),eB="project_dispatcher"===e.metadata.sessionKind,eJ=v.approvalState??e.metadata.acpPlanApprovalState??null,eK=(0,n.useMemo)(()=>eB&&function(e,t,r){if("approval_required"!==t||r?.trim().toLowerCase()!=="needs_input")return!1;for(let t=e.length-1;t>=0;t--){let r=e[t];if("tool"!==r.kind&&"status"!==r.kind&&"system"!==r.kind){if("user"===r.kind)return!1;if("assistant"===r.kind)return function(e){let t=e.trim().toLowerCase();if(t.length<160)return!1;let r=en.reduce((e,r)=>e+ +!!t.includes(r),0),a=el.reduce((e,r)=>e+ +!!t.includes(r),0);return r>=2&&a>=1}(r.text)}}return!1}(v.entries,eJ,v.sessionStatus??e.status),[eJ,eB,v.entries,v.sessionStatus,e.status]),eG=!!eU.interrupt&&es.has(eW),eZ=eB&&eG,eV=eG&&!eZ,eY=!x||!u||eV,eQ="archived"!==e.status&&!(eB&&eG),eX=(0,n.useCallback)(async()=>{if(x){ed(null),em(null),ex(!1);return}ex(!0),em(null);try{let r=await fetch((0,M.S)(eU.repositories,t),{cache:"no-store"}),a=z(await r.json().catch(()=>null));if(!r.ok)throw Error(H(a.error)??`Failed to load project settings (${r.status})`);let s=Array.isArray(a.repositories)?a.repositories.map(Z).find(t=>null!==t&&t.id===e.projectId)??null:null;ed(s),s||em("Project settings were not found for this session.")}catch(e){ed(null),em(e instanceof Error?e.message:"Failed to load project settings")}finally{ex(!1)}},[t,x,e.projectId,eU.repositories]),e0=(0,n.useCallback)(async()=>{eR.current+=1,k(!0),y(null);try{let e=await fetch((0,M.S)(eU.feed,t),{cache:"no-store"}),r=G(await e.json().catch(()=>null));if(!e.ok)throw Error(r.error??`Failed to load session feed (${e.status})`);let a=Date.now();null===e_.current&&(e_.current=a),eE.current=a,j(r)}catch(e){eI.current+=1,y(e instanceof Error?e.message:"Failed to load session feed")}finally{k(!1)}},[t,eU.feed]);(0,n.useEffect)(()=>{r&&e0()},[r,e0]),(0,n.useEffect)(()=>{r&&!x&&eX()},[r,x,eX]),(0,n.useEffect)(()=>{if(!eC){eO.current+=1;return}let r=!1,a=null,s=0,n={current:null},l=()=>{null!==a&&(window.clearTimeout(a),a=null)},i=t=>{let r=null;try{r=JSON.parse(t)}catch{eM.current+=1,e0();return}let a=r&&"object"==typeof r&&!Array.isArray(r)?r:null;if(a?.type==="refresh"){eM.current+=1,(0,F.Fp)({projectId:e.projectId,reason:"dispatcher_feed_refresh"}),e0();return}let s=function(e){let t=z(e),r=H(t.type);if(!r&&Array.isArray(t.entries))return{type:"replace",payload:G(e)};if("replace"===r)return{type:r,payload:G(t.payload)};if("append"===r){let e=G(t);return{type:r,entries:e.entries,totalEntries:e.totalEntries,windowLimit:e.windowLimit,truncated:e.truncated,sessionStatus:e.sessionStatus,approvalState:e.approvalState,parserState:e.parserState,runtimeStatus:e.runtimeStatus,source:e.source,error:e.error,integration:e.integration}}if("patch"===r){let e=H(t.entryId);return e?{type:r,entryId:e,entry:W(t.entry),textDelta:"string"==typeof t.textDelta?t.textDelta:null,totalEntries:"number"==typeof t.totalEntries?t.totalEntries:0,windowLimit:"number"==typeof t.windowLimit?t.windowLimit:120,truncated:!0===t.truncated,sessionStatus:H(t.sessionStatus),approvalState:H(t.approvalState),parserState:B(t.parserState),runtimeStatus:J(t.runtimeStatus),source:H(t.source),error:H(t.error),integration:K(t.integration)}:null}return null}(r);if(!s){eM.current+=1,e0();return}e$.current=Date.now(),"append"===s.type?eP.current+=s.entries.length:"patch"===s.type?eF.current+=1:eD.current+=1;let n="append"===s.type?(0,F.AR)(s.entries):null;n&&(0,F.Fp)({projectId:e.projectId,reason:n}),j(e=>(function(e,t){if("replace"===t.type)return t.payload;if("append"===t.type)return{entries:function(e,t){if(0===t.length)return e;let r=e.slice(),a=new Map(r.map((e,t)=>[e.id,t]));for(let e of t){let t=a.get(e.id);if(void 0===t){a.set(e.id,r.length),r.push(e);continue}r[t]=e}return r}(e.entries,t.entries),totalEntries:t.totalEntries,windowLimit:t.windowLimit,truncated:t.truncated,sessionStatus:t.sessionStatus,approvalState:t.approvalState,parserState:t.parserState,runtimeStatus:t.runtimeStatus,source:t.source,error:t.error,integration:t.integration??e.integration};let r=e.entries.slice(),a=t.entry;if(!a)return{...e,entries:r.filter(e=>e.id!==t.entryId),totalEntries:t.totalEntries,windowLimit:t.windowLimit,truncated:t.truncated,sessionStatus:t.sessionStatus,approvalState:t.approvalState,parserState:t.parserState,runtimeStatus:t.runtimeStatus,source:t.source,error:t.error,integration:t.integration??e.integration};let s=-1;for(let e=r.length-1;e>=0;e-=1)if(r[e]?.id===t.entryId){s=e;break}if(s>=0){let e=r[s];null!==t.textDelta&&a.text.startsWith(e.text)?r[s]={...a,text:e.text+t.textDelta}:r[s]=a}else r.push(a);return{entries:r,totalEntries:t.totalEntries,windowLimit:t.windowLimit,truncated:t.truncated,sessionStatus:t.sessionStatus,approvalState:t.approvalState,parserState:t.parserState,runtimeStatus:t.runtimeStatus,source:t.source,error:t.error,integration:t.integration??e.integration}})(e,s))},o=()=>{if(r)return;l();let e=0===s?250:Math.min(500*2**(s-1),12e3);s+=1,eT.current+=1,a=window.setTimeout(()=>{a=null,d()},e)},d=async()=>{if(r)return;n.current?.abort();let e=new AbortController;n.current=e;let a=(0,M.S)(eU.stream,t);try{eL.current+=1;let t=await fetch(a,{cache:"no-store",signal:e.signal});if(!t.ok||!t.body){r||(eM.current+=1,e0(),o());return}for await(let a of(s=0,(0,O.w)(t.body,e.signal))){if(r)return;i(a.data)}r||(eM.current+=1,e0(),o())}catch{r||e.signal.aborted||(eM.current+=1,e0(),o())}};return d(),()=>{r=!0,l(),n.current?.abort()}},[t,e0,e.projectId,eU.stream,eC]),(0,n.useEffect)(()=>{},[r,w,N,ej,v.entries.length,e.id,eC]),(0,n.useEffect)(()=>{eg.current=!0},[e.id]),(0,n.useEffect)(()=>{let e=v.entries.map(e=>e.id),t=ev.current;if(t.length>0){let r=new Set(t),a=0;for(let t of e)r.has(t)||(a+=1);a>0&&(eg.current?eS(0):(eS(e=>e+a),eN(!0)))}ev.current=e},[v.entries,e.id]),(0,n.useEffect)(()=>{if(!eb.current)return;if(!eg.current){v.entries.length>0&&eN(!0);return}let e=window.requestAnimationFrame(()=>{let e=eb.current;e&&eg.current&&(e.scrollTo({top:e.scrollHeight}),eg.current=U(e),eN(!1),eS(0))});return()=>window.cancelAnimationFrame(e)},[v,v.entries.length]),(0,n.useEffect)(()=>{let e=eb.current,t=ef.current;if(!e||!t||"u"<typeof ResizeObserver)return;let r=new ResizeObserver(()=>{eg.current&&(e.scrollTo({top:e.scrollHeight}),eg.current=U(e))});return r.observe(t),()=>r.disconnect()},[w,N,e.id]);let e5=(0,n.useCallback)(e=>{let t=U(e.currentTarget);eg.current=t,eN(!t),t&&eS(0)},[]);(0,n.useEffect)(()=>{h&&D(e=>{let t=h.draftText.trim();if(!t)return e;let r=e.trim();return r?r.includes(t)?e:`${e.trimEnd()}
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2261],{10563:(e,t,r)=>{r.d(t,{s:()=>f});var a=r(54568),s=r(40448),n=r(34041),l=r(34309),i=r(64265),o=r(72410),d=r(46916),c=r(88272),x=r(33866),u=r(64323);let m=["codex","claude-code","gemini","cursor-cli","openclaw"];function p(e){return"xhigh"===e?"Extra High":e.split(/[_-\s]+/g).filter(Boolean).map(e=>e[0]?.toUpperCase()+e.slice(1)).join(" ")}function h({agent:e}){let t=(0,x.h7)(e);return(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 sm:gap-1",children:[(0,a.jsx)(o.N,{seed:{label:e},className:"h-3.5 w-3.5 border-none bg-transparent sm:h-3 sm:w-3"}),(0,a.jsx)("span",{className:"truncate",children:t?.label??e})]})}function b({label:e,title:t,disabled:r=!1,accent:l=!1,triggerClassName:i,contentClassName:o,children:c}){return(0,a.jsxs)(s.bL,{children:[(0,a.jsx)(s.l9,{asChild:!0,disabled:r,children:(0,a.jsxs)("button",{type:"button",disabled:r,title:t,className:(0,d.cn)("inline-flex h-9 min-w-0 items-center gap-1.5 rounded-[11px] border px-2.5 text-[12px] font-medium transition disabled:cursor-not-allowed disabled:opacity-60 sm:h-[30px] sm:gap-1 sm:rounded-[9px] sm:px-2 sm:text-[11.5px]",l?"border-[rgba(214,163,126,0.28)] bg-[rgba(66,44,35,0.94)] text-[#f2d9cd] hover:bg-[rgba(78,52,41,0.98)]":"border-[rgba(255,255,255,0.08)] bg-[#272220] text-[#f3ead8] hover:bg-[#312926]",i),children:[(0,a.jsx)("span",{className:"min-w-0 truncate",children:e}),(0,a.jsx)(n.A,{className:"h-3.5 w-3.5 shrink-0 text-[rgba(255,255,255,0.55)] sm:h-2.5 sm:w-2.5"})]})}),(0,a.jsx)(s.ZL,{children:(0,a.jsx)(s.UC,{align:"start",collisionPadding:8,sideOffset:6,className:(0,d.cn)("z-50 max-h-[70vh] w-[calc(100vw-1rem)] max-w-[22rem] overflow-y-auto rounded-[12px] border border-[rgba(255,255,255,0.08)] bg-[#1c1a19] p-2 shadow-[0_18px_50px_rgba(0,0,0,0.45)] sm:max-h-[22rem] sm:w-auto sm:min-w-[200px] sm:max-w-[26rem] sm:rounded-[10px] sm:p-1.5",o),children:c})})]})}function f({implementationAgent:e,modelSelection:t,modelAccess:r,runtimeModelCatalogs:n,disabled:g=!1,className:v,onImplementationAgentChange:j,onModelSelectionChange:w}){let k=(0,c.Ik)(e,r,n),N=(0,c.xb)(t)??t.catalogModel,y=N?(0,u.M)(e,N):"Change model",S=(0,c.iL)(e,r,n,N),C=k.length>0,A=t.reasoningEffort.trim().toLowerCase();return(0,a.jsxs)("div",{className:(0,d.cn)("grid w-full grid-cols-[repeat(auto-fit,minmax(7.25rem,1fr))] gap-1.5 sm:flex sm:flex-wrap sm:items-center",v),children:[(0,a.jsx)("div",{className:"min-w-0 sm:flex-none",children:(0,a.jsxs)(b,{label:(0,a.jsx)(h,{agent:e}),title:`Change coding agent (${(0,x.h7)(e)?.label??e})`,disabled:g,triggerClassName:"w-full justify-between sm:h-[27px] sm:w-auto sm:justify-start sm:max-w-[6.75rem]",children:[(0,a.jsx)("div",{className:"px-3 pb-2 pt-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:"Coding agent"}),m.map(t=>{let r=(0,x.h7)(t),n=e===t;return(0,a.jsxs)(s.q7,{onSelect:()=>j(t),className:"flex min-h-[40px] cursor-default items-center gap-2.5 rounded-[8px] px-3 py-2 text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)] sm:min-h-[34px] sm:rounded-[7px] sm:px-2 sm:py-1.5 sm:text-[12px]",children:[(0,a.jsx)(o.N,{seed:{label:t},className:"h-4 w-4 border-none bg-transparent sm:h-3.5 sm:w-3.5"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium sm:text-[12.5px]",children:r?.label??t}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[rgba(255,255,255,0.58)] sm:text-[10.5px]",children:r?.description??"Coding agent"})]}),n?(0,a.jsx)(l.A,{className:"h-4 w-4 text-[#f2d9cd] sm:h-3.5 sm:w-3.5"}):null]},t)})]})}),C?(0,a.jsx)("div",{className:"min-w-0 sm:flex-none",children:(0,a.jsxs)(b,{label:y,title:`Change model${N?` (${y})`:""}`,disabled:g,triggerClassName:"w-full justify-between sm:h-[27px] sm:w-auto sm:justify-start sm:max-w-[11.75rem]",contentClassName:"sm:min-w-[220px]",children:[(0,a.jsx)("div",{className:"px-3 pb-2 pt-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:"Change model"}),k.map(t=>{let i=t.id===N;return(0,a.jsxs)(s.q7,{onSelect:()=>{let a=(0,c.iL)(e,r,n,t.id);w({catalogModel:t.id,customModel:"",reasoningEffort:a.some(e=>e.id===A)?A:(0,c.YS)(e,r,n,t.id)})},className:"flex min-h-[40px] cursor-default items-center gap-2.5 rounded-[8px] px-3 py-2 text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)] sm:min-h-[34px] sm:rounded-[7px] sm:px-2 sm:py-1.5 sm:text-[12px]",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium sm:text-[12px]",children:t.label}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[rgba(255,255,255,0.58)] sm:text-[10.5px]",children:t.description})]}),i?(0,a.jsx)(l.A,{className:"h-4 w-4 text-[#f2d9cd] sm:h-3.5 sm:w-3.5"}):null]},t.id)})]})}):null,C&&S.length>0?(0,a.jsx)("div",{className:"min-w-0 sm:flex-none",children:(0,a.jsxs)(b,{label:(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 text-[#d7b6a5] sm:h-3 sm:w-3"}),(0,a.jsx)("span",{children:p(A||S[0].id)})]}),title:`Change thinking level (${p(A||S[0].id)})`,disabled:g,accent:!0,triggerClassName:"w-full justify-between sm:h-[27px] sm:w-auto sm:justify-start sm:max-w-[7rem]",children:[(0,a.jsx)("div",{className:"px-3 pb-2 pt-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:"Thinking"}),S.map(e=>{let r=e.id===A;return(0,a.jsxs)(s.q7,{onSelect:()=>w({...t,reasoningEffort:e.id}),className:"flex min-h-[40px] cursor-default items-center gap-2.5 rounded-[8px] px-3 py-2 text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)] sm:min-h-[34px] sm:rounded-[7px] sm:px-2 sm:py-1.5 sm:text-[12px]",children:[(0,a.jsx)(i.A,{className:"h-4 w-4 text-[#d7b6a5] sm:h-3.5 sm:w-3.5"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium sm:text-[12.5px]",children:e.label}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[rgba(255,255,255,0.58)] sm:text-[10.5px]",children:e.description})]}),r?(0,a.jsx)(l.A,{className:"h-4 w-4 text-[#f2d9cd] sm:h-3.5 sm:w-3.5"}):null]},e.id)})]})}):null]})}},18259:(e,t,r)=>{r.d(t,{AR:()=>n,Fp:()=>i,M_:()=>l,b:()=>o});let a="conductor:project-board-refresh",s=new Set(["dispatcher_task_created","dispatcher_task_updated","dispatcher_task_handed_off"]);function n(e){for(let t of e){let e=function(e){if("system"!==e.kind)return null;let t=e.metadata?.eventType;return"string"==typeof t&&t.trim().length>0?t.trim():null}(t);if(e&&s.has(e))return e}return null}function l(e,t){return!!(e.changedProjectIds?.includes(t)||e.sessions.some(e=>e.projectId===t))||"snapshot_delta"===e.type&&0===e.sessions.length}function i(e){window.dispatchEvent(new CustomEvent(a,{detail:e}))}function o(e,t){let r=r=>{let a=r.detail;a&&a.projectId===e&&t(a)};return window.addEventListener(a,r),()=>{window.removeEventListener(a,r)}}},18510:(e,t,r)=>{r.d(t,{J:()=>s,s:()=>n});var a=r(10926);function s(e){let t=(0,a.C0)(e);if(!t)return"/";let r=new URLSearchParams;return r.set("bridge",t),`/?${r.toString()}`}function n(e,t={}){let r,s=e.trim(),l=(0,a.DW)(s)?s:(r=(0,a.C0)(t.bridgeId))?(0,a.Bp)(r,s):s,i=new URLSearchParams,o=t.tab?.trim();o&&i.set("tab",o);let d=i.toString(),c=`/sessions/${encodeURIComponent(l)}`;return d.length>0?`${c}?${d}`:c}},52261:(e,t,r)=>{r.r(t),r.d(t,{DispatcherPane:()=>eu});var a=r(54568),s=r(40448),n=r(7620),l=r(97509),i=r(58299),o=r(96770),d=r(34309),c=r(44968),x=r(38491),u=r(10563),m=r(79748),p=r(8281),h=r(1426),b=r(2939),f=r(76587),g=r(23555),v=r(45894),j=r(97380),w=r(58588),k=r(69863),N=r(87242),y=r(46548),S=r(14796),C=r(34041),A=r(76265),_=r(26083),E=r(36645),$=r(82797),R=r(72410),I=r(76081),L=r(10926),T=r(46916),M=r(31404),P=r(18510),F=r(18259),D=r(33866),O=r(92070);function U(e,t=32){let{clientHeight:r,scrollHeight:a,scrollTop:s}=e;return![r,a,s].every(Number.isFinite)||Math.max(0,a-r-s)<=Math.max(0,t)}let q={entries:[],totalEntries:0,windowLimit:120,truncated:!1,sessionStatus:null,approvalState:null,parserState:null,runtimeStatus:null,source:null,error:null,integration:null};function z(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function H(e){return"string"==typeof e&&e.trim().length>0?e:null}function W(e){let t=z(e),r=H(t.id),a=H(t.kind),s="string"==typeof t.text?t.text:"";return r&&a?{id:r,kind:a,label:H(t.label)??"Session",text:s,createdAt:H(t.createdAt),attachments:Array.isArray(t.attachments)?t.attachments:[],source:H(t.source)??"session",streaming:!0===t.streaming,metadata:z(t.metadata)}:null}function B(e){let t=z(e),r=H(t.kind);return r?{kind:r,message:"string"==typeof t.message?t.message:"",command:H(t.command)}:null}function J(e){let t=z(e);return 0===Object.keys(t).length?null:t}function K(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=z(e.openclaw),r=z(e.heartbeat),a=z(e.memory),s=H(e.projectId),n=H(e.threadId);return s&&n?{projectId:s,threadId:n,bridgeId:null===e.bridgeId?null:H(e.bridgeId),openclaw:{threadId:null===t.threadId?null:H(t.threadId),sessionId:null===t.sessionId?null:H(t.sessionId)},heartbeat:{state:null===r.state?null:H(r.state),nextAt:null===r.nextAt?null:H(r.nextAt)},memory:{projectPath:null===a.projectPath?null:H(a.projectPath),sessionPath:null===a.sessionPath?null:H(a.sessionPath)}}:null}function G(e){let t=z(e);return{entries:Array.isArray(t.entries)?t.entries.map(W).filter(e=>null!==e):[],totalEntries:"number"==typeof t.totalEntries?t.totalEntries:0,windowLimit:"number"==typeof t.windowLimit?t.windowLimit:120,truncated:!0===t.truncated,sessionStatus:H(t.sessionStatus),approvalState:H(t.approvalState),parserState:B(t.parserState),runtimeStatus:J(t.runtimeStatus),source:H(t.source),error:H(t.error),integration:K(t.integration)}}function Z(e){let t=z(e),r=H(t.id),a=H(t.repo),s=H(t.path);if(!r||!a||!s)return null;let n=z(t.pathHealth);return{id:r,displayName:H(t.displayName)??r,repo:a,path:s,agent:H(t.agent)??"codex",agentPermissions:H(t.agentPermissions)??"skip",agentModel:H(t.agentModel)??"",agentReasoningEffort:H(t.agentReasoningEffort)??"",workspaceMode:H(t.workspaceMode)??"local",runtimeMode:H(t.runtimeMode)??"direct",scmMode:H(t.scmMode)??"git",defaultWorkingDirectory:H(t.defaultWorkingDirectory)??"",defaultBranch:H(t.defaultBranch)??"main",devServerScript:H(t.devServerScript)??"",devServerCwd:H(t.devServerCwd)??"",devServerUrl:H(t.devServerUrl)??"",devServerPort:H(t.devServerPort)??"",devServerHost:H(t.devServerHost)??"",devServerPath:H(t.devServerPath)??"",devServerHttps:!0===t.devServerHttps,setupScript:H(t.setupScript)??"",runSetupInParallel:!0===t.runSetupInParallel,cleanupScript:H(t.cleanupScript)??"",archiveScript:H(t.archiveScript)??"",copyFiles:H(t.copyFiles)??"",pathHealth:{exists:!0===n.exists,isGitRepository:!0===n.isGitRepository,suggestedPath:H(n.suggestedPath)}}}function V({value:e,maxLength:t=84,className:r}){let s=e.trim(),l=s.length>t||e.includes("\n"),[i,o]=(0,n.useState)(!1);return l?(0,a.jsx)("button",{type:"button",onClick:()=>o(e=>!e),"aria-expanded":i,title:i?"Collapse text":"Expand text",className:(0,T.cn)("max-w-full text-left transition-colors hover:bg-[rgba(255,255,255,0.08)]",i?"whitespace-pre-wrap break-words":"truncate",r),children:i?s:function(e,t=84){let r=e.replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1)).trimEnd()}…`}(s,t)}):(0,a.jsx)("span",{className:r,children:s})}function Y(e){let t=(0,D.h7)(e);return t?.label?t.label:e.split(/[-_\s]+/g).filter(Boolean).map(e=>e[0]?.toUpperCase()+e.slice(1)).join(" ")}function Q({text:e}){return(0,a.jsx)(p.o,{remarkPlugins:[h.A],className:"min-w-0 break-words [overflow-wrap:anywhere]",components:{h1:({children:e})=>(0,a.jsx)("h1",{className:"mb-5 text-[22px] font-semibold tracking-[-0.03em] text-[var(--vk-text-strong)] last:mb-0 sm:text-[28px] lg:text-[36px]",children:e}),h2:({children:e})=>(0,a.jsx)("h2",{className:"mb-4 mt-8 text-[20px] font-semibold tracking-[-0.02em] text-[var(--vk-text-strong)] first:mt-0 last:mb-0",children:e}),h3:({children:e})=>(0,a.jsx)("h3",{className:"mb-3 mt-6 text-[16px] font-semibold text-[var(--vk-text-normal)] first:mt-0 last:mb-0",children:e}),p:({children:e})=>(0,a.jsx)("p",{className:"mb-3 last:mb-0",children:e}),hr:()=>(0,a.jsx)("hr",{className:"my-8 border-0 border-t border-[var(--vk-border)]"}),pre:({children:e})=>(0,a.jsx)("pre",{className:"mb-4 overflow-x-auto rounded-[10px] border border-[var(--vk-border)] bg-[#151413] p-3 text-[12px] text-[var(--vk-text-normal)] last:mb-0",children:e}),code:({children:e,className:t})=>(0,a.jsx)("code",{className:(0,T.cn)("rounded-[6px] bg-[#171615] px-1.5 py-0.5 font-mono text-[12px] text-[var(--vk-text-normal)]",t),children:e}),ul:({children:e})=>(0,a.jsx)("ul",{className:"mb-3 list-disc pl-5 last:mb-0",children:e}),ol:({children:e})=>(0,a.jsx)("ol",{className:"mb-3 list-decimal pl-5 last:mb-0",children:e}),li:({children:e})=>(0,a.jsx)("li",{className:"mb-1 last:mb-0",children:e}),table:({children:e})=>(0,a.jsx)("div",{className:"mb-4 overflow-x-auto rounded-[12px] border border-[var(--vk-border)]",children:(0,a.jsx)("table",{className:"min-w-full border-collapse text-left text-[13px]",children:e})}),thead:({children:e})=>(0,a.jsx)("thead",{className:"bg-[rgba(255,255,255,0.03)]",children:e}),tbody:({children:e})=>(0,a.jsx)("tbody",{children:e}),tr:({children:e})=>(0,a.jsx)("tr",{className:"border-b border-[var(--vk-border)] last:border-b-0",children:e}),th:({children:e})=>(0,a.jsx)("th",{className:"px-4 py-3 text-[12px] font-medium text-[var(--vk-text-normal)]",children:e}),td:({children:e})=>(0,a.jsx)("td",{className:"px-4 py-3 align-top text-[13px] text-[var(--vk-text-muted)]",children:e})},children:e})}function X({label:e,tone:t="neutral"}){return(0,a.jsxs)("div",{className:(0,T.cn)("mb-3 flex items-center gap-3 rounded-[10px] border px-3 py-2","prompt"===t?"border-[rgba(255,255,255,0.08)] bg-[rgba(255,255,255,0.05)] text-[#f4ede7]":"border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] text-[var(--vk-text-normal)]"),children:[(0,a.jsx)("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-[8px] bg-[rgba(0,0,0,0.22)]",children:(0,a.jsx)(b.A,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium",children:e}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[var(--vk-text-muted)]",children:"Attached context"})]})]})}function ee({toolKind:e,toolTitle:t,className:r="h-4 w-4"}){let s=t.trim().toLowerCase(),n=e?.trim().toLowerCase()??"";return"thinking"===n||"thinking"===s?(0,a.jsx)(f.A,{className:(0,T.cn)(r,"text-[var(--vk-text-normal)]")}):"read"===n||s.startsWith("read ")||s.includes("review request")?(0,a.jsx)(b.A,{className:r}):"write"===n||"edit"===n||"multiedit"===n||s.startsWith("write")||s.startsWith("edit")?(0,a.jsx)(x.A,{className:r}):"grep"===n||"search"===n||"find"===n?(0,a.jsx)(g.A,{className:r}):"ls"===n||"glob"===n||"open"===n?(0,a.jsx)(v.A,{className:r}):"websearch"===n||"webfetch"===n?(0,a.jsx)(j.A,{className:r}):"task"===n||"todowrite"===n?(0,a.jsx)(o.A,{className:r}):s.includes("diff")||s.includes("workspace diff")||s.includes("git diff")?(0,a.jsx)(w.A,{className:r}):"bash"===n||"command"===n||s.startsWith("get diff")||s.startsWith("run ")?(0,a.jsx)(k.A,{className:r}):(0,a.jsx)(N.A,{className:r})}function et(e){switch(e){case"create":return"Task created";case"update":return"Task updated";case"handoff":return"Task handed off"}}function er({entry:e,session:t}){var r;let s=function(e){if(!e)return null;let t=new Date(e).getTime();if(!Number.isFinite(t))return null;let r=Date.now()-t;return r<6e4?"just now":r<36e5?`${Math.max(1,Math.floor(r/6e4))}m ago`:new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(t)}(e.createdAt),n="assistant"===e.kind?"runtime"===e.source?"Thinking":Y(t.metadata.agent?.trim()||"assistant"):e.label||"Session",l=e.attachments.map(e=>{let t=z(e);return H(t.name)??H(t.path)??("string"==typeof e?e:null)}).filter(e=>!!e),i=H(e.metadata.toolTitle)??e.text,d=H(e.metadata.toolKind)?.toLowerCase()??null,c=Array.isArray(r=e.metadata.toolContent)?r.map(e=>H(e)).filter(e=>null!==e):[],x=c[0]??null,u=c[1]??null,m="assistant"===e.kind&&"runtime"===e.source,p="status"===e.kind&&"session-status"===e.source,h=function(e){if("system"!==e.kind)return null;let t=H(e.metadata.eventType),r=null;if("dispatcher_task_created"===t?r="create":"dispatcher_task_updated"===t?r="update":"dispatcher_task_handed_off"===t&&(r="handoff"),!r)return null;let a=H(e.metadata.taskId),s=H(e.metadata.taskRef)??a,n=H(e.metadata.taskTitle);return a&&s&&n?{operation:r,taskId:a,taskRef:s,taskTitle:n,taskRoleLabel:H(e.metadata.taskRoleLabel),taskAgent:H(e.metadata.taskAgent),taskType:H(e.metadata.taskType)}:null}(e);return"tool"===e.kind?(0,a.jsxs)("div",{className:"flex items-start gap-3 text-[13px] text-[var(--vk-text-muted)]",children:[(0,a.jsx)("div",{className:"mt-[2px] flex h-5 w-5 shrink-0 items-center justify-center text-[var(--vk-text-muted)]",children:(0,a.jsx)(ee,{toolKind:d,toolTitle:i,className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium text-[var(--vk-text-normal)]",children:i||"Tool call"}),x?(0,a.jsx)(V,{value:x,maxLength:72,className:"rounded-[6px] bg-[rgba(255,255,255,0.05)] px-2 py-0.5 font-mono text-[11px] text-[var(--vk-text-muted)]"}):null,s?(0,a.jsx)("span",{className:"ml-auto text-[11px] text-[var(--vk-text-muted)]",children:s}):null]}),u?(0,a.jsx)(V,{value:u,maxLength:140,className:"block rounded-[6px] bg-[rgba(255,255,255,0.03)] px-2 py-1 text-[12px] leading-5 text-[var(--vk-text-muted)]"}):null]})]}):h?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[12px] text-[var(--vk-text-muted)]",children:[(0,a.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:et(h.operation)}),s?(0,a.jsx)("span",{className:"ml-auto text-[11px]",children:s}):null]}),(0,a.jsxs)("div",{className:"rounded-[12px] border border-[rgba(129,101,83,0.35)] bg-[rgba(62,47,40,0.72)] px-4 py-3 text-[15px] leading-6 text-[#efe4dc]",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-start gap-2",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"text-[12px] font-medium uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:et(h.operation)}),(0,a.jsx)("p",{className:"mt-1 break-words text-[16px] font-semibold text-[#fff5ee]",children:h.taskTitle})]}),(0,a.jsx)("span",{className:"rounded-full border border-[rgba(255,255,255,0.12)] bg-[rgba(255,255,255,0.06)] px-2.5 py-1 text-[11px] font-medium text-[#fff5ee]",children:h.taskRef})]}),(0,a.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2 text-[11px] text-[rgba(255,255,255,0.72)]",children:[h.taskRoleLabel?(0,a.jsx)("span",{className:"rounded-full bg-[rgba(255,255,255,0.08)] px-2.5 py-1",children:h.taskRoleLabel}):null,h.taskAgent?(0,a.jsx)("span",{className:"rounded-full bg-[rgba(255,255,255,0.08)] px-2.5 py-1",children:Y(h.taskAgent)}):null,h.taskType?(0,a.jsx)("span",{className:"rounded-full bg-[rgba(255,255,255,0.08)] px-2.5 py-1",children:h.taskType}):null]})]})]}):m?(0,a.jsxs)("div",{className:"flex items-start gap-3 text-[13px] text-[var(--vk-text-muted)]",children:[(0,a.jsx)("div",{className:"mt-[2px] flex h-5 w-5 shrink-0 items-center justify-center text-[var(--vk-text-muted)]",children:(0,a.jsx)(f.A,{className:"h-4 w-4 text-[var(--vk-text-normal)]"})}),(0,a.jsx)("div",{className:"min-w-0 flex-1",children:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium text-[var(--vk-text-normal)]",children:"Thinking"}),e.text.trim().length>0?(0,a.jsx)(V,{value:e.text,maxLength:96,className:"rounded-[6px] bg-[rgba(255,255,255,0.05)] px-2 py-0.5 font-mono text-[11px] text-[var(--vk-text-muted)]"}):null,s?(0,a.jsx)("span",{className:"ml-auto text-[11px] text-[var(--vk-text-muted)]",children:s}):null]})})]}):p?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("div",{className:"rounded-[22px] border border-[rgba(113,84,68,0.45)] bg-[rgba(54,40,34,0.9)] px-4 py-3 text-[15px] leading-7 text-[#efe4dc] shadow-[0_8px_18px_rgba(0,0,0,0.14)]",children:(0,a.jsx)(Q,{text:e.text})}),s?(0,a.jsx)("div",{className:"text-right text-[11px] text-[var(--vk-text-muted)]",children:s}):null]}):"user"===e.kind?(0,a.jsxs)("div",{className:"ml-auto max-w-[88%]",children:[(0,a.jsxs)("div",{className:"rounded-[14px] border border-[rgba(124,94,78,0.45)] bg-[rgba(52,39,35,0.92)] px-4 py-3 text-[#f1e7e0] shadow-[0_10px_24px_rgba(0,0,0,0.18)]",children:[l.map(t=>(0,a.jsx)(X,{label:t,tone:"prompt"},`${e.id}-${t}`)),(0,a.jsx)("div",{className:"text-[15px] leading-7 text-[#f4ede7]",children:(0,a.jsx)(Q,{text:e.text})})]}),s?(0,a.jsx)("div",{className:"mt-1 text-right text-[11px] text-[var(--vk-text-muted)]",children:s}):null]}):"assistant"===e.kind?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"text-[15px] leading-8 text-[var(--vk-text-normal)]",children:[l.map(t=>(0,a.jsx)(X,{label:t},`${e.id}-${t}`)),(0,a.jsx)(Q,{text:e.text})]}),s?(0,a.jsx)("div",{className:"text-[11px] text-[var(--vk-text-muted)]",children:s}):null]}):(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[12px] text-[var(--vk-text-muted)]",children:["status"===e.kind?(0,a.jsx)(y.A,{className:"h-3.5 w-3.5"}):(0,a.jsx)(S.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:n}),s?(0,a.jsx)("span",{className:"ml-auto text-[11px]",children:s}):null]}),(0,a.jsxs)("div",{className:(0,T.cn)("rounded-[12px] border px-4 py-3 text-[15px] leading-7","border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] text-[var(--vk-text-muted)]"),children:[l.map(t=>(0,a.jsx)(X,{label:t},`${e.id}-${t}`)),(0,a.jsx)(Q,{text:e.text})]})]})}function ea({project:e,disabled:t=!1,saving:r=!1,onChange:n}){let l=e?.agent?.trim()||"codex";return(0,a.jsxs)(s.bL,{children:[(0,a.jsx)(s.l9,{asChild:!0,children:(0,a.jsxs)("button",{type:"button",disabled:t||!e,className:"inline-flex h-10 w-full min-w-0 max-w-full items-center justify-between gap-3 rounded-[8px] border border-[var(--vk-accent)] bg-[color:color-mix(in_srgb,var(--vk-accent)_88%,black_12%)] px-3 text-left text-[13px] text-white shadow-[0_10px_24px_rgba(0,0,0,0.18)] transition hover:bg-[var(--accent-hover)] disabled:cursor-not-allowed disabled:opacity-60 sm:min-w-[220px] sm:w-auto","aria-label":"Select coding agent",title:e?`Coding agent: ${Y(l)}`:"Project agent unavailable",children:[(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,a.jsx)(R.N,{seed:{label:l},className:"h-5 w-5 border-none bg-transparent"}),(0,a.jsx)("span",{className:"truncate",children:r?"Saving agent…":`Coding Agent \xb7 ${Y(l)}`})]}),r?(0,a.jsx)(i.A,{className:"h-4 w-4 animate-spin"}):(0,a.jsx)(C.A,{className:"h-4 w-4 shrink-0"})]})}),(0,a.jsx)(s.ZL,{children:(0,a.jsxs)(s.UC,{align:"start",sideOffset:8,className:"z-50 min-w-[250px] max-w-[calc(100vw-2rem)] rounded-[10px] border border-[rgba(255,255,255,0.08)] bg-[#1c1a19] p-2 shadow-[0_18px_50px_rgba(0,0,0,0.45)]",children:[(0,a.jsx)("p",{className:"px-3 pb-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Coding agent"}),D.pN.map(e=>{let t=e.name===l;return(0,a.jsxs)(s.q7,{onSelect:()=>n(e.name),className:"flex min-h-[46px] cursor-default items-center gap-3 rounded-[8px] px-3 py-2 text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)]",children:[(0,a.jsx)(R.N,{seed:{label:e.name},className:"h-5 w-5 border-none bg-transparent"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-[13px] font-medium",children:e.label}),(0,a.jsx)("p",{className:"truncate text-[11px] text-[rgba(255,255,255,0.6)]",children:e.description})]}),t?(0,a.jsx)(d.A,{className:"h-4 w-4 text-white"}):null]},e.name)})]})})]})}let es=new Set(["queued","spawning","running","working"]),en=["## proposed plan","## intended board mutations","## intended tool calls","## task packet","task packet","board mutations"],el=["approve this plan","approve the plan","approve this proposal","request changes","plan-only mode","paused before mutating the board","approve it or request changes","ask for explicit approval","explicit approval"];function ei({session:e,bridgeId:t=null,active:r=!0,onClose:s,onToggleCollapse:l,className:o,hideOpenSessionAction:c=!1,hideRepositoryControls:x=!1,hideSessionStatusBadge:u=!1,headerActions:p=null,composerInsert:h=null,composerToolbar:b=null,apiPaths:f}){let g=(0,m.useRouter)(),[v,j]=(0,n.useState)(q),[w,k]=(0,n.useState)(!0),[N,y]=(0,n.useState)(null),[C,D]=(0,n.useState)(""),[Q,X]=(0,n.useState)(null),[ee,et]=(0,n.useState)(!1),[eo,ed]=(0,n.useState)(null),[ec,ex]=(0,n.useState)(!0),[eu,em]=(0,n.useState)(null),[ep,eh]=(0,n.useState)(!1),eb=(0,n.useRef)(null),ef=(0,n.useRef)(null),eg=(0,n.useRef)(!0),ev=(0,n.useRef)([]),[ej,ew]=(0,n.useState)(!0),[ek,eN]=(0,n.useState)(!1),[ey,eS]=(0,n.useState)(0),eC=r&&ej,eA=(0,n.useRef)(Date.now()),e_=(0,n.useRef)(null),eE=(0,n.useRef)(null),e$=(0,n.useRef)(null),eR=(0,n.useRef)(0),eI=(0,n.useRef)(0),eL=(0,n.useRef)(0),eT=(0,n.useRef)(0),eM=(0,n.useRef)(0),eP=(0,n.useRef)(0),eF=(0,n.useRef)(0),eD=(0,n.useRef)(0),eO=(0,n.useRef)(0);(0,n.useEffect)(()=>{let e=()=>{ew(!document.hidden)};return document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}},[]),(0,n.useEffect)(()=>{eA.current=Date.now(),e_.current=null,eE.current=null,e$.current=null,eR.current=0,eI.current=0,eL.current=0,eT.current=0,eM.current=0,eP.current=0,eF.current=0,eD.current=0,eO.current=0,ev.current=[],eN(!1),eS(0)},[e.id]);let eU=(0,n.useMemo)(()=>({feed:f.feed,stream:f.stream,send:f.send,interrupt:f.interrupt??null,repositories:f.repositories??"/api/repositories"}),[f]),eq=(0,n.useMemo)(()=>{if("project_dispatcher"===e.metadata.sessionKind)return`Dispatcher / ${e.projectId}`;let t=e.issueId?.trim()||e.projectId,r=e.branch?.trim()||(0,L.kV)(e.id).slice(0,8);return`${t} / ${r}`},[e.branch,e.id,e.issueId,e.metadata.sessionKind,e.projectId]),ez=(0,n.useMemo)(()=>Y(eo?.agent?.trim()||e.metadata.agent?.trim()||"agent"),[eo?.agent,e.metadata.agent]),eH=(0,n.useMemo)(()=>v.sessionStatus?.trim()||e.status,[v.sessionStatus,e.status]),eW=(0,n.useMemo)(()=>eH.trim().toLowerCase(),[eH]),eB="project_dispatcher"===e.metadata.sessionKind,eJ=v.approvalState??e.metadata.acpPlanApprovalState??null,eK=(0,n.useMemo)(()=>eB&&function(e,t,r){if("approval_required"!==t||r?.trim().toLowerCase()!=="needs_input")return!1;for(let t=e.length-1;t>=0;t--){let r=e[t];if("tool"!==r.kind&&"status"!==r.kind&&"system"!==r.kind){if("user"===r.kind)return!1;if("assistant"===r.kind)return function(e){let t=e.trim().toLowerCase();if(t.length<160)return!1;let r=en.reduce((e,r)=>e+ +!!t.includes(r),0),a=el.reduce((e,r)=>e+ +!!t.includes(r),0);return r>=2&&a>=1}(r.text)}}return!1}(v.entries,eJ,v.sessionStatus??e.status),[eJ,eB,v.entries,v.sessionStatus,e.status]),eG=!!eU.interrupt&&es.has(eW),eZ=eB&&eG,eV=eG&&!eZ,eY=!x||!u||eV,eQ="archived"!==e.status&&!(eB&&eG),eX=(0,n.useCallback)(async()=>{if(x){ed(null),em(null),ex(!1);return}ex(!0),em(null);try{let r=await fetch((0,M.S)(eU.repositories,t),{cache:"no-store"}),a=z(await r.json().catch(()=>null));if(!r.ok)throw Error(H(a.error)??`Failed to load project settings (${r.status})`);let s=Array.isArray(a.repositories)?a.repositories.map(Z).find(t=>null!==t&&t.id===e.projectId)??null:null;ed(s),s||em("Project settings were not found for this session.")}catch(e){ed(null),em(e instanceof Error?e.message:"Failed to load project settings")}finally{ex(!1)}},[t,x,e.projectId,eU.repositories]),e0=(0,n.useCallback)(async()=>{eR.current+=1,k(!0),y(null);try{let e=await fetch((0,M.S)(eU.feed,t),{cache:"no-store"}),r=G(await e.json().catch(()=>null));if(!e.ok)throw Error(r.error??`Failed to load session feed (${e.status})`);let a=Date.now();null===e_.current&&(e_.current=a),eE.current=a,j(r)}catch(e){eI.current+=1,y(e instanceof Error?e.message:"Failed to load session feed")}finally{k(!1)}},[t,eU.feed]);(0,n.useEffect)(()=>{r&&e0()},[r,e0]),(0,n.useEffect)(()=>{r&&!x&&eX()},[r,x,eX]),(0,n.useEffect)(()=>{if(!eC){eO.current+=1;return}let r=!1,a=null,s=0,n={current:null},l=()=>{null!==a&&(window.clearTimeout(a),a=null)},i=t=>{let r=null;try{r=JSON.parse(t)}catch{eM.current+=1,e0();return}let a=r&&"object"==typeof r&&!Array.isArray(r)?r:null;if(a?.type==="refresh"){eM.current+=1,(0,F.Fp)({projectId:e.projectId,reason:"dispatcher_feed_refresh"}),e0();return}let s=function(e){let t=z(e),r=H(t.type);if(!r&&Array.isArray(t.entries))return{type:"replace",payload:G(e)};if("replace"===r)return{type:r,payload:G(t.payload)};if("append"===r){let e=G(t);return{type:r,entries:e.entries,totalEntries:e.totalEntries,windowLimit:e.windowLimit,truncated:e.truncated,sessionStatus:e.sessionStatus,approvalState:e.approvalState,parserState:e.parserState,runtimeStatus:e.runtimeStatus,source:e.source,error:e.error,integration:e.integration}}if("patch"===r){let e=H(t.entryId);return e?{type:r,entryId:e,entry:W(t.entry),textDelta:"string"==typeof t.textDelta?t.textDelta:null,totalEntries:"number"==typeof t.totalEntries?t.totalEntries:0,windowLimit:"number"==typeof t.windowLimit?t.windowLimit:120,truncated:!0===t.truncated,sessionStatus:H(t.sessionStatus),approvalState:H(t.approvalState),parserState:B(t.parserState),runtimeStatus:J(t.runtimeStatus),source:H(t.source),error:H(t.error),integration:K(t.integration)}:null}return null}(r);if(!s){eM.current+=1,e0();return}e$.current=Date.now(),"append"===s.type?eP.current+=s.entries.length:"patch"===s.type?eF.current+=1:eD.current+=1;let n="append"===s.type?(0,F.AR)(s.entries):null;n&&(0,F.Fp)({projectId:e.projectId,reason:n}),j(e=>(function(e,t){if("replace"===t.type)return t.payload;if("append"===t.type)return{entries:function(e,t){if(0===t.length)return e;let r=e.slice(),a=new Map(r.map((e,t)=>[e.id,t]));for(let e of t){let t=a.get(e.id);if(void 0===t){a.set(e.id,r.length),r.push(e);continue}r[t]=e}return r}(e.entries,t.entries),totalEntries:t.totalEntries,windowLimit:t.windowLimit,truncated:t.truncated,sessionStatus:t.sessionStatus,approvalState:t.approvalState,parserState:t.parserState,runtimeStatus:t.runtimeStatus,source:t.source,error:t.error,integration:t.integration??e.integration};let r=e.entries.slice(),a=t.entry;if(!a)return{...e,entries:r.filter(e=>e.id!==t.entryId),totalEntries:t.totalEntries,windowLimit:t.windowLimit,truncated:t.truncated,sessionStatus:t.sessionStatus,approvalState:t.approvalState,parserState:t.parserState,runtimeStatus:t.runtimeStatus,source:t.source,error:t.error,integration:t.integration??e.integration};let s=-1;for(let e=r.length-1;e>=0;e-=1)if(r[e]?.id===t.entryId){s=e;break}if(s>=0){let e=r[s];null!==t.textDelta&&a.text.startsWith(e.text)?r[s]={...a,text:e.text+t.textDelta}:r[s]=a}else r.push(a);return{entries:r,totalEntries:t.totalEntries,windowLimit:t.windowLimit,truncated:t.truncated,sessionStatus:t.sessionStatus,approvalState:t.approvalState,parserState:t.parserState,runtimeStatus:t.runtimeStatus,source:t.source,error:t.error,integration:t.integration??e.integration}})(e,s))},o=()=>{if(r)return;l();let e=0===s?250:Math.min(500*2**(s-1),12e3);s+=1,eT.current+=1,a=window.setTimeout(()=>{a=null,d()},e)},d=async()=>{if(r)return;n.current?.abort();let e=new AbortController;n.current=e;let a=(0,M.S)(eU.stream,t);try{eL.current+=1;let t=await fetch(a,{cache:"no-store",signal:e.signal});if(!t.ok||!t.body){r||(eM.current+=1,e0(),o());return}for await(let a of(s=0,(0,O.w)(t.body,e.signal))){if(r)return;i(a.data)}r||(eM.current+=1,e0(),o())}catch{r||e.signal.aborted||(eM.current+=1,e0(),o())}};return d(),()=>{r=!0,l(),n.current?.abort()}},[t,e0,e.projectId,eU.stream,eC]),(0,n.useEffect)(()=>{},[r,w,N,ej,v.entries.length,e.id,eC]),(0,n.useEffect)(()=>{eg.current=!0},[e.id]),(0,n.useEffect)(()=>{let e=v.entries.map(e=>e.id),t=ev.current;if(t.length>0){let r=new Set(t),a=0;for(let t of e)r.has(t)||(a+=1);a>0&&(eg.current?eS(0):(eS(e=>e+a),eN(!0)))}ev.current=e},[v.entries,e.id]),(0,n.useEffect)(()=>{if(!eb.current)return;if(!eg.current){v.entries.length>0&&eN(!0);return}let e=window.requestAnimationFrame(()=>{let e=eb.current;e&&eg.current&&(e.scrollTo({top:e.scrollHeight}),eg.current=U(e),eN(!1),eS(0))});return()=>window.cancelAnimationFrame(e)},[v,v.entries.length]),(0,n.useEffect)(()=>{let e=eb.current,t=ef.current;if(!e||!t||"u"<typeof ResizeObserver)return;let r=new ResizeObserver(()=>{eg.current&&(e.scrollTo({top:e.scrollHeight}),eg.current=U(e))});return r.observe(t),()=>r.disconnect()},[w,N,e.id]);let e5=(0,n.useCallback)(e=>{let t=U(e.currentTarget);eg.current=t,eN(!t),t&&eS(0)},[]);(0,n.useEffect)(()=>{h&&D(e=>{let t=h.draftText.trim();if(!t)return e;let r=e.trim();return r?r.includes(t)?e:`${e.trimEnd()}
2
2
 
3
3
  ${t}`:t})},[h]);let e2=(0,n.useCallback)(async e=>{let r=e.trim();if(!r||ee)return!1;et(!0),X(null);try{let e=await fetch((0,M.S)(eU.send,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:r})}),a=await e.json().catch(()=>null);if(!e.ok)throw Error(H(z(a).error)??`Failed to send message (${e.status})`);return!0}catch(e){return X(e instanceof Error?e.message:"Failed to send message"),!1}finally{et(!1)}},[t,ee,eU.send]),e1=(0,n.useCallback)(async()=>{let e=C.trim();!e||await e2(e)&&D("")},[C,e2]),e3=(0,n.useCallback)(async e=>{await e2(e)},[e2]),e4=(0,n.useCallback)(async e=>{if(eo&&!ep&&e!==eo.agent){eh(!0),em(null);try{let r=await fetch((0,M.S)(eU.repositories,t),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...eo,agent:e})}),a=z(await r.json().catch(()=>null));if(!r.ok)throw Error(H(a.error)??`Failed to update coding agent (${r.status})`);let s=Z(a.repository);s?ed(s):ed(t=>t?{...t,agent:e}:t)}catch(e){em(e instanceof Error?e.message:"Failed to update coding agent")}finally{eh(!1)}}},[t,eo,ep,eU.repositories]),e8=(0,n.useCallback)(async()=>{if(eU.interrupt){et(!0),X(null);try{let e=await fetch((0,M.S)(eU.interrupt,t),{method:"POST"}),r=await e.json().catch(()=>null);if(!e.ok)throw Error(H(z(r).error)??`Failed to interrupt session (${e.status})`)}catch(e){X(e instanceof Error?e.message:"Failed to interrupt session")}finally{et(!1)}}},[t,eU.interrupt]);return(0,a.jsxs)("aside",{className:(0,T.cn)("flex h-full min-h-0 w-full min-w-0 shrink-0 flex-col overflow-hidden border-t border-[var(--vk-border)] bg-[var(--vk-bg-panel)] xl:w-[405px] xl:border-l xl:border-t-0",o),children:[(0,a.jsxs)("div",{className:"flex h-[33px] items-center gap-2 border-b border-[var(--vk-border)] px-3 text-[12px] text-[var(--vk-text-muted)]",children:[(0,a.jsx)("span",{className:"min-w-0 flex-1 truncate",children:eq}),(0,a.jsx)("span",{className:(0,T.cn)("inline-flex items-center rounded-[999px] px-2 py-0.5 text-[10px] uppercase tracking-wide",eC?"bg-[color:color-mix(in_srgb,var(--vk-green)_18%,transparent)] text-[var(--vk-green)]":"bg-[color:color-mix(in_srgb,var(--vk-text-muted)_12%,transparent)] text-[var(--vk-text-muted)]"),children:eC?"live":"paused"}),p,l?(0,a.jsx)("button",{type:"button",onClick:l,className:"hidden h-6 w-6 items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)] xl:inline-flex","aria-label":"Collapse dispatcher",title:"Collapse dispatcher",children:(0,a.jsx)(A.A,{className:"h-3.5 w-3.5"})}):null,c?null:(0,a.jsx)("button",{type:"button",onClick:()=>g.push((0,P.s)(e.id,{bridgeId:t,tab:null})),className:"inline-flex h-6 w-6 items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]","aria-label":"Open full session",children:(0,a.jsx)(_.A,{className:"h-3.5 w-3.5"})}),s?(0,a.jsx)("button",{type:"button",onClick:s,className:"inline-flex h-6 w-6 items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]","aria-label":"Close docked session",children:(0,a.jsx)(E.A,{className:"h-3.5 w-3.5"})}):null]}),(0,a.jsx)("div",{ref:eb,onScroll:e5,className:"min-h-0 min-w-0 flex-1 overflow-y-auto overflow-x-hidden px-3 py-4 sm:px-4",children:w?(0,a.jsxs)("div",{className:"flex h-full items-center justify-center text-[13px] text-[var(--vk-text-muted)]",children:[(0,a.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Loading dispatcher activity..."]}):N?(0,a.jsx)("div",{className:"rounded-[3px] border border-[color:color-mix(in_srgb,var(--vk-red)_45%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-red)_12%,transparent)] px-3 py-2 text-[13px] text-[var(--vk-red)]",children:N}):(0,a.jsxs)("div",{ref:ef,className:"space-y-5",children:[v.parserState||v.truncated?(0,a.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-2 text-[12px] text-[var(--vk-text-muted)]",children:[v.parserState?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-[999px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] px-2 py-0.5",children:[(0,a.jsx)(i.A,{className:"h-3 w-3"}),(0,a.jsx)("span",{children:v.parserState.kind})]}),v.parserState.command?(0,a.jsx)(V,{value:v.parserState.command,maxLength:72,className:"rounded-[6px] bg-[rgba(255,255,255,0.05)] px-2 py-0.5 font-mono text-[11px]"}):null]}):null,v.truncated?(0,a.jsxs)(a.Fragment,{children:[v.parserState?(0,a.jsx)("span",{className:"text-[var(--vk-text-dim)]",children:"•"}):null,(0,a.jsxs)("span",{children:["Showing latest ",v.windowLimit]})]}):null]}):null,0===v.entries.length?(0,a.jsx)("div",{className:"rounded-[12px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] px-4 py-4 text-[13px] text-[var(--vk-text-muted)]",children:"No dispatcher activity yet."}):v.entries.map(t=>(0,a.jsx)(er,{entry:t,session:e},t.id))]})}),(0,a.jsxs)("div",{className:"border-t border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-3 pb-[calc(1rem+env(safe-area-inset-bottom))] pt-4 sm:px-4 sm:pb-4",children:[eY?(0,a.jsxs)("div",{className:"mb-3 flex min-w-0 flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[x?null:(0,a.jsx)(ea,{project:eo,disabled:ec,saving:ep,onChange:e=>void e4(e)}),u?null:(0,a.jsxs)("div",{className:(0,T.cn)("inline-flex w-fit max-w-full items-center gap-2 rounded-[999px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] px-3 py-1 text-[11px] text-[var(--vk-text-muted)]",x?null:"sm:ml-auto"),children:[(0,a.jsx)(R.N,{seed:{label:ez},className:"h-4 w-4 border-none bg-transparent"}),(0,a.jsx)("span",{children:ez}),(0,a.jsx)("span",{className:"text-[var(--vk-text-dim)]",children:"•"}),(0,a.jsx)("span",{children:eH})]}),eV?(0,a.jsxs)(I.$,{type:"button",variant:"outline",size:"sm",disabled:ee,onClick:()=>void e8(),className:"h-[31px] rounded-[6px] border-[rgba(255,255,255,0.14)] bg-[rgba(255,255,255,0.03)] px-3 text-[13px] text-[#f3ead8] hover:bg-[rgba(255,255,255,0.08)]",children:[ee?(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(E.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:"Stop"})]}):null]}):null,ek?(0,a.jsx)("div",{className:"mb-2 flex justify-end",children:(0,a.jsxs)(I.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{let e=eb.current;e&&(e.scrollTo({top:e.scrollHeight,behavior:"smooth"}),eg.current=!0,eN(!1),eS(0))},className:"h-[30px] rounded-[999px] border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 text-[12px]",children:["Jump to latest",ey>0?` \xb7 ${ey} new`:""]})}):null,eu?(0,a.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-[11px] text-[var(--vk-red)]",children:[(0,a.jsx)(S.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,a.jsx)("span",{children:eu})]}):null,Q?(0,a.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-[11px] text-[var(--vk-red)]",children:[(0,a.jsx)(S.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,a.jsx)("span",{children:Q})]}):null,eK?(0,a.jsxs)("div",{className:"mb-3 rounded-[12px] border border-[rgba(204,163,92,0.35)] bg-[rgba(64,49,27,0.58)] px-3 py-3 text-[12px] text-[#f1e3bf]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[13px] font-medium text-[#f6ead0]",children:[(0,a.jsx)(S.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{children:"Plan-only review ready"})]}),(0,a.jsx)("p",{className:"mt-2 leading-5 text-[#dccba1]",children:"The dispatcher is paused before mutating the board for this turn. Review the proposal above, then approve it or request changes."}),(0,a.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,a.jsxs)(I.$,{type:"button",size:"sm",disabled:!eQ||ee,onClick:()=>void e3("approve"),className:"h-[31px] rounded-[6px] border-[rgba(255,255,255,0.08)] bg-[#e6c786] px-3 text-[13px] text-[#22170d] hover:bg-[#edd39d]",children:[ee?(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(d.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:"Approve plan"})]}),(0,a.jsxs)(I.$,{type:"button",variant:"outline",size:"sm",disabled:!eQ||ee,onClick:()=>void e3("reject"),className:"h-[31px] rounded-[6px] border-[rgba(255,255,255,0.14)] bg-[rgba(255,255,255,0.03)] px-3 text-[13px] text-[#f3ead8] hover:bg-[rgba(255,255,255,0.08)]",children:[(0,a.jsx)(E.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:"Request changes"})]})]})]}):null,(0,a.jsxs)("form",{onSubmit:e=>{e.preventDefault(),e1()},className:"rounded-[3px] border border-[var(--vk-border)] bg-[#1f1f1f] px-2.5 py-2.5 sm:px-3 sm:py-3",style:{paddingBottom:"calc(0.625rem + env(safe-area-inset-bottom))"},children:[b?(0,a.jsx)("div",{className:"mb-2.5 sm:mb-3",children:b}):null,(0,a.jsx)("textarea",{value:C,onChange:e=>D(e.target.value),placeholder:"Ask the dispatcher to shape work, create tasks, or update the board...",disabled:!eQ||ee,rows:2,className:"w-full resize-none bg-transparent text-[15px] leading-5 text-[var(--vk-text-normal)] outline-none placeholder:text-[var(--vk-text-muted)] disabled:opacity-60 sm:text-[16px] sm:leading-6"}),(0,a.jsx)("div",{className:"mt-2.5 flex items-center justify-end sm:mt-3",children:eZ?(0,a.jsxs)(I.$,{type:"button",variant:"outline",size:"sm",disabled:ee,onClick:()=>void e8(),className:"h-[29px] rounded-[3px] border-[var(--vk-border)] bg-[#292929] px-3 text-[14px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:[ee?(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(E.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:"Stop"})]}):(0,a.jsx)(I.$,{type:"submit",variant:"outline",size:"sm",disabled:!eQ||ee||0===C.trim().length,className:"h-[29px] rounded-[3px] border-[var(--vk-border)] bg-[#292929] px-3 text-[14px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:ee?(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{children:"Send"}),(0,a.jsx)($.A,{className:"h-3.5 w-3.5"})]})})})]})]})]})}var eo=r(88272);function ed(e,t,r=""){let a=e.metadata?.[t];return"string"==typeof a&&a.trim().length>0?a:r}function ec(e){let t=(e.summary?.trim()||e.metadata.summary?.trim()||"").replace(/\s+/g," ").trim();return t||("needs_input"===e.status?"Waiting for follow-up":"working"===e.status?"Working":`Thread ${e.id.slice(0,8)}`)}function ex({thread:e,deleting:t,error:r,onCancel:s,onConfirm:n}){if("u"<typeof document)return null;let o=ec(e);return(0,l.createPortal)((0,a.jsx)("div",{className:"fixed inset-0 z-[80] flex items-center justify-center bg-black/60 px-4",onClick:()=>{t||s()},children:(0,a.jsxs)("div",{className:"surface-card w-full max-w-md rounded-[var(--radius-lg)] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] shadow-[0_28px_90px_rgba(0,0,0,0.55)]",onClick:e=>e.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"delete-dispatcher-thread-title",children:[(0,a.jsxs)("div",{className:"border-b border-[var(--vk-border)] px-4 py-3",children:[(0,a.jsx)("h2",{id:"delete-dispatcher-thread-title",className:"text-[17px] font-medium text-[var(--vk-text-strong)]",children:"Delete Dispatcher Thread"}),(0,a.jsxs)("p",{className:"mt-1 text-[12px] text-[var(--vk-text-muted)]",children:["Delete thread ",(0,a.jsx)("span",{className:"font-medium text-[var(--vk-text-normal)]",children:e.id.slice(0,8)})," from this project."]})]}),(0,a.jsxs)("div",{className:"space-y-3 px-4 py-4",children:[(0,a.jsx)("p",{className:"text-[13px] leading-5 text-[var(--vk-text-normal)]",children:"This removes the dispatcher conversation and its saved thread state. Repository files on disk are not changed."}),(0,a.jsxs)("div",{className:"rounded-[var(--radius-md)] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] px-3 py-2",children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Thread summary"}),(0,a.jsx)("p",{className:"mt-1 line-clamp-4 text-[13px] leading-5 text-[var(--vk-text-normal)]",children:o})]}),r?(0,a.jsx)("div",{className:"rounded-[var(--radius-md)] border border-[var(--vk-red)]/35 bg-[color:color-mix(in_srgb,var(--vk-red)_12%,transparent)] px-3 py-2 text-[12px] text-[var(--vk-red)]",children:r}):null]}),(0,a.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--vk-border)] px-4 py-3",children:[(0,a.jsx)(I.$,{type:"button",variant:"ghost",onClick:s,disabled:t,children:"Cancel"}),(0,a.jsxs)(I.$,{type:"button",variant:"danger",onClick:()=>void n(),disabled:t,children:[t?(0,a.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}):null,"Delete Thread"]})]})]})}),document.body)}function eu({thread:e,threads:t=[],projectId:r,bridgeId:l,active:m=!0,modelAccess:p={},runtimeModelCatalogs:h={},onSelectThread:b,onDeleteThread:f,deletingThreadId:g=null,onStartNewConversation:v,creatingConversation:j=!1,onToggleCollapse:w,className:k}){let N=(0,n.useMemo)(()=>ed(e,"acpImplementationAgent","codex"),[e]),y=(0,n.useMemo)(()=>ed(e,"acpImplementationModel"),[e]),S=(0,n.useMemo)(()=>ed(e,"acpImplementationReasoningEffort"),[e]),[C,A]=(0,n.useState)(N),[_,E]=(0,n.useState)(!1),[$,R]=(0,n.useState)(null),[I,L]=(0,n.useState)(null),[T,P]=(0,n.useState)(()=>(0,eo.c0)(N,p,h,y||null,S||null)),[F,D]=(0,n.useState)(!1),O=Object.keys(h).length>0;(0,n.useEffect)(()=>{A(N),P((0,eo.c0)(N,p,h,y||null,S||null))},[p,N,y,S,h]);let U=(0,n.useMemo)(()=>t.find(e=>e.id===$)??null,[$,t]);(0,n.useEffect)(()=>{$&&!U&&(R(null),L(null))},[U,$]);let q=(0,n.useMemo)(()=>`threadId=${encodeURIComponent(e.id)}`,[e.id]),z=t.length>0&&(t.length>1||!!f),H=(0,n.useCallback)(async(e,t)=>{D(!0);try{let a={dispatcherAgent:e,dispatcherModel:(0,eo.xb)(t)??"",dispatcherReasoningEffort:(0,eo.aB)(t)??"",implementationAgent:e,implementationModel:(0,eo.xb)(t)??"",implementationReasoningEffort:(0,eo.aB)(t)??""},s=await fetch((0,M.S)(`/api/projects/${r}/dispatcher/preferences?${q}`,l),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!s.ok){let e=await s.json().catch(()=>null);throw Error(e?.error??"Failed to update dispatcher preferences")}}finally{D(!1)}},[l,r,q]),W=(0,n.useCallback)(e=>{let t=(0,eo.c0)(e,p,h,null,null);A(e),P(t),H(e,t)},[p,H,h]),B=(0,n.useCallback)(e=>{P(e),H(C,e)},[C,H]),J=(0,n.useCallback)(async()=>{if(U&&f){L(null);try{await f(U.id),R(null)}catch(e){L(e instanceof Error?e.message:"Failed to delete dispatcher thread")}}},[U,f]),K=(0,a.jsxs)(a.Fragment,{children:[z?(0,a.jsxs)(s.bL,{open:_,onOpenChange:E,children:[(0,a.jsx)(s.l9,{asChild:!0,children:(0,a.jsx)("button",{type:"button",className:"inline-flex h-7 w-7 items-center justify-center rounded-[6px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)] sm:h-6 sm:w-6 sm:rounded-[3px]","aria-label":"Open dispatcher threads",title:"Open dispatcher threads",children:(0,a.jsx)(o.A,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(s.ZL,{children:(0,a.jsxs)(s.UC,{align:"end",collisionPadding:8,sideOffset:8,className:"z-50 w-[calc(100vw-1rem)] max-w-[26rem] overflow-hidden rounded-[12px] border border-[rgba(255,255,255,0.08)] bg-[#1c1a19] p-2 shadow-[0_18px_50px_rgba(0,0,0,0.45)]",children:[(0,a.jsx)("div",{className:"px-3 pb-2 pt-1 text-[11px] font-semibold uppercase tracking-[0.08em] text-[rgba(255,255,255,0.58)]",children:"Threads"}),(0,a.jsx)("div",{className:"max-h-[70vh] space-y-1 overflow-y-auto pr-1",children:t.map(t=>{let r=t.id===e.id,n=g===t.id,l=ec(t);return(0,a.jsxs)("div",{className:"flex items-stretch gap-2",children:[(0,a.jsx)(s.q7,{asChild:!0,children:(0,a.jsxs)("button",{type:"button",onClick:()=>{b?.(t.id),E(!1)},disabled:n,className:"flex min-h-[64px] min-w-0 flex-1 items-start gap-3 rounded-[10px] px-3 py-3 text-left text-[13px] text-[#f3efea] outline-none transition hover:bg-[rgba(255,255,255,0.06)] focus:bg-[rgba(255,255,255,0.06)] disabled:cursor-not-allowed disabled:opacity-60",children:[(0,a.jsx)("span",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-[rgba(255,255,255,0.08)] bg-[rgba(255,255,255,0.04)] text-[rgba(255,255,255,0.72)]",children:r?(0,a.jsx)(d.A,{className:"h-3 w-3"}):(0,a.jsx)(o.A,{className:"h-3 w-3"})}),(0,a.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,a.jsx)("span",{className:"block line-clamp-2 break-words text-[13px] font-medium leading-5",children:l}),(0,a.jsxs)("span",{className:"mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[11px] text-[rgba(255,255,255,0.58)]",children:[(0,a.jsx)("span",{children:function(e){let t=new Date(e).getTime();if(!Number.isFinite(t))return"Recently";let r=Math.max(0,Math.round((Date.now()-t)/1e3));return r<60?"Just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}(t.lastActivityAt)}),(0,a.jsx)("span",{className:"truncate",children:t.id.slice(0,8)})]})]})]})}),f?(0,a.jsx)("button",{type:"button",onClick:()=>{E(!1),L(null),R(t.id)},disabled:!!g,className:"inline-flex w-11 shrink-0 items-center justify-center rounded-[10px] border border-[rgba(255,255,255,0.08)] bg-[rgba(255,255,255,0.03)] text-[rgba(255,255,255,0.68)] transition hover:border-[rgba(210,81,81,0.4)] hover:bg-[rgba(210,81,81,0.12)] hover:text-[#f08b8b] disabled:cursor-not-allowed disabled:opacity-50","aria-label":`Delete dispatcher thread ${t.id.slice(0,8)}`,title:"Delete thread",children:n?(0,a.jsx)(i.A,{className:"h-4 w-4 animate-spin"}):(0,a.jsx)(c.A,{className:"h-4 w-4"})}):null]},t.id)})})]})})]}):null,v?(0,a.jsx)("button",{type:"button",onClick:v,disabled:j,className:"inline-flex h-7 w-7 items-center justify-center rounded-[6px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)] disabled:cursor-not-allowed disabled:opacity-60 sm:h-6 sm:w-6 sm:rounded-[3px]","aria-label":"Start new dispatcher thread",title:"Start new dispatcher thread",children:j?(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(x.A,{className:"h-3.5 w-3.5"})}):null]}),G=O?(0,a.jsx)(u.s,{implementationAgent:C,modelSelection:T,modelAccess:p,runtimeModelCatalogs:h,disabled:F,onImplementationAgentChange:W,onModelSelectionChange:B}):null;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ei,{session:e,bridgeId:l,active:m,onToggleCollapse:w,className:k,hideOpenSessionAction:!0,hideRepositoryControls:!0,hideSessionStatusBadge:!0,headerActions:K,composerToolbar:G,apiPaths:{feed:`/api/projects/${encodeURIComponent(r)}/dispatcher/feed?limit=120&${q}`,stream:`/api/projects/${encodeURIComponent(r)}/dispatcher/feed/stream?limit=120&${q}`,send:`/api/projects/${encodeURIComponent(r)}/dispatcher/send?${q}`,interrupt:`/api/projects/${encodeURIComponent(r)}/dispatcher/interrupt?${q}`,integration:`/api/projects/${encodeURIComponent(r)}/dispatcher/integration?${q}`}}),U?(0,a.jsx)(ex,{thread:U,deleting:g===U.id,error:I,onCancel:()=>{g||(R(null),L(null))},onConfirm:J}):null]})}},64323:(e,t,r)=>{r.d(t,{M:()=>s});var a=r(5739);function s(e,t){let r=t.trim(),s=(0,a.q)(e);if(!r)return r;if("claude-code"===s){let e=r.toLowerCase();if("opus"===e)return"Claude Opus";if("sonnet"===e)return"Claude Sonnet";if("haiku"===e)return"Claude Haiku";let t=e.match(/^claude-(sonnet|opus|haiku)-(\d+)-(\d+)(?:-\d{8})?$/);if(t){let e=t[1];return`Claude ${e[0]?.toUpperCase()+e.slice(1)} ${t[2]}.${t[3]}`}}return r.split(/[-_]+/g).filter(Boolean).map(e=>"gpt"===e.toLowerCase()?"GPT":/^\d+(?:\.\d+)?$/.test(e)?e:e[0]?.toUpperCase()+e.slice(1)).join("-")}r(76196)}}]);
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9703],{10926:(e,t,r)=>{r.d(t,{Bp:()=>i,C0:()=>a,DW:()=>s,kV:()=>d});let n="bridge:";function a(e){let t=e?.trim();return t&&t.length>0?t:null}function i(e,t){return`${n}${e}:${t}`}function s(e){let t=e?.trim();if(!t||!t.startsWith(n))return null;let r=t.slice(n.length),i=r.indexOf(":");if(i<=0||i>=r.length-1)return null;let s=a(r.slice(0,i)),d=r.slice(i+1).trim();return s&&0!==d.length?{bridgeId:s,sessionId:d}:null}function d(e){let t=e?.trim()??"";return t?s(t)?.sessionId??t:""}},11984:(e,t,r)=>{function n(e){let t=e?.trim().toLowerCase()??"";return!!t&&(t.includes("127.0.0.1:4749")||t.includes("older bridge build")||t.includes("one-time local bridge upgrade"))}function a(e){return`This laptop needs a one-time local bridge upgrade before ${function(e){switch(e){case"repair":return"Repair bridge";case"restart":return"Restart service";case"update":return"Update Conductor"}}(e)} can run from the dashboard.`}function i(e){let t=e?.trim()||"This laptop";return`${t} is still on an older bridge build, so Conductor cannot repair, restart, or update it remotely yet. Upgrade the bridge once on that laptop, then future fixes run from the dashboard.`}r.d(t,{Az:()=>n,IG:()=>a,_5:()=>i})},15115:(e,t,r)=>{function n(e,t){return"string"==typeof e&&e.trim().length>0?e.trim():t}function a(e){let t="string"==typeof e?e.trim():"";return t?` (build ${t})`:""}function i(e){return Array.isArray(e)?e.filter(e=>!!e&&"object"==typeof e).map(e=>{let t,r,a;return t=n(e.hostname,"unknown-host"),r=n(e.os,"unknown-os"),a=n(e.arch,"unknown-arch"),{device_id:n(e.device_id,t),device_name:n(e.device_name,t),hostname:t,os:r,arch:a,connected:!0===e.connected,last_status:e.last_status?{hostname:n(e.last_status.hostname,t),os:n(e.last_status.os,r),connected:!0===e.last_status.connected,version:"string"==typeof e.last_status.version&&e.last_status.version.trim().length>0?e.last_status.version.trim():null}:null}}):[]}r.d(t,{oH:()=>i,wj:()=>a})},15321:(e,t,r)=>{r.d(t,{i:()=>m});var n=r(54568),a=r(7620),i=r(65587),s=r.n(i),d=r(63322),o=r(59706),l=r(87242),c=r(76081),u=r(46916),v=r(11984),p=r(61369);function m({deviceId:e,deviceName:t,deviceOs:r,dashboardUrl:i,installScriptUrl:g,installPowerShellUrl:h,relayUrl:x,className:f}){let[b,w]=(0,a.useState)(!1),k=(0,a.useMemo)(()=>(0,p.Y8)(r),[r]),y="windows"===k?h:g,_=(0,a.useMemo)(()=>(0,p.$y)(y,i,x,k),[i,x,y,k]),j=(0,a.useMemo)(()=>(0,p.kw)(e),[e]);return(0,n.jsxs)("div",{className:(0,u.cn)("mt-3 rounded-[14px] border border-[color:color-mix(in_srgb,var(--vk-orange)_28%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-orange)_10%,transparent)] px-3 py-3",f),children:[(0,n.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--vk-text-muted)]",children:"One-time local repair"}),(0,n.jsx)("div",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-text-normal)]",children:(0,v._5)(t)}),(0,n.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,n.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{navigator.clipboard?.writeText?(w(!1),navigator.clipboard.writeText(_).then(()=>{w(!0)}).catch(()=>{w(!1)})):w(!1)},children:[b?(0,n.jsx)(d.A,{className:"h-4 w-4"}):(0,n.jsx)(o.A,{className:"h-4 w-4"}),b?"Repair command copied":"Copy repair command"]}),(0,n.jsx)(c.$,{asChild:!0,variant:"outline",size:"sm",children:(0,n.jsxs)(s(),{href:j,children:[(0,n.jsx)(l.A,{className:"h-4 w-4"}),"Open repair steps"]})})]})]})}},26167:(e,t,r)=>{r.d(t,{E:()=>i,b:()=>a});var n=r(11984);async function a(e){let t=await s(e,"service-restart",{});return t?.message??"Bridge service restart scheduled. This laptop should reconnect once the bridge is back online."}async function i(e,t){let r=await s(e,"repair",{installScriptUrl:t});return r?.message??"Bridge reinstall requested. This laptop should reconnect shortly."}async function s(e,t,r){let a=await fetch(`/api/bridge/devices/${encodeURIComponent(e)}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r),cache:"no-store"}),i=await a.json().catch(()=>null);if(!a.ok){var s,d;let e;throw Error((s=i?.error??i?.message??null,d=a.status,e=s?.trim()??"",(0,n.Az)(e)?(0,n.IG)("repair"===t?"repair":"restart"):e||`Failed to run ${t} on the bridge service (${d})`))}return i}},31404:(e,t,r)=>{r.d(t,{S:()=>a,y:()=>i});var n=r(10926);function a(e,t){let r=(0,n.C0)(t);if(!r)return e;let a=new URL(e,"http://127.0.0.1");return a.searchParams.set("bridgeId",r),`${a.pathname}${a.search}${a.hash}`}function i(e){let t=function(e){if(!e)return null;if(e instanceof URL)return e;if("string"==typeof e)try{return new URL(e,"http://127.0.0.1")}catch{return null}if("string"==typeof e.href)try{return new URL(e.href)}catch{}return null}(e);if(!t)return null;let r=(0,n.C0)(t.searchParams.get("bridge")??t.searchParams.get("bridgeId"));if(r)return r;let a=(0,n.DW)(t.searchParams.get("session"))?.bridgeId;if(a)return a;let i=t.pathname.match(/^\/sessions\/([^/]+)$/);if(!i)return null;try{return(0,n.DW)(decodeURIComponent(i[1]))?.bridgeId??null}catch{return null}}},39702:(e,t,r)=>{r.d(t,{J:()=>I});var n=r(54568),a=r(7620),i=r(40448),s=r(65587),d=r.n(s),o=r(79748),l=r(22061),c=r(34041),u=r(58299),v=r(87242),p=r(2099),m=r(60527),g=r(81167),h=r(15321),x=r(44522),f=r(11984),b=r(46916),w=r(26167),k=r(83770),y=r(61369),_=r(15115),j=r(67506);let N="/bridge/connect";function $({connected:e,className:t,title:r,suffix:a}){return(0,n.jsxs)("span",{className:(0,b.cn)("inline-flex items-center gap-2 rounded-full border px-2.5 py-1 text-[12px] font-medium",e?"border-[rgba(24,197,143,0.35)] bg-[rgba(24,197,143,0.12)] text-[var(--vk-green)]":"border-[rgba(255,143,122,0.24)] bg-[rgba(255,143,122,0.08)] text-[var(--vk-red)]",t),title:r,children:[(0,n.jsx)("span",{className:(0,b.cn)("h-2.5 w-2.5 rounded-full",e?"bg-[var(--vk-green)]":"bg-[var(--vk-red)]")}),(0,n.jsx)("span",{children:e?"Online":"Offline"}),a]})}function C({className:e}){let t=(0,o.useRouter)(),r=(0,o.usePathname)(),s=(0,o.useSearchParams)(),[I,R]=(0,a.useState)([]),[S,A]=(0,a.useState)(!0),[U,E]=(0,a.useState)(null),[T,L]=(0,a.useState)(null),[M,O]=(0,a.useState)({deviceId:null,phase:"idle",message:null}),[P,D]=(0,a.useState)({deviceId:null,kind:null,status:"idle",message:null}),[F,z]=(0,a.useState)(null),B=(0,a.useRef)(new Set),q=(0,j.y)(),W=!!q&&null===F,V=(0,a.useCallback)(async e=>{if(!W){e&&A(!1),R([]),E(null);return}e&&A(!0);try{let e=await fetch("/api/bridge/devices",{cache:"no-store"}),t=await e.json().catch(()=>null);if(!e.ok){if((0,k.Xt)(t?.error)){z(t?.error??null),R([]),E(null);return}throw Error(t?.error??`Failed to load bridge devices (${e.status})`)}R((0,_.oH)(t?.devices)),z(null),E(null)}catch(e){E(e instanceof Error?e.message:"Failed to load bridge devices.")}finally{A(!1)}},[W]);(0,a.useEffect)(()=>{if(!W){A(!1),R([]),E(null);return}let e=!1,t=null,r=async t=>{e||await V(t)};return r(!0),t=window.setInterval(()=>{r(!1)},15e3),()=>{e=!0,null!==t&&window.clearInterval(t)}},[W,V]),(0,a.useEffect)(()=>{let e=()=>{L((0,x.Tr)()?.deviceId??null)};return e(),window.addEventListener("focus",e),window.addEventListener("storage",e),()=>{window.removeEventListener("focus",e),window.removeEventListener("storage",e)}},[]),(0,a.useEffect)(()=>{r!==N&&t.prefetch(N)},[r,t]);let G=I.filter(e=>e.connected),J=s.get("bridge")?.trim()||null,Y=window.location.origin,H=J?I.find(e=>e.device_id===J)??null:null,X=!S&&0===G.length,Z=T?I.find(e=>e.device_id===T)??null:null,Q=X?H?.device_id?(0,y.kw)(H.device_id):Z?.device_id?(0,y.kw)(Z.device_id):I[0]?.device_id?(0,y.kw)(I[0].device_id):N:N,K=G.length>0,ee=W?U??(K?`${G.length} bridge${1===G.length?"":"s"} online`:I.length>0?"No paired bridges are online":"No paired bridges yet"):F??"Bridge relay URL is not configured";(0,a.useEffect)(()=>{let e=(Z?.connected?Z:null)??(H?.connected?H:null);!e||B.current.has(e.device_id)||(B.current.add(e.device_id),(0,x.jV)(e,O))},[Z,H]),(0,a.useEffect)(()=>{!Z||Z.connected||M.message||O({deviceId:Z.device_id,phase:"checking",message:`Waiting for ${Z.device_name} to reconnect so Conductor can finish its package update.`})},[M.message,Z]);let et=(0,a.useCallback)(async e=>{D({deviceId:e.device_id,kind:"restart",status:"running",message:`Restarting the bridge service on ${e.device_name}.`});try{let t=await (0,w.b)(e.device_id);D({deviceId:e.device_id,kind:"restart",status:"completed",message:`${t} Waiting for ${e.device_name} to reconnect.`}),[2e3,5e3,1e4,2e4,35e3].forEach(e=>{window.setTimeout(()=>{V(!1)},e)})}catch(t){D({deviceId:e.device_id,kind:"restart",status:"failed",message:t instanceof Error?t.message:`Failed to restart ${e.device_name}.`})}},[V]),er=(0,a.useCallback)(async e=>{D({deviceId:e.device_id,kind:"repair",status:"running",message:`Reinstalling the bridge service on ${e.device_name}.`});try{let t=(0,y.pj)(window.location.origin,(0,y.Y8)(e.os)),r=await (0,w.E)(e.device_id,t);D({deviceId:e.device_id,kind:"repair",status:"completed",message:r}),window.setTimeout(()=>{V(!1)},2e3)}catch(t){D({deviceId:e.device_id,kind:"repair",status:"failed",message:t instanceof Error?t.message:`Failed to repair ${e.device_name}.`})}},[V]),en=(0,a.useCallback)(async e=>{await (0,x.jV)(e,O),window.setTimeout(()=>{V(!1)},2e3)},[V]);return X?(0,n.jsx)(d(),{href:Q,prefetch:!0,className:"inline-flex",title:I.length>0?"Reconnect paired device":"Pair a device",children:(0,n.jsx)($,{connected:!1,className:e,title:I.length>0?"Reconnect paired device":"Pair a device",suffix:(0,n.jsx)(l.A,{className:"h-3.5 w-3.5"})})}):(0,n.jsxs)(i.bL,{children:[(0,n.jsx)(i.l9,{asChild:!0,children:(0,n.jsx)("button",{type:"button",className:"outline-none",children:(0,n.jsx)($,{connected:K,className:e,title:ee,suffix:(0,n.jsx)(c.A,{className:"h-3.5 w-3.5 text-current/70"})})})}),(0,n.jsx)(i.ZL,{children:(0,n.jsxs)(i.UC,{align:"end",sideOffset:8,className:"z-[90] w-[320px] rounded-[18px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-2 text-[var(--vk-text-normal)] shadow-[0_22px_48px_rgba(0,0,0,0.34)]",children:[(0,n.jsxs)("div",{className:"rounded-[14px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-3",children:[(0,n.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-[var(--vk-text-muted)]",children:"Conductor Bridge"}),(0,n.jsx)("div",{className:"mt-2 text-[13px] text-[var(--vk-text-normal)]",children:K?`${G.length} device${1===G.length?"":"s"} online`:S?"Loading device status":"No live bridge connection"}),(0,n.jsx)("div",{className:"mt-2 text-[11px] leading-5 text-[var(--vk-text-faint)]",children:"If a laptop is online but misbehaving, repair the bridge, update Conductor, or restart the service here."}),U?(0,n.jsx)("div",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-red)]",children:U}):null,M.message?(0,n.jsxs)("div",{className:(0,b.cn)("mt-2 flex flex-wrap items-center gap-2 text-[12px] leading-5","failed"===M.phase?"text-[var(--vk-red)]":"skipped"===M.phase?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-faint)]"),children:[(0,n.jsx)("span",{className:"inline-flex items-center rounded-full border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--vk-text-muted)]",children:(0,x.qv)(M.phase)}),(0,n.jsx)("span",{children:M.message})]}):null]}),(0,n.jsx)("div",{className:"mt-2 max-h-[280px] overflow-y-auto",children:I.length>0?I.map(e=>{let t=(0,x.xv)(M,e.device_id),r="running"===P.status&&P.deviceId===e.device_id,a=r&&"repair"===P.kind,i=r&&"restart"===P.kind,s=P.deviceId===e.device_id&&(0,f.Az)(P.message)||M.deviceId===e.device_id&&(0,f.Az)(M.message);return(0,n.jsx)("div",{className:"rounded-[14px] px-3 py-2.5 transition-colors hover:bg-[var(--vk-bg-hover)]",children:(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"truncate text-[13px] font-medium text-[var(--vk-text-strong)]",children:e.device_name}),(0,n.jsxs)("div",{className:"mt-1 text-[12px] text-[var(--vk-text-muted)]",children:[e.hostname," \xb7 ",e.os,"/",e.arch,(0,_.wj)(e.last_status?.version)]}),(0,n.jsxs)("div",{className:"mt-1 text-[11px] text-[var(--vk-text-muted)]",children:["Relay: ",e.last_status?.hostname??e.hostname,(0,_.wj)(e.last_status?.version)]}),M.message&&M.deviceId===e.device_id?(0,n.jsxs)("div",{className:(0,b.cn)("mt-1 flex flex-wrap items-center gap-2 text-[11px] leading-5","failed"===M.phase?"text-[var(--vk-red)]":"skipped"===M.phase?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-faint)]"),children:[(0,n.jsx)("span",{className:"inline-flex items-center rounded-full border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--vk-text-muted)]",children:(0,x.qv)(M.phase)}),(0,n.jsx)("span",{children:M.message})]}):null,P.message&&P.deviceId===e.device_id?(0,n.jsx)("div",{className:(0,b.cn)("mt-1 text-[11px] leading-5","failed"===P.status?"text-[var(--vk-red)]":"completed"===P.status?"text-[var(--vk-green)]":"text-[var(--vk-text-faint)]"),children:P.message}):null,s&&Y?(0,n.jsx)(h.i,{deviceId:e.device_id,deviceName:e.device_name,deviceOs:e.os,dashboardUrl:Y,installScriptUrl:(0,y.pj)(Y),installPowerShellUrl:(0,y.pj)(Y,"windows"),relayUrl:q}):null,e.connected?(0,n.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,n.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:r||t,onClick:()=>{er(e)},children:[a?(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(v.A,{className:"h-3.5 w-3.5"}),"Repair bridge"]}),(0,n.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:t||r,onClick:()=>{en(e)},children:[t?(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(p.A,{className:"h-3.5 w-3.5"}),t?"Updating...":"Update Conductor"]}),(0,n.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:r||t,onClick:()=>{et(e)},children:[i?(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(m.A,{className:"h-3.5 w-3.5"}),"Restart service"]})]}):null]}),(0,n.jsx)($,{connected:!0===e.connected})]})},e.device_id)}):(0,n.jsx)("div",{className:"rounded-[14px] border border-dashed border-[var(--vk-border)] px-3 py-4 text-[12px] text-[var(--vk-text-muted)]",children:S?"Loading paired devices...":"Pair a laptop to see bridge status here."})}),(0,n.jsx)(i.wv,{className:"my-2 h-px bg-[var(--vk-border)]"}),(0,n.jsx)(i.q7,{asChild:!0,children:(0,n.jsxs)(d(),{href:N,prefetch:!0,className:"flex items-center justify-between rounded-[12px] px-3 py-2 text-[13px] font-medium text-[var(--vk-text-normal)] outline-none transition-colors hover:bg-[var(--vk-bg-hover)] focus:bg-[var(--vk-bg-hover)]",children:[(0,n.jsx)("span",{children:"Open paired devices"}),(0,n.jsx)(g.A,{className:"h-4 w-4 text-[var(--vk-text-muted)]"})]})})]})})]})}function I({connected:e,className:t,title:r}={}){return"boolean"==typeof e?(0,n.jsx)($,{connected:e,className:t,title:r}):(0,n.jsx)(C,{className:t})}},44522:(e,t,r)=>{r.d(t,{N8:()=>c,Tr:()=>p,jV:()=>m,m7:()=>v,qv:()=>s,xv:()=>d});var n=r(31404),a=r(11984);let i="conductor-bridge-recent-pairing";function s(e){switch(e){case"checking":return"Checking";case"updating":return"Updating";case"restarting":return"Restarting";case"completed":return"Completed";case"skipped":return"Skipped";case"failed":return"Failed";default:return"Idle"}}function d(e,t){return e.deviceId===t&&("checking"===e.phase||"updating"===e.phase||"restarting"===e.phase)}function o(e,t){return t.jobMessage??`Installing Conductor ${t.latestVersion??"latest"} on ${e.device_name}.`}function l(e){let t=e.currentVersion?.trim();return t?` (build ${t})`:""}function c(e){if(!e.enabled)switch(e.reason){case"source-checkout":return"This laptop is running from a source checkout, so there is no published package to auto-update.";case"missing-cli-metadata":return"This install could not determine its update metadata, so automatic package updates are unavailable.";default:return"Automatic package updates are unavailable for this laptop."}return e.updateAvailable?e.canAutoUpdate?`This laptop is already running the latest Conductor release${l(e)}.`:"npx"===e.installMode?"This laptop was launched via npx, so the next launch will pick up the latest package automatically.":e.updateCommand?`A newer Conductor release is available, but this install still needs a manual update: ${e.updateCommand}`:"A newer Conductor release is available, but this install cannot update itself automatically.":`This laptop is already running the latest Conductor release${l(e)}.`}async function u(e,t){var r,i;let s=t?.method??"GET",d=`/api/bridge/devices/${encodeURIComponent(e)}/app-update`,o=new URL((0,n.S)(d,e),window.location.origin);t?.force&&o.searchParams.set("force","1");let l=await fetch(o.toString(),{method:s,headers:t?.body?{"Content-Type":"application/json"}:void 0,body:t?.body?JSON.stringify(t.body):void 0,cache:"no-store"}),c=await l.json().catch(()=>null);if(!l.ok){let e;throw Error((r=c&&"object"==typeof c&&"error"in c&&"string"==typeof c.error?c.error:null,i=l.status,e=r?.trim()??"",(0,a.Az)(e)?(0,a.IG)("update"):e||`Failed to update Conductor on this laptop (${i})`))}let u=c&&"object"==typeof c?c:null;if(!u)throw Error("Paired device returned an invalid update payload.");return u}function v(e){let t={deviceId:e.deviceId,deviceName:e.deviceName??null,pairedAt:new Date().toISOString()};try{window.localStorage.setItem(i,JSON.stringify(t))}catch{}}function p(){try{let e=window.localStorage.getItem(i);if(!e)return null;let t=JSON.parse(e);if(!(t&&"object"==typeof t&&"string"==typeof t.deviceId&&"string"==typeof t.pairedAt&&(null===t.deviceName||"string"==typeof t.deviceName)))return window.localStorage.removeItem(i),null;let r=Date.parse(t.pairedAt);if(!Number.isFinite(r)||Date.now()-r>18e5)return window.localStorage.removeItem(i),null;return t}catch{return null}}async function m(e,t){let r=(r,n)=>{t({deviceId:e.device_id,phase:r,message:n})};r("checking",`Checking for Conductor updates on ${e.device_name}.`);try{let t=await u(e.device_id,{force:!0});if(t.restarting)return void r("restarting",t.jobMessage??`Restart scheduled on ${e.device_name}. This page will reconnect once the bridge runtime is back online.`);if("running"===t.jobStatus)r("updating",o(e,t));else{if(!t.updateAvailable||!t.enabled||!t.canAutoUpdate)return void r(t.enabled&&t.canAutoUpdate?"completed":"skipped",c(t));t=await u(e.device_id,{method:"POST"}),r("updating",o(e,t))}let n=Date.now()+3e5;for(;Date.now()<n&&"running"===t.jobStatus;){if(await new Promise(e=>{window.setTimeout(e,1500)}),(t=await u(e.device_id)).restarting)return void r("restarting",t.jobMessage??`Restart scheduled on ${e.device_name}. This page will reconnect once the bridge runtime is back online.`);r("updating",o(e,t))}if("running"===t.jobStatus)return void r("updating",`The package update is still running on ${e.device_name}. Leave this page open and Conductor will finish applying it in the background.`);if("failed"===t.jobStatus)throw Error(t.jobMessage??t.error??`Automatic package update failed on ${e.device_name}.`);if(t.restartRequired){if(t.canRestart){t=await u(e.device_id,{method:"POST",body:{action:"restart"}}),r("restarting",t.jobMessage??`Restart scheduled on ${e.device_name} to finish updating Conductor.`);return}r("completed",t.jobMessage??`The latest Conductor package is installed on ${e.device_name}. Restart that laptop to finish updating.`);return}r("completed",t.jobMessage??`${e.device_name} is now updated to Conductor ${t.latestVersion??"latest"}.`)}catch(t){r("failed",t instanceof Error?t.message:`Failed to auto-update ${e.device_name}.`)}}},46916:(e,t,r)=>{r.d(t,{cn:()=>i});var n=r(9917),a=r(2809);function i(...e){return(0,a.QP)((0,n.$)(e))}},61369:(e,t,r)=>{function n(e){return/^[A-Za-z0-9_./:=@%+-]+$/.test(e)?e:`'${e.replace(/'/g,"'\"'\"'")}'`}function a(e){return e.map(n).join(" ")}function i(e){return`'${e.replace(/'/g,"''")}'`}function s(e){return/^[A-Za-z0-9_./:=@%+\\-]+$/.test(e)?e:i(e)}function d(e,t="unix"){return"windows"===t?["& (Join-Path $HOME '.conductor\\bin\\conductor-bridge.exe')",...e.map(s)].join(" "):a(["conductor-bridge",...e])}function o(e){return(e?.trim().toLowerCase()??"").startsWith("windows")?"windows":"unix"}function l(e,t="unix"){return new URL("windows"===t?"/bridge/install.ps1":"/bridge/install.sh",e).toString()}function c(e){return`/bridge/connect?device=${encodeURIComponent(e)}#bridge-setup`}function u(e,t="unix"){return"windows"===t?`& ([scriptblock]::Create((Invoke-RestMethod -Uri ${i(e)})))`:`curl -fsSL ${n(e)} | sh`}function v(e,t,r,s="unix"){if("windows"===s){let n=[`& ([scriptblock]::Create((Invoke-RestMethod -Uri ${i(e)})))`,"-Connect","-DashboardUrl",i(t)];return r?.trim()&&n.push("-RelayUrl",i(r.trim())),n.join(" ")}let d=["sh","-s","--","--connect","--dashboard-url",t];return r?.trim()&&d.push("--relay-url",r.trim()),`curl -fsSL ${n(e)} | ${a(d)}`}function p(e,t,r="unix"){let n=["connect","--dashboard-url",e];return t?.trim()&&n.push("--relay-url",t.trim()),d(n,r)}function m(e,t,r="unix"){let n=["pair","--code",e?.trim()||"ABC123"],a=["daemon"];return t?.trim()&&(n.push("--relay-url",t.trim()),a.push("--relay-url",t.trim())),`${d(n,r)}
2
- ${d(a,r)}`}r.d(t,{$y:()=>v,G7:()=>u,Y8:()=>o,hI:()=>p,kw:()=>c,pj:()=>l,zd:()=>m})},67506:(e,t,r)=>{r.d(t,{y:()=>a});var n=r(63680);function a(){let e=function(e){let t=e?.trim();if(!t)return null;try{let e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)return null;return e.toString()}catch{return null}}(n.env.CONDUCTOR_BRIDGE_RELAY_URL??n.env.NEXT_PUBLIC_CONDUCTOR_BRIDGE_RELAY_URL);return e||null}},76081:(e,t,r)=>{r.d(t,{$:()=>l});var n=r(54568),a=r(46916),i=r(78347),s=r(7620);let d={default:"border-[var(--vk-border)] bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",primary:"border-[var(--vk-border)] bg-[var(--vk-bg-active)] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",ghost:"border-transparent bg-transparent text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]",danger:"border-[var(--vk-red)]/40 bg-[color:color-mix(in_srgb,var(--vk-red)_18%,transparent)] text-[var(--vk-red)] hover:bg-[color:color-mix(in_srgb,var(--vk-red)_24%,transparent)]",outline:"border-[var(--vk-border)] bg-transparent text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]"},o={sm:"h-7 px-2.5 text-[12px] gap-1",md:"h-8 px-3 text-[13px] gap-1.5",lg:"h-9 px-3.5 text-[14px] gap-2",icon:"h-8 w-8 p-0"},l=(0,s.forwardRef)(({variant:e="default",size:t="md",asChild:r,className:s,children:l,...c},u)=>{let v=r?i.DX:"button";return(0,n.jsx)(v,{ref:u,className:(0,a.cn)("inline-flex items-center justify-center rounded-[var(--radius-sm)] border font-medium","transition-colors duration-150","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--vk-orange)]","disabled:pointer-events-none disabled:opacity-45",d[e],o[t],s),...c,children:l})});l.displayName="Button"},77522:(e,t,r)=>{r.d(t,{C:()=>n,n:()=>a});let n=new Set(["archived","done","killed","errored","terminated","merged","cleanup"]);function a(e){return"merged"===e.status||"archived"===e.status||"killed"===e.status||"errored"===e.status||"cleanup"===e.status||"done"===e.status||"terminated"===e.status||e.pr&&("merged"===e.pr.state||"closed"===e.pr.state)?"done":"mergeable"===e.status||"approved"===e.status||e.pr?.mergeability.mergeable?"merge":"waiting_input"===e.activity||"blocked"===e.activity||"needs_input"===e.status||"stuck"===e.status?"respond":"queued"===e.status?"pending":"exited"===e.activity?"respond":"ci_failed"===e.status||"changes_requested"===e.status||e.pr&&("failing"===e.pr.ciStatus||"changes_requested"===e.pr.reviewDecision||!e.pr.mergeability.noConflicts)?"review":"review_pending"===e.status||e.pr&&!e.pr.isDraft&&("pending"===e.pr.reviewDecision||"none"===e.pr.reviewDecision)?"pending":"working"}},83770:(e,t,r)=>{r.d(t,{Xt:()=>n});function n(e){let t=e?.trim();return"Bridge relay URL is not configured"===t||"RELAY_JWT_SECRET is required for bridge relay access"===t}},86181:(e,t,r)=>{function n(){var e;return"function"==typeof window.matchMedia&&window.matchMedia("(pointer: coarse)").matches,"u"<typeof navigator||navigator.maxTouchPoints,e=window.innerWidth,window.innerHeight,e<1024}function a(e,t,r,n){let a=Number.isFinite(e)?Math.max(0,e):0,i=Number.isFinite(t)?Math.max(0,t):a,s=Number.isFinite(r)?Math.max(0,r):0,d=Number.isFinite(n)?Math.max(0,n):0,o=Math.max(0,a-(i+s));return{usableHeight:Math.round(Math.max(0,i-Math.max(0,d-s))),keyboardInset:Math.round(o),keyboardVisible:o>=80}}r.d(t,{k$:()=>n,wP:()=>a})}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3301],{10926:(e,t,r)=>{r.d(t,{Bp:()=>i,C0:()=>a,DW:()=>s,kV:()=>d});let n="bridge:";function a(e){let t=e?.trim();return t&&t.length>0?t:null}function i(e,t){return`${n}${e}:${t}`}function s(e){let t=e?.trim();if(!t||!t.startsWith(n))return null;let r=t.slice(n.length),i=r.indexOf(":");if(i<=0||i>=r.length-1)return null;let s=a(r.slice(0,i)),d=r.slice(i+1).trim();return s&&0!==d.length?{bridgeId:s,sessionId:d}:null}function d(e){let t=e?.trim()??"";return t?s(t)?.sessionId??t:""}},11984:(e,t,r)=>{function n(e){let t=e?.trim().toLowerCase()??"";return!!t&&(t.includes("127.0.0.1:4749")||t.includes("older bridge build")||t.includes("one-time local bridge upgrade"))}function a(e){return`This laptop needs a one-time local bridge upgrade before ${function(e){switch(e){case"repair":return"Repair bridge";case"restart":return"Restart service";case"update":return"Update Conductor"}}(e)} can run from the dashboard.`}function i(e){let t=e?.trim()||"This laptop";return`${t} is still on an older bridge build, so Conductor cannot repair, restart, or update it remotely yet. Upgrade the bridge once on that laptop, then future fixes run from the dashboard.`}r.d(t,{Az:()=>n,IG:()=>a,_5:()=>i})},15115:(e,t,r)=>{function n(e,t){return"string"==typeof e&&e.trim().length>0?e.trim():t}function a(e){let t="string"==typeof e?e.trim():"";return t?` (build ${t})`:""}function i(e){return Array.isArray(e)?e.filter(e=>!!e&&"object"==typeof e).map(e=>{let t,r,a;return t=n(e.hostname,"unknown-host"),r=n(e.os,"unknown-os"),a=n(e.arch,"unknown-arch"),{device_id:n(e.device_id,t),device_name:n(e.device_name,t),hostname:t,os:r,arch:a,connected:!0===e.connected,last_status:e.last_status?{hostname:n(e.last_status.hostname,t),os:n(e.last_status.os,r),connected:!0===e.last_status.connected,version:"string"==typeof e.last_status.version&&e.last_status.version.trim().length>0?e.last_status.version.trim():null}:null}}):[]}r.d(t,{oH:()=>i,wj:()=>a})},15321:(e,t,r)=>{r.d(t,{i:()=>m});var n=r(54568),a=r(7620),i=r(65587),s=r.n(i),d=r(63322),o=r(59706),l=r(87242),c=r(76081),u=r(46916),v=r(11984),p=r(61369);function m({deviceId:e,deviceName:t,deviceOs:r,dashboardUrl:i,installScriptUrl:g,installPowerShellUrl:h,relayUrl:x,className:f}){let[b,w]=(0,a.useState)(!1),k=(0,a.useMemo)(()=>(0,p.Y8)(r),[r]),y="windows"===k?h:g,_=(0,a.useMemo)(()=>(0,p.$y)(y,i,x,k),[i,x,y,k]),j=(0,a.useMemo)(()=>(0,p.kw)(e),[e]);return(0,n.jsxs)("div",{className:(0,u.cn)("mt-3 rounded-[14px] border border-[color:color-mix(in_srgb,var(--vk-orange)_28%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-orange)_10%,transparent)] px-3 py-3",f),children:[(0,n.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--vk-text-muted)]",children:"One-time local repair"}),(0,n.jsx)("div",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-text-normal)]",children:(0,v._5)(t)}),(0,n.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,n.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{navigator.clipboard?.writeText?(w(!1),navigator.clipboard.writeText(_).then(()=>{w(!0)}).catch(()=>{w(!1)})):w(!1)},children:[b?(0,n.jsx)(d.A,{className:"h-4 w-4"}):(0,n.jsx)(o.A,{className:"h-4 w-4"}),b?"Repair command copied":"Copy repair command"]}),(0,n.jsx)(c.$,{asChild:!0,variant:"outline",size:"sm",children:(0,n.jsxs)(s(),{href:j,children:[(0,n.jsx)(l.A,{className:"h-4 w-4"}),"Open repair steps"]})})]})]})}},26167:(e,t,r)=>{r.d(t,{E:()=>i,b:()=>a});var n=r(11984);async function a(e){let t=await s(e,"service-restart",{});return t?.message??"Bridge service restart scheduled. This laptop should reconnect once the bridge is back online."}async function i(e,t){let r=await s(e,"repair",{installScriptUrl:t});return r?.message??"Bridge reinstall requested. This laptop should reconnect shortly."}async function s(e,t,r){let a=await fetch(`/api/bridge/devices/${encodeURIComponent(e)}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r),cache:"no-store"}),i=await a.json().catch(()=>null);if(!a.ok){var s,d;let e;throw Error((s=i?.error??i?.message??null,d=a.status,e=s?.trim()??"",(0,n.Az)(e)?(0,n.IG)("repair"===t?"repair":"restart"):e||`Failed to run ${t} on the bridge service (${d})`))}return i}},31404:(e,t,r)=>{r.d(t,{S:()=>a,y:()=>i});var n=r(10926);function a(e,t){let r=(0,n.C0)(t);if(!r)return e;let a=new URL(e,"http://127.0.0.1");return a.searchParams.set("bridgeId",r),`${a.pathname}${a.search}${a.hash}`}function i(e){let t=function(e){if(!e)return null;if(e instanceof URL)return e;if("string"==typeof e)try{return new URL(e,"http://127.0.0.1")}catch{return null}if("string"==typeof e.href)try{return new URL(e.href)}catch{}return null}(e);if(!t)return null;let r=(0,n.C0)(t.searchParams.get("bridge")??t.searchParams.get("bridgeId"));if(r)return r;let a=(0,n.DW)(t.searchParams.get("session"))?.bridgeId;if(a)return a;let i=t.pathname.match(/^\/sessions\/([^/]+)$/);if(!i)return null;try{return(0,n.DW)(decodeURIComponent(i[1]))?.bridgeId??null}catch{return null}}},39702:(e,t,r)=>{r.d(t,{J:()=>I});var n=r(54568),a=r(7620),i=r(40448),s=r(65587),d=r.n(s),o=r(79748),l=r(22061),c=r(34041),u=r(58299),v=r(87242),p=r(2099),m=r(60527),g=r(81167),h=r(15321),x=r(44522),f=r(11984),b=r(46916),w=r(26167),k=r(83770),y=r(61369),_=r(15115),j=r(67506);let N="/bridge/connect";function $({connected:e,className:t,title:r,suffix:a}){return(0,n.jsxs)("span",{className:(0,b.cn)("inline-flex items-center gap-2 rounded-full border px-2.5 py-1 text-[12px] font-medium",e?"border-[rgba(24,197,143,0.35)] bg-[rgba(24,197,143,0.12)] text-[var(--vk-green)]":"border-[rgba(255,143,122,0.24)] bg-[rgba(255,143,122,0.08)] text-[var(--vk-red)]",t),title:r,children:[(0,n.jsx)("span",{className:(0,b.cn)("h-2.5 w-2.5 rounded-full",e?"bg-[var(--vk-green)]":"bg-[var(--vk-red)]")}),(0,n.jsx)("span",{children:e?"Online":"Offline"}),a]})}function C({className:e}){let t=(0,o.useRouter)(),r=(0,o.usePathname)(),s=(0,o.useSearchParams)(),[I,R]=(0,a.useState)([]),[S,A]=(0,a.useState)(!0),[U,E]=(0,a.useState)(null),[T,L]=(0,a.useState)(null),[O,P]=(0,a.useState)({deviceId:null,phase:"idle",message:null}),[D,M]=(0,a.useState)({deviceId:null,kind:null,status:"idle",message:null}),[z,B]=(0,a.useState)(null),q=(0,a.useRef)(new Set),F=(0,j.y)(),W=!!F&&null===z,G=(0,a.useCallback)(async e=>{if(!W){e&&A(!1),R([]),E(null);return}e&&A(!0);try{let e=await fetch("/api/bridge/devices",{cache:"no-store"}),t=await e.json().catch(()=>null);if(!e.ok){if((0,k.Xt)(t?.error)){B(t?.error??null),R([]),E(null);return}throw Error(t?.error??`Failed to load bridge devices (${e.status})`)}R((0,_.oH)(t?.devices)),B(null),E(null)}catch(e){E(e instanceof Error?e.message:"Failed to load bridge devices.")}finally{A(!1)}},[W]);(0,a.useEffect)(()=>{if(!W){A(!1),R([]),E(null);return}let e=!1,t=null,r=async t=>{e||await G(t)};return r(!0),t=window.setInterval(()=>{r(!1)},15e3),()=>{e=!0,null!==t&&window.clearInterval(t)}},[W,G]),(0,a.useEffect)(()=>{let e=()=>{L((0,x.Tr)()?.deviceId??null)};return e(),window.addEventListener("focus",e),window.addEventListener("storage",e),()=>{window.removeEventListener("focus",e),window.removeEventListener("storage",e)}},[]),(0,a.useEffect)(()=>{r!==N&&t.prefetch(N)},[r,t]);let J=I.filter(e=>e.connected),V=s.get("bridge")?.trim()||null,Y=window.location.origin,X=V?I.find(e=>e.device_id===V)??null:null,H=!S&&0===J.length,Z=T?I.find(e=>e.device_id===T)??null:null,Q=H?X?.device_id?(0,y.kw)(X.device_id):Z?.device_id?(0,y.kw)(Z.device_id):I[0]?.device_id?(0,y.kw)(I[0].device_id):N:N,K=J.length>0,ee=W?U??(K?`${J.length} bridge${1===J.length?"":"s"} online`:I.length>0?"No paired bridges are online":"No paired bridges yet"):z??"Bridge relay URL is not configured";(0,a.useEffect)(()=>{let e=(Z?.connected?Z:null)??(X?.connected?X:null);!e||q.current.has(e.device_id)||(q.current.add(e.device_id),(0,x.jV)(e,P))},[Z,X]),(0,a.useEffect)(()=>{!Z||Z.connected||O.message||P({deviceId:Z.device_id,phase:"checking",message:`Waiting for ${Z.device_name} to reconnect so Conductor can finish its package update.`})},[O.message,Z]);let et=(0,a.useCallback)(async e=>{M({deviceId:e.device_id,kind:"restart",status:"running",message:`Restarting the bridge service on ${e.device_name}.`});try{let t=await (0,w.b)(e.device_id);M({deviceId:e.device_id,kind:"restart",status:"completed",message:`${t} Waiting for ${e.device_name} to reconnect.`}),[2e3,5e3,1e4,2e4,35e3].forEach(e=>{window.setTimeout(()=>{G(!1)},e)})}catch(t){M({deviceId:e.device_id,kind:"restart",status:"failed",message:t instanceof Error?t.message:`Failed to restart ${e.device_name}.`})}},[G]),er=(0,a.useCallback)(async e=>{M({deviceId:e.device_id,kind:"repair",status:"running",message:`Reinstalling the bridge service on ${e.device_name}.`});try{let t=(0,y.pj)(window.location.origin,(0,y.Y8)(e.os)),r=await (0,w.E)(e.device_id,t);M({deviceId:e.device_id,kind:"repair",status:"completed",message:r}),window.setTimeout(()=>{G(!1)},2e3)}catch(t){M({deviceId:e.device_id,kind:"repair",status:"failed",message:t instanceof Error?t.message:`Failed to repair ${e.device_name}.`})}},[G]),en=(0,a.useCallback)(async e=>{await (0,x.jV)(e,P),window.setTimeout(()=>{G(!1)},2e3)},[G]);return H?(0,n.jsx)(d(),{href:Q,prefetch:!0,className:"inline-flex",title:I.length>0?"Reconnect paired device":"Pair a device",children:(0,n.jsx)($,{connected:!1,className:e,title:I.length>0?"Reconnect paired device":"Pair a device",suffix:(0,n.jsx)(l.A,{className:"h-3.5 w-3.5"})})}):(0,n.jsxs)(i.bL,{children:[(0,n.jsx)(i.l9,{asChild:!0,children:(0,n.jsx)("button",{type:"button",className:"outline-none",children:(0,n.jsx)($,{connected:K,className:e,title:ee,suffix:(0,n.jsx)(c.A,{className:"h-3.5 w-3.5 text-current/70"})})})}),(0,n.jsx)(i.ZL,{children:(0,n.jsxs)(i.UC,{align:"end",sideOffset:8,className:"z-[90] w-[320px] rounded-[18px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-2 text-[var(--vk-text-normal)] shadow-[0_22px_48px_rgba(0,0,0,0.34)]",children:[(0,n.jsxs)("div",{className:"rounded-[14px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-3",children:[(0,n.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-[var(--vk-text-muted)]",children:"Conductor Bridge"}),(0,n.jsx)("div",{className:"mt-2 text-[13px] text-[var(--vk-text-normal)]",children:K?`${J.length} device${1===J.length?"":"s"} online`:S?"Loading device status":"No live bridge connection"}),(0,n.jsx)("div",{className:"mt-2 text-[11px] leading-5 text-[var(--vk-text-faint)]",children:"If a laptop is online but misbehaving, repair the bridge, update Conductor, or restart the service here."}),U?(0,n.jsx)("div",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-red)]",children:U}):null,O.message?(0,n.jsxs)("div",{className:(0,b.cn)("mt-2 flex flex-wrap items-center gap-2 text-[12px] leading-5","failed"===O.phase?"text-[var(--vk-red)]":"skipped"===O.phase?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-faint)]"),children:[(0,n.jsx)("span",{className:"inline-flex items-center rounded-full border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--vk-text-muted)]",children:(0,x.qv)(O.phase)}),(0,n.jsx)("span",{children:O.message})]}):null]}),(0,n.jsx)("div",{className:"mt-2 max-h-[280px] overflow-y-auto",children:I.length>0?I.map(e=>{let t=(0,x.xv)(O,e.device_id),r="running"===D.status&&D.deviceId===e.device_id,a=r&&"repair"===D.kind,i=r&&"restart"===D.kind,s=D.deviceId===e.device_id&&(0,f.Az)(D.message)||O.deviceId===e.device_id&&(0,f.Az)(O.message);return(0,n.jsx)("div",{className:"rounded-[14px] px-3 py-2.5 transition-colors hover:bg-[var(--vk-bg-hover)]",children:(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"truncate text-[13px] font-medium text-[var(--vk-text-strong)]",children:e.device_name}),(0,n.jsxs)("div",{className:"mt-1 text-[12px] text-[var(--vk-text-muted)]",children:[e.hostname," \xb7 ",e.os,"/",e.arch,(0,_.wj)(e.last_status?.version)]}),(0,n.jsxs)("div",{className:"mt-1 text-[11px] text-[var(--vk-text-muted)]",children:["Relay: ",e.last_status?.hostname??e.hostname,(0,_.wj)(e.last_status?.version)]}),O.message&&O.deviceId===e.device_id?(0,n.jsxs)("div",{className:(0,b.cn)("mt-1 flex flex-wrap items-center gap-2 text-[11px] leading-5","failed"===O.phase?"text-[var(--vk-red)]":"skipped"===O.phase?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-faint)]"),children:[(0,n.jsx)("span",{className:"inline-flex items-center rounded-full border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--vk-text-muted)]",children:(0,x.qv)(O.phase)}),(0,n.jsx)("span",{children:O.message})]}):null,D.message&&D.deviceId===e.device_id?(0,n.jsx)("div",{className:(0,b.cn)("mt-1 text-[11px] leading-5","failed"===D.status?"text-[var(--vk-red)]":"completed"===D.status?"text-[var(--vk-green)]":"text-[var(--vk-text-faint)]"),children:D.message}):null,s&&Y?(0,n.jsx)(h.i,{deviceId:e.device_id,deviceName:e.device_name,deviceOs:e.os,dashboardUrl:Y,installScriptUrl:(0,y.pj)(Y),installPowerShellUrl:(0,y.pj)(Y,"windows"),relayUrl:F}):null,e.connected?(0,n.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,n.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:r||t,onClick:()=>{er(e)},children:[a?(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(v.A,{className:"h-3.5 w-3.5"}),"Repair bridge"]}),(0,n.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:t||r,onClick:()=>{en(e)},children:[t?(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(p.A,{className:"h-3.5 w-3.5"}),t?"Updating...":"Update Conductor"]}),(0,n.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:r||t,onClick:()=>{et(e)},children:[i?(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(m.A,{className:"h-3.5 w-3.5"}),"Restart service"]})]}):null]}),(0,n.jsx)($,{connected:!0===e.connected})]})},e.device_id)}):(0,n.jsx)("div",{className:"rounded-[14px] border border-dashed border-[var(--vk-border)] px-3 py-4 text-[12px] text-[var(--vk-text-muted)]",children:S?"Loading paired devices...":"Pair a laptop to see bridge status here."})}),(0,n.jsx)(i.wv,{className:"my-2 h-px bg-[var(--vk-border)]"}),(0,n.jsx)(i.q7,{asChild:!0,children:(0,n.jsxs)(d(),{href:N,prefetch:!0,className:"flex items-center justify-between rounded-[12px] px-3 py-2 text-[13px] font-medium text-[var(--vk-text-normal)] outline-none transition-colors hover:bg-[var(--vk-bg-hover)] focus:bg-[var(--vk-bg-hover)]",children:[(0,n.jsx)("span",{children:"Open paired devices"}),(0,n.jsx)(g.A,{className:"h-4 w-4 text-[var(--vk-text-muted)]"})]})})]})})]})}function I({connected:e,className:t,title:r}={}){return"boolean"==typeof e?(0,n.jsx)($,{connected:e,className:t,title:r}):(0,n.jsx)(C,{className:t})}},44522:(e,t,r)=>{r.d(t,{N8:()=>c,Tr:()=>p,jV:()=>m,m7:()=>v,qv:()=>s,xv:()=>d});var n=r(31404),a=r(11984);let i="conductor-bridge-recent-pairing";function s(e){switch(e){case"checking":return"Checking";case"updating":return"Updating";case"restarting":return"Restarting";case"completed":return"Completed";case"skipped":return"Skipped";case"failed":return"Failed";default:return"Idle"}}function d(e,t){return e.deviceId===t&&("checking"===e.phase||"updating"===e.phase||"restarting"===e.phase)}function o(e,t){return t.jobMessage??`Installing Conductor ${t.latestVersion??"latest"} on ${e.device_name}.`}function l(e){let t=e.currentVersion?.trim();return t?` (build ${t})`:""}function c(e){if(!e.enabled)switch(e.reason){case"source-checkout":return"This laptop is running from a source checkout, so there is no published package to auto-update.";case"missing-cli-metadata":return"This install could not determine its update metadata, so automatic package updates are unavailable.";default:return"Automatic package updates are unavailable for this laptop."}return e.updateAvailable?e.canAutoUpdate?`This laptop is already running the latest Conductor release${l(e)}.`:"npx"===e.installMode?"This laptop was launched via npx, so the next launch will pick up the latest package automatically.":e.updateCommand?`A newer Conductor release is available, but this install still needs a manual update: ${e.updateCommand}`:"A newer Conductor release is available, but this install cannot update itself automatically.":`This laptop is already running the latest Conductor release${l(e)}.`}async function u(e,t){var r,i;let s=t?.method??"GET",d=`/api/bridge/devices/${encodeURIComponent(e)}/app-update`,o=new URL((0,n.S)(d,e),window.location.origin);t?.force&&o.searchParams.set("force","1");let l=await fetch(o.toString(),{method:s,headers:t?.body?{"Content-Type":"application/json"}:void 0,body:t?.body?JSON.stringify(t.body):void 0,cache:"no-store"}),c=await l.json().catch(()=>null);if(!l.ok){let e;throw Error((r=c&&"object"==typeof c&&"error"in c&&"string"==typeof c.error?c.error:null,i=l.status,e=r?.trim()??"",(0,a.Az)(e)?(0,a.IG)("update"):e||`Failed to update Conductor on this laptop (${i})`))}let u=c&&"object"==typeof c?c:null;if(!u)throw Error("Paired device returned an invalid update payload.");return u}function v(e){let t={deviceId:e.deviceId,deviceName:e.deviceName??null,pairedAt:new Date().toISOString()};try{window.localStorage.setItem(i,JSON.stringify(t))}catch{}}function p(){try{let e=window.localStorage.getItem(i);if(!e)return null;let t=JSON.parse(e);if(!(t&&"object"==typeof t&&"string"==typeof t.deviceId&&"string"==typeof t.pairedAt&&(null===t.deviceName||"string"==typeof t.deviceName)))return window.localStorage.removeItem(i),null;let r=Date.parse(t.pairedAt);if(!Number.isFinite(r)||Date.now()-r>18e5)return window.localStorage.removeItem(i),null;return t}catch{return null}}async function m(e,t){let r=(r,n)=>{t({deviceId:e.device_id,phase:r,message:n})};r("checking",`Checking for Conductor updates on ${e.device_name}.`);try{let t=await u(e.device_id,{force:!0});if(t.restarting)return void r("restarting",t.jobMessage??`Restart scheduled on ${e.device_name}. This page will reconnect once the bridge runtime is back online.`);if("running"===t.jobStatus)r("updating",o(e,t));else{if(!t.updateAvailable||!t.enabled||!t.canAutoUpdate)return void r(t.enabled&&t.canAutoUpdate?"completed":"skipped",c(t));t=await u(e.device_id,{method:"POST"}),r("updating",o(e,t))}let n=Date.now()+3e5;for(;Date.now()<n&&"running"===t.jobStatus;){if(await new Promise(e=>{window.setTimeout(e,1500)}),(t=await u(e.device_id)).restarting)return void r("restarting",t.jobMessage??`Restart scheduled on ${e.device_name}. This page will reconnect once the bridge runtime is back online.`);r("updating",o(e,t))}if("running"===t.jobStatus)return void r("updating",`The package update is still running on ${e.device_name}. Leave this page open and Conductor will finish applying it in the background.`);if("failed"===t.jobStatus)throw Error(t.jobMessage??t.error??`Automatic package update failed on ${e.device_name}.`);if(t.restartRequired){if(t.canRestart){t=await u(e.device_id,{method:"POST",body:{action:"restart"}}),r("restarting",t.jobMessage??`Restart scheduled on ${e.device_name} to finish updating Conductor.`);return}r("completed",t.jobMessage??`The latest Conductor package is installed on ${e.device_name}. Restart that laptop to finish updating.`);return}r("completed",t.jobMessage??`${e.device_name} is now updated to Conductor ${t.latestVersion??"latest"}.`)}catch(t){r("failed",t instanceof Error?t.message:`Failed to auto-update ${e.device_name}.`)}}},46916:(e,t,r)=>{r.d(t,{cn:()=>i});var n=r(9917),a=r(2809);function i(...e){return(0,a.QP)((0,n.$)(e))}},61369:(e,t,r)=>{function n(e){return/^[A-Za-z0-9_./:=@%+-]+$/.test(e)?e:`'${e.replace(/'/g,"'\"'\"'")}'`}function a(e){return e.map(n).join(" ")}function i(e){return`'${e.replace(/'/g,"''")}'`}function s(e){return/^[A-Za-z0-9_./:=@%+\\-]+$/.test(e)?e:i(e)}function d(e,t="unix"){return"windows"===t?["& (Join-Path $HOME '.conductor\\bin\\conductor-bridge.exe')",...e.map(s)].join(" "):a(["conductor-bridge",...e])}function o(e){return(e?.trim().toLowerCase()??"").startsWith("windows")?"windows":"unix"}function l(e,t="unix"){return new URL("windows"===t?"/bridge/install.ps1":"/bridge/install.sh",e).toString()}function c(e){return`/bridge/connect?device=${encodeURIComponent(e)}#bridge-setup`}function u(e,t="unix"){return"windows"===t?`& ([scriptblock]::Create((Invoke-RestMethod -Uri ${i(e)})))`:`curl -fsSL ${n(e)} | sh`}function v(e,t,r,s="unix"){if("windows"===s){let n=[`& ([scriptblock]::Create((Invoke-RestMethod -Uri ${i(e)})))`,"-Connect","-DashboardUrl",i(t)];return r?.trim()&&n.push("-RelayUrl",i(r.trim())),n.join(" ")}let d=["sh","-s","--","--connect","--dashboard-url",t];return r?.trim()&&d.push("--relay-url",r.trim()),`curl -fsSL ${n(e)} | ${a(d)}`}function p(e,t,r="unix"){let n=["connect","--dashboard-url",e];return t?.trim()&&n.push("--relay-url",t.trim()),d(n,r)}function m(e,t,r="unix"){let n=["pair","--code",e?.trim()||"ABC123"],a=["daemon"];return t?.trim()&&(n.push("--relay-url",t.trim()),a.push("--relay-url",t.trim())),`${d(n,r)}
2
+ ${d(a,r)}`}r.d(t,{$y:()=>v,G7:()=>u,Y8:()=>o,hI:()=>p,kw:()=>c,pj:()=>l,zd:()=>m})},67506:(e,t,r)=>{r.d(t,{y:()=>a});var n=r(63680);function a(){let e=function(e){let t=e?.trim();if(!t)return null;try{let e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)return null;return e.toString()}catch{return null}}(n.env.CONDUCTOR_BRIDGE_RELAY_URL??n.env.NEXT_PUBLIC_CONDUCTOR_BRIDGE_RELAY_URL);return e||null}},76081:(e,t,r)=>{r.d(t,{$:()=>l});var n=r(54568),a=r(46916),i=r(78347),s=r(7620);let d={default:"border-[var(--vk-border)] bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",primary:"border-[var(--vk-border)] bg-[var(--vk-bg-active)] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",ghost:"border-transparent bg-transparent text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]",danger:"border-[var(--vk-red)]/40 bg-[color:color-mix(in_srgb,var(--vk-red)_18%,transparent)] text-[var(--vk-red)] hover:bg-[color:color-mix(in_srgb,var(--vk-red)_24%,transparent)]",outline:"border-[var(--vk-border)] bg-transparent text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]"},o={sm:"h-7 px-2.5 text-[12px] gap-1",md:"h-8 px-3 text-[13px] gap-1.5",lg:"h-9 px-3.5 text-[14px] gap-2",icon:"h-8 w-8 p-0"},l=(0,s.forwardRef)(({variant:e="default",size:t="md",asChild:r,className:s,children:l,...c},u)=>{let v=r?i.DX:"button";return(0,n.jsx)(v,{ref:u,className:(0,a.cn)("inline-flex items-center justify-center rounded-[var(--radius-sm)] border font-medium","transition-colors duration-150","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--vk-orange)]","disabled:pointer-events-none disabled:opacity-45",d[e],o[t],s),...c,children:l})});l.displayName="Button"},77522:(e,t,r)=>{r.d(t,{C:()=>n,n:()=>a});let n=new Set(["archived","done","killed","errored","terminated","merged","cleanup"]);function a(e){return"merged"===e.status||"archived"===e.status||"killed"===e.status||"errored"===e.status||"cleanup"===e.status||"done"===e.status||"terminated"===e.status||e.pr&&("merged"===e.pr.state||"closed"===e.pr.state)?"done":"mergeable"===e.status||"approved"===e.status||e.pr?.mergeability.mergeable?"merge":"waiting_input"===e.activity||"blocked"===e.activity||"needs_input"===e.status||"stuck"===e.status?"respond":"queued"===e.status?"pending":"exited"===e.activity?"respond":"ci_failed"===e.status||"changes_requested"===e.status||e.pr&&("failing"===e.pr.ciStatus||"changes_requested"===e.pr.reviewDecision||!e.pr.mergeability.noConflicts)?"review":"review_pending"===e.status||e.pr&&!e.pr.isDraft&&("pending"===e.pr.reviewDecision||"none"===e.pr.reviewDecision)?"pending":"working"}},83770:(e,t,r)=>{r.d(t,{Xt:()=>n});function n(e){let t=e?.trim();return"Bridge relay URL is not configured"===t||"RELAY_JWT_SECRET is required for bridge relay access"===t}}}]);