@baochunli/flakes 0.0.4 → 0.0.6

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 (275) 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/package.json +1 -1
  37. package/dist/node_modules/@flakes/console/.output/nitro.json +1 -1
  38. package/dist/node_modules/@flakes/console/.output/public/assets/DocumentationPage-CGIcMKwf.js +1 -0
  39. package/dist/node_modules/@flakes/console/.output/public/assets/ProjectsPage-ByTl4Kyy.js +1 -0
  40. package/dist/node_modules/@flakes/console/.output/public/assets/RunPage-5MmbVpaE.js +3 -0
  41. package/dist/node_modules/@flakes/console/.output/public/assets/RunsPage-fbDKP9kM.js +1 -0
  42. package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesLens-DPG87mUE.js +1 -0
  43. package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesPage-DIpzR_Ef.js +1 -0
  44. package/dist/node_modules/@flakes/console/.output/public/assets/TranscriptPage-mCgSqfv0.js +1 -0
  45. package/dist/node_modules/@flakes/console/.output/public/assets/_-CM2hE2sZ.js +1 -0
  46. package/dist/node_modules/@flakes/console/.output/public/assets/_runId-3ZZOAqUK.js +2 -0
  47. package/dist/node_modules/@flakes/console/.output/public/assets/_taskId-cy4RxW8Y.js +2 -0
  48. package/dist/node_modules/@flakes/console/.output/public/assets/account-BWoGGXJw.js +1 -0
  49. package/dist/node_modules/@flakes/console/.output/public/assets/account-forms-Dq70JDyg.js +1 -0
  50. package/dist/node_modules/@flakes/console/.output/public/assets/arrow-right-QzVbRzF_.js +1 -0
  51. package/dist/node_modules/@flakes/console/.output/public/assets/auth-layout-BFusNq3W.js +1 -0
  52. package/dist/node_modules/@flakes/console/.output/public/assets/bits-CTGNpp-v.js +1 -0
  53. package/dist/node_modules/@flakes/console/.output/public/assets/card-37qs8AAd.js +1 -0
  54. package/dist/node_modules/@flakes/console/.output/public/assets/circle-alert-CM0SVfzc.js +1 -0
  55. package/dist/node_modules/@flakes/console/.output/public/assets/circle-check-CzwcEElH.js +1 -0
  56. package/dist/node_modules/@flakes/console/.output/public/assets/circle-x-C_sOQVNQ.js +1 -0
  57. package/dist/node_modules/@flakes/console/.output/public/assets/device-BajR3eSF.js +1 -0
  58. package/dist/node_modules/@flakes/console/.output/public/assets/documentation-6ao_Ux6x.js +1 -0
  59. package/dist/node_modules/@flakes/console/.output/public/assets/{external-link-BW8lpiMR.js → external-link-BWhbbPgy.js} +1 -1
  60. package/dist/node_modules/@flakes/console/.output/public/assets/{file-text-DMdy8OfN.js → file-text-DLxLJ7P1.js} +1 -1
  61. package/dist/node_modules/@flakes/console/.output/public/assets/forgot-password-DOKn8_7P.js +1 -0
  62. package/dist/node_modules/@flakes/console/.output/public/assets/inbox-BVu38EN6.js +1 -0
  63. package/dist/node_modules/@flakes/console/.output/public/assets/{lib-DtfURcG3.js → lib-COfgMmRR.js} +3 -3
  64. package/dist/node_modules/@flakes/console/.output/public/assets/link-ll3nLBSM.js +1 -0
  65. package/dist/node_modules/@flakes/console/.output/public/assets/{lock-D4OhqEPW.js → lock-Ck2SfQA2.js} +1 -1
  66. package/dist/node_modules/@flakes/console/.output/public/assets/main-DVO9gWzi.js +1215 -0
  67. package/dist/node_modules/@flakes/console/.output/public/assets/matchContext-puEkI9BI.js +1 -0
  68. package/dist/node_modules/@flakes/console/.output/public/assets/otp-verification-qolVtiom.js +20 -0
  69. package/dist/node_modules/@flakes/console/.output/public/assets/projects-n5LSsNi3.js +2 -0
  70. package/dist/node_modules/@flakes/console/.output/public/assets/react-B8IZ02wI.js +1 -0
  71. package/dist/node_modules/@flakes/console/.output/public/assets/react-dom-ki7NpxV4.js +1 -0
  72. package/dist/node_modules/@flakes/console/.output/public/assets/redirect-Cu9zBy04.js +1 -0
  73. package/dist/node_modules/@flakes/console/.output/public/assets/reset-password-D-OlZeHQ.js +1 -0
  74. package/dist/node_modules/@flakes/console/.output/public/assets/runs-BB9ogobQ.js +2 -0
  75. package/dist/node_modules/@flakes/console/.output/public/assets/sandboxes-BIimz5FI.js +2 -0
  76. package/dist/node_modules/@flakes/console/.output/public/assets/{save-1uf5fQff.js → save-Bte_1tnN.js} +1 -1
  77. package/dist/node_modules/@flakes/console/.output/public/assets/security-DdQNcp6k.js +1 -0
  78. package/dist/node_modules/@flakes/console/.output/public/assets/signin-BoZiVxyq.js +1 -0
  79. package/dist/node_modules/@flakes/console/.output/public/assets/signin-form-tTBWDjhi.js +1 -0
  80. package/dist/node_modules/@flakes/console/.output/public/assets/signup-CBSszmUC.js +1 -0
  81. package/dist/node_modules/@flakes/console/.output/public/assets/styles-B8OXOvkO.css +2 -0
  82. package/dist/node_modules/@flakes/console/.output/public/assets/table-WMIs2m3R.js +1 -0
  83. package/dist/node_modules/@flakes/console/.output/public/assets/tiny-invariant-CO5X59di.js +1 -0
  84. package/dist/node_modules/@flakes/console/.output/public/assets/user-Bt9z7sSI.js +1 -0
  85. package/dist/node_modules/@flakes/console/.output/public/assets/utils-CBxvVKOM.js +1 -0
  86. package/dist/node_modules/@flakes/console/.output/public/assets/x-Bdsfqbi3.js +1 -0
  87. package/dist/node_modules/@flakes/console/.output/server/{_-DwPiGKLE.mjs → _-BGsKgsbF.mjs} +3 -3
  88. package/dist/node_modules/@flakes/console/.output/server/{_-C-u135Pp.mjs → _-DtPMXzt0.mjs} +3 -3
  89. package/dist/node_modules/@flakes/console/.output/server/_chunks/ProjectsPage.mjs +588 -0
  90. package/dist/node_modules/@flakes/console/.output/server/_chunks/RunPage.mjs +13 -7
  91. package/dist/node_modules/@flakes/console/.output/server/_chunks/RunsPage.mjs +43 -13
  92. package/dist/node_modules/@flakes/console/.output/server/_chunks/SandboxesLens.mjs +1 -1
  93. package/dist/node_modules/@flakes/console/.output/server/_chunks/SandboxesPage.mjs +253 -18
  94. package/dist/node_modules/@flakes/console/.output/server/_chunks/TranscriptPage.mjs +2 -3
  95. package/dist/node_modules/@flakes/console/.output/server/_chunks/bits.mjs +1 -1
  96. package/dist/node_modules/@flakes/console/.output/server/_chunks/button.mjs +461 -3
  97. package/dist/node_modules/@flakes/console/.output/server/_chunks/card.mjs +1 -1
  98. package/dist/node_modules/@flakes/console/.output/server/_chunks/project-navigation.mjs +79 -0
  99. package/dist/node_modules/@flakes/console/.output/server/_chunks/router.mjs +193 -111
  100. package/dist/node_modules/@flakes/console/.output/server/_chunks/table.mjs +1 -1
  101. package/dist/node_modules/@flakes/console/.output/server/_libs/lucide-react.mjs +178 -1
  102. package/dist/node_modules/@flakes/console/.output/server/{_runId-Cag5UaYU.mjs → _runId-P1u-vfcm.mjs} +2 -2
  103. package/dist/node_modules/@flakes/console/.output/server/{_runId-CJ5_8uS8.mjs → _runId-vO4tlCOP.mjs} +3 -3
  104. package/dist/node_modules/@flakes/console/.output/server/_ssr/{App-CwFtUgAz.mjs → App-C-XaVKoO.mjs} +118 -64
  105. package/dist/node_modules/@flakes/console/.output/server/_ssr/{DocumentationPage-CtBAQbzy.mjs → DocumentationPage-BR2KosFz.mjs} +3 -3
  106. package/dist/node_modules/@flakes/console/.output/server/_ssr/ProjectsPage-BUrep1wl.mjs +590 -0
  107. package/dist/node_modules/@flakes/console/.output/server/_ssr/{RunPage-CatpnkFy.mjs → RunPage-BHs-v0LU.mjs} +14 -7
  108. package/dist/node_modules/@flakes/console/.output/server/_ssr/{RunsPage-BmLTih8Z.mjs → RunsPage-iTNYVwL0.mjs} +44 -13
  109. package/dist/node_modules/@flakes/console/.output/server/_ssr/SandboxesPage-C1Z6dVce.mjs +423 -0
  110. package/dist/node_modules/@flakes/console/.output/server/_ssr/{TranscriptPage-DaSIDCKk.mjs → TranscriptPage-BcomoTls.mjs} +3 -3
  111. package/dist/node_modules/@flakes/console/.output/server/_ssr/{account-DzluYS58.mjs → account-Cp0s_IQK.mjs} +2 -2
  112. package/dist/node_modules/@flakes/console/.output/server/_ssr/account-forms-CsothyLo.mjs +1 -1
  113. package/dist/node_modules/@flakes/console/.output/server/_ssr/device-CRZl7dGv.mjs +1 -1
  114. package/dist/node_modules/@flakes/console/.output/server/_ssr/documentation-BnxmM-Yo.mjs +210 -0
  115. package/dist/node_modules/@flakes/console/.output/server/_ssr/{documentation-PC93pMWl.mjs → documentation-Cgyr3VKK.mjs} +3 -3
  116. package/dist/node_modules/@flakes/console/.output/server/_ssr/{hooks-COIYuQzf.mjs → hooks-CsVtQ1m-.mjs} +178 -6
  117. package/dist/node_modules/@flakes/console/.output/server/_ssr/project-navigation-DI77TL9a.mjs +79 -0
  118. package/dist/node_modules/@flakes/console/.output/server/_ssr/projects-R9sxR_t4.mjs +5 -0
  119. package/dist/node_modules/@flakes/console/.output/server/_ssr/reset-password-SmmTixcr.mjs +1 -1
  120. package/dist/node_modules/@flakes/console/.output/server/_ssr/{router-elhBqT5k.mjs → router-CobdI6gO.mjs} +49 -41
  121. package/dist/node_modules/@flakes/console/.output/server/_ssr/runs-D8MHe3QU.mjs +19 -0
  122. package/dist/node_modules/@flakes/console/.output/server/_ssr/{runs-CBkO-RO8.mjs → runs-mTxbc_pm.mjs} +17 -5
  123. package/dist/node_modules/@flakes/console/.output/server/_ssr/{sandboxes-qSX_pfUJ.mjs → sandboxes-B2z_9JyU.mjs} +2 -2
  124. package/dist/node_modules/@flakes/console/.output/server/_ssr/{sandboxes-BIAgn8pu2.mjs → sandboxes-r0y6Ihg6.mjs} +3 -3
  125. package/dist/node_modules/@flakes/console/.output/server/_ssr/signin-form-CQDi-0A5.mjs +1 -1
  126. package/dist/node_modules/@flakes/console/.output/server/_ssr/ssr.mjs +2 -2
  127. package/dist/node_modules/@flakes/console/.output/server/{_tanstack-start-manifest_v-CR_hZXXv.mjs → _tanstack-start-manifest_v-DpAwCFK9.mjs} +53 -46
  128. package/dist/node_modules/@flakes/console/.output/server/{_taskId-BaezvY0w.mjs → _taskId-Cz9xwj5L.mjs} +2 -2
  129. package/dist/node_modules/@flakes/console/.output/server/{_taskId-Da7kHKj9.mjs → _taskId-wQsG2CQj.mjs} +3 -3
  130. package/dist/node_modules/@flakes/console/package.json +1 -1
  131. package/dist/node_modules/@flakes/control-plane/dist/client-access.d.ts +17 -0
  132. package/dist/node_modules/@flakes/control-plane/dist/client-access.d.ts.map +1 -1
  133. package/dist/node_modules/@flakes/control-plane/dist/client-access.js +12 -0
  134. package/dist/node_modules/@flakes/control-plane/dist/client-access.js.map +1 -1
  135. package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.d.ts +24 -1
  136. package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.d.ts.map +1 -1
  137. package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.js +87 -3
  138. package/dist/node_modules/@flakes/control-plane/dist/host-pool-matching.js.map +1 -1
  139. package/dist/node_modules/@flakes/control-plane/dist/host-stream.d.ts.map +1 -1
  140. package/dist/node_modules/@flakes/control-plane/dist/host-stream.js +150 -40
  141. package/dist/node_modules/@flakes/control-plane/dist/host-stream.js.map +1 -1
  142. package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.d.ts.map +1 -1
  143. package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.js +219 -0
  144. package/dist/node_modules/@flakes/control-plane/dist/routes/hosts.js.map +1 -1
  145. package/dist/node_modules/@flakes/control-plane/dist/routes/projects.d.ts +3 -0
  146. package/dist/node_modules/@flakes/control-plane/dist/routes/projects.d.ts.map +1 -0
  147. package/dist/node_modules/@flakes/control-plane/dist/routes/projects.js +226 -0
  148. package/dist/node_modules/@flakes/control-plane/dist/routes/projects.js.map +1 -0
  149. package/dist/node_modules/@flakes/control-plane/dist/routes/runs.d.ts.map +1 -1
  150. package/dist/node_modules/@flakes/control-plane/dist/routes/runs.js +93 -6
  151. package/dist/node_modules/@flakes/control-plane/dist/routes/runs.js.map +1 -1
  152. package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes.js +48 -3
  153. package/dist/node_modules/@flakes/control-plane/dist/routes/sandboxes.js.map +1 -1
  154. package/dist/node_modules/@flakes/control-plane/dist/routes/tasks.js +2 -2
  155. package/dist/node_modules/@flakes/control-plane/dist/routes/tasks.js.map +1 -1
  156. package/dist/node_modules/@flakes/control-plane/dist/scheduler.d.ts +2 -0
  157. package/dist/node_modules/@flakes/control-plane/dist/scheduler.d.ts.map +1 -1
  158. package/dist/node_modules/@flakes/control-plane/dist/scheduler.js +53 -21
  159. package/dist/node_modules/@flakes/control-plane/dist/scheduler.js.map +1 -1
  160. package/dist/node_modules/@flakes/control-plane/dist/server.d.ts.map +1 -1
  161. package/dist/node_modules/@flakes/control-plane/dist/server.js +2 -0
  162. package/dist/node_modules/@flakes/control-plane/dist/server.js.map +1 -1
  163. package/dist/node_modules/@flakes/control-plane/dist/types.d.ts +2 -0
  164. package/dist/node_modules/@flakes/control-plane/dist/types.d.ts.map +1 -1
  165. package/dist/node_modules/@flakes/control-plane/package.json +1 -1
  166. package/dist/node_modules/@flakes/core/dist/config.d.ts.map +1 -1
  167. package/dist/node_modules/@flakes/core/dist/config.js +6 -2
  168. package/dist/node_modules/@flakes/core/dist/config.js.map +1 -1
  169. package/dist/node_modules/@flakes/core/dist/ids.d.ts +4 -0
  170. package/dist/node_modules/@flakes/core/dist/ids.d.ts.map +1 -1
  171. package/dist/node_modules/@flakes/core/dist/ids.js +2 -0
  172. package/dist/node_modules/@flakes/core/dist/ids.js.map +1 -1
  173. package/dist/node_modules/@flakes/core/dist/runtime.d.ts +1 -1
  174. package/dist/node_modules/@flakes/core/dist/schemas.d.ts +11 -0
  175. package/dist/node_modules/@flakes/core/dist/schemas.d.ts.map +1 -1
  176. package/dist/node_modules/@flakes/core/dist/schemas.js +10 -0
  177. package/dist/node_modules/@flakes/core/dist/schemas.js.map +1 -1
  178. package/dist/node_modules/@flakes/core/package.json +1 -1
  179. package/dist/node_modules/@flakes/harness-agent/package.json +1 -1
  180. package/dist/node_modules/@flakes/harness-sdk/package.json +1 -1
  181. package/dist/node_modules/@flakes/pi-agent/package.json +1 -1
  182. package/dist/node_modules/@flakes/protocol/dist/index.d.ts +1 -1
  183. package/dist/node_modules/@flakes/protocol/dist/index.d.ts.map +1 -1
  184. package/dist/node_modules/@flakes/protocol/dist/index.js +1 -1
  185. package/dist/node_modules/@flakes/protocol/dist/index.js.map +1 -1
  186. package/dist/node_modules/@flakes/protocol/dist/v1.d.ts +317 -0
  187. package/dist/node_modules/@flakes/protocol/dist/v1.d.ts.map +1 -1
  188. package/dist/node_modules/@flakes/protocol/dist/v1.js +50 -1
  189. package/dist/node_modules/@flakes/protocol/dist/v1.js.map +1 -1
  190. package/dist/node_modules/@flakes/protocol/package.json +1 -1
  191. package/dist/node_modules/@flakes/sandbox-runtime/dist/transport.js +3 -6
  192. package/dist/node_modules/@flakes/sandbox-runtime/dist/transport.js.map +1 -1
  193. package/dist/node_modules/@flakes/sandbox-runtime/package.json +1 -1
  194. package/dist/node_modules/@flakes/store/dist/artifacts-events-store.d.ts.map +1 -1
  195. package/dist/node_modules/@flakes/store/dist/artifacts-events-store.js +10 -0
  196. package/dist/node_modules/@flakes/store/dist/artifacts-events-store.js.map +1 -1
  197. package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.d.ts +2 -1
  198. package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.d.ts.map +1 -1
  199. package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.js +1 -0
  200. package/dist/node_modules/@flakes/store/dist/host-provisioning-limits.js.map +1 -1
  201. package/dist/node_modules/@flakes/store/dist/kysely-store.d.ts +2 -2
  202. package/dist/node_modules/@flakes/store/dist/kysely-store.d.ts.map +1 -1
  203. package/dist/node_modules/@flakes/store/dist/kysely-store.js +2 -2
  204. package/dist/node_modules/@flakes/store/dist/kysely-store.js.map +1 -1
  205. package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.d.ts +14 -2
  206. package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.d.ts.map +1 -1
  207. package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.js +567 -9
  208. package/dist/node_modules/@flakes/store/dist/managed-sandbox-instances-store.js.map +1 -1
  209. package/dist/node_modules/@flakes/store/dist/mappers.d.ts +10 -2
  210. package/dist/node_modules/@flakes/store/dist/mappers.d.ts.map +1 -1
  211. package/dist/node_modules/@flakes/store/dist/mappers.js +46 -0
  212. package/dist/node_modules/@flakes/store/dist/mappers.js.map +1 -1
  213. package/dist/node_modules/@flakes/store/dist/projects-store.d.ts +42 -0
  214. package/dist/node_modules/@flakes/store/dist/projects-store.d.ts.map +1 -0
  215. package/dist/node_modules/@flakes/store/dist/projects-store.js +376 -0
  216. package/dist/node_modules/@flakes/store/dist/projects-store.js.map +1 -0
  217. package/dist/node_modules/@flakes/store/dist/runs-store.d.ts.map +1 -1
  218. package/dist/node_modules/@flakes/store/dist/runs-store.js +7 -2
  219. package/dist/node_modules/@flakes/store/dist/runs-store.js.map +1 -1
  220. package/dist/node_modules/@flakes/store/dist/schema.js +72 -0
  221. package/dist/node_modules/@flakes/store/dist/schema.js.map +1 -1
  222. package/dist/node_modules/@flakes/store/dist/store-base.d.ts +14 -12
  223. package/dist/node_modules/@flakes/store/dist/store-base.d.ts.map +1 -1
  224. package/dist/node_modules/@flakes/store/dist/tables.d.ts +41 -1
  225. package/dist/node_modules/@flakes/store/dist/tables.d.ts.map +1 -1
  226. package/dist/node_modules/@flakes/store/dist/tasks-store.d.ts.map +1 -1
  227. package/dist/node_modules/@flakes/store/dist/tasks-store.js +9 -2
  228. package/dist/node_modules/@flakes/store/dist/tasks-store.js.map +1 -1
  229. package/dist/node_modules/@flakes/store/dist/types.d.ts +189 -2
  230. package/dist/node_modules/@flakes/store/dist/types.d.ts.map +1 -1
  231. package/dist/node_modules/@flakes/store/package.json +1 -1
  232. package/package.json +1 -1
  233. package/dist/node_modules/@flakes/console/.output/public/assets/DocumentationPage-DM-ZYPgQ.js +0 -1
  234. package/dist/node_modules/@flakes/console/.output/public/assets/RunPage-i03UqHYF.js +0 -3
  235. package/dist/node_modules/@flakes/console/.output/public/assets/RunsPage-u8qbeAoV.js +0 -1
  236. package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesLens-BUQQWmH6.js +0 -1
  237. package/dist/node_modules/@flakes/console/.output/public/assets/SandboxesPage-D8D_5kXP.js +0 -1
  238. package/dist/node_modules/@flakes/console/.output/public/assets/TranscriptPage-ChoFjiPI.js +0 -1
  239. package/dist/node_modules/@flakes/console/.output/public/assets/_-C4ecJpHe.js +0 -1
  240. package/dist/node_modules/@flakes/console/.output/public/assets/_runId-BZXYFY32.js +0 -2
  241. package/dist/node_modules/@flakes/console/.output/public/assets/_taskId-C28oHEU_.js +0 -2
  242. package/dist/node_modules/@flakes/console/.output/public/assets/account-B4wDEC7t.js +0 -1
  243. package/dist/node_modules/@flakes/console/.output/public/assets/account-forms-BLo66Mqa.js +0 -1
  244. package/dist/node_modules/@flakes/console/.output/public/assets/arrow-right-BMW8fJP5.js +0 -1
  245. package/dist/node_modules/@flakes/console/.output/public/assets/auth-layout-DiUSgtaY.js +0 -1
  246. package/dist/node_modules/@flakes/console/.output/public/assets/bits-Cv0Te4iz.js +0 -1
  247. package/dist/node_modules/@flakes/console/.output/public/assets/card-DSG3_teC.js +0 -1
  248. package/dist/node_modules/@flakes/console/.output/public/assets/circle-check-B0gtb8OH.js +0 -1
  249. package/dist/node_modules/@flakes/console/.output/public/assets/device-NrLWypMd.js +0 -1
  250. package/dist/node_modules/@flakes/console/.output/public/assets/dist-BtPw3IIV.js +0 -1
  251. package/dist/node_modules/@flakes/console/.output/public/assets/documentation-NRDmcDud.js +0 -1
  252. package/dist/node_modules/@flakes/console/.output/public/assets/forgot-password--3Mujc8s.js +0 -1
  253. package/dist/node_modules/@flakes/console/.output/public/assets/link-BsixJinJ.js +0 -1
  254. package/dist/node_modules/@flakes/console/.output/public/assets/main-KBvz0mSQ.js +0 -1055
  255. package/dist/node_modules/@flakes/console/.output/public/assets/matchContext-tJ0VTv5m.js +0 -1
  256. package/dist/node_modules/@flakes/console/.output/public/assets/otp-verification-BSXwS5bo.js +0 -20
  257. package/dist/node_modules/@flakes/console/.output/public/assets/react-DtOYBmep.js +0 -1
  258. package/dist/node_modules/@flakes/console/.output/public/assets/react-dom-DrIU40PY.js +0 -1
  259. package/dist/node_modules/@flakes/console/.output/public/assets/redirect-BEm0VK76.js +0 -1
  260. package/dist/node_modules/@flakes/console/.output/public/assets/reset-password-C7SbNx2J.js +0 -1
  261. package/dist/node_modules/@flakes/console/.output/public/assets/runs-xD4ynllK.js +0 -2
  262. package/dist/node_modules/@flakes/console/.output/public/assets/sandboxes-Cfr1Y2Dn.js +0 -2
  263. package/dist/node_modules/@flakes/console/.output/public/assets/security-CCThSJae.js +0 -1
  264. package/dist/node_modules/@flakes/console/.output/public/assets/signin-CYeR3TaY.js +0 -1
  265. package/dist/node_modules/@flakes/console/.output/public/assets/signin-form-Bp22jPob.js +0 -1
  266. package/dist/node_modules/@flakes/console/.output/public/assets/signup-DHhPfohX.js +0 -1
  267. package/dist/node_modules/@flakes/console/.output/public/assets/styles-8wEqfToJ.css +0 -2
  268. package/dist/node_modules/@flakes/console/.output/public/assets/table-DptQuuuq.js +0 -1
  269. package/dist/node_modules/@flakes/console/.output/public/assets/user-DK27uFod.js +0 -1
  270. package/dist/node_modules/@flakes/console/.output/public/assets/utils-CEE0-YEp.js +0 -1
  271. package/dist/node_modules/@flakes/console/.output/public/assets/x-fKvnmCoQ.js +0 -1
  272. package/dist/node_modules/@flakes/console/.output/server/_chunks/utils.mjs +0 -285
  273. package/dist/node_modules/@flakes/console/.output/server/_ssr/SandboxesPage-Dlq0Ga24.mjs +0 -187
  274. package/dist/node_modules/@flakes/console/.output/server/_ssr/documentation-Bf0VPrnt.mjs +0 -210
  275. package/dist/node_modules/@flakes/console/.output/server/_ssr/runs-BzfGldVd.mjs +0 -12
