@vibedeckx/linux-x64 0.1.10

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 (579) hide show
  1. package/dist/agent-provider.d.ts +92 -0
  2. package/dist/agent-provider.js +8 -0
  3. package/dist/agent-session-manager.d.ts +165 -0
  4. package/dist/agent-session-manager.js +985 -0
  5. package/dist/agent-types.d.ts +148 -0
  6. package/dist/agent-types.js +4 -0
  7. package/dist/bin.d.ts +2 -0
  8. package/dist/bin.js +4 -0
  9. package/dist/browser-manager.d.ts +46 -0
  10. package/dist/browser-manager.js +182 -0
  11. package/dist/chat-session-manager.d.ts +101 -0
  12. package/dist/chat-session-manager.js +1425 -0
  13. package/dist/command.d.ts +1 -0
  14. package/dist/command.js +163 -0
  15. package/dist/constants.d.ts +3 -0
  16. package/dist/constants.js +5 -0
  17. package/dist/conversation-patch.d.ts +103 -0
  18. package/dist/conversation-patch.js +69 -0
  19. package/dist/dialog.d.ts +1 -0
  20. package/dist/dialog.js +41 -0
  21. package/dist/entry-index-provider.d.ts +74 -0
  22. package/dist/entry-index-provider.js +105 -0
  23. package/dist/event-bus.d.ts +47 -0
  24. package/dist/event-bus.js +16 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.js +2 -0
  27. package/dist/plugins/shared-services.d.ts +8 -0
  28. package/dist/plugins/shared-services.js +65 -0
  29. package/dist/process-manager.d.ts +146 -0
  30. package/dist/process-manager.js +779 -0
  31. package/dist/providers/claude-code-provider.d.ts +13 -0
  32. package/dist/providers/claude-code-provider.js +127 -0
  33. package/dist/providers/codex-provider.d.ts +41 -0
  34. package/dist/providers/codex-provider.js +354 -0
  35. package/dist/providers/index.d.ts +5 -0
  36. package/dist/providers/index.js +19 -0
  37. package/dist/remote-patch-cache.d.ts +67 -0
  38. package/dist/remote-patch-cache.js +190 -0
  39. package/dist/reverse-connect-client.d.ts +27 -0
  40. package/dist/reverse-connect-client.js +255 -0
  41. package/dist/reverse-connect-manager.d.ts +31 -0
  42. package/dist/reverse-connect-manager.js +287 -0
  43. package/dist/reverse-connect-types.d.ts +55 -0
  44. package/dist/reverse-connect-types.js +7 -0
  45. package/dist/routes/agent-session-routes.d.ts +4 -0
  46. package/dist/routes/agent-session-routes.js +442 -0
  47. package/dist/routes/browser-proxy-routes.d.ts +25 -0
  48. package/dist/routes/browser-proxy-routes.js +421 -0
  49. package/dist/routes/browser-routes.d.ts +4 -0
  50. package/dist/routes/browser-routes.js +73 -0
  51. package/dist/routes/chat-session-routes.d.ts +7 -0
  52. package/dist/routes/chat-session-routes.js +69 -0
  53. package/dist/routes/diff-routes.d.ts +4 -0
  54. package/dist/routes/diff-routes.js +208 -0
  55. package/dist/routes/event-routes.d.ts +4 -0
  56. package/dist/routes/event-routes.js +52 -0
  57. package/dist/routes/executor-group-routes.d.ts +4 -0
  58. package/dist/routes/executor-group-routes.js +76 -0
  59. package/dist/routes/executor-routes.d.ts +4 -0
  60. package/dist/routes/executor-routes.js +106 -0
  61. package/dist/routes/file-routes.d.ts +4 -0
  62. package/dist/routes/file-routes.js +331 -0
  63. package/dist/routes/process-routes.d.ts +4 -0
  64. package/dist/routes/process-routes.js +183 -0
  65. package/dist/routes/project-remote-routes.d.ts +4 -0
  66. package/dist/routes/project-remote-routes.js +82 -0
  67. package/dist/routes/project-routes.d.ts +4 -0
  68. package/dist/routes/project-routes.js +286 -0
  69. package/dist/routes/remote-routes.d.ts +4 -0
  70. package/dist/routes/remote-routes.js +59 -0
  71. package/dist/routes/remote-server-routes.d.ts +4 -0
  72. package/dist/routes/remote-server-routes.js +157 -0
  73. package/dist/routes/reverse-connect-routes.d.ts +4 -0
  74. package/dist/routes/reverse-connect-routes.js +33 -0
  75. package/dist/routes/settings-routes.d.ts +4 -0
  76. package/dist/routes/settings-routes.js +129 -0
  77. package/dist/routes/task-routes.d.ts +4 -0
  78. package/dist/routes/task-routes.js +107 -0
  79. package/dist/routes/terminal-routes.d.ts +4 -0
  80. package/dist/routes/terminal-routes.js +187 -0
  81. package/dist/routes/translate-routes.d.ts +4 -0
  82. package/dist/routes/translate-routes.js +38 -0
  83. package/dist/routes/websocket-routes.d.ts +4 -0
  84. package/dist/routes/websocket-routes.js +604 -0
  85. package/dist/routes/worktree-routes.d.ts +4 -0
  86. package/dist/routes/worktree-routes.js +511 -0
  87. package/dist/server-types.d.ts +41 -0
  88. package/dist/server-types.js +1 -0
  89. package/dist/server.d.ts +23 -0
  90. package/dist/server.js +238 -0
  91. package/dist/storage/sqlite.d.ts +2 -0
  92. package/dist/storage/sqlite.js +1073 -0
  93. package/dist/storage/types.d.ts +281 -0
  94. package/dist/storage/types.js +1 -0
  95. package/dist/ui/404/index.html +1 -0
  96. package/dist/ui/404.html +1 -0
  97. package/dist/ui/__next.__PAGE__.txt +10 -0
  98. package/dist/ui/__next._full.txt +25 -0
  99. package/dist/ui/__next._head.txt +6 -0
  100. package/dist/ui/__next._index.txt +9 -0
  101. package/dist/ui/__next._tree.txt +6 -0
  102. package/dist/ui/_next/static/7vIIuOQPJu8rdb6uAhwtg/_buildManifest.js +11 -0
  103. package/dist/ui/_next/static/7vIIuOQPJu8rdb6uAhwtg/_clientMiddlewareManifest.json +1 -0
  104. package/dist/ui/_next/static/7vIIuOQPJu8rdb6uAhwtg/_ssgManifest.js +1 -0
  105. package/dist/ui/_next/static/chunks/002f5a047b8d07d4.js +1 -0
  106. package/dist/ui/_next/static/chunks/01178e167ba3e5b4.js +1 -0
  107. package/dist/ui/_next/static/chunks/020d675d21be28d4.js +1 -0
  108. package/dist/ui/_next/static/chunks/024926197424b4a5.js +1 -0
  109. package/dist/ui/_next/static/chunks/02c93f6ca211a65d.js +1 -0
  110. package/dist/ui/_next/static/chunks/0364437dee56dc96.js +1 -0
  111. package/dist/ui/_next/static/chunks/03fc6b527b16efdc.js +1 -0
  112. package/dist/ui/_next/static/chunks/04f9a7932751cf2d.js +1 -0
  113. package/dist/ui/_next/static/chunks/0624b8204e5ae457.js +136 -0
  114. package/dist/ui/_next/static/chunks/067d8978cf41b901.js +1 -0
  115. package/dist/ui/_next/static/chunks/06d96238e85cdbb3.js +1 -0
  116. package/dist/ui/_next/static/chunks/071b9575dbdf1dcb.js +1 -0
  117. package/dist/ui/_next/static/chunks/073d5b9dc87ceab0.js +1 -0
  118. package/dist/ui/_next/static/chunks/0876a7111934d6f7.js +1 -0
  119. package/dist/ui/_next/static/chunks/08ffc3bf406c665d.js +1 -0
  120. package/dist/ui/_next/static/chunks/0969e8274c92c2d8.js +1 -0
  121. package/dist/ui/_next/static/chunks/0a3f62f00d7bec78.js +1 -0
  122. package/dist/ui/_next/static/chunks/0b80166023d89049.js +5 -0
  123. package/dist/ui/_next/static/chunks/0c2a941e61c395b6.js +1 -0
  124. package/dist/ui/_next/static/chunks/0c5eac8493334420.js +1 -0
  125. package/dist/ui/_next/static/chunks/0cc61d37b2333469.js +1 -0
  126. package/dist/ui/_next/static/chunks/0d440843348b2871.js +1 -0
  127. package/dist/ui/_next/static/chunks/0da3d15845f17208.js +1 -0
  128. package/dist/ui/_next/static/chunks/0e1982b1a6cbd127.js +53 -0
  129. package/dist/ui/_next/static/chunks/0e81d5bc1c725b75.js +1 -0
  130. package/dist/ui/_next/static/chunks/0e862e51b01e904b.js +63 -0
  131. package/dist/ui/_next/static/chunks/0ed7b6d86744b723.js +1 -0
  132. package/dist/ui/_next/static/chunks/0f0b3025f4e268b1.js +1 -0
  133. package/dist/ui/_next/static/chunks/10a30eb52825da36.js +1 -0
  134. package/dist/ui/_next/static/chunks/10c48da576fd8eef.js +1 -0
  135. package/dist/ui/_next/static/chunks/133e9f1435ca5f45.js +29 -0
  136. package/dist/ui/_next/static/chunks/16f4db3a54f167fd.js +1 -0
  137. package/dist/ui/_next/static/chunks/1988e3ecf5ad06d3.js +1 -0
  138. package/dist/ui/_next/static/chunks/1acfae010fd77014.js +152 -0
  139. package/dist/ui/_next/static/chunks/1ae53c2f1fff8cc2.js +1 -0
  140. package/dist/ui/_next/static/chunks/1af4fbc6c1256fae.js +1 -0
  141. package/dist/ui/_next/static/chunks/1b758c732032b236.js +1 -0
  142. package/dist/ui/_next/static/chunks/1ba26455a9f70c08.js +1 -0
  143. package/dist/ui/_next/static/chunks/1d22644cb4049d6b.css +1 -0
  144. package/dist/ui/_next/static/chunks/1d241f3b57c14cf7.js +1 -0
  145. package/dist/ui/_next/static/chunks/1d640bbe1c2c7869.js +1 -0
  146. package/dist/ui/_next/static/chunks/1da6354c9cb6f0de.js +1 -0
  147. package/dist/ui/_next/static/chunks/1dcd49914412f67b.js +1 -0
  148. package/dist/ui/_next/static/chunks/1e3b3771294825a4.js +1 -0
  149. package/dist/ui/_next/static/chunks/1eaa8ad7eca7f957.js +1 -0
  150. package/dist/ui/_next/static/chunks/1ebc88f60cadb128.js +1 -0
  151. package/dist/ui/_next/static/chunks/1ecb57b258088259.js +1 -0
  152. package/dist/ui/_next/static/chunks/1f5ba6b80fe19200.js +1 -0
  153. package/dist/ui/_next/static/chunks/20a5531534828366.js +1 -0
  154. package/dist/ui/_next/static/chunks/20b511fc299dfe9a.js +1 -0
  155. package/dist/ui/_next/static/chunks/20bff4eb9a0a6872.css +1 -0
  156. package/dist/ui/_next/static/chunks/219b7d9e437c6bd8.js +15 -0
  157. package/dist/ui/_next/static/chunks/21b32f530e0df2c5.js +1 -0
  158. package/dist/ui/_next/static/chunks/21fc6dc60e7647b1.js +1 -0
  159. package/dist/ui/_next/static/chunks/221a27e65aa5fbfd.js +1 -0
  160. package/dist/ui/_next/static/chunks/23a1e247c32bcc61.js +93 -0
  161. package/dist/ui/_next/static/chunks/2473c16c0c2f6b5f.css +2 -0
  162. package/dist/ui/_next/static/chunks/2615c71c0f8fe9bd.js +1 -0
  163. package/dist/ui/_next/static/chunks/263327288d5e2703.js +1 -0
  164. package/dist/ui/_next/static/chunks/2663fbaf43239e38.js +1 -0
  165. package/dist/ui/_next/static/chunks/27332c590d59f4e5.js +1 -0
  166. package/dist/ui/_next/static/chunks/27ca4a4e8191093f.js +1 -0
  167. package/dist/ui/_next/static/chunks/29b7618dcaa8edba.js +1 -0
  168. package/dist/ui/_next/static/chunks/2ba1d2b55b82f4da.js +21 -0
  169. package/dist/ui/_next/static/chunks/2cb23686e72468c8.js +1 -0
  170. package/dist/ui/_next/static/chunks/2d46f05dcbf1cbc2.js +1 -0
  171. package/dist/ui/_next/static/chunks/2d4c0fd06ca34510.js +2 -0
  172. package/dist/ui/_next/static/chunks/2f3d1d07474b8f79.js +1 -0
  173. package/dist/ui/_next/static/chunks/2f85c2849249a0dd.js +1 -0
  174. package/dist/ui/_next/static/chunks/3001d378f166eec9.js +1 -0
  175. package/dist/ui/_next/static/chunks/3018714f3827e360.js +1 -0
  176. package/dist/ui/_next/static/chunks/301cc25e0d489351.js +1 -0
  177. package/dist/ui/_next/static/chunks/305242b22ba8b49b.js +1 -0
  178. package/dist/ui/_next/static/chunks/3067c6e369066bd6.js +1 -0
  179. package/dist/ui/_next/static/chunks/311a77c9d5cb9de9.js +1 -0
  180. package/dist/ui/_next/static/chunks/320c001380e81470.js +1 -0
  181. package/dist/ui/_next/static/chunks/329db6c551df0faf.js +1 -0
  182. package/dist/ui/_next/static/chunks/33da178724072b3d.js +1 -0
  183. package/dist/ui/_next/static/chunks/33e8248c9296537a.js +1 -0
  184. package/dist/ui/_next/static/chunks/35a9992a8958f93b.js +1 -0
  185. package/dist/ui/_next/static/chunks/35bb90cf09892b72.js +1 -0
  186. package/dist/ui/_next/static/chunks/379f91b92366dc15.js +1 -0
  187. package/dist/ui/_next/static/chunks/391f22359769763f.js +1 -0
  188. package/dist/ui/_next/static/chunks/39231cb1044f7823.js +1 -0
  189. package/dist/ui/_next/static/chunks/394e8b7a1c2c58c6.js +1 -0
  190. package/dist/ui/_next/static/chunks/3a2cfdeb5f76ebd2.js +1 -0
  191. package/dist/ui/_next/static/chunks/3a3bd015fd042386.js +1 -0
  192. package/dist/ui/_next/static/chunks/3ad1bee238af9b5a.js +1 -0
  193. package/dist/ui/_next/static/chunks/3b2b2f7a9b7b130d.js +1 -0
  194. package/dist/ui/_next/static/chunks/3b586f80547e3a22.js +1 -0
  195. package/dist/ui/_next/static/chunks/3ca412e72bd3707a.js +1 -0
  196. package/dist/ui/_next/static/chunks/3cbb3bdceb4230af.js +1 -0
  197. package/dist/ui/_next/static/chunks/3ed1465109fecc2d.js +1 -0
  198. package/dist/ui/_next/static/chunks/3fd0801238b3b099.js +1 -0
  199. package/dist/ui/_next/static/chunks/401df66bd5da2115.js +15 -0
  200. package/dist/ui/_next/static/chunks/4211f4efe510f7ac.js +1 -0
  201. package/dist/ui/_next/static/chunks/43085364d0a41d1d.js +1 -0
  202. package/dist/ui/_next/static/chunks/4310c821dbee7a16.js +1 -0
  203. package/dist/ui/_next/static/chunks/46382f31f63e59cf.js +1 -0
  204. package/dist/ui/_next/static/chunks/468836b90ddf24d6.js +1 -0
  205. package/dist/ui/_next/static/chunks/470d091143104517.js +1 -0
  206. package/dist/ui/_next/static/chunks/4712e4f7e6b6ddc1.js +1 -0
  207. package/dist/ui/_next/static/chunks/4899f1e3f21c077e.js +1 -0
  208. package/dist/ui/_next/static/chunks/492ce6930bf61811.js +1 -0
  209. package/dist/ui/_next/static/chunks/494485a20952ffa3.js +1 -0
  210. package/dist/ui/_next/static/chunks/49535db309898f43.js +1 -0
  211. package/dist/ui/_next/static/chunks/4b8d2612d69e2013.js +1 -0
  212. package/dist/ui/_next/static/chunks/4c4a0f67891826a3.js +1 -0
  213. package/dist/ui/_next/static/chunks/4cc11ce32f4453b0.js +1 -0
  214. package/dist/ui/_next/static/chunks/4d03a0bc963fc3d4.js +1 -0
  215. package/dist/ui/_next/static/chunks/4d603a66c067134e.js +1 -0
  216. package/dist/ui/_next/static/chunks/4d8d7e62c2743f71.js +15 -0
  217. package/dist/ui/_next/static/chunks/4da42f10a5460b36.js +1 -0
  218. package/dist/ui/_next/static/chunks/4e832ffb65e75807.js +1 -0
  219. package/dist/ui/_next/static/chunks/4e954e1cec89a9ea.js +1 -0
  220. package/dist/ui/_next/static/chunks/4f2bc7a7a6b05a8b.js +55 -0
  221. package/dist/ui/_next/static/chunks/4f9c934abf34ceb9.js +1 -0
  222. package/dist/ui/_next/static/chunks/4fa248b0d2586928.js +1 -0
  223. package/dist/ui/_next/static/chunks/4fafbac2156844ca.js +1 -0
  224. package/dist/ui/_next/static/chunks/502039e483cc5e48.js +1 -0
  225. package/dist/ui/_next/static/chunks/509c91c38224448a.js +1 -0
  226. package/dist/ui/_next/static/chunks/5159d6f8d4307f36.js +1 -0
  227. package/dist/ui/_next/static/chunks/5179ab56aaaed42d.js +1 -0
  228. package/dist/ui/_next/static/chunks/5269ea07faff562d.js +1 -0
  229. package/dist/ui/_next/static/chunks/529f3f0f7d42444a.js +1 -0
  230. package/dist/ui/_next/static/chunks/5317db6783ee8dc9.js +1 -0
  231. package/dist/ui/_next/static/chunks/53a7b7c0ab020902.js +1 -0
  232. package/dist/ui/_next/static/chunks/544869c670c1dd8e.js +1 -0
  233. package/dist/ui/_next/static/chunks/547c0db6a433370e.js +1 -0
  234. package/dist/ui/_next/static/chunks/54d5670f5fa2abbe.css +1 -0
  235. package/dist/ui/_next/static/chunks/55761e35a8946a1d.js +15 -0
  236. package/dist/ui/_next/static/chunks/558f73c16b7ff14f.js +1 -0
  237. package/dist/ui/_next/static/chunks/55c76f605958d671.js +1 -0
  238. package/dist/ui/_next/static/chunks/55dc6750fb117bf9.js +1 -0
  239. package/dist/ui/_next/static/chunks/584bad9cf2498405.js +1 -0
  240. package/dist/ui/_next/static/chunks/593b85b9abea3ea6.js +1 -0
  241. package/dist/ui/_next/static/chunks/5a79af73c96155d4.js +1 -0
  242. package/dist/ui/_next/static/chunks/5ee54b9b6b400134.js +1 -0
  243. package/dist/ui/_next/static/chunks/5f27ee48dc820109.js +1 -0
  244. package/dist/ui/_next/static/chunks/5ffd50a08d82e2f3.js +1 -0
  245. package/dist/ui/_next/static/chunks/61d65fe807f69413.js +62 -0
  246. package/dist/ui/_next/static/chunks/626a650bcaaecdb8.js +1 -0
  247. package/dist/ui/_next/static/chunks/62baecafed4dbced.js +1 -0
  248. package/dist/ui/_next/static/chunks/634a4b5b6a38ccab.js +1 -0
  249. package/dist/ui/_next/static/chunks/643c359cf3f7364e.js +1 -0
  250. package/dist/ui/_next/static/chunks/649e65f4820a772b.js +1 -0
  251. package/dist/ui/_next/static/chunks/65028938188a230c.js +1 -0
  252. package/dist/ui/_next/static/chunks/65b3658348e8d4fd.js +1 -0
  253. package/dist/ui/_next/static/chunks/65eed220466cbdbc.js +1 -0
  254. package/dist/ui/_next/static/chunks/66714687cfd91953.js +1 -0
  255. package/dist/ui/_next/static/chunks/66ccaa3e69ed7a69.js +1 -0
  256. package/dist/ui/_next/static/chunks/6754600af0c6b3a8.js +1 -0
  257. package/dist/ui/_next/static/chunks/67a1d37727697340.js +1 -0
  258. package/dist/ui/_next/static/chunks/67e965a7f9531cee.js +1 -0
  259. package/dist/ui/_next/static/chunks/6816bf02e4c22a55.js +1 -0
  260. package/dist/ui/_next/static/chunks/68621b90909ec4e6.js +1 -0
  261. package/dist/ui/_next/static/chunks/6929ceb718c6e4c6.js +1 -0
  262. package/dist/ui/_next/static/chunks/69362fff2240a17b.js +1 -0
  263. package/dist/ui/_next/static/chunks/69dab47a307b1a37.js +1 -0
  264. package/dist/ui/_next/static/chunks/6afa71c8b3358dd5.js +1 -0
  265. package/dist/ui/_next/static/chunks/6bf54dc328e667f7.js +1 -0
  266. package/dist/ui/_next/static/chunks/6c44508faf13f6f0.js +1 -0
  267. package/dist/ui/_next/static/chunks/6c9c2b61c905a2de.js +1 -0
  268. package/dist/ui/_next/static/chunks/6cc2e3d7873522b9.js +1 -0
  269. package/dist/ui/_next/static/chunks/6d01e8902e85bfe0.js +1 -0
  270. package/dist/ui/_next/static/chunks/6dc69e4a91f7a353.js +1 -0
  271. package/dist/ui/_next/static/chunks/6e832e016b60ae19.js +1 -0
  272. package/dist/ui/_next/static/chunks/6eab0d8815c18a6d.js +1 -0
  273. package/dist/ui/_next/static/chunks/6f862eb588fa3b7e.js +1 -0
  274. package/dist/ui/_next/static/chunks/6ff7b0a8653036b2.js +1 -0
  275. package/dist/ui/_next/static/chunks/710ce144a9645f3c.js +1 -0
  276. package/dist/ui/_next/static/chunks/71293e300c639b6b.js +1 -0
  277. package/dist/ui/_next/static/chunks/7186d7cce354a012.js +1 -0
  278. package/dist/ui/_next/static/chunks/7215d586009e8158.js +1 -0
  279. package/dist/ui/_next/static/chunks/726fdeaff53a89ac.js +1 -0
  280. package/dist/ui/_next/static/chunks/7322a00d61e7ffad.js +1 -0
  281. package/dist/ui/_next/static/chunks/73c60ee9f233051d.js +1 -0
  282. package/dist/ui/_next/static/chunks/740f5627b5c57baa.js +1 -0
  283. package/dist/ui/_next/static/chunks/74438794a8e9ba80.js +1 -0
  284. package/dist/ui/_next/static/chunks/74ffcd7d13b3fea0.js +1 -0
  285. package/dist/ui/_next/static/chunks/7510496048ab1ad4.js +1 -0
  286. package/dist/ui/_next/static/chunks/7636f89f38cbc3e3.js +1 -0
  287. package/dist/ui/_next/static/chunks/782a93ec4348b666.js +1 -0
  288. package/dist/ui/_next/static/chunks/7850bbac1925646c.js +1 -0
  289. package/dist/ui/_next/static/chunks/790dcc1e825d2504.js +1 -0
  290. package/dist/ui/_next/static/chunks/798597a1c1248d29.js +1 -0
  291. package/dist/ui/_next/static/chunks/7a70641f70a5c72d.js +60 -0
  292. package/dist/ui/_next/static/chunks/7c62789391c35dce.js +1 -0
  293. package/dist/ui/_next/static/chunks/7d533d3f2ab624f2.js +1 -0
  294. package/dist/ui/_next/static/chunks/7d6087c3fabf9ded.js +1 -0
  295. package/dist/ui/_next/static/chunks/7d84c9cb810e6902.js +1 -0
  296. package/dist/ui/_next/static/chunks/7dc4f5ba8c25c409.js +1 -0
  297. package/dist/ui/_next/static/chunks/7e10c0644fbb99d1.js +1 -0
  298. package/dist/ui/_next/static/chunks/7e7aaacf104c17f4.js +1 -0
  299. package/dist/ui/_next/static/chunks/7e92979509de57ed.js +1 -0
  300. package/dist/ui/_next/static/chunks/7f9a52e36f9f001e.js +1 -0
  301. package/dist/ui/_next/static/chunks/7fc4ae2e7cf2e37e.js +1 -0
  302. package/dist/ui/_next/static/chunks/801232fdde8ce252.js +1 -0
  303. package/dist/ui/_next/static/chunks/808ed0f189237446.js +1 -0
  304. package/dist/ui/_next/static/chunks/8199e6b3fa54b2ff.js +1 -0
  305. package/dist/ui/_next/static/chunks/81fa0fa05a94eb02.js +1 -0
  306. package/dist/ui/_next/static/chunks/821b5389566b82d2.js +1 -0
  307. package/dist/ui/_next/static/chunks/82b9e04f88e657df.js +1 -0
  308. package/dist/ui/_next/static/chunks/830c79cc12f2c5a4.js +1 -0
  309. package/dist/ui/_next/static/chunks/8388ae863590404b.js +4 -0
  310. package/dist/ui/_next/static/chunks/83ab70f11a82a8c6.js +1 -0
  311. package/dist/ui/_next/static/chunks/83faf7904ac18d7f.js +1 -0
  312. package/dist/ui/_next/static/chunks/850d850bd879606f.js +1 -0
  313. package/dist/ui/_next/static/chunks/864d4b5cf4ae2226.js +1 -0
  314. package/dist/ui/_next/static/chunks/86d8962196053f53.js +139 -0
  315. package/dist/ui/_next/static/chunks/8723d7000b263475.js +1 -0
  316. package/dist/ui/_next/static/chunks/87e5597a4336e2c1.js +1 -0
  317. package/dist/ui/_next/static/chunks/899fe56c4c707c65.js +1 -0
  318. package/dist/ui/_next/static/chunks/8bda52f55493ae9b.js +1 -0
  319. package/dist/ui/_next/static/chunks/8ce5668c3da0679a.js +1 -0
  320. package/dist/ui/_next/static/chunks/8d1c22aafb4783c5.js +1 -0
  321. package/dist/ui/_next/static/chunks/8deda0adfe811d18.js +1 -0
  322. package/dist/ui/_next/static/chunks/8eed597098a27801.js +1 -0
  323. package/dist/ui/_next/static/chunks/8ff7a1947b8d114b.js +1 -0
  324. package/dist/ui/_next/static/chunks/90367a2ee1e720b2.js +1 -0
  325. package/dist/ui/_next/static/chunks/9097640e1931c0de.js +1 -0
  326. package/dist/ui/_next/static/chunks/912457473a4c91c3.js +1 -0
  327. package/dist/ui/_next/static/chunks/91f7dd388c6b88c6.js +1 -0
  328. package/dist/ui/_next/static/chunks/932d4334e5f98b7c.js +1 -0
  329. package/dist/ui/_next/static/chunks/94b1efc14d44707b.js +1 -0
  330. package/dist/ui/_next/static/chunks/956107bc3ba52911.js +1 -0
  331. package/dist/ui/_next/static/chunks/962e5cad8ea716fc.js +36 -0
  332. package/dist/ui/_next/static/chunks/96acf903dff8ecf7.js +1 -0
  333. package/dist/ui/_next/static/chunks/96b274c82c194b4f.js +1 -0
  334. package/dist/ui/_next/static/chunks/96b3c1b1afe3201d.js +1 -0
  335. package/dist/ui/_next/static/chunks/9880c26551206d33.js +1 -0
  336. package/dist/ui/_next/static/chunks/98ea228d01556617.js +1 -0
  337. package/dist/ui/_next/static/chunks/9951c25a8b05148f.js +1 -0
  338. package/dist/ui/_next/static/chunks/9b10895d33be5f6e.js +1 -0
  339. package/dist/ui/_next/static/chunks/9b50a76ddbe4934d.js +1 -0
  340. package/dist/ui/_next/static/chunks/9bbb1c0146042008.js +1 -0
  341. package/dist/ui/_next/static/chunks/9ccab70823e99451.js +1 -0
  342. package/dist/ui/_next/static/chunks/9cd7bcb29e0b3418.js +24 -0
  343. package/dist/ui/_next/static/chunks/9d06bd5d701ace73.js +1 -0
  344. package/dist/ui/_next/static/chunks/9e5d9fc30c12fbdd.js +1 -0
  345. package/dist/ui/_next/static/chunks/9ec3bc5544bcc15a.js +1 -0
  346. package/dist/ui/_next/static/chunks/9f47133184a7455a.js +1 -0
  347. package/dist/ui/_next/static/chunks/a002d3850b7c7c59.js +1 -0
  348. package/dist/ui/_next/static/chunks/a0bc5573cadd1377.js +1 -0
  349. package/dist/ui/_next/static/chunks/a1d3de9e7615662e.js +160 -0
  350. package/dist/ui/_next/static/chunks/a2ce60768a8373e7.js +1 -0
  351. package/dist/ui/_next/static/chunks/a305087b1a55b367.js +1 -0
  352. package/dist/ui/_next/static/chunks/a41df0d443f66c68.js +1 -0
  353. package/dist/ui/_next/static/chunks/a49d2e9f31886b5e.js +1 -0
  354. package/dist/ui/_next/static/chunks/a50922e0883f65cd.js +1 -0
  355. package/dist/ui/_next/static/chunks/a60e84ee8b6c5ffc.js +43 -0
  356. package/dist/ui/_next/static/chunks/a6dad97d9634a72d.js +1 -0
  357. package/dist/ui/_next/static/chunks/a6dad97d9634a72d.js.map +1 -0
  358. package/dist/ui/_next/static/chunks/a7c40c289b5e2384.js +1 -0
  359. package/dist/ui/_next/static/chunks/a7fdfeea5fd894c1.js +59 -0
  360. package/dist/ui/_next/static/chunks/a81381241f4f484c.js +1 -0
  361. package/dist/ui/_next/static/chunks/a8a3989305bcc136.js +215 -0
  362. package/dist/ui/_next/static/chunks/a8cf26088e63128c.js +1 -0
  363. package/dist/ui/_next/static/chunks/aac4ca816d9ccdb6.js +1 -0
  364. package/dist/ui/_next/static/chunks/ab432bc28a971c8f.js +1 -0
  365. package/dist/ui/_next/static/chunks/abccff1b09b6effa.js +1 -0
  366. package/dist/ui/_next/static/chunks/ac8a8986f09ec520.js +1 -0
  367. package/dist/ui/_next/static/chunks/accbf306b5ddb732.js +1 -0
  368. package/dist/ui/_next/static/chunks/af7b09aba1d477ff.js +1 -0
  369. package/dist/ui/_next/static/chunks/af8114430894d79e.js +1 -0
  370. package/dist/ui/_next/static/chunks/afe2ff5d0727a240.js +1 -0
  371. package/dist/ui/_next/static/chunks/b096fa008120f0ae.js +1 -0
  372. package/dist/ui/_next/static/chunks/b0bc568eaff56dad.js +1 -0
  373. package/dist/ui/_next/static/chunks/b225dddc0852f85c.js +215 -0
  374. package/dist/ui/_next/static/chunks/b2342c5099957971.js +1 -0
  375. package/dist/ui/_next/static/chunks/b2d8c64d7d6a06b7.js +1 -0
  376. package/dist/ui/_next/static/chunks/b331c855cfc8fd57.js +1 -0
  377. package/dist/ui/_next/static/chunks/b356ee8615740392.js +1 -0
  378. package/dist/ui/_next/static/chunks/b3beaac9b7957d3f.js +1 -0
  379. package/dist/ui/_next/static/chunks/b4e7d4a109c4c080.js +1 -0
  380. package/dist/ui/_next/static/chunks/b5010f2ea9df9d00.js +77 -0
  381. package/dist/ui/_next/static/chunks/b5f9d21bd1b51a48.js +1 -0
  382. package/dist/ui/_next/static/chunks/b6a16eb77c5c9831.js +1 -0
  383. package/dist/ui/_next/static/chunks/b6a8e7c2216683ca.js +262 -0
  384. package/dist/ui/_next/static/chunks/b873c4d327a450e0.js +1 -0
  385. package/dist/ui/_next/static/chunks/b8aec8caed569fd2.js +24 -0
  386. package/dist/ui/_next/static/chunks/b8e7601e2379fd74.js +1 -0
  387. package/dist/ui/_next/static/chunks/ba3d03bf2f33f2a3.js +1 -0
  388. package/dist/ui/_next/static/chunks/ba698805336b2cb2.js +1 -0
  389. package/dist/ui/_next/static/chunks/bc48735eee7d1345.js +1 -0
  390. package/dist/ui/_next/static/chunks/bcb48aab1bdae96a.js +1 -0
  391. package/dist/ui/_next/static/chunks/bde2ca9d150d96ff.js +1 -0
  392. package/dist/ui/_next/static/chunks/be4af851547fc916.js +1 -0
  393. package/dist/ui/_next/static/chunks/be70ba8c4ba5cdb6.js +1 -0
  394. package/dist/ui/_next/static/chunks/be87578ee895734b.js +1 -0
  395. package/dist/ui/_next/static/chunks/c0aeb40fcca7d006.js +1 -0
  396. package/dist/ui/_next/static/chunks/c32156843c32ebca.js +1 -0
  397. package/dist/ui/_next/static/chunks/c57a3e045f3722c1.js +1 -0
  398. package/dist/ui/_next/static/chunks/c5add23cde4a234a.js +1 -0
  399. package/dist/ui/_next/static/chunks/c60897f3554a9388.js +1 -0
  400. package/dist/ui/_next/static/chunks/c648a36722afd12a.js +1 -0
  401. package/dist/ui/_next/static/chunks/c652f05e0a0d7b81.js +1 -0
  402. package/dist/ui/_next/static/chunks/c678d9303ed453b4.js +1 -0
  403. package/dist/ui/_next/static/chunks/c681430c24597d06.js +1 -0
  404. package/dist/ui/_next/static/chunks/c890870fb65940bc.js +1 -0
  405. package/dist/ui/_next/static/chunks/c94c394aeec71e21.js +1 -0
  406. package/dist/ui/_next/static/chunks/ca1eb1e2978389e4.js +1 -0
  407. package/dist/ui/_next/static/chunks/ca3512025a981c82.js +1 -0
  408. package/dist/ui/_next/static/chunks/ca6db0d999bad46b.js +1 -0
  409. package/dist/ui/_next/static/chunks/ca926babdf75597c.js +1 -0
  410. package/dist/ui/_next/static/chunks/cb0877764d4a31f2.js +1 -0
  411. package/dist/ui/_next/static/chunks/cb15e0c2ff49cf52.js +1 -0
  412. package/dist/ui/_next/static/chunks/cb1ae84204260ecd.js +1 -0
  413. package/dist/ui/_next/static/chunks/cb2ef733c53d80f7.js +1 -0
  414. package/dist/ui/_next/static/chunks/cbaa87ba8930fb75.js +1 -0
  415. package/dist/ui/_next/static/chunks/cbd29ba61906e19f.js +1 -0
  416. package/dist/ui/_next/static/chunks/ccf1e618faea3d02.js +148 -0
  417. package/dist/ui/_next/static/chunks/cd91712ea04f43ba.js +13 -0
  418. package/dist/ui/_next/static/chunks/cdd85dc039d450f3.js +1 -0
  419. package/dist/ui/_next/static/chunks/ce663833f73b1ec5.js +1 -0
  420. package/dist/ui/_next/static/chunks/ceda8fcac21d8e70.js +1 -0
  421. package/dist/ui/_next/static/chunks/cf565875b66f8cad.js +1 -0
  422. package/dist/ui/_next/static/chunks/d127ded39a594c84.js +1 -0
  423. package/dist/ui/_next/static/chunks/d34124988f5b8f6d.js +1 -0
  424. package/dist/ui/_next/static/chunks/d36807add3e11d59.js +60 -0
  425. package/dist/ui/_next/static/chunks/d3f2e4603faebed8.js +1 -0
  426. package/dist/ui/_next/static/chunks/d414302c23047b9b.js +1 -0
  427. package/dist/ui/_next/static/chunks/d42adc0237103e65.js +1 -0
  428. package/dist/ui/_next/static/chunks/d4a06b205f0a641b.js +1 -0
  429. package/dist/ui/_next/static/chunks/d4e5289ace3acef0.js +1 -0
  430. package/dist/ui/_next/static/chunks/d53b4725d3328076.js +1 -0
  431. package/dist/ui/_next/static/chunks/d5bd04634f922925.js +1 -0
  432. package/dist/ui/_next/static/chunks/d642c9229900dc48.js +1 -0
  433. package/dist/ui/_next/static/chunks/d6651bb78c09d144.js +5 -0
  434. package/dist/ui/_next/static/chunks/d7276c56aa62ceed.js +1 -0
  435. package/dist/ui/_next/static/chunks/d85cd9cda46f2d1b.js +1 -0
  436. package/dist/ui/_next/static/chunks/d8978f4b468bbad4.js +1 -0
  437. package/dist/ui/_next/static/chunks/d8fb9668a83c0603.js +1 -0
  438. package/dist/ui/_next/static/chunks/d95c62472fc41baf.js +1 -0
  439. package/dist/ui/_next/static/chunks/da13170b983f7ebf.js +1 -0
  440. package/dist/ui/_next/static/chunks/dae86e12c7741e6c.js +19 -0
  441. package/dist/ui/_next/static/chunks/db44023a744297d1.js +1 -0
  442. package/dist/ui/_next/static/chunks/dbe7840308be36b8.js +1 -0
  443. package/dist/ui/_next/static/chunks/dc0a4df8f7080b29.js +1 -0
  444. package/dist/ui/_next/static/chunks/dc4a6f59be156511.js +1 -0
  445. package/dist/ui/_next/static/chunks/dcda5e7b57ed88e0.js +1 -0
  446. package/dist/ui/_next/static/chunks/de9ff8c97f75b947.js +1 -0
  447. package/dist/ui/_next/static/chunks/df6abcdb3eb0b236.js +1 -0
  448. package/dist/ui/_next/static/chunks/df8a0933ca385a63.js +1 -0
  449. package/dist/ui/_next/static/chunks/dff6434c44c2dfaa.js +1 -0
  450. package/dist/ui/_next/static/chunks/e037ec5e62b2bdc3.js +1 -0
  451. package/dist/ui/_next/static/chunks/e212cf1f5a503899.js +1 -0
  452. package/dist/ui/_next/static/chunks/e2bfdac0a2305cc1.js +1 -0
  453. package/dist/ui/_next/static/chunks/e2dce648399ad4d4.js +1 -0
  454. package/dist/ui/_next/static/chunks/e318291bb8d74aee.js +1 -0
  455. package/dist/ui/_next/static/chunks/e33e40c2e7ab7629.js +1 -0
  456. package/dist/ui/_next/static/chunks/e410dfbcccddc478.js +1 -0
  457. package/dist/ui/_next/static/chunks/e411d58b52ab342b.js +1 -0
  458. package/dist/ui/_next/static/chunks/e57f7ffd0803a922.js +117 -0
  459. package/dist/ui/_next/static/chunks/e6b56ceb762e84c4.js +1 -0
  460. package/dist/ui/_next/static/chunks/e6d9a6ca68017eef.js +1 -0
  461. package/dist/ui/_next/static/chunks/e6ec2663605cf5a7.js +29 -0
  462. package/dist/ui/_next/static/chunks/e834330589be0639.js +1 -0
  463. package/dist/ui/_next/static/chunks/e8f662ba8bc76802.js +1 -0
  464. package/dist/ui/_next/static/chunks/e9e8e72d7ff45812.js +1 -0
  465. package/dist/ui/_next/static/chunks/eadd25eb66104a63.js +1 -0
  466. package/dist/ui/_next/static/chunks/ec3a7a7f48a8aca9.js +1 -0
  467. package/dist/ui/_next/static/chunks/ed62e349fb1ce14c.js +1 -0
  468. package/dist/ui/_next/static/chunks/ed6caa113f5769a5.js +1 -0
  469. package/dist/ui/_next/static/chunks/f02ac565bb5bc450.js +1 -0
  470. package/dist/ui/_next/static/chunks/f1a7a173e3da4ff4.js +1 -0
  471. package/dist/ui/_next/static/chunks/f268093817d3b260.js +1 -0
  472. package/dist/ui/_next/static/chunks/f6f811ccfe79e963.js +1 -0
  473. package/dist/ui/_next/static/chunks/f8955634331fd956.js +1 -0
  474. package/dist/ui/_next/static/chunks/f8c965a996875e30.js +56 -0
  475. package/dist/ui/_next/static/chunks/f9bb8411d37b06d7.js +1 -0
  476. package/dist/ui/_next/static/chunks/f9d4f77d8c130497.js +1 -0
  477. package/dist/ui/_next/static/chunks/fba113a516eb485f.js +1 -0
  478. package/dist/ui/_next/static/chunks/fc069e49a569d83c.js +1 -0
  479. package/dist/ui/_next/static/chunks/fc245016ffebdde3.js +1 -0
  480. package/dist/ui/_next/static/chunks/fc2d01d74dcf3921.js +1 -0
  481. package/dist/ui/_next/static/chunks/fe2ad0e00041a87d.js +1 -0
  482. package/dist/ui/_next/static/chunks/fe571740188dea3a.js +1 -0
  483. package/dist/ui/_next/static/chunks/turbopack-a5ce95b200d58f7a.js +4 -0
  484. package/dist/ui/_next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  485. package/dist/ui/_next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  486. package/dist/ui/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  487. package/dist/ui/_next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  488. package/dist/ui/_next/static/media/KaTeX_AMS-Regular.892f691b.ttf +0 -0
  489. package/dist/ui/_next/static/media/KaTeX_AMS-Regular.c30af439.woff2 +0 -0
  490. package/dist/ui/_next/static/media/KaTeX_AMS-Regular.e6a3cada.woff +0 -0
  491. package/dist/ui/_next/static/media/KaTeX_Caligraphic-Bold.2f97783e.woff +0 -0
  492. package/dist/ui/_next/static/media/KaTeX_Caligraphic-Bold.a36b8125.ttf +0 -0
  493. package/dist/ui/_next/static/media/KaTeX_Caligraphic-Bold.db991531.woff2 +0 -0
  494. package/dist/ui/_next/static/media/KaTeX_Caligraphic-Regular.2b13f013.woff +0 -0
  495. package/dist/ui/_next/static/media/KaTeX_Caligraphic-Regular.7c50032c.ttf +0 -0
  496. package/dist/ui/_next/static/media/KaTeX_Caligraphic-Regular.c20eee08.woff2 +0 -0
  497. package/dist/ui/_next/static/media/KaTeX_Fraktur-Bold.5fa2f5e4.woff +0 -0
  498. package/dist/ui/_next/static/media/KaTeX_Fraktur-Bold.d514bd28.woff2 +0 -0
  499. package/dist/ui/_next/static/media/KaTeX_Fraktur-Bold.e311399d.ttf +0 -0
  500. package/dist/ui/_next/static/media/KaTeX_Fraktur-Regular.18139813.woff +0 -0
  501. package/dist/ui/_next/static/media/KaTeX_Fraktur-Regular.2a73476d.ttf +0 -0
  502. package/dist/ui/_next/static/media/KaTeX_Fraktur-Regular.5d62e468.woff2 +0 -0
  503. package/dist/ui/_next/static/media/KaTeX_Main-Bold.6d137c77.ttf +0 -0
  504. package/dist/ui/_next/static/media/KaTeX_Main-Bold.c24b5ba7.woff +0 -0
  505. package/dist/ui/_next/static/media/KaTeX_Main-Bold.f4e2828d.woff2 +0 -0
  506. package/dist/ui/_next/static/media/KaTeX_Main-BoldItalic.079b33ae.woff +0 -0
  507. package/dist/ui/_next/static/media/KaTeX_Main-BoldItalic.c003d3ec.ttf +0 -0
  508. package/dist/ui/_next/static/media/KaTeX_Main-BoldItalic.f1884480.woff2 +0 -0
  509. package/dist/ui/_next/static/media/KaTeX_Main-Italic.26a3619b.woff +0 -0
  510. package/dist/ui/_next/static/media/KaTeX_Main-Italic.61da3e93.ttf +0 -0
  511. package/dist/ui/_next/static/media/KaTeX_Main-Italic.a3746929.woff2 +0 -0
  512. package/dist/ui/_next/static/media/KaTeX_Main-Regular.12644167.woff2 +0 -0
  513. package/dist/ui/_next/static/media/KaTeX_Main-Regular.876b86ad.ttf +0 -0
  514. package/dist/ui/_next/static/media/KaTeX_Main-Regular.d511f158.woff +0 -0
  515. package/dist/ui/_next/static/media/KaTeX_Math-BoldItalic.5c6a6a93.woff2 +0 -0
  516. package/dist/ui/_next/static/media/KaTeX_Math-BoldItalic.ad4dffd5.woff +0 -0
  517. package/dist/ui/_next/static/media/KaTeX_Math-BoldItalic.e73b3bf0.ttf +0 -0
  518. package/dist/ui/_next/static/media/KaTeX_Math-Italic.03974bc4.ttf +0 -0
  519. package/dist/ui/_next/static/media/KaTeX_Math-Italic.1cd2c488.woff +0 -0
  520. package/dist/ui/_next/static/media/KaTeX_Math-Italic.d8564edb.woff2 +0 -0
  521. package/dist/ui/_next/static/media/KaTeX_SansSerif-Bold.a03f9428.woff2 +0 -0
  522. package/dist/ui/_next/static/media/KaTeX_SansSerif-Bold.d4608ed5.ttf +0 -0
  523. package/dist/ui/_next/static/media/KaTeX_SansSerif-Bold.ff51ef5c.woff +0 -0
  524. package/dist/ui/_next/static/media/KaTeX_SansSerif-Italic.8ed740d6.woff +0 -0
  525. package/dist/ui/_next/static/media/KaTeX_SansSerif-Italic.9245afda.woff2 +0 -0
  526. package/dist/ui/_next/static/media/KaTeX_SansSerif-Italic.c0b22b1e.ttf +0 -0
  527. package/dist/ui/_next/static/media/KaTeX_SansSerif-Regular.128c9bc2.woff2 +0 -0
  528. package/dist/ui/_next/static/media/KaTeX_SansSerif-Regular.156dbd4e.ttf +0 -0
  529. package/dist/ui/_next/static/media/KaTeX_SansSerif-Regular.ee7b0a16.woff +0 -0
  530. package/dist/ui/_next/static/media/KaTeX_Script-Regular.00d9a561.ttf +0 -0
  531. package/dist/ui/_next/static/media/KaTeX_Script-Regular.186c7155.woff2 +0 -0
  532. package/dist/ui/_next/static/media/KaTeX_Script-Regular.afc2fd5a.woff +0 -0
  533. package/dist/ui/_next/static/media/KaTeX_Size1-Regular.4450ef36.woff2 +0 -0
  534. package/dist/ui/_next/static/media/KaTeX_Size1-Regular.9aaff96b.ttf +0 -0
  535. package/dist/ui/_next/static/media/KaTeX_Size1-Regular.e5bf4c74.woff +0 -0
  536. package/dist/ui/_next/static/media/KaTeX_Size2-Regular.6a97527b.woff2 +0 -0
  537. package/dist/ui/_next/static/media/KaTeX_Size2-Regular.8fbd32af.woff +0 -0
  538. package/dist/ui/_next/static/media/KaTeX_Size2-Regular.f11810ed.ttf +0 -0
  539. package/dist/ui/_next/static/media/KaTeX_Size3-Regular.45ae8eba.woff +0 -0
  540. package/dist/ui/_next/static/media/KaTeX_Size3-Regular.54b7ce9d.woff2 +0 -0
  541. package/dist/ui/_next/static/media/KaTeX_Size3-Regular.9812ade2.ttf +0 -0
  542. package/dist/ui/_next/static/media/KaTeX_Size4-Regular.44a4d487.ttf +0 -0
  543. package/dist/ui/_next/static/media/KaTeX_Size4-Regular.927fc5b9.woff2 +0 -0
  544. package/dist/ui/_next/static/media/KaTeX_Size4-Regular.b211e3d3.woff +0 -0
  545. package/dist/ui/_next/static/media/KaTeX_Typewriter-Regular.68b6c3a9.woff +0 -0
  546. package/dist/ui/_next/static/media/KaTeX_Typewriter-Regular.a1a7ff52.ttf +0 -0
  547. package/dist/ui/_next/static/media/KaTeX_Typewriter-Regular.ff99d643.woff2 +0 -0
  548. package/dist/ui/_next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  549. package/dist/ui/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  550. package/dist/ui/_next/static/media/favicon.0b3bf435.ico +0 -0
  551. package/dist/ui/_not-found/__next._full.txt +18 -0
  552. package/dist/ui/_not-found/__next._head.txt +6 -0
  553. package/dist/ui/_not-found/__next._index.txt +9 -0
  554. package/dist/ui/_not-found/__next._not-found.__PAGE__.txt +5 -0
  555. package/dist/ui/_not-found/__next._not-found.txt +4 -0
  556. package/dist/ui/_not-found/__next._tree.txt +3 -0
  557. package/dist/ui/_not-found/index.html +1 -0
  558. package/dist/ui/_not-found/index.txt +18 -0
  559. package/dist/ui/favicon.ico +0 -0
  560. package/dist/ui/file.svg +1 -0
  561. package/dist/ui/globe.svg +1 -0
  562. package/dist/ui/index.html +1 -0
  563. package/dist/ui/index.txt +25 -0
  564. package/dist/ui/next.svg +1 -0
  565. package/dist/ui/vercel.svg +1 -0
  566. package/dist/ui/window.svg +1 -0
  567. package/dist/utils/chat-model.d.ts +11 -0
  568. package/dist/utils/chat-model.js +37 -0
  569. package/dist/utils/diff-parser.d.ts +20 -0
  570. package/dist/utils/diff-parser.js +100 -0
  571. package/dist/utils/proxy-manager.d.ts +18 -0
  572. package/dist/utils/proxy-manager.js +42 -0
  573. package/dist/utils/remote-proxy.d.ts +40 -0
  574. package/dist/utils/remote-proxy.js +145 -0
  575. package/dist/utils/worktree-paths.d.ts +13 -0
  576. package/dist/utils/worktree-paths.js +64 -0
  577. package/dist/virtual-ws-adapter.d.ts +26 -0
  578. package/dist/virtual-ws-adapter.js +54 -0
  579. package/package.json +19 -0
