@baochunli/flakes 0.0.4 → 0.0.5

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 (290) hide show
  1. package/dist/commands/host.d.ts.map +1 -1
  2. package/dist/commands/host.js +76 -2
  3. package/dist/commands/host.js.map +1 -1
  4. package/dist/commands/projects.d.ts +4 -0
  5. package/dist/commands/projects.d.ts.map +1 -0
  6. package/dist/commands/projects.js +133 -0
  7. package/dist/commands/projects.js.map +1 -0
  8. package/dist/commands/runs.d.ts.map +1 -1
  9. package/dist/commands/runs.js +5 -1
  10. package/dist/commands/runs.js.map +1 -1
  11. package/dist/commands/runtime.d.ts +0 -1
  12. package/dist/commands/runtime.d.ts.map +1 -1
  13. package/dist/commands/runtime.js +2 -280
  14. package/dist/commands/runtime.js.map +1 -1
  15. package/dist/commands/server.d.ts.map +1 -1
  16. package/dist/commands/server.js +0 -6
  17. package/dist/commands/server.js.map +1 -1
  18. package/dist/config-example.js +1 -1
  19. package/dist/config-example.js.map +1 -1
  20. package/dist/host-config.d.ts +1 -6
  21. package/dist/host-config.d.ts.map +1 -1
  22. package/dist/host-config.js +10 -28
  23. package/dist/host-config.js.map +1 -1
  24. package/dist/host-runner.d.ts +3 -0
  25. package/dist/host-runner.d.ts.map +1 -1
  26. package/dist/host-runner.js +18 -6
  27. package/dist/host-runner.js.map +1 -1
  28. package/dist/host-runtime.d.ts.map +1 -1
  29. package/dist/host-runtime.js +92 -2
  30. package/dist/host-runtime.js.map +1 -1
  31. package/dist/host-transport.js +2 -5
  32. package/dist/host-transport.js.map +1 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +19 -28
  35. package/dist/index.js.map +1 -1
  36. package/dist/node_modules/@flakes/auth/dist/better-auth-shape.d.ts +10 -0
  37. package/dist/node_modules/@flakes/auth/dist/better-auth-shape.d.ts.map +1 -0
  38. package/dist/node_modules/@flakes/auth/dist/better-auth-shape.js +16 -0
  39. package/dist/node_modules/@flakes/auth/dist/better-auth-shape.js.map +1 -0
  40. package/dist/node_modules/@flakes/auth/package.json +1 -1
  41. package/dist/node_modules/@flakes/console/.output/nitro.json +1 -1
  42. package/dist/node_modules/@flakes/console/.output/public/assets/DocumentationPage-CNPk8RVl.js +1 -0
  43. package/dist/node_modules/@flakes/console/.output/public/assets/ProjectsPage-CKPR1nnu.js +1 -0
  44. package/dist/node_modules/@flakes/console/.output/public/assets/RunPage-BdugbnA3.js +3 -0
  45. package/dist/node_modules/@flakes/console/.output/public/assets/RunsPage-CJbycrqM.js +1 -0
  46. package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesLens-BoLM52PY.js +1 -0
  47. package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesPage-6KHjMeaR.js +1 -0
  48. package/dist/node_modules/@flakes/console/.output/public/assets/TranscriptPage-CHSq0_qN.js +1 -0
  49. package/dist/node_modules/@flakes/console/.output/public/assets/_-CD1Voz9h.js +1 -0
  50. package/dist/node_modules/@flakes/console/.output/public/assets/_runId-_0VPmGYe.js +2 -0
  51. package/dist/node_modules/@flakes/console/.output/public/assets/_taskId-CPAKAp4X.js +2 -0
  52. package/dist/node_modules/@flakes/console/.output/public/assets/account-BoRurhrq.js +1 -0
  53. package/dist/node_modules/@flakes/console/.output/public/assets/account-forms-D4eVqOhW.js +1 -0
  54. package/dist/node_modules/@flakes/console/.output/public/assets/arrow-right-QzVbRzF_.js +1 -0
  55. package/dist/node_modules/@flakes/console/.output/public/assets/auth-layout-DBnq_eif.js +1 -0
  56. package/dist/node_modules/@flakes/console/.output/public/assets/bits-BOMPEHvv.js +1 -0
  57. package/dist/node_modules/@flakes/console/.output/public/assets/card-37qs8AAd.js +1 -0
  58. package/dist/node_modules/@flakes/console/.output/public/assets/circle-alert-CM0SVfzc.js +1 -0
  59. package/dist/node_modules/@flakes/console/.output/public/assets/circle-check-CzwcEElH.js +1 -0
  60. package/dist/node_modules/@flakes/console/.output/public/assets/circle-x-C_sOQVNQ.js +1 -0
  61. package/dist/node_modules/@flakes/console/.output/public/assets/device-FqII-S41.js +1 -0
  62. package/dist/node_modules/@flakes/console/.output/public/assets/dist-BEfdrJTS.js +1 -0
  63. package/dist/node_modules/@flakes/console/.output/public/assets/documentation-2C3ncAuV.js +1 -0
  64. package/dist/node_modules/@flakes/console/.output/public/assets/{external-link-BW8lpiMR.js → external-link-BWhbbPgy.js} +1 -1
  65. package/dist/node_modules/@flakes/console/.output/public/assets/{file-text-DMdy8OfN.js → file-text-DLxLJ7P1.js} +1 -1
  66. package/dist/node_modules/@flakes/console/.output/public/assets/forgot-password-BSQ4TWpA.js +1 -0
  67. package/dist/node_modules/@flakes/console/.output/public/assets/inbox-BVu38EN6.js +1 -0
  68. package/dist/node_modules/@flakes/console/.output/public/assets/{lib-DtfURcG3.js → lib-COfgMmRR.js} +3 -3
  69. package/dist/node_modules/@flakes/console/.output/public/assets/link-ll3nLBSM.js +1 -0
  70. package/dist/node_modules/@flakes/console/.output/public/assets/{lock-D4OhqEPW.js → lock-Ck2SfQA2.js} +1 -1
  71. package/dist/node_modules/@flakes/console/.output/public/assets/main-LpSDdT-S.js +1215 -0
  72. package/dist/node_modules/@flakes/console/.output/public/assets/matchContext-puEkI9BI.js +1 -0
  73. package/dist/node_modules/@flakes/console/.output/public/assets/otp-verification-CussJQT1.js +20 -0
  74. package/dist/node_modules/@flakes/console/.output/public/assets/projects-CLgKBrCe.js +2 -0
  75. package/dist/node_modules/@flakes/console/.output/public/assets/react-B8IZ02wI.js +1 -0
  76. package/dist/node_modules/@flakes/console/.output/public/assets/react-dom-ki7NpxV4.js +1 -0
  77. package/dist/node_modules/@flakes/console/.output/public/assets/redirect-Cu9zBy04.js +1 -0
  78. package/dist/node_modules/@flakes/console/.output/public/assets/reset-password-DwWhVkEh.js +1 -0
  79. package/dist/node_modules/@flakes/console/.output/public/assets/runs-CFYk2iRh.js +2 -0
  80. package/dist/node_modules/@flakes/console/.output/public/assets/sandboxes-mGsOcVFL.js +2 -0
  81. package/dist/node_modules/@flakes/console/.output/public/assets/{save-1uf5fQff.js → save-Bte_1tnN.js} +1 -1
  82. package/dist/node_modules/@flakes/console/.output/public/assets/security-MjM55vIw.js +1 -0
  83. package/dist/node_modules/@flakes/console/.output/public/assets/signin-KbA1cD6o.js +1 -0
  84. package/dist/node_modules/@flakes/console/.output/public/assets/signin-form-CBF-d8iK.js +1 -0
  85. package/dist/node_modules/@flakes/console/.output/public/assets/signup-CbHsThKr.js +1 -0
  86. package/dist/node_modules/@flakes/console/.output/public/assets/styles-DtA2wbW8.css +2 -0
  87. package/dist/node_modules/@flakes/console/.output/public/assets/table-WMIs2m3R.js +1 -0
  88. package/dist/node_modules/@flakes/console/.output/public/assets/tiny-invariant-CO5X59di.js +1 -0
  89. package/dist/node_modules/@flakes/console/.output/public/assets/user-Bt9z7sSI.js +1 -0
  90. package/dist/node_modules/@flakes/console/.output/public/assets/utils-CBxvVKOM.js +1 -0
  91. package/dist/node_modules/@flakes/console/.output/public/assets/x-Bdsfqbi3.js +1 -0
  92. package/dist/node_modules/@flakes/console/.output/server/{_-DwPiGKLE.mjs → _-BULJ6utw.mjs} +3 -3
  93. package/dist/node_modules/@flakes/console/.output/server/{_-C-u135Pp.mjs → _-_ST9QYWn.mjs} +3 -3
  94. package/dist/node_modules/@flakes/console/.output/server/_chunks/ProjectsPage.mjs +589 -0
  95. package/dist/node_modules/@flakes/console/.output/server/_chunks/RunPage.mjs +13 -6
  96. package/dist/node_modules/@flakes/console/.output/server/_chunks/RunsPage.mjs +43 -12
  97. package/dist/node_modules/@flakes/console/.output/server/_chunks/SandboxesPage.mjs +2 -2
  98. package/dist/node_modules/@flakes/console/.output/server/_chunks/TranscriptPage.mjs +2 -2
  99. package/dist/node_modules/@flakes/console/.output/server/_chunks/project-navigation.mjs +79 -0
  100. package/dist/node_modules/@flakes/console/.output/server/_chunks/router.mjs +193 -110
  101. package/dist/node_modules/@flakes/console/.output/server/_chunks/utils.mjs +111 -3
  102. package/dist/node_modules/@flakes/console/.output/server/_libs/lucide-react.mjs +178 -1
  103. package/dist/node_modules/@flakes/console/.output/server/{_runId-CJ5_8uS8.mjs → _runId-CmYWNL8A.mjs} +3 -3
  104. package/dist/node_modules/@flakes/console/.output/server/{_runId-Cag5UaYU.mjs → _runId-WZmbo654.mjs} +2 -2
  105. package/dist/node_modules/@flakes/console/.output/server/_ssr/{App-CwFtUgAz.mjs → App-CUx8Ftit.mjs} +118 -64
  106. package/dist/node_modules/@flakes/console/.output/server/_ssr/{DocumentationPage-CtBAQbzy.mjs → DocumentationPage-0I9oWWJT.mjs} +3 -3
  107. package/dist/node_modules/@flakes/console/.output/server/_ssr/ProjectsPage-CGj9V2Of.mjs +590 -0
  108. package/dist/node_modules/@flakes/console/.output/server/_ssr/{RunPage-CatpnkFy.mjs → RunPage-B2vhVaj6.mjs} +14 -7
  109. package/dist/node_modules/@flakes/console/.output/server/_ssr/{RunsPage-BmLTih8Z.mjs → RunsPage-BifKogQE.mjs} +44 -13
  110. package/dist/node_modules/@flakes/console/.output/server/_ssr/{SandboxesPage-Dlq0Ga24.mjs → SandboxesPage-DGji_OdB.mjs} +3 -3
  111. package/dist/node_modules/@flakes/console/.output/server/_ssr/{TranscriptPage-DaSIDCKk.mjs → TranscriptPage-deSxVZaQ.mjs} +3 -3
  112. package/dist/node_modules/@flakes/console/.output/server/_ssr/{account-DzluYS58.mjs → account-D5y9vkAc.mjs} +2 -2
  113. package/dist/node_modules/@flakes/console/.output/server/_ssr/account-forms-CsothyLo.mjs +1 -1
  114. package/dist/node_modules/@flakes/console/.output/server/_ssr/device-CRZl7dGv.mjs +1 -1
  115. package/dist/node_modules/@flakes/console/.output/server/_ssr/{documentation-PC93pMWl.mjs → documentation-C69e9_eF.mjs} +3 -3
  116. package/dist/node_modules/@flakes/console/.output/server/_ssr/documentation-C91gfyy0.mjs +210 -0
  117. package/dist/node_modules/@flakes/console/.output/server/_ssr/{hooks-COIYuQzf.mjs → hooks-DrgN35zn.mjs} +110 -4
  118. package/dist/node_modules/@flakes/console/.output/server/_ssr/project-navigation-DI77TL9a.mjs +79 -0
  119. package/dist/node_modules/@flakes/console/.output/server/_ssr/projects-lJ2tIIPj.mjs +5 -0
  120. package/dist/node_modules/@flakes/console/.output/server/_ssr/reset-password-SmmTixcr.mjs +1 -1
  121. package/dist/node_modules/@flakes/console/.output/server/_ssr/{router-elhBqT5k.mjs → router-DHxFQ03L.mjs} +49 -41
  122. package/dist/node_modules/@flakes/console/.output/server/_ssr/{runs-CBkO-RO8.mjs → runs-BWxEGKO_.mjs} +17 -5
  123. package/dist/node_modules/@flakes/console/.output/server/_ssr/runs-dnPfp9dt.mjs +19 -0
  124. package/dist/node_modules/@flakes/console/.output/server/_ssr/{sandboxes-BIAgn8pu2.mjs → sandboxes-hxFINxDS.mjs} +3 -3
  125. package/dist/node_modules/@flakes/console/.output/server/_ssr/{sandboxes-qSX_pfUJ.mjs → sandboxes-v28LJQM3.mjs} +2 -2
  126. package/dist/node_modules/@flakes/console/.output/server/_ssr/signin-form-CQDi-0A5.mjs +1 -1
  127. package/dist/node_modules/@flakes/console/.output/server/_ssr/ssr.mjs +2 -2
  128. package/dist/node_modules/@flakes/console/.output/server/{_tanstack-start-manifest_v-CR_hZXXv.mjs → _tanstack-start-manifest_v-DfwuEzTr.mjs} +54 -46
  129. package/dist/node_modules/@flakes/console/.output/server/{_taskId-BaezvY0w.mjs → _taskId-CBo95z-s.mjs} +2 -2
  130. package/dist/node_modules/@flakes/console/.output/server/{_taskId-Da7kHKj9.mjs → _taskId-Sil3-PKh.mjs} +3 -3
  131. package/dist/node_modules/@flakes/console/package.json +1 -1
  132. package/dist/node_modules/@flakes/control-plane/dist/client-access.d.ts +17 -0
  133. package/dist/node_modules/@flakes/control-plane/dist/client-access.d.ts.map +1 -1
  134. package/dist/node_modules/@flakes/control-plane/dist/client-access.js +12 -0
  135. package/dist/node_modules/@flakes/control-plane/dist/client-access.js.map +1 -1
  136. package/dist/node_modules/@flakes/control-plane/dist/host-credentials.d.ts +1 -1
  137. package/dist/node_modules/@flakes/control-plane/dist/host-credentials.d.ts.map +1 -1
  138. package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.d.ts +24 -1
  139. package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.d.ts.map +1 -1
  140. package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.js +87 -3
  141. package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.js.map +1 -1
  142. package/dist/node_modules/@flakes/control-plane/dist/host-stream.d.ts.map +1 -1
  143. package/dist/node_modules/@flakes/control-plane/dist/host-stream.js +150 -40
  144. package/dist/node_modules/@flakes/control-plane/dist/host-stream.js.map +1 -1
  145. package/dist/node_modules/@flakes/control-plane/dist/managed-sandbox-provisioner.d.ts +71 -0
  146. package/dist/node_modules/@flakes/control-plane/dist/managed-sandbox-provisioner.d.ts.map +1 -0
  147. package/dist/node_modules/@flakes/control-plane/dist/managed-sandbox-provisioner.js +243 -0
  148. package/dist/node_modules/@flakes/control-plane/dist/managed-sandbox-provisioner.js.map +1 -0
  149. package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.d.ts.map +1 -1
  150. package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.js +219 -0
  151. package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.js.map +1 -1
  152. package/dist/node_modules/@flakes/control-plane/dist/routes/projects.d.ts +3 -0
  153. package/dist/node_modules/@flakes/control-plane/dist/routes/projects.d.ts.map +1 -0
  154. package/dist/node_modules/@flakes/control-plane/dist/routes/projects.js +226 -0
  155. package/dist/node_modules/@flakes/control-plane/dist/routes/projects.js.map +1 -0
  156. package/dist/node_modules/@flakes/control-plane/dist/routes/runs.d.ts.map +1 -1
  157. package/dist/node_modules/@flakes/control-plane/dist/routes/runs.js +93 -6
  158. package/dist/node_modules/@flakes/control-plane/dist/routes/runs.js.map +1 -1
  159. package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes-admin.d.ts +3 -0
  160. package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes-admin.d.ts.map +1 -0
  161. package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes-admin.js +153 -0
  162. package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes-admin.js.map +1 -0
  163. package/dist/node_modules/@flakes/control-plane/dist/routes/tasks.js +2 -2
  164. package/dist/node_modules/@flakes/control-plane/dist/routes/tasks.js.map +1 -1
  165. package/dist/node_modules/@flakes/control-plane/dist/sandbox-drain.d.ts +19 -0
  166. package/dist/node_modules/@flakes/control-plane/dist/sandbox-drain.d.ts.map +1 -0
  167. package/dist/node_modules/@flakes/control-plane/dist/sandbox-drain.js +46 -0
  168. package/dist/node_modules/@flakes/control-plane/dist/sandbox-drain.js.map +1 -0
  169. package/dist/node_modules/@flakes/control-plane/dist/scheduler.d.ts +2 -0
  170. package/dist/node_modules/@flakes/control-plane/dist/scheduler.d.ts.map +1 -1
  171. package/dist/node_modules/@flakes/control-plane/dist/scheduler.js +53 -21
  172. package/dist/node_modules/@flakes/control-plane/dist/scheduler.js.map +1 -1
  173. package/dist/node_modules/@flakes/control-plane/dist/server.d.ts.map +1 -1
  174. package/dist/node_modules/@flakes/control-plane/dist/server.js +2 -0
  175. package/dist/node_modules/@flakes/control-plane/dist/server.js.map +1 -1
  176. package/dist/node_modules/@flakes/control-plane/dist/types.d.ts +2 -0
  177. package/dist/node_modules/@flakes/control-plane/dist/types.d.ts.map +1 -1
  178. package/dist/node_modules/@flakes/control-plane/package.json +1 -1
  179. package/dist/node_modules/@flakes/core/dist/config.d.ts.map +1 -1
  180. package/dist/node_modules/@flakes/core/dist/config.js +6 -2
  181. package/dist/node_modules/@flakes/core/dist/config.js.map +1 -1
  182. package/dist/node_modules/@flakes/core/dist/ids.d.ts +4 -0
  183. package/dist/node_modules/@flakes/core/dist/ids.d.ts.map +1 -1
  184. package/dist/node_modules/@flakes/core/dist/ids.js +2 -0
  185. package/dist/node_modules/@flakes/core/dist/ids.js.map +1 -1
  186. package/dist/node_modules/@flakes/core/dist/runtime.d.ts +1 -1
  187. package/dist/node_modules/@flakes/core/dist/schemas.d.ts +11 -0
  188. package/dist/node_modules/@flakes/core/dist/schemas.d.ts.map +1 -1
  189. package/dist/node_modules/@flakes/core/dist/schemas.js +10 -0
  190. package/dist/node_modules/@flakes/core/dist/schemas.js.map +1 -1
  191. package/dist/node_modules/@flakes/core/package.json +1 -1
  192. package/dist/node_modules/@flakes/harness-agent/package.json +1 -1
  193. package/dist/node_modules/@flakes/harness-sdk/package.json +1 -1
  194. package/dist/node_modules/@flakes/pi-agent/package.json +1 -1
  195. package/dist/node_modules/@flakes/protocol/dist/index.d.ts +1 -1
  196. package/dist/node_modules/@flakes/protocol/dist/index.d.ts.map +1 -1
  197. package/dist/node_modules/@flakes/protocol/dist/index.js +1 -1
  198. package/dist/node_modules/@flakes/protocol/dist/index.js.map +1 -1
  199. package/dist/node_modules/@flakes/protocol/dist/v1.d.ts +317 -0
  200. package/dist/node_modules/@flakes/protocol/dist/v1.d.ts.map +1 -1
  201. package/dist/node_modules/@flakes/protocol/dist/v1.js +50 -1
  202. package/dist/node_modules/@flakes/protocol/dist/v1.js.map +1 -1
  203. package/dist/node_modules/@flakes/protocol/package.json +1 -1
  204. package/dist/node_modules/@flakes/sandbox-runtime/dist/transport.js +3 -6
  205. package/dist/node_modules/@flakes/sandbox-runtime/dist/transport.js.map +1 -1
  206. package/dist/node_modules/@flakes/sandbox-runtime/package.json +1 -1
  207. package/dist/node_modules/@flakes/store/dist/artifacts-events-store.d.ts.map +1 -1
  208. package/dist/node_modules/@flakes/store/dist/artifacts-events-store.js +10 -0
  209. package/dist/node_modules/@flakes/store/dist/artifacts-events-store.js.map +1 -1
  210. package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.d.ts +2 -1
  211. package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.d.ts.map +1 -1
  212. package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.js +1 -0
  213. package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.js.map +1 -1
  214. package/dist/node_modules/@flakes/store/dist/kysely-store.d.ts +2 -2
  215. package/dist/node_modules/@flakes/store/dist/kysely-store.d.ts.map +1 -1
  216. package/dist/node_modules/@flakes/store/dist/kysely-store.js +2 -2
  217. package/dist/node_modules/@flakes/store/dist/kysely-store.js.map +1 -1
  218. package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.d.ts +6 -2
  219. package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.d.ts.map +1 -1
  220. package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.js +160 -3
  221. package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.js.map +1 -1
  222. package/dist/node_modules/@flakes/store/dist/mappers.d.ts +10 -2
  223. package/dist/node_modules/@flakes/store/dist/mappers.d.ts.map +1 -1
  224. package/dist/node_modules/@flakes/store/dist/mappers.js +45 -0
  225. package/dist/node_modules/@flakes/store/dist/mappers.js.map +1 -1
  226. package/dist/node_modules/@flakes/store/dist/projects-store.d.ts +42 -0
  227. package/dist/node_modules/@flakes/store/dist/projects-store.d.ts.map +1 -0
  228. package/dist/node_modules/@flakes/store/dist/projects-store.js +376 -0
  229. package/dist/node_modules/@flakes/store/dist/projects-store.js.map +1 -0
  230. package/dist/node_modules/@flakes/store/dist/runs-store.d.ts.map +1 -1
  231. package/dist/node_modules/@flakes/store/dist/runs-store.js +7 -2
  232. package/dist/node_modules/@flakes/store/dist/runs-store.js.map +1 -1
  233. package/dist/node_modules/@flakes/store/dist/schema.js +72 -0
  234. package/dist/node_modules/@flakes/store/dist/schema.js.map +1 -1
  235. package/dist/node_modules/@flakes/store/dist/sqlite.d.ts +4 -0
  236. package/dist/node_modules/@flakes/store/dist/sqlite.d.ts.map +1 -0
  237. package/dist/node_modules/@flakes/store/dist/sqlite.js +34 -0
  238. package/dist/node_modules/@flakes/store/dist/sqlite.js.map +1 -0
  239. package/dist/node_modules/@flakes/store/dist/store-base.d.ts +14 -12
  240. package/dist/node_modules/@flakes/store/dist/store-base.d.ts.map +1 -1
  241. package/dist/node_modules/@flakes/store/dist/tables.d.ts +41 -1
  242. package/dist/node_modules/@flakes/store/dist/tables.d.ts.map +1 -1
  243. package/dist/node_modules/@flakes/store/dist/tasks-store.d.ts.map +1 -1
  244. package/dist/node_modules/@flakes/store/dist/tasks-store.js +9 -2
  245. package/dist/node_modules/@flakes/store/dist/tasks-store.js.map +1 -1
  246. package/dist/node_modules/@flakes/store/dist/types.d.ts +159 -1
  247. package/dist/node_modules/@flakes/store/dist/types.d.ts.map +1 -1
  248. package/dist/node_modules/@flakes/store/package.json +1 -1
  249. package/package.json +1 -1
  250. package/dist/node_modules/@flakes/console/.output/public/assets/DocumentationPage-DM-ZYPgQ.js +0 -1
  251. package/dist/node_modules/@flakes/console/.output/public/assets/RunPage-i03UqHYF.js +0 -3
  252. package/dist/node_modules/@flakes/console/.output/public/assets/RunsPage-u8qbeAoV.js +0 -1
  253. package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesLens-BUQQWmH6.js +0 -1
  254. package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesPage-D8D_5kXP.js +0 -1
  255. package/dist/node_modules/@flakes/console/.output/public/assets/TranscriptPage-ChoFjiPI.js +0 -1
  256. package/dist/node_modules/@flakes/console/.output/public/assets/_-C4ecJpHe.js +0 -1
  257. package/dist/node_modules/@flakes/console/.output/public/assets/_runId-BZXYFY32.js +0 -2
  258. package/dist/node_modules/@flakes/console/.output/public/assets/_taskId-C28oHEU_.js +0 -2
  259. package/dist/node_modules/@flakes/console/.output/public/assets/account-B4wDEC7t.js +0 -1
  260. package/dist/node_modules/@flakes/console/.output/public/assets/account-forms-BLo66Mqa.js +0 -1
  261. package/dist/node_modules/@flakes/console/.output/public/assets/arrow-right-BMW8fJP5.js +0 -1
  262. package/dist/node_modules/@flakes/console/.output/public/assets/auth-layout-DiUSgtaY.js +0 -1
  263. package/dist/node_modules/@flakes/console/.output/public/assets/bits-Cv0Te4iz.js +0 -1
  264. package/dist/node_modules/@flakes/console/.output/public/assets/card-DSG3_teC.js +0 -1
  265. package/dist/node_modules/@flakes/console/.output/public/assets/circle-check-B0gtb8OH.js +0 -1
  266. package/dist/node_modules/@flakes/console/.output/public/assets/device-NrLWypMd.js +0 -1
  267. package/dist/node_modules/@flakes/console/.output/public/assets/dist-BtPw3IIV.js +0 -1
  268. package/dist/node_modules/@flakes/console/.output/public/assets/documentation-NRDmcDud.js +0 -1
  269. package/dist/node_modules/@flakes/console/.output/public/assets/forgot-password--3Mujc8s.js +0 -1
  270. package/dist/node_modules/@flakes/console/.output/public/assets/link-BsixJinJ.js +0 -1
  271. package/dist/node_modules/@flakes/console/.output/public/assets/main-KBvz0mSQ.js +0 -1055
  272. package/dist/node_modules/@flakes/console/.output/public/assets/matchContext-tJ0VTv5m.js +0 -1
  273. package/dist/node_modules/@flakes/console/.output/public/assets/otp-verification-BSXwS5bo.js +0 -20
  274. package/dist/node_modules/@flakes/console/.output/public/assets/react-DtOYBmep.js +0 -1
  275. package/dist/node_modules/@flakes/console/.output/public/assets/react-dom-DrIU40PY.js +0 -1
  276. package/dist/node_modules/@flakes/console/.output/public/assets/redirect-BEm0VK76.js +0 -1
  277. package/dist/node_modules/@flakes/console/.output/public/assets/reset-password-C7SbNx2J.js +0 -1
  278. package/dist/node_modules/@flakes/console/.output/public/assets/runs-xD4ynllK.js +0 -2
  279. package/dist/node_modules/@flakes/console/.output/public/assets/sandboxes-Cfr1Y2Dn.js +0 -2
  280. package/dist/node_modules/@flakes/console/.output/public/assets/security-CCThSJae.js +0 -1
  281. package/dist/node_modules/@flakes/console/.output/public/assets/signin-CYeR3TaY.js +0 -1
  282. package/dist/node_modules/@flakes/console/.output/public/assets/signin-form-Bp22jPob.js +0 -1
  283. package/dist/node_modules/@flakes/console/.output/public/assets/signup-DHhPfohX.js +0 -1
  284. package/dist/node_modules/@flakes/console/.output/public/assets/styles-8wEqfToJ.css +0 -2
  285. package/dist/node_modules/@flakes/console/.output/public/assets/table-DptQuuuq.js +0 -1
  286. package/dist/node_modules/@flakes/console/.output/public/assets/user-DK27uFod.js +0 -1
  287. package/dist/node_modules/@flakes/console/.output/public/assets/utils-CEE0-YEp.js +0 -1
  288. package/dist/node_modules/@flakes/console/.output/public/assets/x-fKvnmCoQ.js +0 -1
  289. package/dist/node_modules/@flakes/console/.output/server/_ssr/documentation-Bf0VPrnt.mjs +0 -210
  290. package/dist/node_modules/@flakes/console/.output/server/_ssr/runs-BzfGldVd.mjs +0 -12