@@ -1,11 +1,11 @@
1
1
  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 { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
4
- import { A as Inbox } from "../_libs/lucide-react.mjs";
5
- import { c as useRuns, t as cn } from "./utils.mjs";
6
- import { t as Button } from "./button.mjs";
4
+ import { A as Inbox, r as X } from "../_libs/lucide-react.mjs";
5
+ import { c as useProjects, m as useRuns, n as cn, t as Button } from "./button.mjs";
6
+ import { n as projectLabelForRun } from "./project-navigation.mjs";
7
7
  import { a as CardTitle, i as CardHeader, n as CardContent, r as CardDescription, t as Card } from "./card.mjs";
8
- import { c as timeAgo, d as Skeleton, l as useClockTick, n as StatusBar, s as taskProgress, t as StateBadge, u as useFlash } from "./bits.mjs";
8
+ import { c as timeAgo, d as Skeleton, f as Badge, l as useClockTick, n as StatusBar, s as taskProgress, t as StateBadge, u as useFlash } from "./bits.mjs";
9
9
  import { a as TableHeader, i as TableHead, n as TableBody, o as TableRow, r as TableCell, t as Table } from "./table.mjs";
10
10
  //#region src/views/RunsPage.tsx
11
11
  var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
@@ -30,8 +30,14 @@ var stateFilters = [
30
30
  ];
31
31
  function RunsPage(props) {
32
32
  const filter = props.filter;
33
- const allRuns = useRuns();
34
- const runs = useRuns(filter);
33
+ const projectList = useProjects().data?.projects ?? [];
34
+ const selectedProject = props.projectKey === void 0 ? void 0 : projectList.find((project) => project.projectKey === props.projectKey);
35
+ const query = props.projectKey === void 0 ? { state: filter } : {
36
+ state: filter,
37
+ projectKey: props.projectKey
38
+ };
39
+ const allRuns = useRuns(props.projectKey === void 0 ? void 0 : { projectKey: props.projectKey });
40
+ const runs = useRuns(query);
35
41
  const loadedAll = (allRuns.data?.pages ?? []).flatMap((page) => page.runs);
36
42
  const loaded = (runs.data?.pages ?? []).flatMap((page) => page.runs);
37
43
  useClockTick();
@@ -51,9 +57,15 @@ function RunsPage(props) {
51
57
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", {
52
58
  className: "grid gap-5",
53
59
  children: [
54
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
55
- className: "text-lg font-semibold tracking-tight",
56
- children: "Runs"
60
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
61
+ className: "flex flex-wrap items-center gap-2",
62
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
63
+ className: "text-lg font-semibold tracking-tight",
64
+ children: "Runs"
65
+ }), props.projectKey !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Badge, {
66
+ variant: "secondary",
67
+ children: selectedProject?.name ?? props.projectKey
68
+ }) : null]
57
69
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
58
70
  className: "text-sm text-muted-foreground",