@@ -0,0 +1,511 @@
1
+ import fp from "fastify-plugin";
2
+ import { mkdir } from "fs/promises";
3
+ import { proxyToRemoteAuto } from "../utils/remote-proxy.js";
4
+ import { resolveWorktreePath, getWorktreeBaseForProject, getWorktreeBranches, parseGitWorktreeList } from "../utils/worktree-paths.js";
5
+ import { requireAuth } from "../server.js";
6
+ import "../server-types.js";
7
+ function getRemoteConfig(fastify, project) {
8
+ // Check project_remotes table first (new approach)
9
+ const remotes = fastify.storage.projectRemotes.getByProject(project.id);
10
+ if (remotes.length > 0) {
11
+ const primary = remotes[0]; // sorted by sort_order
12
+ return {
13
+ serverId: primary.remote_server_id,
14
+ url: primary.server_url ?? "",
15
+ apiKey: primary.server_api_key ?? "",
16
+ remotePath: primary.remote_path,
17
+ };
18
+ }
19
+ // Fallback to legacy project fields
20
+ if (project.remote_url && project.remote_api_key && project.remote_path) {
21
+ return {
22
+ serverId: "",
23
+ url: project.remote_url,
24
+ apiKey: project.remote_api_key,
25
+ remotePath: project.remote_path,
26
+ };
27
+ }
28
+ return null;
29
+ }
30
+ const routes = async (fastify) => {
31
+ // ==================== Path-based worktree API ====================
32
+ // Get branches for a path
33
+ fastify.get("/api/path/branches", async (req, reply) => {
34
+ const projectPath = req.query.path;
35
+ if (!projectPath) {
36
+ return reply.code(400).send({ error: "Path is required" });
37
+ }
38
+ try {
39
+ const { execSync } = await import("child_process");
40
+ const output = execSync("git branch --format='%(refname:short)'", {
41
+ cwd: projectPath,
42
+ encoding: "utf-8",
43
+ stdio: ["pipe", "pipe", "pipe"],
44
+ });
45
+ const branches = output
46
+ .split("\n")
47
+ .map((b) => b.trim())
48
+ .filter(Boolean);
49
+ return reply.code(200).send({ branches });
50
+ }
51
+ catch (error) {
52
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
53
+ return reply.code(500).send({ error: `Failed to list branches: ${errorMessage}` });
54
+ }
55
+ });
56
+ // Get worktrees for a path
57
+ fastify.get("/api/path/worktrees", async (req, reply) => {
58
+ const projectPath = req.query.path;
59
+ if (!projectPath) {
60
+ return reply.code(400).send({ error: "Path is required" });
61
+ }
62
+ try {
63
+ const worktrees = getWorktreeBranches(projectPath);
64
+ return reply.code(200).send({ worktrees });
65
+ }
66
+ catch (error) {
67
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
68
+ return reply.code(500).send({ error: `Failed to list worktrees: ${errorMessage}` });
69
+ }
70
+ });
71
+ // Create worktree at a path
72
+ fastify.post("/api/path/worktrees", async (req, reply) => {
73
+ const { path: projectPath, branchName, baseBranch } = req.body;
74
+ const requestId = req.headers["x-request-id"] || "local";
75
+ if (!projectPath || !branchName) {
76
+ return reply.code(400).send({ error: "Path and branchName are required" });
77
+ }
78
+ const trimmedBranch = branchName.trim();
79
+ if (!/^[a-zA-Z0-9]/.test(trimmedBranch) || /[^a-zA-Z0-9/_-]/.test(trimmedBranch)) {
80
+ return reply.code(400).send({ error: "Invalid branch name format" });
81
+ }
82
+ const startPoint = baseBranch?.trim() || "main";
83
+ if (/[^a-zA-Z0-9/_.\-]/.test(startPoint)) {
84
+ return reply.code(400).send({ error: "Invalid base branch name format" });
85
+ }
86
+ console.log(`[worktree] ${requestId} Creating: branch=${trimmedBranch}, base=${startPoint}, path=${projectPath}`);
87
+ try {
88
+ const { execSync } = await import("child_process");
89
+ try {
90
+ execSync(`git rev-parse --verify refs/heads/${trimmedBranch}`, {
91
+ cwd: projectPath,
92
+ encoding: "utf-8",
93
+ stdio: ["pipe", "pipe", "pipe"],
94
+ });
95
+ return reply.code(409).send({ error: `Branch '${trimmedBranch}' already exists` });
96
+ }
97
+ catch {
98
+ // Branch doesn't exist, continue
99
+ }
100
+ const worktreeAbsolutePath = resolveWorktreePath(projectPath, trimmedBranch);
101
+ await mkdir(getWorktreeBaseForProject(projectPath), { recursive: true });
102
+ execSync(`git worktree add -b "${trimmedBranch}" "${worktreeAbsolutePath}" "${startPoint}"`, {
103
+ cwd: projectPath,
104
+ encoding: "utf-8",
105
+ stdio: ["pipe", "pipe", "pipe"],
106
+ });
107
+ console.log(`[worktree] ${requestId} Created: branch=${trimmedBranch}`);
108
+ return reply.code(201).send({
109
+ worktree: { branch: trimmedBranch },
110
+ });
111
+ }
112
+ catch (error) {
113
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
114
+ const stderr = error?.stderr || "";
115
+ console.error(`[worktree] ${requestId} Failed: ${errorMessage}${stderr ? `, stderr: ${stderr}` : ""}`);
116
+ return reply.code(500).send({ error: `Failed to create worktree: ${errorMessage}` });
117
+ }
118
+ });
119
+ // Delete worktree at a path
120
+ fastify.delete("/api/path/worktrees", async (req, reply) => {
121
+ const { path: projectPath, branch } = req.body;
122
+ if (!projectPath || !branch) {
123
+ return reply.code(400).send({ error: "Path and branch are required" });
124
+ }
125
+ try {
126
+ const { execSync } = await import("child_process");
127
+ const worktreeAbsPath = resolveWorktreePath(projectPath, branch);
128
+ try {
129
+ const statusOutput = execSync("git status --porcelain", {
130
+ cwd: worktreeAbsPath,
131
+ encoding: "utf-8",
132
+ stdio: ["pipe", "pipe", "pipe"],
133
+ });
134
+ if (statusOutput.trim() !== "") {
135
+ return reply.code(409).send({
136
+ error: "Worktree has uncommitted changes",
137
+ });
138
+ }
139
+ }
140
+ catch {
141
+ // Continue with deletion
142
+ }
143
+ let branchToDelete = null;
144
+ try {
145
+ const entries = parseGitWorktreeList(projectPath);
146
+ const match = entries.find((e) => e.path === worktreeAbsPath);
147
+ if (match)
148
+ branchToDelete = match.branch;
149
+ }
150
+ catch {
151
+ // Continue without branch deletion
152
+ }
153
+ execSync(`git worktree remove "${worktreeAbsPath}"`, {
154
+ cwd: projectPath,
155
+ encoding: "utf-8",
156
+ stdio: ["pipe", "pipe", "pipe"],
157
+ });
158
+ if (branchToDelete) {
159
+ try {
160
+ execSync(`git branch -d "${branchToDelete}"`, {
161
+ cwd: projectPath,
162
+ encoding: "utf-8",
163
+ stdio: ["pipe", "pipe", "pipe"],
164
+ });
165
+ }
166
+ catch {
167
+ // Branch deletion failed, not critical
168
+ }
169
+ }
170
+ return reply.code(200).send({ success: true });
171
+ }
172
+ catch (error) {
173
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
174
+ return reply.code(500).send({ error: `Failed to delete worktree: ${errorMessage}` });
175
+ }
176
+ });
177
+ // ==================== Project-based worktree API ====================
178
+ // 获取项目的 worktrees
179
+ fastify.get("/api/projects/:id/worktrees", async (req, reply) => {
180
+ const userId = requireAuth(req, reply);
181
+ if (userId === null)
182
+ return;
183
+ const project = fastify.storage.projects.getById(req.params.id, userId);
184
+ if (!project) {
185
+ return reply.code(404).send({ error: "Project not found" });
186
+ }
187
+ // Proxy to remote if this is a remote-only project
188
+ const remoteConfig = getRemoteConfig(fastify, project);
189
+ if (!project.path && remoteConfig) {
190
+ const result = await proxyToRemoteAuto(remoteConfig.serverId, remoteConfig.url, remoteConfig.apiKey, "GET", `/api/path/worktrees?path=${encodeURIComponent(remoteConfig.remotePath)}`, undefined, { reverseConnectManager: fastify.reverseConnectManager });
191
+ return reply.code(result.status || 200).send(result.data);
192
+ }
193
+ if (!project.path) {
194
+ return reply.code(400).send({ error: "Project has no local path" });
195
+ }
196
+ try {
197
+ const worktrees = getWorktreeBranches(project.path);
198
+ return reply.code(200).send({ worktrees });
199
+ }
200
+ catch (error) {
201
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
202
+ return reply.code(500).send({ error: `Failed to list worktrees: ${errorMessage}` });
203
+ }
204
+ });
205
+ // Get branches for a project
206
+ fastify.get("/api/projects/:id/branches", async (req, reply) => {
207
+ const userId = requireAuth(req, reply);
208
+ if (userId === null)
209
+ return;
210
+ const project = fastify.storage.projects.getById(req.params.id, userId);
211
+ if (!project) {
212
+ return reply.code(404).send({ error: "Project not found" });
213
+ }
214
+ const target = req.query.target || "local";
215
+ const hasLocal = !!project.path;
216
+ const remoteConfig = getRemoteConfig(fastify, project);
217
+ const hasRemote = !!remoteConfig;
218
+ const proxyBranchesToRemote = async () => {
219
+ const result = await proxyToRemoteAuto(remoteConfig.serverId, remoteConfig.url, remoteConfig.apiKey, "GET", `/api/path/branches?path=${encodeURIComponent(remoteConfig.remotePath)}`, undefined, { reverseConnectManager: fastify.reverseConnectManager });
220
+ return reply.code(result.status || 200).send(result.data);
221
+ };
222
+ if (target === "remote") {
223
+ if (!hasRemote) {
224
+ return reply.code(400).send({ error: "Project has no remote configuration" });
225
+ }
226
+ return proxyBranchesToRemote();
227
+ }
228
+ // target === "local"
229
+ if (!hasLocal && hasRemote) {
230
+ // Remote-only project: proxy to remote
231
+ return proxyBranchesToRemote();
232
+ }
233
+ if (!hasLocal) {
234
+ return reply.code(400).send({ error: "Project has no local path" });
235
+ }
236
+ try {
237
+ const { execSync } = await import("child_process");
238
+ const output = execSync("git branch --format='%(refname:short)'", {
239
+ cwd: project.path,
240
+ encoding: "utf-8",
241
+ stdio: ["pipe", "pipe", "pipe"],
242
+ });
243
+ const branches = output
244
+ .split("\n")
245
+ .map((b) => b.trim())
246
+ .filter(Boolean);
247
+ return reply.code(200).send({ branches });
248
+ }
249
+ catch (error) {
250
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
251
+ return reply.code(500).send({ error: `Failed to list branches: ${errorMessage}` });
252
+ }
253
+ });
254
+ // 删除 git worktree
255
+ fastify.delete("/api/projects/:id/worktrees", async (req, reply) => {
256
+ const userId = requireAuth(req, reply);
257
+ if (userId === null)
258
+ return;
259
+ const project = fastify.storage.projects.getById(req.params.id, userId);
260
+ if (!project) {
261
+ return reply.code(404).send({ error: "Project not found" });
262
+ }
263
+ const { branch } = req.body;
264
+ if (!branch || typeof branch !== "string" || branch.trim() === "") {
265
+ return reply.code(400).send({ error: "Branch is required" });
266
+ }
267
+ const hasLocal = !!project.path;
268
+ const remoteConfig = getRemoteConfig(fastify, project);
269
+ const hasRemote = !!remoteConfig;
270
+ // Remote-only project: proxy to remote
271
+ if (!hasLocal && hasRemote) {
272
+ const result = await proxyToRemoteAuto(remoteConfig.serverId, remoteConfig.url, remoteConfig.apiKey, "DELETE", `/api/path/worktrees`, { path: remoteConfig.remotePath, branch }, { reverseConnectManager: fastify.reverseConnectManager });
273
+ return reply.code(result.status || 200).send(result.data);
274
+ }
275
+ if (!hasLocal) {
276
+ return reply.code(400).send({ error: "Project has no local path" });
277
+ }
278
+ // Local deletion helper
279
+ const deleteLocal = async () => {
280
+ const { execSync } = await import("child_process");
281
+ const worktreeAbsPath = resolveWorktreePath(project.path, branch);
282
+ try {
283
+ const statusOutput = execSync("git status --porcelain", {
284
+ cwd: worktreeAbsPath,
285
+ encoding: "utf-8",
286
+ stdio: ["pipe", "pipe", "pipe"],
287
+ });
288
+ if (statusOutput.trim() !== "") {
289
+ throw new Error("Worktree has uncommitted changes. Please commit or discard changes before deleting.");
290
+ }
291
+ }
292
+ catch (err) {
293
+ if (err instanceof Error && err.message.includes("uncommitted changes"))
294
+ throw err;
295
+ // If git status fails for other reasons, continue with deletion attempt
296
+ }
297
+ let branchToDelete = null;
298
+ try {
299
+ const entries = parseGitWorktreeList(project.path);
300
+ const match = entries.find((e) => e.path === worktreeAbsPath);
301
+ if (match)
302
+ branchToDelete = match.branch;
303
+ }
304
+ catch {
305
+ // Failed to get branch info, continue without deleting branch
306
+ }
307
+ execSync(`git worktree remove "${worktreeAbsPath}"`, {
308
+ cwd: project.path,
309
+ encoding: "utf-8",
310
+ stdio: ["pipe", "pipe", "pipe"],
311
+ });
312
+ if (branchToDelete) {
313
+ try {
314
+ execSync(`git branch -d "${branchToDelete}"`, {
315
+ cwd: project.path,
316
+ encoding: "utf-8",
317
+ stdio: ["pipe", "pipe", "pipe"],
318
+ });
319
+ }
320
+ catch {
321
+ // Branch deletion failed, not critical
322
+ }
323
+ }
324
+ };
325
+ // Local-only project
326
+ if (!hasRemote) {
327
+ try {
328
+ await deleteLocal();
329
+ return reply.code(200).send({ success: true });
330
+ }
331
+ catch (error) {
332
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
333
+ if (errorMessage.includes("uncommitted changes")) {
334
+ return reply.code(409).send({ error: errorMessage });
335
+ }
336
+ return reply.code(500).send({ error: `Failed to delete worktree: ${errorMessage}` });
337
+ }
338
+ }
339
+ // Hybrid project: delete from both local and remote
340
+ const results = {};
341
+ // Delete local first
342
+ try {
343
+ await deleteLocal();
344
+ results.local = { success: true };
345
+ }
346
+ catch (error) {
347
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
348
+ // Local failure: return error immediately, don't attempt remote
349
+ return reply.code(500).send({ error: `Failed to delete local worktree: ${errorMessage}` });
350
+ }
351
+ // Delete remote
352
+ try {
353
+ const remoteResult = await proxyToRemoteAuto(remoteConfig.serverId, remoteConfig.url, remoteConfig.apiKey, "DELETE", `/api/path/worktrees`, { path: remoteConfig.remotePath, branch }, { reverseConnectManager: fastify.reverseConnectManager });
354
+ if (remoteResult.ok) {
355
+ results.remote = { success: true };
356
+ }
357
+ else {
358
+ const remoteData = remoteResult.data;
359
+ results.remote = { success: false, error: remoteData.error || "Remote deletion failed" };
360
+ }
361
+ }
362
+ catch (error) {
363
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
364
+ results.remote = { success: false, error: errorMessage };
365
+ }
366
+ if (!results.remote?.success) {
367
+ return reply.code(207).send({ success: true, results });
368
+ }
369
+ return reply.code(200).send({ success: true, results });
370
+ });
371
+ // 创建新的 git worktree
372
+ fastify.post("/api/projects/:id/worktrees", async (req, reply) => {
373
+ const userId = requireAuth(req, reply);
374
+ if (userId === null)
375
+ return;
376
+ const project = fastify.storage.projects.getById(req.params.id, userId);
377
+ if (!project) {
378
+ return reply.code(404).send({ error: "Project not found" });
379
+ }
380
+ const { branchName, baseBranch, remoteBaseBranch } = req.body;
381
+ if (!branchName || typeof branchName !== "string" || branchName.trim() === "") {
382
+ return reply.code(400).send({ error: "Branch name is required" });
383
+ }
384
+ const trimmedBranch = branchName.trim();
385
+ if (!/^[a-zA-Z0-9]/.test(trimmedBranch) || /[^a-zA-Z0-9/_-]/.test(trimmedBranch)) {
386
+ return reply.code(400).send({ error: "Invalid branch name format" });
387
+ }
388
+ const localStartPoint = baseBranch?.trim() || "main";
389
+ if (/[^a-zA-Z0-9/_.\-]/.test(localStartPoint)) {
390
+ return reply.code(400).send({ error: "Invalid base branch name format" });
391
+ }
392
+ const remoteStartPoint = remoteBaseBranch?.trim() || localStartPoint;
393
+ if (/[^a-zA-Z0-9/_.\-]/.test(remoteStartPoint)) {
394
+ return reply.code(400).send({ error: "Invalid remote base branch name format" });
395
+ }
396
+ // Determine targets
397
+ const hasLocal = !!project.path;
398
+ const remoteConfig = getRemoteConfig(fastify, project);
399
+ const hasRemote = !!remoteConfig;
400
+ let targets;
401
+ if (req.body.targets && req.body.targets.length > 0) {
402
+ targets = req.body.targets;
403
+ }
404
+ else if (!hasLocal && hasRemote) {
405
+ targets = ["remote"];
406
+ }
407
+ else {
408
+ targets = ["local"];
409
+ }
410
+ // Validate targets against project capabilities
411
+ if (targets.includes("local") && !hasLocal) {
412
+ return reply.code(400).send({ error: "Project has no local path" });
413
+ }
414
+ if (targets.includes("remote") && !hasRemote) {
415
+ return reply.code(400).send({ error: "Project has no remote configuration" });
416
+ }
417
+ // Single-target: remote only (backward-compatible path)
418
+ if (targets.length === 1 && targets[0] === "remote") {
419
+ const result = await proxyToRemoteAuto(remoteConfig.serverId, remoteConfig.url, remoteConfig.apiKey, "POST", `/api/path/worktrees`, { path: remoteConfig.remotePath, branchName: trimmedBranch, baseBranch: remoteStartPoint }, { reverseConnectManager: fastify.reverseConnectManager });
420
+ return reply.code(result.status || 201).send(result.data);
421
+ }
422
+ // Local creation helper
423
+ const createLocal = async () => {
424
+ const { execSync } = await import("child_process");
425
+ try {
426
+ execSync(`git rev-parse --verify refs/heads/${trimmedBranch}`, {
427
+ cwd: project.path,
428
+ encoding: "utf-8",
429
+ stdio: ["pipe", "pipe", "pipe"],
430
+ });
431
+ throw new Error(`Branch '${trimmedBranch}' already exists`);
432
+ }
433
+ catch (err) {
434
+ // If it's our own "already exists" error, rethrow
435
+ if (err instanceof Error && err.message.includes("already exists"))
436
+ throw err;
437
+ // Otherwise branch doesn't exist, which is what we want
438
+ }
439
+ const worktreeAbsolutePath = resolveWorktreePath(project.path, trimmedBranch);
440
+ await mkdir(getWorktreeBaseForProject(project.path), { recursive: true });
441
+ execSync(`git worktree add -b "${trimmedBranch}" "${worktreeAbsolutePath}" "${localStartPoint}"`, {
442
+ cwd: project.path,
443
+ encoding: "utf-8",
444
+ stdio: ["pipe", "pipe", "pipe"],
445
+ });
446
+ return { branch: trimmedBranch };
447
+ };
448
+ // Single-target: local only (backward-compatible path)
449
+ if (targets.length === 1 && targets[0] === "local") {
450
+ try {
451
+ const worktree = await createLocal();
452
+ return reply.code(201).send({ worktree });
453
+ }
454
+ catch (error) {
455
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
456
+ if (errorMessage.includes("already exists")) {
457
+ return reply.code(409).send({ error: errorMessage });
458
+ }
459
+ return reply.code(500).send({ error: `Failed to create worktree: ${errorMessage}` });
460
+ }
461
+ }
462
+ // Multi-target: local + remote
463
+ const results = {};
464
+ // Local first
465
+ let localWorktree;
466
+ try {
467
+ localWorktree = await createLocal();
468
+ results.local = { success: true, worktree: localWorktree };
469
+ }
470
+ catch (error) {
471
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
472
+ // Local failure: return error immediately, don't attempt remote
473
+ return reply.code(500).send({ error: `Failed to create local worktree: ${errorMessage}` });
474
+ }
475
+ // Remote second
476
+ console.log(`[worktree] Creating remote worktree: project=${req.params.id}, branch=${trimmedBranch}, serverId=${remoteConfig.serverId}, url=${remoteConfig.url}`);
477
+ try {
478
+ const remoteResult = await proxyToRemoteAuto(remoteConfig.serverId, remoteConfig.url, remoteConfig.apiKey, "POST", `/api/path/worktrees`, { path: remoteConfig.remotePath, branchName: trimmedBranch, baseBranch: remoteStartPoint }, { reverseConnectManager: fastify.reverseConnectManager });
479
+ if (remoteResult.ok) {
480
+ const remoteData = remoteResult.data;
481
+ results.remote = { success: true, worktree: remoteData.worktree };
482
+ }
483
+ else {
484
+ const remoteData = remoteResult.data;
485
+ console.error(`[worktree] Remote failed: requestId=${remoteResult.requestId}, errorCode=${remoteResult.errorCode}, status=${remoteResult.status}, duration=${remoteResult.durationMs}ms, error=${JSON.stringify(remoteResult.data)}`);
486
+ results.remote = {
487
+ success: false,
488
+ error: remoteData.error || "Remote creation failed",
489
+ errorCode: remoteResult.errorCode,
490
+ requestId: remoteResult.requestId,
491
+ };
492
+ }
493
+ }
494
+ catch (error) {
495
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
496
+ results.remote = { success: false, error: errorMessage };
497
+ }
498
+ // If remote failed, return 207 partial success
499
+ if (!results.remote?.success) {
500
+ return reply.code(207).send({
501
+ worktree: localWorktree,
502
+ results,
503
+ });
504
+ }
505
+ return reply.code(201).send({
506
+ worktree: localWorktree,
507
+ results,
508
+ });
509
+ });
510
+ };
511
+ export default fp(routes, { name: "worktree-routes" });
@@ -0,0 +1,41 @@
1
+ import type { Storage } from "./storage/types.js";
2
+ import type { ProcessManager } from "./process-manager.js";
3
+ import type { AgentSessionManager } from "./agent-session-manager.js";
4
+ import type { ChatSessionManager } from "./chat-session-manager.js";
5
+ import type { EventBus } from "./event-bus.js";
6
+ import type { ProxyManager } from "./utils/proxy-manager.js";
7
+ import type { RemotePatchCache } from "./remote-patch-cache.js";
8
+ import type { ReverseConnectManager } from "./reverse-connect-manager.js";
9
+ import type { BrowserManager } from "./browser-manager.js";
10
+ export interface RemoteExecutorInfo {
11
+ remoteServerId: string;
12
+ remoteUrl: string;
13
+ remoteApiKey: string;
14
+ remoteProcessId: string;
15
+ executorId: string;
16
+ projectId?: string;
17
+ branch?: string | null;
18
+ }
19
+ export interface RemoteSessionInfo {
20
+ remoteServerId: string;
21
+ remoteUrl: string;
22
+ remoteApiKey: string;
23
+ remoteSessionId: string;
24
+ branch?: string | null;
25
+ }
26
+ declare module "fastify" {
27
+ interface FastifyInstance {
28
+ storage: Storage;
29
+ processManager: ProcessManager;
30
+ agentSessionManager: AgentSessionManager;
31
+ chatSessionManager: ChatSessionManager;
32
+ remoteExecutorMap: Map<string, RemoteExecutorInfo>;
33
+ remoteSessionMap: Map<string, RemoteSessionInfo>;
34
+ eventBus: EventBus;
35
+ proxyManager: ProxyManager;
36
+ remotePatchCache: RemotePatchCache;
37
+ reverseConnectManager: ReverseConnectManager;
38
+ authEnabled: boolean;
39
+ browserManager: BrowserManager;
40
+ }
41
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ import fastify from "fastify";
2
+ import type { FastifyRequest, FastifyReply } from "fastify";
3
+ import type { Storage } from "./storage/types.js";
4
+ import "./server-types.js";
5
+ /**
6
+ * Check auth and send 401 if unauthorized. Returns userId (or undefined in no-auth mode).
7
+ * Returns null if reply was sent (caller should return early).
8
+ */
9
+ export declare function requireAuth(req: FastifyRequest, reply: FastifyReply): string | undefined | null;
10
+ export declare const createServer: (opts: {
11
+ storage: Storage;
12
+ authEnabled?: boolean;
13
+ }) => Promise<{
14
+ start: (port: number) => Promise<string>;
15
+ startLocal: (port: number) => Promise<{
16
+ url: string;
17
+ port: number;
18
+ instance: fastify.FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, fastify.FastifyBaseLogger, fastify.FastifyTypeProviderDefault> & PromiseLike<fastify.FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, fastify.FastifyBaseLogger, fastify.FastifyTypeProviderDefault>> & {
19
+ __linterBrands: "SafePromiseLike";
20
+ };
21
+ }>;
22
+ close: () => Promise<void>;
23
+ }>;