@@ -1,7 +1,54 @@
1
1
  import { i as getServerFnById, n as createServerFn, t as TSS_SERVER_FUNCTION } from "./ssr.mjs";
2
2
  import { n as normalizeConsolePath } from "./paths-AqD9h5Fe.mjs";
3
3
  import { i as useQuery, n as useMutation, o as useQueryClient, t as useInfiniteQuery } from "../_libs/tanstack__react-query.mjs";
4
- //#region node_modules/.nitro/vite/services/ssr/assets/hooks-COIYuQzf.js
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/hooks-DrgN35zn.js
5
+ function hostProjectWorkspaceRootPath(hostId) {
6
+ return `/v1/hosts/${encodeURIComponent(hostId)}/project-workspace-root`;
7
+ }
8
+ function hostProjectBindingsPath(hostId) {
9
+ return `/v1/hosts/${encodeURIComponent(hostId)}/project-bindings`;
10
+ }
11
+ function hostProjectBindingPath(hostId, projectKey) {
12
+ return `${hostProjectBindingsPath(hostId)}/${encodeURIComponent(projectKey)}`;
13
+ }
14
+ function hostProjectWorkspacePath(projectWorkspaceRoot, projectKey) {
15
+ const separator = projectWorkspaceRoot.includes("\\") && !projectWorkspaceRoot.includes("/") ? "\\" : "/";
16
+ return projectWorkspaceRoot.endsWith("/") || projectWorkspaceRoot.endsWith("\\") ? `${projectWorkspaceRoot}${projectKey}` : `${projectWorkspaceRoot}${separator}${projectKey}`;
17
+ }
18
+ function bindingValidationView(binding) {
19
+ if (binding === void 0) return {
20
+ tone: "idle",
21
+ label: "Not bound",
22
+ detail: "No host binding has been saved for this project."
23
+ };
24
+ if (binding.availability === "available") return {
25
+ tone: "available",
26
+ label: "Available",
27
+ detail: `Validated ${binding.lastValidatedAt ?? binding.updatedAt}.`
28
+ };
29
+ if (binding.availability === "unavailable") return {
30
+ tone: "unavailable",
31
+ label: "Unavailable",
32
+ detail: binding.validationReason ?? `Last rejected ${binding.lastValidatedAt ?? binding.updatedAt}.`
33
+ };
34
+ return {
35
+ tone: "pending",
36
+ label: "Pending validation",
37
+ detail: "Waiting for the host runtime to validate this binding."
38
+ };
39
+ }
40
+ function poolChoicesForBinding(pools, binding) {
41
+ const selected = new Set(binding?.poolKeys ?? []);
42
+ return pools.map((pool) => {
43
+ const status = pool.status ?? "available";
44
+ return {
45
+ poolKey: pool.poolKey,
46
+ selected: selected.has(pool.poolKey),
47
+ status,
48
+ statusLabel: status
49
+ };
50
+ });
51
+ }
5
52
  var createSsrRpc = (functionId, importer) => {
6
53
  const url = "/console/_serverFn/" + functionId;
7
54
  const serverFnMeta = { id: functionId };
@@ -119,13 +166,20 @@ function isRecord(value) {
119
166
  return typeof value === "object" && value !== null;
120
167
  }
121
168
  var POLL_MS = 1e3;
122
- function useRuns(state) {
169
+ function useRuns(input) {
170
+ const state = typeof input === "string" ? input : input?.state;
171
+ const projectKey = typeof input === "string" ? void 0 : input?.projectKey;
123
172
  return useInfiniteQuery({
124
- queryKey: ["runs", state ?? null],
173
+ queryKey: [
174
+ "runs",
175
+ state ?? null,
176
+ projectKey ?? null
177
+ ],
125
178
  initialPageParam: void 0,
126
179
  queryFn: ({ pageParam }) => {
127
180
  const params = new URLSearchParams();
128
181
  if (state !== void 0) params.set("state", state);
182
+ if (projectKey !== void 0) params.set("projectKey", projectKey);
129
183
  if (pageParam !== void 0) params.set("cursor", pageParam);
130
184
  const query = params.toString();
131
185
  return apiGet(`/v1/runs${query ? `?${query}` : ""}`);
@@ -135,6 +189,54 @@ function useRuns(state) {
135
189
  refetchInterval: POLL_MS
136
190
  });
137
191
  }
192
+ function useProjects() {
193
+ return useQuery({
194
+ queryKey: ["projects"],
195
+ queryFn: () => apiGet("/v1/projects"),
196
+ refetchInterval: POLL_MS
197
+ });
198
+ }
199
+ function useHosts() {
200
+ return useQuery({
201
+ queryKey: ["hosts"],
202
+ queryFn: () => apiGet("/v1/hosts"),
203
+ refetchInterval: POLL_MS
204
+ });
205
+ }
206
+ function useHostPools(hostId) {
207
+ return useQuery({
208
+ queryKey: ["host-pools", hostId],
209
+ enabled: hostId !== null,
210
+ queryFn: () => apiGet(`/v1/hosts/${encodeURIComponent(requireHostId(hostId, "useHostPools"))}/pools`),
211
+ refetchInterval: POLL_MS
212
+ });
213
+ }
214
+ function useHostProjectBindings(hostId, enabled = true) {
215
+ return useQuery({
216
+ queryKey: ["host-project-bindings", hostId],
217
+ enabled: hostId !== null && enabled,
218
+ queryFn: () => apiGet(hostProjectBindingsPath(requireHostId(hostId, "useHostProjectBindings"))),
219
+ refetchInterval: POLL_MS
220
+ });
221
+ }
222
+ function useSetHostProjectWorkspaceRoot() {
223
+ const queryClient = useQueryClient();
224
+ return useMutation({
225
+ mutationFn: (input) => apiPut(hostProjectWorkspaceRootPath(input.hostId), { path: input.path }),
226
+ onSuccess: async (root) => {
227
+ await Promise.all([queryClient.invalidateQueries({ queryKey: ["hosts"] }), queryClient.invalidateQueries({ queryKey: ["host-project-bindings", root.hostId] })]);
228
+ }
229
+ });
230
+ }
231
+ function useUpsertHostProjectBinding() {
232
+ const queryClient = useQueryClient();
233
+ return useMutation({
234
+ mutationFn: (input) => apiPut(hostProjectBindingPath(input.hostId, input.projectKey), { poolKeys: input.poolKeys }),
235
+ onSuccess: async (_binding, input) => {
236
+ await queryClient.invalidateQueries({ queryKey: ["host-project-bindings", input.hostId] });
237
+ }
238
+ });
239
+ }
138
240
  function useRun(runId) {
139
241
  return useQuery({
140
242
  queryKey: ["run", runId],
@@ -267,5 +369,9 @@ function requireTaskId(taskId, hookName) {
267
369
  if (taskId === null) throw new Error(`${hookName} called without taskId`);
268
370
  return taskId;
269
371
  }
372
+ function requireHostId(hostId, hookName) {
373
+ if (hostId === null) throw new Error(`${hookName} called without hostId`);
374
+ return hostId;
375
+ }
270
376
  //#endregion
271
- export { useRunArtifacts as a, useRunTasks as c, useSendTaskMessage as d, useTaskActivity as f, useTaskWorkpad as h, useRun as i, useRuns as l, useTaskPiSessionRaw as m, downloadFile as n, useRunFileReservations as o, useTaskPiSession as p, useDeleteRun as r, useRunMetrics as s, ApiError as t, useSaveTaskWorkpad as u };
377
+ export { useTaskWorkpad as C, useTaskPiSessionRaw as S, useSaveTaskWorkpad as _, poolChoicesForBinding as a, useTaskActivity as b, useHostProjectBindings as c, useRun as d, useRunArtifacts as f, useRuns as g, useRunTasks as h, hostProjectWorkspacePath as i, useHosts as l, useRunMetrics as m, bindingValidationView as n, useDeleteRun as o, useRunFileReservations as p, downloadFile as r, useHostPools as s, ApiError as t, useProjects as u, useSendTaskMessage as v, useUpsertHostProjectBinding as w, useTaskPiSession as x, useSetHostProjectWorkspaceRoot as y };
@@ -0,0 +1,79 @@
1
+ //#region node_modules/.nitro/vite/services/ssr/assets/project-navigation-DI77TL9a.js
2
+ function splitProjectsByStatus(projects) {
3
+ const active = [];
4
+ const archived = [];
5
+ for (const project of projects) if (project.status === "archived") archived.push(project);
6
+ else active.push(project);
7
+ return {
8
+ active: sortProjects(active),
9
+ archived: sortProjects(archived)
10
+ };
11
+ }
12
+ function groupRunsByProject(projects, runs) {
13
+ const byProjectId = new Map(projects.map((project) => [project.projectId, project]));
14
+ const byProjectKey = new Map(projects.map((project) => [project.projectKey, project]));
15
+ const grouped = /* @__PURE__ */ new Map();
16
+ const unknown = /* @__PURE__ */ new Map();
17
+ const inbox = [];
18
+ for (const run of runs) {
19
+ const project = projectForRun(run, byProjectId, byProjectKey);
20
+ if (project !== null) {
21
+ const list = grouped.get(project.projectId) ?? [];
22
+ list.push(run);
23
+ grouped.set(project.projectId, list);
24
+ continue;
25
+ }
26
+ const unknownIdentity = run.projectId ?? run.projectKey;
27
+ if (unknownIdentity !== void 0 && unknownIdentity.length > 0) {
28
+ const id = `unknown:${unknownIdentity}`;
29
+ const group = unknown.get(id) ?? {
30
+ id,
31
+ label: run.projectKey ?? run.projectId ?? "Unknown project",
32
+ project: null,
33
+ runs: []
34
+ };
35
+ group.runs.push(run);
36
+ unknown.set(id, group);
37
+ continue;
38
+ }
39
+ inbox.push(run);
40
+ }
41
+ const groups = [];
42
+ const { active, archived } = splitProjectsByStatus(projects);
43
+ for (const project of [...active, ...archived]) {
44
+ const projectRuns = grouped.get(project.projectId);
45
+ if (projectRuns !== void 0 && projectRuns.length > 0) groups.push({
46
+ id: `project:${project.projectId}`,
47
+ label: project.name,
48
+ project,
49
+ runs: projectRuns
50
+ });
51
+ }
52
+ groups.push(...[...unknown.values()].sort((left, right) => left.label.localeCompare(right.label)));
53
+ if (inbox.length > 0) groups.push({
54
+ id: "inbox",
55
+ label: "Inbox",
56
+ project: null,
57
+ runs: inbox
58
+ });
59
+ return groups;
60
+ }
61
+ function projectMatchesRun(project, run) {
62
+ if (run.projectId !== void 0) return run.projectId === project.projectId;
63
+ return run.projectKey === project.projectKey;
64
+ }
65
+ function projectLabelForRun(projects, run) {
66
+ const project = projectForRun(run, new Map(projects.map((entry) => [entry.projectId, entry])), new Map(projects.map((entry) => [entry.projectKey, entry])));
67
+ if (project !== null) return `${project.name} (${project.projectKey})`;
68
+ return run.projectKey ?? run.projectId;
69
+ }
70
+ function projectForRun(run, byProjectId, byProjectKey) {
71
+ if (run.projectId !== void 0) return byProjectId.get(run.projectId) ?? null;
72
+ if (run.projectKey !== void 0) return byProjectKey.get(run.projectKey) ?? null;
73
+ return null;
74
+ }
75
+ function sortProjects(projects) {
76
+ return projects.sort((left, right) => left.projectKey.localeCompare(right.projectKey));
77
+ }
78
+ //#endregion
79
+ export { splitProjectsByStatus as i, projectLabelForRun as n, projectMatchesRun as r, groupRunsByProject as t };
@@ -0,0 +1,5 @@
1
+ import { o as __toESM } from "../_runtime.mjs";
2
+ import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
3
+ var ProjectsPage = (0, (/* @__PURE__ */ __toESM(require_react())).lazy)(() => import("./ProjectsPage-CGj9V2Of.mjs").then((module) => ({ default: module.ProjectsPage })));
4
+ //#endregion
5
+ export { ProjectsPage as component };
@@ -3,7 +3,7 @@ import { c as require_jsx_runtime } from "../_libs/@radix-ui/react-arrow+[...].m
3
3
  import { d as Link } from "../_libs/@tanstack/react-router+[...].mjs";
4
4
  import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
5
5
  import { t as Button } from "./button-Btfpc86G.mjs";
6
- import { D as LoaderCircle, E as Lock, H as Check, k as KeyRound } from "../_libs/lucide-react.mjs";
6
+ import { D as LoaderCircle, E as Lock, k as KeyRound, q as Check } from "../_libs/lucide-react.mjs";
7
7
  import { c as validateResetPasswordInput, i as isResetTokenAuthError, n as formatAuthError, t as authClient } from "./auth-validation-D9jyYJqc.mjs";
8
8
  import { n as AuthMessage, t as AuthField } from "./signin-form-CQDi-0A5.mjs";
9
9
  import { t as AuthLayout } from "./auth-layout-CbKMjXvx.mjs";
@@ -5,26 +5,26 @@ import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
5
5
  import { t as QueryClient } from "../_libs/tanstack__query-core.mjs";
6
6
  import { a as QueryClientProvider } from "../_libs/tanstack__react-query.mjs";
7
7
  import { D as LoaderCircle } from "../_libs/lucide-react.mjs";
8
- import { a as getDocumentationPage, s as normalizeDocumentationPath, t as defaultDocumentationPath } from "./documentation-Bf0VPrnt.mjs";
9
- import { t as Route } from "../_-C-u135Pp.mjs";
10
- import { t as Route$9 } from "../_runId-Cag5UaYU.mjs";
11
- import { t as Route$10 } from "../_taskId-BaezvY0w.mjs";
8
+ import { a as getDocumentationPage, s as normalizeDocumentationPath, t as defaultDocumentationPath } from "./documentation-C91gfyy0.mjs";
9
+ import { t as Route } from "../_-_ST9QYWn.mjs";
10
+ import { t as Route$10 } from "../_runId-WZmbo654.mjs";
11
+ import { t as Route$11 } from "../_taskId-CBo95z-s.mjs";
12
12
  import { o as initTheme } from "./auth-redirect-BI2bC7qX.mjs";
13
- import { t as App } from "./App-CwFtUgAz.mjs";
14
- import { t as Route$11 } from "./device-DqXiEFpN.mjs";
15
- import { t as Route$12 } from "./forgot-password-SqIDRm9P.mjs";
16
- import { t as Route$13 } from "./reset-password-DEWN29hA.mjs";
13
+ import { t as App } from "./App-CUx8Ftit.mjs";
14
+ import { t as Route$12 } from "./device-DqXiEFpN.mjs";
15
+ import { t as Route$13 } from "./forgot-password-SqIDRm9P.mjs";
16
+ import { t as Route$14 } from "./reset-password-DEWN29hA.mjs";
17
17
  import { t as authRouteHandlers } from "../_chunks/auth-Dx90FyZz.mjs";
18
- import { t as Route$14 } from "./signup-nYA7O7Q8.mjs";
19
- import { t as Route$15 } from "./signin-BQPwlbp1.mjs";
20
- import { t as Route$16 } from "./sandboxes-qSX_pfUJ.mjs";
21
- import { t as Route$17 } from "./runs-BzfGldVd.mjs";
22
- //#region node_modules/.nitro/vite/services/ssr/assets/router-elhBqT5k.js
18
+ import { t as Route$15 } from "./signup-nYA7O7Q8.mjs";
19
+ import { t as Route$16 } from "./signin-BQPwlbp1.mjs";
20
+ import { t as Route$17 } from "./sandboxes-v28LJQM3.mjs";
21
+ import { t as Route$18 } from "./runs-dnPfp9dt.mjs";
22
+ //#region node_modules/.nitro/vite/services/ssr/assets/router-DHxFQ03L.js
23
23
  var import_jsx_runtime = require_jsx_runtime();
24
24
  var import_react = /* @__PURE__ */ __toESM(require_react());
25
25
  var favicon_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%3e%3ctitle%3eFlakes%3c/title%3e%3cdefs%3e%3ccircle%20id='n'%20cx='12'%20cy='4.2'%20r='1.9'%20fill='%2310b981'/%3e%3c/defs%3e%3cuse%20href='%23n'/%3e%3cuse%20href='%23n'%20transform='rotate(60%2012%2012)'/%3e%3cuse%20href='%23n'%20transform='rotate(120%2012%2012)'/%3e%3cuse%20href='%23n'%20transform='rotate(180%2012%2012)'/%3e%3cuse%20href='%23n'%20transform='rotate(240%2012%2012)'/%3e%3cuse%20href='%23n'%20transform='rotate(300%2012%2012)'/%3e%3ccircle%20cx='12'%20cy='12'%20r='2.4'%20fill='%2310b981'/%3e%3c/svg%3e";
26
- var styles_default = "/console/assets/styles-8wEqfToJ.css";
27
- var Route$8 = createRootRoute({
26
+ var styles_default = "/console/assets/styles-DtA2wbW8.css";
27
+ var Route$9 = createRootRoute({
28
28
  head: () => ({
29
29
  meta: [
30
30
  { charSet: "utf-8" },
@@ -83,7 +83,9 @@ function createConsoleQueryClient() {
83
83
  refetchIntervalInBackground: true
84
84
  } } });
85
85
  }
86
- var $$splitComponentImporter$2 = () => import("./documentation-PC93pMWl.mjs");
86
+ var $$splitComponentImporter$3 = () => import("./projects-lJ2tIIPj.mjs");
87
+ var Route$8 = createFileRoute("/projects")({ component: lazyRouteComponent($$splitComponentImporter$3, "component") });
88
+ var $$splitComponentImporter$2 = () => import("./documentation-C69e9_eF.mjs");
87
89
  var Route$7 = createFileRoute("/documentation")({
88
90
  validateSearch: (search) => typeof search.doc === "string" ? { doc: search.doc } : {},
89
91
  beforeLoad: ({ search }) => {
@@ -113,7 +115,7 @@ var Route$5 = createFileRoute("/")({ beforeLoad: () => {
113
115
  replace: true
114
116
  });
115
117
  } });
116
- var $$splitComponentImporter$1 = () => import("./account-DzluYS58.mjs");
118
+ var $$splitComponentImporter$1 = () => import("./account-D5y9vkAc.mjs");
117
119
  var Route$4 = createFileRoute("/account/")({ component: lazyRouteComponent($$splitComponentImporter$1, "component") });
118
120
  var Route$3 = createFileRoute("/api/download")({ server: { handlers: { GET: async ({ request }) => {
119
121
  const url = new URL(request.url);
@@ -123,62 +125,67 @@ var Route$3 = createFileRoute("/api/download")({ server: { handlers: { GET: asyn
123
125
  var $$splitComponentImporter = () => import("./security-DrucD4N4.mjs");
124
126
  var Route$2 = createFileRoute("/account/security")({ component: lazyRouteComponent($$splitComponentImporter, "component") });
125
127
  var Route$1 = createFileRoute("/api/auth/$")({ server: { handlers: authRouteHandlers } });
126
- var SignupRoute = Route$14.update({
128
+ var SignupRoute = Route$15.update({
127
129
  id: "/signup",
128
130
  path: "/signup",
129
- getParentRoute: () => Route$8
131
+ getParentRoute: () => Route$9
130
132
  });
131
- var SigninRoute = Route$15.update({
133
+ var SigninRoute = Route$16.update({
132
134
  id: "/signin",
133
135
  path: "/signin",
134
- getParentRoute: () => Route$8
136
+ getParentRoute: () => Route$9
135
137
  });
136
- var SandboxesRoute = Route$16.update({
138
+ var SandboxesRoute = Route$17.update({
137
139
  id: "/sandboxes",
138
140
  path: "/sandboxes",
139
- getParentRoute: () => Route$8
141
+ getParentRoute: () => Route$9
140
142
  });
141
- var RunsRoute = Route$17.update({
143
+ var RunsRoute = Route$18.update({
142
144
  id: "/runs",
143
145
  path: "/runs",
144
- getParentRoute: () => Route$8
146
+ getParentRoute: () => Route$9
145
147
  });
146
- var ResetPasswordRoute = Route$13.update({
148
+ var ResetPasswordRoute = Route$14.update({
147
149
  id: "/reset-password",
148
150
  path: "/reset-password",
149
- getParentRoute: () => Route$8
151
+ getParentRoute: () => Route$9
150
152
  });
151
- var ForgotPasswordRoute = Route$12.update({
153
+ var ProjectsRoute = Route$8.update({
154
+ id: "/projects",
155
+ path: "/projects",
156
+ getParentRoute: () => Route$9
157
+ });
158
+ var ForgotPasswordRoute = Route$13.update({
152
159
  id: "/forgot-password",
153
160
  path: "/forgot-password",
154
- getParentRoute: () => Route$8
161
+ getParentRoute: () => Route$9
155
162
  });
156
163
  var DocumentationRoute = Route$7.update({
157
164
  id: "/documentation",
158
165
  path: "/documentation",
159
- getParentRoute: () => Route$8
166
+ getParentRoute: () => Route$9
160
167
  });
161
- var DeviceRoute = Route$11.update({
168
+ var DeviceRoute = Route$12.update({
162
169
  id: "/device",
163
170
  path: "/device",
164
- getParentRoute: () => Route$8
171
+ getParentRoute: () => Route$9
165
172
  });
166
173
  var SplatRoute = Route$6.update({
167
174
  id: "/$",
168
175
  path: "/$",
169
- getParentRoute: () => Route$8
176
+ getParentRoute: () => Route$9
170
177
  });
171
178
  var IndexRoute = Route$5.update({
172
179
  id: "/",
173
180
  path: "/",
174
- getParentRoute: () => Route$8
181
+ getParentRoute: () => Route$9
175
182
  });
176
183
  var AccountIndexRoute = Route$4.update({
177
184
  id: "/account/",
178
185
  path: "/account/",
179
- getParentRoute: () => Route$8
186
+ getParentRoute: () => Route$9
180
187
  });
181
- var RunsRunIdRoute = Route$9.update({
188
+ var RunsRunIdRoute = Route$10.update({
182
189
  id: "/$runId",
183
190
  path: "/$runId",
184
191
  getParentRoute: () => RunsRoute
@@ -191,19 +198,19 @@ var DocumentationSplatRoute = Route.update({
191
198
  var ApiDownloadRoute = Route$3.update({
192
199
  id: "/api/download",
193
200
  path: "/api/download",
194
- getParentRoute: () => Route$8
201
+ getParentRoute: () => Route$9
195
202
  });
196
203
  var AccountSecurityRoute = Route$2.update({
197
204
  id: "/account/security",
198
205
  path: "/account/security",
199
- getParentRoute: () => Route$8
206
+ getParentRoute: () => Route$9
200
207
  });
201
208
  var ApiAuthSplatRoute = Route$1.update({
202
209
  id: "/api/auth/$",
203
210
  path: "/api/auth/$",
204
- getParentRoute: () => Route$8
211
+ getParentRoute: () => Route$9
205
212
  });
206
- var RunsRunIdTTaskIdRoute = Route$10.update({
213
+ var RunsRunIdTTaskIdRoute = Route$11.update({
207
214
  id: "/t/$taskId",
208
215
  path: "/t/$taskId",
209
216
  getParentRoute: () => RunsRunIdRoute
@@ -218,6 +225,7 @@ var rootRouteChildren = {
218
225
  DeviceRoute,
219
226
  DocumentationRoute: DocumentationRouteWithChildren,
220
227
  ForgotPasswordRoute,
228
+ ProjectsRoute,
221
229
  ResetPasswordRoute,
222
230
  RunsRoute: RunsRoute._addFileChildren(RunsRouteChildren),
223
231
  SandboxesRoute,
@@ -228,7 +236,7 @@ var rootRouteChildren = {
228
236
  AccountIndexRoute,
229
237
  ApiAuthSplatRoute
230
238
  };
231
- var routeTree = Route$8._addFileChildren(rootRouteChildren)._addFileTypes();
239
+ var routeTree = Route$9._addFileChildren(rootRouteChildren)._addFileTypes();
232
240
  function getRouter() {
233
241
  return createRouter({
234
242
  routeTree,
@@ -2,20 +2,32 @@ import { o as __toESM } from "../_runtime.mjs";
2
2
  import { c as require_jsx_runtime } from "../_libs/@radix-ui/react-arrow+[...].mjs";
3
3
  import { f as useNavigate, i as useLocation, s as Outlet } from "../_libs/@tanstack/react-router+[...].mjs";
4
4
  import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
5
- import { t as Route } from "./runs-BzfGldVd.mjs";
6
- //#region node_modules/.nitro/vite/services/ssr/assets/runs-CBkO-RO8.js
5
+ import { t as Route } from "./runs-dnPfp9dt.mjs";
6
+ //#region node_modules/.nitro/vite/services/ssr/assets/runs-BWxEGKO_.js
7
7
  var import_jsx_runtime = require_jsx_runtime();
8
- var RunsPage = (0, (/* @__PURE__ */ __toESM(require_react())).lazy)(() => import("./RunsPage-BmLTih8Z.mjs").then((module) => ({ default: module.RunsPage })));
8
+ var RunsPage = (0, (/* @__PURE__ */ __toESM(require_react())).lazy)(() => import("./RunsPage-BifKogQE.mjs").then((module) => ({ default: module.RunsPage })));
9
9
  function RunsRouteComponent() {
10
- const { state } = Route.useSearch();
10
+ const { project, state } = Route.useSearch();
11
11
  const location = useLocation();
12
12
  const navigate = useNavigate();
13
13
  if (trimTrailingSlash(location.pathname) !== "/runs") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Outlet, {});
14
14
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RunsPage, {
15
15
  filter: state,
16
+ projectKey: project,
16
17
  onFilterChange: (next) => navigate({
17
18
  to: "/runs",
18
- search: next ? { state: next } : {},
19
+ search: {
20
+ ...next ? { state: next } : {},
21
+ ...project ? { project } : {}
22
+ },
23
+ replace: true
24
+ }),
25
+ onProjectChange: (next) => navigate({
26
+ to: "/runs",
27
+ search: {
28
+ ...state ? { state } : {},
29
+ ...next ? { project: next } : {}
30
+ },
19
31
  replace: true
20
32
  }),
21
33
  onOpenRun: (runId) => navigate({
@@ -0,0 +1,19 @@
1
+ import { c as lazyRouteComponent, l as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/runs-dnPfp9dt.js
3
+ var $$splitComponentImporter = () => import("./runs-BWxEGKO_.mjs");
4
+ var Route = createFileRoute("/runs")({
5
+ validateSearch: (search) => {
6
+ const state = search.state;
7
+ const project = search.project;
8
+ return {
9
+ ...state === "RUNNING" || state === "SUCCEEDED" || state === "FAILED" ? { state } : {},
10
+ ...typeof project === "string" && isProjectKey(project) ? { project } : {}
11
+ };
12
+ },
13
+ component: lazyRouteComponent($$splitComponentImporter, "component")
14
+ });
15
+ function isProjectKey(value) {
16
+ return /^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$/.test(value);
17
+ }
18
+ //#endregion
19
+ export { Route as t };
@@ -2,10 +2,10 @@ import { o as __toESM } from "../_runtime.mjs";
2
2
  import { c as require_jsx_runtime } from "../_libs/@radix-ui/react-arrow+[...].mjs";
3
3
  import { f as useNavigate } from "../_libs/@tanstack/react-router+[...].mjs";
4
4
  import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
5
- import { t as Route } from "./sandboxes-qSX_pfUJ.mjs";
6
- //#region node_modules/.nitro/vite/services/ssr/assets/sandboxes-BIAgn8pu2.js
5
+ import { t as Route } from "./sandboxes-v28LJQM3.mjs";
6
+ //#region node_modules/.nitro/vite/services/ssr/assets/sandboxes-hxFINxDS.js
7
7
  var import_jsx_runtime = require_jsx_runtime();
8
- var SandboxesPage = (0, (/* @__PURE__ */ __toESM(require_react())).lazy)(() => import("./SandboxesPage-Dlq0Ga24.mjs").then((module) => ({ default: module.SandboxesPage })));
8
+ var SandboxesPage = (0, (/* @__PURE__ */ __toESM(require_react())).lazy)(() => import("./SandboxesPage-DGji_OdB.mjs").then((module) => ({ default: module.SandboxesPage })));
9
9
  function SandboxesRouteComponent() {
10
10
  const { runId } = Route.useSearch();
11
11
  const navigate = useNavigate();
@@ -1,6 +1,6 @@
1
1
  import { c as lazyRouteComponent, l as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
2
- //#region node_modules/.nitro/vite/services/ssr/assets/sandboxes-qSX_pfUJ.js
3
- var $$splitComponentImporter = () => import("./sandboxes-BIAgn8pu2.mjs");
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/sandboxes-v28LJQM3.js
3
+ var $$splitComponentImporter = () => import("./sandboxes-hxFINxDS.mjs");
4
4
  var Route = createFileRoute("/sandboxes")({
5
5
  validateSearch: (search) => ({ runId: typeof search.runId === "string" ? search.runId : void 0 }),
6
6
  component: lazyRouteComponent($$splitComponentImporter, "component")
@@ -4,7 +4,7 @@ import { d as Link } from "../_libs/@tanstack/react-router+[...].mjs";
4
4
  import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
5
5
  import { t as cn } from "./utils-C_uf36nf.mjs";
6
6
  import { t as Button } from "./button-Btfpc86G.mjs";
7
- import { C as Mail, D as LoaderCircle, E as Lock, T as LogIn, z as CircleAlert } from "../_libs/lucide-react.mjs";
7
+ import { C as Mail, D as LoaderCircle, E as Lock, T as LogIn, W as CircleAlert } from "../_libs/lucide-react.mjs";
8
8
  import { l as validateSignInInput } from "./auth-validation-D9jyYJqc.mjs";
9
9
  //#region node_modules/.nitro/vite/services/ssr/assets/signin-form-CQDi-0A5.js
10
10
  var import_jsx_runtime = require_jsx_runtime();
@@ -3819,7 +3819,7 @@ function getResponse() {
3819
3819
  return getH3Event().res;
3820
3820
  }
3821
3821
  async function getStartManifest(matchedRoutes) {
3822
- const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-CR_hZXXv.mjs");
3822
+ const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-DfwuEzTr.mjs");
3823
3823
  const startManifest = tsrStartManifest();
3824
3824
  const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes["__root__"] || {};
3825
3825
  rootRoute.assets = rootRoute.assets || [];
@@ -4276,7 +4276,7 @@ var entriesPromise;
4276
4276
  var baseManifestPromise;
4277
4277
  var cachedFinalManifestPromise;
4278
4278
  async function loadEntries() {
4279
- const routerEntry = await import("./router-elhBqT5k.mjs");
4279
+ const routerEntry = await import("./router-DHxFQ03L.mjs");
4280
4280
  return {
4281
4281
  startEntry: await import("./start-rVEVzFV_.mjs"),
4282
4282
  routerEntry