59
71
  children: "Every run your account can read, newest first."
@@ -71,16 +83,22 @@ function RunsPage(props) {
71
83
  baseline: rate ?? 0
72
84
  })]
73
85
  }),
74
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
75
87
  className: "flex items-center gap-1.5",
76
- children: stateFilters.map((entry) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
88
+ children: [stateFilters.map((entry) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
77
89
  size: "sm",
78
90
  "aria-pressed": filter === entry.value,
79
91
  variant: filter === entry.value ? "secondary" : "ghost",
80
92
  className: cn("h-7 px-2.5 font-mono text-xs uppercase tracking-[0.08em]", filter !== entry.value && "text-muted-foreground"),
81
93
  onClick: () => props.onFilterChange(entry.value),
82
94
  children: entry.label
83
- }, entry.label))
95
+ }, entry.label)), props.projectKey !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Button, {
96
+ size: "sm",
97
+ variant: "ghost",
98
+ className: "h-7 px-2.5 font-mono text-xs uppercase tracking-[0.08em] text-muted-foreground",
99
+ onClick: () => props.onProjectChange(void 0),
100
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(X, { className: "size-3" }), "All projects"]
101
+ }) : null]
84
102
  }),
85
103
  runs.isError ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
86
104
  className: "text-sm text-status-failed",
@@ -94,6 +112,10 @@ function RunsPage(props) {
94
112
  className: "console-callout text-muted-foreground",
95
113
  children: "Run"
96
114
  }),
115
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, {
116
+ className: "console-callout text-muted-foreground",
117
+ children: "Project"
118
+ }),
97
119
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, {
98
120
  className: "console-callout text-muted-foreground",
99
121
  children: "State"
@@ -112,6 +134,7 @@ function RunsPage(props) {
112
134
  })
113
135
  ] }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableBody, { children: runs.isPending ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonRows, {}) : loaded.map((run) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RunRow, {
114
136
  run,
137
+ projects: projectList,
115
138
  rising: rising.has(run.runId),
116
139
  onOpen: () => props.onOpenRun(run.runId)
117
140
  }, run.runId)) })] })
@@ -128,6 +151,7 @@ function RunsPage(props) {
128
151
  }
129
152
  function RunRow(props) {
130
153
  const flash = useFlash(props.run.updatedAt);
154
+ const projectLabel = projectLabelForRun(props.projects, props.run);
131
155
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TableRow, {
132
156
  "data-flash": flash,
133
157
  className: cn("cursor-pointer", props.rising && "animate-in fade-in slide-in-from-bottom-1 duration-200"),
@@ -152,6 +176,11 @@ function RunRow(props) {
152
176
  })
153
177
  ]
154
178
  }),
179
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableCell, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
180
+ className: "block max-w-40 truncate font-mono text-xs text-muted-foreground",
181
+ title: projectLabel,
182
+ children: projectLabel ?? "—"
183
+ }) }),
155
184
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableCell, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StateBadge, {
156
185
  state: props.run.state,
157
186
  id: props.run.runId
@@ -233,7 +262,8 @@ function SkeletonRows() {
233
262
  1,
234
263
  2,
235
264
  3,
236
- 4
265
+ 4,
266
+ 5
237
267
  ].map((cell) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableCell, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Skeleton, { className: "h-4 w-full max-w-32" }) }, cell)) }, row)) });
238
268
  }
239
269
  function EmptyState(props) {
@@ -1,5 +1,5 @@
1
1
  import { c as require_jsx_runtime } from "../_libs/@radix-ui/react-arrow+[...].mjs";
2
- import { t as cn } from "./utils.mjs";
2
+ import { n as cn } from "./button.mjs";
3
3
  import { a as taskDisplayName, t as StateBadge } from "./bits.mjs";
4
4
  //#region src/views/SandboxesLens.tsx
5
5
  var import_jsx_runtime = require_jsx_runtime();
@@ -1,10 +1,14 @@
1
+ import { o as __toESM } from "../_runtime.mjs";
1
2
  import { c as require_jsx_runtime } from "../_libs/@radix-ui/react-arrow+[...].mjs";
2
- import { G as ArrowRight, N as ExternalLink, U as Boxes } from "../_libs/lucide-react.mjs";
3
- import { c as useRuns, s as useRunTasks, t as cn } from "./utils.mjs";
3
+ import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
4
+ import { D as LoaderCircle, I as ExternalLink, J as Boxes, X as ArrowRight, r as X, s as Trash2 } from "../_libs/lucide-react.mjs";
5
+ import { D as managedSandboxDeleteAction, O as managedSandboxDeleteErrorMessage, h as useSandboxFleet, m as useRuns, n as cn, p as useRunTasks, r as useDeleteManagedSandbox, t as Button } from "./button.mjs";
4
6
  import { n as CardContent, t as Card } from "./card.mjs";
5
7
  import { c as timeAgo, d as Skeleton, l as useClockTick, o as taskOrdinals, t as StateBadge } from "./bits.mjs";
8
+ import { a as TableHeader, i as TableHead, n as TableBody, o as TableRow, r as TableCell, t as Table } from "./table.mjs";
6
9
  import { t as SandboxesLens } from "./SandboxesLens.mjs";
7
10
  //#region src/views/SandboxesPage.tsx
11
+ var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
8
12
  var import_jsx_runtime = require_jsx_runtime();
9
13
  function SandboxesPage(props) {
10
14
  const runs = useRuns();
@@ -13,26 +17,257 @@ function SandboxesPage(props) {
13
17
  const selectedRun = loadedRuns.find((run) => run.runId === props.selectedRunId) ?? loadedRuns[0];
14
18
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", {
15
19
  className: "grid gap-5",
16
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
17
- className: "text-lg font-semibold tracking-tight",
18
- children: "Sandboxes"
19
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
20
- className: "text-sm text-muted-foreground",
21
- children: "Sandboxes used by your runs. This is task/session context, not global fleet capacity."
22
- })] }), runs.isError ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
20
+ children: [
21
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
22
+ className: "text-lg font-semibold tracking-tight",
23
+ children: "Sandboxes"
24
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
25
+ className: "text-sm text-muted-foreground",
26
+ children: "Managed fleet state and sandbox placement by run."
27
+ })] }),
28
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ManagedSandboxFleet, {}),
29
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RunPlacementHistory, {
30
+ runs,
31
+ loadedRuns,
32
+ selectedRun,
33
+ onSelectRun: props.onSelectRun,
34
+ onOpenRun: props.onOpenRun,
35
+ onOpenTask: props.onOpenTask
36
+ })
37
+ ]
38
+ });
39
+ }
40
+ function ManagedSandboxFleet() {
41
+ const sandboxFleet = useSandboxFleet();
42
+ const deleteSandbox = useDeleteManagedSandbox();
43
+ const [confirmingSandboxId, setConfirmingSandboxId] = (0, import_react.useState)(null);
44
+ const [pendingSandboxId, setPendingSandboxId] = (0, import_react.useState)(null);
45
+ const [feedback, setFeedback] = (0, import_react.useState)(null);
46
+ async function confirmDelete(sandbox) {
47
+ setPendingSandboxId(sandbox.sandboxId);
48
+ setFeedback(null);
49
+ try {
50
+ const result = await deleteSandbox.mutateAsync(sandbox.sandboxId);
51
+ setConfirmingSandboxId(null);
52
+ setFeedback(deleteSuccessFeedback(result));
53
+ } catch (error) {
54
+ setFeedback({
55
+ tone: "error",
56
+ sandboxId: sandbox.sandboxId,
57
+ message: managedSandboxDeleteErrorMessage(error)
58
+ });
59
+ } finally {
60
+ setPendingSandboxId(null);
61
+ }
62
+ }
63
+ const rows = sandboxFleet.data?.sandboxes ?? [];
64
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Card, {
65
+ className: "py-0",
66
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(CardContent, {
67
+ className: "grid gap-3 p-4",
68
+ children: [
69
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
70
+ className: "flex min-w-0 flex-wrap items-center justify-between gap-2",
71
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
72
+ className: "min-w-0",
73
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", {
74
+ className: "console-callout",
75
+ children: "Managed fleet"
76
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
77
+ className: "mt-1 text-xs text-muted-foreground",
78
+ "data-num": true,
79
+ children: sandboxFleet.isPending ? "Loading" : `${rows.length} sandboxes`
80
+ })]
81
+ })
82
+ }),
83
+ sandboxFleet.isError ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
84
+ className: "text-sm text-destructive",
85
+ children: ["Cannot list managed sandboxes: ", String(sandboxFleet.error)]
86
+ }) : sandboxFleet.isPending ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
87
+ className: "grid gap-2",
88
+ children: [
89
+ 0,
90
+ 1,
91
+ 2
92
+ ].map((row) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Skeleton, { className: "h-10 w-full" }, row))
93
+ }) : rows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
94
+ className: "rounded-md border border-dashed py-8 text-center",
95
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Boxes, { className: "mx-auto size-5 text-muted-foreground" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
96
+ className: "mt-3 text-sm font-medium",
97
+ children: "No managed sandboxes"
98
+ })]
99
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Table, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TableRow, { children: [
100
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, { children: "Sandbox" }),
101
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, { children: "Lifecycle" }),
102
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, { children: "Liveness" }),
103
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, { children: "Host" }),
104
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, { children: "Updated" }),
105
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableHead, {
106
+ className: "text-right",
107
+ children: "Delete"
108
+ })
109
+ ] }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableBody, { children: rows.map((sandbox) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ManagedSandboxRow, {
110
+ sandbox,
111
+ confirming: confirmingSandboxId === sandbox.sandboxId,
112
+ pending: pendingSandboxId === sandbox.sandboxId,
113
+ disabled: deleteSandbox.isPending,
114
+ onRequestDelete: () => {
115
+ setFeedback(null);
116
+ setConfirmingSandboxId(sandbox.sandboxId);
117
+ },
118
+ onCancelDelete: () => setConfirmingSandboxId(null),
119
+ onConfirmDelete: () => void confirmDelete(sandbox)
120
+ }, sandbox.sandboxId)) })] }),
121
+ feedback ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
122
+ role: feedback.tone === "error" ? "alert" : "status",
123
+ className: cn("text-xs", feedback.tone === "error" ? "text-destructive" : "text-muted-foreground"),
124
+ children: [feedback.sandboxId ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
125
+ className: "font-mono",
126
+ "data-num": true,
127
+ children: [
128
+ feedback.sandboxId,
129
+ ":",
130
+ " "
131
+ ]
132
+ }) : null, feedback.message]
133
+ }) : null
134
+ ]
135
+ })
136
+ });
137
+ }
138
+ function ManagedSandboxRow(props) {
139
+ const action = managedSandboxDeleteAction(props.sandbox, props.pending, props.confirming);
140
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TableRow, { children: [
141
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TableCell, {
142
+ className: "max-w-[16rem]",
143
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
144
+ className: "truncate font-mono text-xs text-foreground",
145
+ title: props.sandbox.sandboxId,
146
+ "data-num": true,
147
+ children: props.sandbox.sandboxId
148
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
149
+ className: "mt-1 truncate font-mono text-[11px] text-muted-foreground",
150
+ title: props.sandbox.instanceId,
151
+ "data-num": true,
152
+ children: props.sandbox.instanceId
153
+ })]
154
+ }),
155
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableCell, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StateBadge, {
156
+ state: props.sandbox.status,
157
+ id: props.sandbox.sandboxId
158
+ }) }),
159
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableCell, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StateBadge, {
160
+ state: props.sandbox.sandboxStatus ?? "unknown",
161
+ id: props.sandbox.sandboxId
162
+ }) }),
163
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TableCell, {
164
+ className: "max-w-[13rem]",
165
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
166
+ className: "truncate font-mono text-xs",
167
+ title: props.sandbox.hostId,
168
+ "data-num": true,
169
+ children: props.sandbox.hostId
170
+ }), props.sandbox.hostPoolId ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
171
+ className: "mt-1 truncate font-mono text-[11px] text-muted-foreground",
172
+ title: props.sandbox.hostPoolId,
173
+ "data-num": true,
174
+ children: props.sandbox.hostPoolId
175
+ }) : null]
176
+ }),
177
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableCell, {
178
+ className: "font-mono text-[11px] text-muted-foreground",
179
+ title: props.sandbox.updatedAt,
180
+ "data-num": true,
181
+ children: timeAgo(props.sandbox.updatedAt)
182
+ }),
183
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableCell, {
184
+ className: "text-right",
185
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ManagedSandboxDeleteControls, {
186
+ action,
187
+ cleanupQueued: props.sandbox.status === "deleting",
188
+ disabled: props.disabled,
189
+ sandboxId: props.sandbox.sandboxId,
190
+ onRequestDelete: props.onRequestDelete,
191
+ onCancelDelete: props.onCancelDelete,
192
+ onConfirmDelete: props.onConfirmDelete
193
+ })
194
+ })
195
+ ] });
196
+ }
197
+ function ManagedSandboxDeleteControls(props) {
198
+ if (props.action === "pending") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Button, {
199
+ size: "xs",
200
+ variant: "outline",
201
+ disabled: true,
202
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoaderCircle, { className: "size-3 animate-spin" }), "Deleting"]
203
+ });
204
+ if (props.action === "confirm") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
205
+ className: "flex justify-end gap-1",
206
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Button, {
207
+ type: "button",
208
+ size: "xs",
209
+ variant: "destructive",
210
+ disabled: props.disabled,
211
+ onClick: props.onConfirmDelete,
212
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Trash2, { className: "size-3" }), "Confirm delete"]
213
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
214
+ type: "button",
215
+ size: "icon-xs",
216
+ variant: "ghost",
217
+ "aria-label": `Cancel deleting ${props.sandboxId}`,
218
+ title: "Cancel",
219
+ disabled: props.disabled,
220
+ onClick: props.onCancelDelete,
221
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(X, { className: "size-3" })
222
+ })]
223
+ });
224
+ if (props.action === "request") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
225
+ type: "button",
226
+ size: "icon-xs",
227
+ variant: "ghost",
228
+ "aria-label": `Delete stale managed sandbox ${props.sandboxId}`,
229
+ title: "Delete stale sandbox",
230
+ disabled: props.disabled,
231
+ onClick: props.onRequestDelete,
232
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Trash2, { className: "size-3" })
233
+ });
234
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
235
+ className: "text-xs text-muted-foreground",
236
+ children: props.cleanupQueued ? "Cleanup queued" : "—"
237
+ });
238
+ }
239
+ function deleteSuccessFeedback(result) {
240
+ if (result.status === "cleanup_queued") return {
241
+ tone: "info",
242
+ sandboxId: result.sandboxId,
243
+ message: "Cleanup queued."
244
+ };
245
+ return {
246
+ tone: "info",
247
+ sandboxId: result.sandboxId,
248
+ message: "Deleted."
249
+ };
250
+ }
251
+ function RunPlacementHistory(props) {
252
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
253
+ className: "grid gap-3",
254
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", {
255
+ className: "console-callout",
256
+ children: "Run placement history"
257
+ }) }), props.runs.isError ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
23
258
  className: "text-sm text-destructive",
24
- children: ["Cannot list runs: ", String(runs.error)]
25
- }) : runs.isPending ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingLayout, {}) : loadedRuns.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EmptyState, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
259
+ children: ["Cannot list runs: ", String(props.runs.error)]
260
+ }) : props.runs.isPending ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingLayout, {}) : props.loadedRuns.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EmptyState, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26
261
  className: "grid min-w-0 gap-4 lg:grid-cols-[20rem_minmax(0,1fr)]",
27
262
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RunChooser, {
28
- runs: loadedRuns,
29
- selectedRunId: selectedRun?.runId,
30
- hasMore: runs.hasNextPage,
31
- loadingMore: runs.isFetchingNextPage,
32
- onLoadMore: () => void runs.fetchNextPage(),
263
+ runs: props.loadedRuns,
264
+ selectedRunId: props.selectedRun?.runId,
265
+ hasMore: props.runs.hasNextPage,
266
+ loadingMore: props.runs.isFetchingNextPage,
267
+ onLoadMore: () => void props.runs.fetchNextPage(),
33
268
  onSelect: props.onSelectRun
34
- }), selectedRun ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectedRunSandboxes, {
35
- run: selectedRun,
269
+ }), props.selectedRun ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectedRunSandboxes, {
270
+ run: props.selectedRun,
36
271
  onOpenRun: props.onOpenRun,
37
272
  onOpenTask: props.onOpenTask
38
273
  }) : null]
@@ -2,11 +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 { d as Link } from "../_libs/@tanstack/react-router+[...].mjs";
4
4
  import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
5
- import { B as ChevronRight, K as ArrowDown, V as ChevronLeft, g as Route, h as Save, p as SendHorizontal, r as X, v as Pencil, x as MessageSquarePlus } from "../_libs/lucide-react.mjs";
5
+ import { G as ChevronRight, K as ChevronLeft, Z as ArrowDown, g as Route, h as Save, p as SendHorizontal, r as X, v as Pencil, x as MessageSquarePlus } from "../_libs/lucide-react.mjs";
6
6
  import { t as Markdown } from "../_libs/react-markdown+[...].mjs";
7
7
  import { t as remarkGfm } from "../_libs/remark-gfm.mjs";
8
- import { d as useTaskActivity, f as useTaskPiSession, h as ApiError, l as useSaveTaskWorkpad, m as useTaskWorkpad, p as useTaskPiSessionRaw, s as useRunTasks, t as cn, u as useSendTaskMessage } from "./utils.mjs";
9
- import { t as Button } from "./button.mjs";
8
+ import { S as useTaskWorkpad, _ as useSendTaskMessage, b as useTaskPiSession, g as useSaveTaskWorkpad, k as ApiError, n as cn, p as useRunTasks, t as Button, x as useTaskPiSessionRaw, y as useTaskActivity } from "./button.mjs";
10
9
  import { a as taskDisplayName, d as Skeleton, f as Badge, l as useClockTick, o as taskOrdinals, r as fmtTime, t as StateBadge } from "./bits.mjs";
11
10
  //#region src/views/TranscriptView.tsx
12
11
  var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
@@ -2,7 +2,7 @@ import { o as __toESM } from "../_runtime.mjs";
2
2
  import { c as require_jsx_runtime, i as Slot } from "../_libs/@radix-ui/react-arrow+[...].mjs";
3
3
  import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
4
4
  import { t as cva } from "../_libs/class-variance-authority+clsx.mjs";
5
- import { t as cn } from "./utils.mjs";
5
+ import { n as cn } from "./button.mjs";
6
6
  //#region src/components/ui/badge.tsx
7
7
  var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
8
8
  var import_jsx_runtime = require_jsx_runtime();