@workflow/web 4.0.1-beta.11 → 4.0.1-beta.13
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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +1 -0
- package/.next/build/chunks/[root-of-the-server]__9b8e42cf._.js +206 -0
- package/.next/build/chunks/[root-of-the-server]__9b8e42cf._.js.map +8 -0
- package/.next/build/chunks/[root-of-the-server]__b5765314._.js +500 -0
- package/.next/build/chunks/[root-of-the-server]__b5765314._.js.map +11 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_7ebca740._.js +13 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_7ebca740._.js.map +5 -0
- package/.next/build/chunks/[turbopack]_runtime.js +770 -0
- package/.next/build/chunks/[turbopack]_runtime.js.map +10 -0
- package/.next/build/chunks/node_modules__pnpm_56ec7204._.js +6681 -0
- package/.next/build/chunks/node_modules__pnpm_56ec7204._.js.map +47 -0
- package/.next/build/package.json +1 -0
- package/.next/build/postcss.js +6 -0
- package/.next/build/postcss.js.map +5 -0
- package/.next/build-manifest.json +13 -26
- package/.next/fallback-build-manifest.json +12 -0
- package/.next/images-manifest.json +12 -3
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +29 -3
- package/.next/required-server-files.json +62 -64
- package/.next/routes-manifest.json +10 -1
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +17 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +15 -0
- package/.next/server/app/_global-error/page.js.map +5 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
- package/.next/server/app/_global-error.html +2 -0
- package/.next/server/app/_global-error.meta +15 -0
- package/.next/server/app/_global-error.rsc +13 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +13 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +8 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_not-found/page/build-manifest.json +17 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_not-found/page/server-reference-manifest.json +35 -0
- package/.next/server/app/_not-found/page.js +19 -2
- package/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +2 -1
- package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
- package/.next/server/app/favicon.ico/route/build-manifest.json +11 -0
- package/.next/server/app/favicon.ico/route.js +6 -1
- package/.next/server/app/favicon.ico/route.js.map +5 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +17 -0
- package/.next/server/app/page/next-font-manifest.json +11 -0
- package/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/page/server-reference-manifest.json +200 -0
- package/.next/server/app/page.js +22 -2
- package/.next/server/app/page.js.map +5 -0
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +2 -1
- package/.next/server/app/run/[runId]/page/app-paths-manifest.json +3 -0
- package/.next/server/app/run/[runId]/page/build-manifest.json +17 -0
- package/.next/server/app/run/[runId]/page/next-font-manifest.json +11 -0
- package/.next/server/app/run/[runId]/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/run/[runId]/page/server-reference-manifest.json +200 -0
- package/.next/server/app/run/[runId]/page.js +22 -15
- package/.next/server/app/run/[runId]/page.js.map +5 -0
- package/.next/server/app/run/[runId]/page.js.nft.json +1 -1
- package/.next/server/app/run/[runId]/page_client-reference-manifest.js +2 -1
- package/.next/server/app/run/[runId]/streams/[streamId]/page/app-paths-manifest.json +3 -0
- package/.next/server/app/run/[runId]/streams/[streamId]/page/build-manifest.json +17 -0
- package/.next/server/app/run/[runId]/streams/[streamId]/page/next-font-manifest.json +11 -0
- package/.next/server/app/run/[runId]/streams/[streamId]/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/run/[runId]/streams/[streamId]/page/server-reference-manifest.json +200 -0
- package/.next/server/app/run/[runId]/streams/[streamId]/page.js +22 -2
- package/.next/server/app/run/[runId]/streams/[streamId]/page.js.map +5 -0
- package/.next/server/app/run/[runId]/streams/[streamId]/page.js.nft.json +1 -1
- package/.next/server/app/run/[runId]/streams/[streamId]/page_client-reference-manifest.js +2 -1
- package/.next/server/app-paths-manifest.json +1 -0
- package/.next/server/chunks/[root-of-the-server]__7dee2024._.js +21 -0
- package/.next/server/chunks/[root-of-the-server]__7dee2024._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__b89b5a39._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__b89b5a39._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +770 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/packages_web__next-internal_server_app_favicon_ico_route_actions_2252f378.js +3 -0
- package/.next/server/chunks/packages_web__next-internal_server_app_favicon_ico_route_actions_2252f378.js.map +1 -0
- package/.next/server/chunks/ssr/4b6e4_@opentelemetry_api_build_esm_index_d9c17d12.js +3 -0
- package/.next/server/chunks/ssr/4b6e4_@opentelemetry_api_build_esm_index_d9c17d12.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_1f685745._.js +3 -0
- package/.next/server/chunks/ssr/708d8_next_dist_1f685745._.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_2a4c0b8e._.js +3 -0
- package/.next/server/chunks/ssr/708d8_next_dist_2a4c0b8e._.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_b16e971e._.js +6 -0
- package/.next/server/chunks/ssr/708d8_next_dist_b16e971e._.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_c9851769._.js +4 -0
- package/.next/server/chunks/ssr/708d8_next_dist_c9851769._.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_client_components_0ed6fd38._.js +3 -0
- package/.next/server/chunks/ssr/708d8_next_dist_client_components_0ed6fd38._.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_client_components_builtin_forbidden_61570333.js +3 -0
- package/.next/server/chunks/ssr/708d8_next_dist_client_components_builtin_forbidden_61570333.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_client_components_builtin_global-error_924f2f64.js +3 -0
- package/.next/server/chunks/ssr/708d8_next_dist_client_components_builtin_global-error_924f2f64.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_client_components_builtin_unauthorized_c934dc8d.js +3 -0
- package/.next/server/chunks/ssr/708d8_next_dist_client_components_builtin_unauthorized_c934dc8d.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_compiled_@opentelemetry_api_index_5afbad9c.js +3 -0
- package/.next/server/chunks/ssr/708d8_next_dist_compiled_@opentelemetry_api_index_5afbad9c.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_esm_9b249395._.js +6 -0
- package/.next/server/chunks/ssr/708d8_next_dist_esm_9b249395._.js.map +1 -0
- package/.next/server/chunks/ssr/708d8_next_dist_esm_build_templates_app-page_70e43a28.js +4 -0
- package/.next/server/chunks/ssr/708d8_next_dist_esm_build_templates_app-page_70e43a28.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0052e511._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0052e511._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__072d3021._.js +70 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__072d3021._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0e8b8fa9._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0e8b8fa9._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__124efa3f._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__124efa3f._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__20d15edb._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__20d15edb._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__40047a75._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__40047a75._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__4822c0ed._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__4822c0ed._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__5601d14d._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__5601d14d._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6e56cd25._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6e56cd25._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__8075ea93._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__8075ea93._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__85b3af8d._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__85b3af8d._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__97cb10d8._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__97cb10d8._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__bc4d7de5._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__bc4d7de5._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__bdb447b7._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__bdb447b7._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__cd719c14._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__cd719c14._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__d4909843._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__d4909843._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e786fe02._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e786fe02._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ef8720b3._.js +14 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ef8720b3._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__f5724172._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__f5724172._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__fb5d0d13._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__fb5d0d13._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +770 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/ssr/_20bb04c8._.js +4 -0
- package/.next/server/chunks/ssr/_20bb04c8._.js.map +1 -0
- package/.next/server/chunks/ssr/_631c662c._.js +4 -0
- package/.next/server/chunks/ssr/_631c662c._.js.map +1 -0
- package/.next/server/chunks/ssr/_65c9c827._.js +6 -0
- package/.next/server/chunks/ssr/_65c9c827._.js.map +1 -0
- package/.next/server/chunks/ssr/_7bf309eb._.js +3 -0
- package/.next/server/chunks/ssr/_7bf309eb._.js.map +1 -0
- package/.next/server/chunks/ssr/_a7b408c3._.js +4 -0
- package/.next/server/chunks/ssr/_a7b408c3._.js.map +1 -0
- package/.next/server/chunks/ssr/_e9cd0664._.js +3 -0
- package/.next/server/chunks/ssr/_e9cd0664._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_f2f28642._.js +6 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_f2f28642._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_30c0733e._.js +4 -0
- package/.next/server/chunks/ssr/packages_30c0733e._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_906ab70b._.js +3 -0
- package/.next/server/chunks/ssr/packages_906ab70b._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_9f053af5._.js +3 -0
- package/.next/server/chunks/ssr/packages_9f053af5._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web-shared_dist_trace-viewer_worker_f98ba72c.js +3 -0
- package/.next/server/chunks/ssr/packages_web-shared_dist_trace-viewer_worker_f98ba72c.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web__next-internal_server_app__global-error_page_actions_7e8b93b2.js +3 -0
- package/.next/server/chunks/ssr/packages_web__next-internal_server_app__global-error_page_actions_7e8b93b2.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web_src_app_c3ee301a._.js +3 -0
- package/.next/server/chunks/ssr/packages_web_src_app_c3ee301a._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web_src_app_layout-client_tsx_7f30673c._.js +3 -0
- package/.next/server/chunks/ssr/packages_web_src_app_layout-client_tsx_7f30673c._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web_src_app_page_tsx_cd282e82._.js +3 -0
- package/.next/server/chunks/ssr/packages_web_src_app_page_tsx_cd282e82._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web_src_app_run_[runId]_page_tsx_c7d0b139._.js +16 -0
- package/.next/server/chunks/ssr/packages_web_src_app_run_[runId]_page_tsx_c7d0b139._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web_src_components_5b4f203e._.js +3 -0
- package/.next/server/chunks/ssr/packages_web_src_components_5b4f203e._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web_src_components_d1065930._.js +3 -0
- package/.next/server/chunks/ssr/packages_web_src_components_d1065930._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_web_src_components_ui_select_tsx_7c5238ef._.js +3 -0
- package/.next/server/chunks/ssr/packages_web_src_components_ui_select_tsx_7c5238ef._.js.map +1 -0
- package/.next/server/middleware-build-manifest.js +21 -1
- package/.next/server/middleware-manifest.json +2 -2
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +23 -1
- package/.next/server/pages/500.html +2 -1
- package/.next/server/pages-manifest.json +1 -3
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +397 -1
- package/.next/static/chunks/0f375e258754f1c4.js +1 -0
- package/.next/static/chunks/125dc6396d8c7614.js +1 -0
- package/.next/static/chunks/12738c56605f94bd.js +1 -0
- package/.next/static/chunks/1b2c32764beea8c6.js +1 -0
- package/.next/static/chunks/22122fa69a524cdf.js +2 -0
- package/.next/static/chunks/2677e69032fce46e.js +1 -0
- package/.next/static/chunks/33539167f963017b.js +14 -0
- package/.next/static/chunks/46d8d17fb5e804aa.js +1 -0
- package/.next/static/chunks/54ce51a0822bdcc8.js +1 -0
- package/.next/static/chunks/56cdd26d48375b9f.js +4 -0
- package/.next/static/chunks/5bfebbf730bb3cdc.js +1 -0
- package/.next/static/chunks/7d15ec806ba18b85.css +3 -0
- package/.next/static/chunks/8f0576d510d06c4c.js +1 -0
- package/.next/static/chunks/971151b2a72b5f24.css +1 -0
- package/.next/static/chunks/c04c8c6da70ac1cc.js +1 -0
- package/.next/static/chunks/c75160a6471d2f01.js +1 -0
- package/.next/static/chunks/d5f104e0113bd49b.js +2 -0
- package/.next/static/chunks/e5b69a828ea58204.js +1 -0
- package/.next/static/chunks/turbopack-453c53e2accaa935.js +3 -0
- package/.next/static/chunks/turbopack-511fe75cd918d1a5.js +3 -0
- package/.next/static/dqfnmYEq_BK3Cb_-i5jnc/_buildManifest.js +11 -0
- package/.next/static/dqfnmYEq_BK3Cb_-i5jnc/_clientMiddlewareManifest.json +1 -0
- package/.next/static/media/favicon.0b3bf435.ico +0 -0
- package/.next/static/media/worker.e575ad4f.js +107 -0
- package/.next/trace +1 -22
- package/.next/trace-build +1 -0
- package/.next/turbopack +0 -0
- package/package.json +6 -5
- package/.next/app-build-manifest.json +0 -61
- package/.next/server/chunks/122.js +0 -22
- package/.next/server/chunks/207.js +0 -6
- package/.next/server/chunks/248.js +0 -83
- package/.next/server/chunks/255.js +0 -1
- package/.next/server/chunks/464.js +0 -1
- package/.next/server/chunks/484.js +0 -1
- package/.next/server/chunks/64.js +0 -20
- package/.next/server/chunks/701.js +0 -1
- package/.next/server/chunks/918.js +0 -7
- package/.next/server/chunks/947.js +0 -1
- package/.next/server/middleware-react-loadable-manifest.js +0 -1
- package/.next/server/pages/_app.js +0 -1
- package/.next/server/pages/_app.js.nft.json +0 -1
- package/.next/server/pages/_document.js +0 -1
- package/.next/server/pages/_document.js.nft.json +0 -1
- package/.next/server/pages/_error.js +0 -19
- package/.next/server/pages/_error.js.nft.json +0 -1
- package/.next/server/webpack-runtime.js +0 -1
- package/.next/static/Bj5-96qTFbCl279AK0BlY/_buildManifest.js +0 -1
- package/.next/static/chunks/196-eaca70a8807c8224.js +0 -1
- package/.next/static/chunks/378-341b236f693d0c1c.js +0 -1
- package/.next/static/chunks/399-29df0c4b0a42fe80.js +0 -1
- package/.next/static/chunks/590-6dff6ad557c641cb.js +0 -1
- package/.next/static/chunks/624-fa4aee3e4518a6bf.js +0 -1
- package/.next/static/chunks/81-584e1cf8b55925fc.js +0 -1
- package/.next/static/chunks/874.b2d5c21bf87e0c8f.js +0 -1
- package/.next/static/chunks/897-796249025e4dbdfe.js +0 -1
- package/.next/static/chunks/990-b5aa7da2d9b6cc00.js +0 -1
- package/.next/static/chunks/app/_not-found/page-e10213493435545e.js +0 -1
- package/.next/static/chunks/app/layout-80f1914217b1bd7c.js +0 -1
- package/.next/static/chunks/app/page-942c94dc13a52aea.js +0 -1
- package/.next/static/chunks/app/run/[runId]/page-80b684f37b6da4b4.js +0 -1
- package/.next/static/chunks/app/run/[runId]/streams/[streamId]/page-76999b28e5b2a544.js +0 -1
- package/.next/static/chunks/c4f718af-c178cc1cc033b5b4.js +0 -1
- package/.next/static/chunks/framework-4334835da20708d1.js +0 -1
- package/.next/static/chunks/main-9b3d7ee2f9cd10fa.js +0 -1
- package/.next/static/chunks/main-app-2d7c43866080ba5d.js +0 -1
- package/.next/static/chunks/pages/_app-4e2b7a90afe6e377.js +0 -1
- package/.next/static/chunks/pages/_error-1e1f0821587194ac.js +0 -1
- package/.next/static/chunks/webpack-874997185de8a24e.js +0 -1
- package/.next/static/css/de4aad015642264b.css +0 -3
- package/.next/static/css/e949e632d86ee8ea.css +0 -1
- package/.next/types/app/page.ts +0 -84
- package/.next/types/app/run/[runId]/page.ts +0 -84
- package/.next/types/app/run/[runId]/streams/[streamId]/page.ts +0 -84
- package/.next/types/cache-life.d.ts +0 -141
- package/.next/types/package.json +0 -1
- /package/.next/{react-loadable-manifest.json → server/app/_global-error/page/react-loadable-manifest.json} +0 -0
- /package/.next/static/chunks/{polyfills-42372ed130431b0a.js → a6dad97d9634a72d.js} +0 -0
- /package/.next/static/{Bj5-96qTFbCl279AK0BlY → dqfnmYEq_BK3Cb_-i5jnc}/_ssgManifest.js +0 -0
- /package/.next/static/media/{9610d9e46709d722-s.woff2 → 4fa387ec64143e14-s.c1fdd6c2.woff2} +0 -0
- /package/.next/static/media/{ba015fad6dcf6784-s.woff2 → 7178b3e590c64307-s.b97b3418.woff2} +0 -0
- /package/.next/static/media/{93f479601ee12b01-s.p.woff2 → 797e433ab948586e-s.p.dbea232f.woff2} +0 -0
- /package/.next/static/media/{8d697b304b401681-s.woff2 → 8a480f0b521d4e75-s.8e0177b5.woff2} +0 -0
- /package/.next/static/media/{747892c23ea88013-s.woff2 → bbc41e54d2fcbd21-s.799d8ef8.woff2} +0 -0
- /package/.next/static/media/{4cf2300e9c8272f7-s.p.woff2 → caa3a2e1cccd8315-s.p.853070df.woff2} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[9737,a=>{a.v("/_next/static/media/worker.e575ad4f.js")},14151,a=>{"use strict";var b=a.i(81156);let c=(0,a.i(22427).default)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);var d=a.i(76246);function e({href:a,label:e="Back"}){return(0,b.jsxs)(d.default,{href:a,className:"inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors mb-2",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),e]})}a.s(["BackLink",()=>e],14151)},3797,a=>{"use strict";var b=a.i(81156),c=a.i(30341),d=a.i(87286),e=a.i(43747);a.i(80551);var f=a.i(21578),g=a.i(70458),h=a.i(8624),i=a.i(14151);function j({env:a,streamId:e}){let j=(0,c.useParams)().runId,[k,l]=(0,d.useState)([]),[m,n]=(0,d.useState)(!0),[o,p]=(0,d.useState)(null),q=(0,d.useRef)(null),r=(0,d.useRef)(null),s=(0,d.useRef)(0);(0,d.useEffect)(()=>{q.current&&(q.current.scrollTop=q.current.scrollHeight)},[k.length]),(0,d.useEffect)(()=>{let b=!0;r.current=new AbortController;let c=()=>{b&&n(!1)},d=a=>{if(b&&a){let b=s.current++;l(c=>[...c,{id:b,text:a}])}},g=async(a,b)=>{for(;!r.current?.signal.aborted;){let{value:e,done:f}=await a.read();if(f){c();break}e&&e.byteLength>0&&d(b.decode(e,{stream:!0}))}};return(async()=>{try{let b=(await (0,f.readStream)(a,e)).getReader(),c=new TextDecoder;await g(b,c)}catch(a){b&&(p(a instanceof Error?a.message:String(a)),n(!1))}})(),()=>{b=!1,r.current&&r.current.abort()}},[a,e]);let t=j?(0,h.buildUrlWithConfig)(`/run/${j}`,a):(0,h.buildUrlWithConfig)("/",a);return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(i.BackLink,{href:t}),(0,b.jsxs)(g.Card,{children:[(0,b.jsx)(g.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)(g.CardTitle,{className:"font-mono text-sm",children:e}),(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("span",{className:`text-sm ${m?"text-green-600 dark:text-green-400":"text-gray-600 dark:text-gray-400"}`,children:m?"● Live":"● Closed"})})]})}),(0,b.jsx)(g.CardContent,{children:(0,b.jsx)("div",{ref:q,className:"bg-black text-green-400 font-mono text-sm p-4 rounded-md h-[600px] overflow-auto whitespace-pre-wrap break-words",children:o?(0,b.jsxs)("div",{className:"text-red-400",children:[(0,b.jsx)("div",{children:"Error reading stream:"}),(0,b.jsx)("div",{children:o})]}):0===k.length?(0,b.jsx)("div",{className:"text-gray-500",children:m?"Waiting for stream data...":"Stream is empty"}):(0,b.jsx)(b.Fragment,{children:k.map(a=>(0,b.jsx)("span",{children:a.text},`${e}-chunk-${a.id}`))})})})]})]})}function k(){let a=(0,c.useParams)(),f=(0,h.useQueryParamConfig)(),g=(0,d.useMemo)(()=>(0,h.worldConfigToEnvMap)(f),[f]),i=a.streamId;return(0,b.jsx)(e.ErrorBoundary,{title:"Stream Error",description:"Failed to load stream data. Please try navigating back and selecting the stream again.",children:(0,b.jsx)(j,{env:g,streamId:i})})}a.s(["default",()=>k],3797)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=packages_906ab70b._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/web/src/components/display-utils/back-link.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/arrow-left.ts","../../../../../../packages/web/src/app/run/%5BrunId%5D/streams/%5BstreamId%5D/page.tsx","../../../../../../packages/web/src/components/stream-detail-view.tsx"],"sourcesContent":["'use client';\n\nimport { ArrowLeft } from 'lucide-react';\nimport Link from 'next/link';\n\ninterface BackLinkProps {\n href: string;\n label?: string;\n}\n\nexport function BackLink({ href, label = 'Back' }: BackLinkProps) {\n return (\n <Link\n href={href}\n className=\"inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors mb-2\"\n >\n <ArrowLeft className=\"h-4 w-4\" />\n {label}\n </Link>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('ArrowLeft', [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n]);\n\nexport default ArrowLeft;\n","'use client';\n\nimport { useParams } from 'next/navigation';\nimport { useMemo } from 'react';\nimport { ErrorBoundary } from '@/components/error-boundary';\nimport { StreamDetailView } from '@/components/stream-detail-view';\nimport { useQueryParamConfig, worldConfigToEnvMap } from '@/lib/config';\n\nexport default function StreamDetailPage() {\n const params = useParams();\n\n const config = useQueryParamConfig();\n const env = useMemo(() => worldConfigToEnvMap(config), [config]);\n const streamId = params.streamId as string;\n\n return (\n <ErrorBoundary\n title=\"Stream Error\"\n description=\"Failed to load stream data. Please try navigating back and selecting the stream again.\"\n >\n <StreamDetailView env={env} streamId={streamId} />\n </ErrorBoundary>\n );\n}\n","'use client';\n\nimport { readStream } from '@workflow/web-shared';\nimport type { EnvMap } from '@workflow/web-shared/server';\nimport { useParams } from 'next/navigation';\nimport { useEffect, useRef, useState } from 'react';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport { buildUrlWithConfig } from '@/lib/config';\nimport { BackLink } from './display-utils/back-link';\n\ninterface StreamDetailViewProps {\n env: EnvMap;\n streamId: string;\n}\n\ninterface Chunk {\n id: number;\n text: string;\n}\n\nexport function StreamDetailView({ env, streamId }: StreamDetailViewProps) {\n const params = useParams();\n const runId = params.runId as string | undefined;\n const [chunks, setChunks] = useState<Chunk[]>([]);\n const [isLive, setIsLive] = useState(true);\n const [error, setError] = useState<string | null>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n const abortControllerRef = useRef<AbortController | null>(null);\n const chunkIdRef = useRef(0);\n\n useEffect(() => {\n // Auto-scroll to bottom when new content arrives\n if (scrollRef.current) {\n scrollRef.current.scrollTop = scrollRef.current.scrollHeight;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chunks.length]); // Only depend on length, not the entire array\n\n useEffect(() => {\n let mounted = true;\n abortControllerRef.current = new AbortController();\n\n const handleStreamEnd = () => {\n if (mounted) {\n setIsLive(false);\n }\n };\n\n const handleStreamError = (err: unknown) => {\n if (mounted) {\n setError(err instanceof Error ? err.message : String(err));\n setIsLive(false);\n }\n };\n\n const addChunk = (text: string) => {\n if (mounted && text) {\n const chunkId = chunkIdRef.current++;\n setChunks((prev) => [...prev, { id: chunkId, text }]);\n }\n };\n\n const processStreamChunks = async (\n reader: ReadableStreamDefaultReader<Uint8Array>,\n decoder: TextDecoder\n ) => {\n for (;;) {\n if (abortControllerRef.current?.signal.aborted) {\n break;\n }\n\n const { value, done } = await reader.read();\n\n if (done) {\n handleStreamEnd();\n break;\n }\n\n // Skip empty chunks\n if (value && value.byteLength > 0) {\n const text = decoder.decode(value, { stream: true });\n addChunk(text);\n }\n }\n };\n\n const readStreamData = async () => {\n try {\n const stream = await readStream(env, streamId);\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n await processStreamChunks(reader, decoder);\n } catch (err) {\n handleStreamError(err);\n }\n };\n\n void readStreamData();\n\n return () => {\n mounted = false;\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n };\n }, [env, streamId]);\n\n // Determine back link - if we have a runId, go back to the run detail page, otherwise go home\n const backHref = runId\n ? buildUrlWithConfig(`/run/${runId}`, env)\n : buildUrlWithConfig('/', env);\n\n return (\n <div className=\"space-y-6\">\n <BackLink href={backHref} />\n\n <Card>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"font-mono text-sm\">{streamId}</CardTitle>\n <div className=\"flex items-center gap-2\">\n <span\n className={`text-sm ${isLive ? 'text-green-600 dark:text-green-400' : 'text-gray-600 dark:text-gray-400'}`}\n >\n {isLive ? '● Live' : '● Closed'}\n </span>\n </div>\n </div>\n </CardHeader>\n <CardContent>\n <div\n ref={scrollRef}\n className=\"bg-black text-green-400 font-mono text-sm p-4 rounded-md h-[600px] overflow-auto whitespace-pre-wrap break-words\"\n >\n {error ? (\n <div className=\"text-red-400\">\n <div>Error reading stream:</div>\n <div>{error}</div>\n </div>\n ) : chunks.length === 0 ? (\n <div className=\"text-gray-500\">\n {isLive ? 'Waiting for stream data...' : 'Stream is empty'}\n </div>\n ) : (\n <>\n {chunks.map((chunk) => (\n <span key={`${streamId}-chunk-${chunk.id}`}>\n {chunk.text}\n </span>\n ))}\n </>\n )}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"names":[],"mappings":"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","ignoreList":[1]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[9737,a=>{a.v("/_next/static/media/worker.e575ad4f.js")},14151,a=>{"use strict";var b=a.i(81156);let c=(0,a.i(22427).default)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);var d=a.i(76246);function e({href:a,label:e="Back"}){return(0,b.jsxs)(d.default,{href:a,className:"inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors mb-2",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),e]})}a.s(["BackLink",()=>e],14151)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=packages_9f053af5._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/web/src/components/display-utils/back-link.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/arrow-left.ts"],"sourcesContent":["'use client';\n\nimport { ArrowLeft } from 'lucide-react';\nimport Link from 'next/link';\n\ninterface BackLinkProps {\n href: string;\n label?: string;\n}\n\nexport function BackLink({ href, label = 'Back' }: BackLinkProps) {\n return (\n <Link\n href={href}\n className=\"inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors mb-2\"\n >\n <ArrowLeft className=\"h-4 w-4\" />\n {label}\n </Link>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('ArrowLeft', [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n]);\n\nexport default ArrowLeft;\n"],"names":[],"mappings":"gHCaM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,KAAY,OAAA,EAAiB,WAAa,CAAA,CAAA,AAC9C,CAAC,CAAA,CAAA,CAAA,IAAQ,CAAE,AAAF,EAAE,iBAAqB,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAAA,CAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AAAE,EAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC1C,CAAA,CAAA,ADbD,IAAA,EAAA,EAAA,CAAA,CAAA,OAOO,SAAS,EAAS,MAAE,CAAI,OAAE,EAAQ,MAAM,CAAiB,EAC9D,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,OAAI,CAAA,CACH,KAAM,EACN,UAAU,sHAEV,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAU,UAAU,YACpB,IAGP","ignoreList":[1]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/web/src/app/favicon.ico.mjs%20%28structured%20image%20object%29"],"sourcesContent":["import src from \"IMAGE\";\nexport default { src, width: 256, height: 256 }\n"],"names":[],"mappings":"sGACe,CAAE,IADjB,AACiB,EADjB,CAAA,CAAA,KACiB,OAAG,CAAE,MAAO,IAAK,OAAQ,GAAI"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[39350,a=>{"use strict";var b=a.i(81156),c=a.i(1056),d=a.i(76246),e=a.i(30341),f=a.i(87286),g=(a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}},h=["light","dark"],i="(prefers-color-scheme: dark)",j=f.createContext(void 0),k={setTheme:a=>{},themes:[]},l=a=>f.useContext(j)?f.createElement(f.Fragment,null,a.children):f.createElement(n,{...a}),m=["light","dark"],n=({forcedTheme:a,disableTransitionOnChange:b=!1,enableSystem:c=!0,enableColorScheme:d=!0,storageKey:e="theme",themes:g=m,defaultTheme:k=c?"system":"light",attribute:l="data-theme",value:n,children:s,nonce:t,scriptProps:u})=>{let[v,w]=f.useState(()=>p(e,k)),[x,y]=f.useState(()=>"system"===v?r():v),z=n?Object.values(n):g,A=f.useCallback(a=>{let e=a;if(!e)return;"system"===a&&c&&(e=r());let f=n?n[e]:e,g=b?q(t):null,i=document.documentElement,j=a=>{"class"===a?(i.classList.remove(...z),f&&i.classList.add(f)):a.startsWith("data-")&&(f?i.setAttribute(a,f):i.removeAttribute(a))};if(Array.isArray(l)?l.forEach(j):j(l),d){let a=h.includes(k)?k:null,b=h.includes(e)?e:a;i.style.colorScheme=b}null==g||g()},[t]),B=f.useCallback(a=>{let b="function"==typeof a?a(v):a;w(b);try{localStorage.setItem(e,b)}catch(a){}},[v]),C=f.useCallback(b=>{y(r(b)),"system"===v&&c&&!a&&A("system")},[v,a]);f.useEffect(()=>{let a=window.matchMedia(i);return a.addListener(C),C(a),()=>a.removeListener(C)},[C]),f.useEffect(()=>{let a=a=>{a.key===e&&(a.newValue?w(a.newValue):B(k))};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[B]),f.useEffect(()=>{A(null!=a?a:v)},[a,v]);let D=f.useMemo(()=>({theme:v,setTheme:B,forcedTheme:a,resolvedTheme:"system"===v?x:v,themes:c?[...g,"system"]:g,systemTheme:c?x:void 0}),[v,B,a,x,c,g]);return f.createElement(j.Provider,{value:D},f.createElement(o,{forcedTheme:a,storageKey:e,attribute:l,enableSystem:c,enableColorScheme:d,defaultTheme:k,value:n,themes:g,nonce:t,scriptProps:u}),s)},o=f.memo(({forcedTheme:a,storageKey:b,attribute:c,enableSystem:d,enableColorScheme:e,defaultTheme:h,value:i,themes:j,nonce:k,scriptProps:l})=>{let m=JSON.stringify([c,b,h,a,j,i,d,e]).slice(1,-1);return f.createElement("script",{...l,suppressHydrationWarning:!0,nonce:k,dangerouslySetInnerHTML:{__html:`(${g.toString()})(${m})`}})}),p=(a,b)=>{},q=a=>{let b=document.createElement("style");return a&&b.setAttribute("nonce",a),b.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(b),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(b)},1)}},r=a=>(a||(a=window.matchMedia(i)),a.matches?"dark":"light"),s=a.i(22427);let t=(0,s.default)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var u=a.i(93557);function v({config:a}){let{provider:c,parts:d}=((a,b)=>{if("vercel"===a){let a=[];return b.env&&a.push(`env: ${b.env}`),b.project&&a.push(`project: ${b.project}`),b.team&&a.push(`team: ${b.team}`),{provider:"Vercel",parts:a}}if("local"===a){let a=[];return b.dataDir&&a.push(`dir: ${b.dataDir}`),b.port&&a.push(`port: ${b.port}`),{provider:"Local",parts:a}}return{provider:b.backend||"unknown",parts:[]}})(a.backend||"local",a);return(0,b.jsxs)("div",{className:"text-sm text-muted-foreground flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"font-medium",children:["Connected to: ",c]}),(0,b.jsxs)(u.Tooltip,{children:[(0,b.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(t,{className:"w-4 h-4"})}),(0,b.jsx)(u.TooltipContent,{children:(0,b.jsx)("div",{className:"flex flex-col gap-1",children:d.map(a=>(0,b.jsx)("span",{children:a},a))})})]})]})}var w=a.i(7973);let x=(0,s.default)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),y=(0,s.default)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),z=(0,s.default)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var A=a.i(35321),B=a.i(97494),C=a.i(39465);let D=f.forwardRef(({className:a,type:c,...d},e)=>(0,b.jsx)("input",{type:c,className:(0,C.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",a),ref:e,...d}));D.displayName="Input";var E=a.i(18243),F=f.forwardRef((a,c)=>(0,b.jsx)(E.Primitive.label,{...a,ref:c,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));F.displayName="Label";let G=(0,a.i(42261).cva)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),H=f.forwardRef(({className:a,...c},d)=>(0,b.jsx)(F,{ref:d,className:(0,C.cn)(G(),a),...c}));H.displayName=F.displayName;var I=a.i(75196),J=a.i(8624),K=a.i(84473),L=(0,K.createServerReference)("4032537ab6a3ad9eba4df7793874685fe3aae4b8db",K.callServer,void 0,K.findSourceMapURL,"validateWorldConfig"),M=a.i(29410),N=(0,K.createServerReference)("00e7090a0e9d10247dc00d78871326c406dba1eebd",K.callServer,void 0,K.findSourceMapURL,"checkWorldsAvailability");function O(){let a,c=(0,J.useQueryParamConfig)(),d=(0,J.useUpdateConfigQueryParams)(),[e,g]=(0,f.useState)(!1),[h,i]=(0,f.useState)(c),[j,k]=(0,f.useState)([]),[l,m]=(0,f.useState)(!1),{data:n=[],isLoading:o}=(0,M.default)("worlds-availability",N,{revalidateOnFocus:!1}),p=h.backend||"local",q="local"===p,r="postgres"===p;(0,f.useEffect)(()=>{i(c)},[c]);let s=async()=>{m(!0);try{let a=await L(h);k(a),0===a.length&&(d(h),g(!1))}catch(a){console.error("Validation error:",a),k([{field:"general",message:a instanceof Error?a.message:"Unknown error"}])}finally{m(!1)}},t=(a,b)=>{i(c=>({...c,[a]:b})),k(b=>b.filter(b=>b.field!==a))},u=a=>j.find(b=>b.field===a)?.message,v=JSON.stringify(h)!==JSON.stringify(c)||j.length>0;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:()=>g(!0),className:"p-2 rounded-full hover:bg-accent transition-colors",title:"Configuration",children:(0,b.jsx)(y,{className:"h-6 w-6"})}),e&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",className:"fixed inset-0 bg-black/50 z-40 cursor-default",onClick:()=>g(!1),"aria-label":"Close configuration panel"}),(0,b.jsx)("div",{className:"fixed top-0 right-0 h-full w-96 bg-background border-l shadow-lg z-50 overflow-y-auto",children:(0,b.jsxs)("div",{className:"p-6",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,b.jsx)("h2",{className:"text-2xl font-bold",children:"Configuration"}),(0,b.jsx)("button",{type:"button",onClick:()=>g(!1),className:"p-2 hover:bg-accent rounded-full transition-colors",children:(0,b.jsx)(z,{className:"h-5 w-5"})})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(H,{htmlFor:"backend",children:"Backend"}),(0,b.jsxs)(I.Select,{value:h.backend||"local",onValueChange:a=>t("backend",a),children:[(0,b.jsx)(I.SelectTrigger,{id:"backend",children:(0,b.jsx)(I.SelectValue,{placeholder:"Select backend"})}),(0,b.jsx)(I.SelectContent,{children:o?(0,b.jsx)(I.SelectItem,{value:"loading",disabled:!0,children:"Loading worlds..."}):n.length>0?n.map(a=>(0,b.jsx)(I.SelectItem,{value:a.id,children:a.displayName},a.id)):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(I.SelectItem,{value:"local",children:"Local"}),(0,b.jsx)(I.SelectItem,{value:"vercel",children:"Vercel"}),(0,b.jsx)(I.SelectItem,{value:"postgres",children:"PostgreSQL"})]})})]}),(a=n.find(a=>a.id===p))&&!a.isInstalled?(0,b.jsxs)("div",{className:"flex items-start gap-2 p-2 rounded-md bg-amber-500/10 border border-amber-500/20 text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(x,{className:"h-4 w-4 mt-0.5 shrink-0"}),(0,b.jsxs)("div",{className:"text-xs",children:[(0,b.jsx)("p",{className:"font-medium",children:"Package not installed"}),(0,b.jsxs)("p",{className:"mt-1 text-muted-foreground",children:["Run:"," ",(0,b.jsx)("code",{className:"bg-muted px-1 py-0.5 rounded",children:a.installCommand})]})]})]}):null]}),q&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(H,{htmlFor:"port",children:"Port"}),(0,b.jsx)(D,{id:"port",value:h.port||"",onChange:a=>t("port",a.target.value),placeholder:"3001",className:u("port")?"border-destructive":""}),u("port")&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:u("port")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(H,{htmlFor:"dataDir",children:"Data Directory"}),(0,b.jsx)(D,{id:"dataDir",value:h.dataDir||"",onChange:a=>t("dataDir",a.target.value),placeholder:".workflow-data or .next/workflow-data",className:u("dataDir")?"border-destructive":""}),u("dataDir")&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:u("dataDir")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Path to the workflow data directory. Can be relative or absolute."})]})]}),r&&(0,b.jsx)(b.Fragment,{children:(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(H,{htmlFor:"postgresUrl",children:"Connection URL"}),(0,b.jsx)(D,{id:"postgresUrl",value:h.postgresUrl||"",onChange:a=>t("postgresUrl",a.target.value),placeholder:"postgres://user:pass@host:5432/db",className:u("postgresUrl")?"border-destructive":""}),u("postgresUrl")&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:u("postgresUrl")})]})}),!q&&!r&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(H,{htmlFor:"env",children:"Environment"}),(0,b.jsx)(D,{id:"env",value:h.env||"production",onChange:a=>t("env",a.target.value),placeholder:"production or preview"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(H,{htmlFor:"authToken",children:"Auth Token"}),(0,b.jsx)(D,{id:"authToken",type:"password",value:h.authToken||"",onChange:a=>t("authToken",a.target.value),placeholder:"Vercel auth token"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(H,{htmlFor:"project",children:"Project ID"}),(0,b.jsx)(D,{id:"project",value:h.project||"",onChange:a=>t("project",a.target.value),placeholder:"prj_..."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(H,{htmlFor:"team",children:"Team ID"}),(0,b.jsx)(D,{id:"team",value:h.team||"",onChange:a=>t("team",a.target.value),placeholder:"team_..."})]})]}),j.length>0&&(0,b.jsxs)(A.Alert,{variant:"destructive",children:[(0,b.jsx)(w.AlertCircle,{className:"h-4 w-4"}),(0,b.jsx)(A.AlertTitle,{children:"Configuration Error"}),(0,b.jsx)(A.AlertDescription,{children:(0,b.jsx)("ul",{className:"list-disc list-inside space-y-1",children:j.map((a,c)=>(0,b.jsxs)("li",{children:["general"!==a.field&&(0,b.jsxs)("strong",{children:[a.field,":"]})," ",a.message]},`error-${c}`))})})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2 pt-4",children:[(0,b.jsx)(B.Button,{onClick:s,disabled:l||!v||n.some(a=>a.id===p&&!a.isInstalled),className:"w-full",children:l?"Validating...":"Apply Configuration"}),(0,b.jsx)(B.Button,{variant:"outline",onClick:()=>{i(c),k([]),g(!1)},className:"w-full",children:"Cancel"})]})]})]})})]})]})}var P=a.i(95811);let Q=({...a})=>{var c;let{theme:d="system"}=null!=(c=f.useContext(j))?c:k;return(0,b.jsx)(P.Toaster,{theme:d,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",error:"group-[.toaster]:bg-destructive group-[.toaster]:text-destructive-foreground group-[.toaster]:border-destructive",success:"group-[.toaster]:bg-green-600 group-[.toaster]:text-white group-[.toaster]:border-green-600"}},...a})};function R({className:a}={}){return(0,b.jsxs)("svg",{viewBox:"0 0 1792 240",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:a||"h-6 w-auto",role:"img","aria-label":"Workflow Logo",children:[(0,b.jsx)("title",{children:"Workflow Logo"}),(0,b.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M753.933 55.627C806.249 55.627 840.685 91.718 840.685 147.345C840.685 202.971 806.249 239.062 753.933 239.062C701.286 239.062 666.851 202.971 666.851 147.345C666.851 91.7181 701.286 55.6271 753.933 55.627ZM753.933 90.0625C726.451 90.0626 710.889 111.254 710.889 147.345C710.889 183.436 726.451 204.627 753.933 204.627C781.084 204.627 796.978 183.436 796.978 147.345C796.978 111.254 781.084 90.0625 753.933 90.0625Z",className:"fill-foreground"}),(0,b.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1445.65 55.627C1497.96 55.627 1532.4 91.718 1532.4 147.345C1532.4 202.971 1497.96 239.062 1445.65 239.062C1393 239.062 1358.56 202.971 1358.56 147.345C1358.56 91.718 1393 55.627 1445.65 55.627ZM1445.65 90.0625C1418.16 90.0625 1402.6 111.254 1402.6 147.345C1402.6 183.436 1418.16 204.627 1445.65 204.627C1472.8 204.627 1488.69 183.436 1488.69 147.345C1488.69 111.254 1472.8 90.0626 1445.65 90.0625Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M902.473 94.0361C909.095 70.8584 922.34 59.5997 944.855 59.5996H961.079V92.3799H944.524C916.38 92.38 904.128 106.949 904.128 135.094V235.089H861.746V59.5996H901.48L902.473 94.0361Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M1019.25 138.735L1091.11 59.5996H1143.09L1074.55 132.113L1146.4 235.089H1098.72L1046.74 157.609L1019.25 187.078V235.089H976.872V0H1019.25V138.735Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M1263.63 32.7803H1235.82C1224.89 32.7803 1217.28 41.3893 1217.28 54.9648V59.5996H1260.98V92.3799H1217.28V235.089H1174.56V92.3799H1149.4V59.5996H1174.56V54.9648C1174.56 19.5359 1191.78 0 1230.85 0H1263.63V32.7803Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M1322.58 189.396C1322.58 197.673 1327.22 202.309 1335.5 202.31H1348.74V235.089H1324.57C1298.08 235.089 1280.2 218.534 1280.2 191.052V0H1322.58V189.396Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M1604.59 186.416L1641.02 59.5996H1677.77L1713.86 186.416L1749.95 59.5996H1791.34L1737.7 235.089H1694.32L1659.56 116.883L1624.79 235.089H1581.42L1527.77 59.5996H1568.83L1604.59 186.416Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M472.173 174.847L514.895 0.671875H554.66L598.038 174.847L640.432 0.671875H685.454L623.015 234H575.692L534.942 77.5713L493.863 234H446.869L384.1 0.671875H429.122L472.173 174.847Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M125.776 0C120.929 1.64945e-05 117 3.9291 117 8.77539V61.4248C117 66.2711 120.929 70.2002 125.776 70.2002H160.875L161.253 70.2051C169.032 70.4023 175.301 76.6734 175.495 84.4531L175.5 84.8252V143.325C175.5 148.171 179.429 152.101 184.276 152.101H219.375L219.753 152.105C227.53 152.303 233.798 158.571 233.995 166.348L234 166.726V225.225C234 230.071 237.929 234 242.776 234H295.425C300.271 234 304.2 230.071 304.2 225.225V172.575C304.2 167.729 300.271 163.8 295.425 163.8H260.25C252.334 163.76 245.905 157.43 245.705 149.553L245.7 149.176V90.6758C245.7 85.8295 241.771 81.9004 236.925 81.9004H201.825C193.874 81.9004 187.405 75.5551 187.205 67.6523L187.2 67.2754V8.77539C187.2 3.9291 183.271 1.64951e-05 178.425 0H125.776Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M67.2755 81.9004C62.4293 81.9004 58.5002 85.8295 58.5002 90.6758V143.325C58.5004 148.171 62.4294 152.101 67.2755 152.101H102.375L102.753 152.105C110.53 152.303 116.798 158.571 116.995 166.348L117 166.726V225.225C117 230.071 120.929 234 125.776 234H178.425C183.271 234 187.2 230.071 187.2 225.225V172.575C187.2 167.729 183.271 163.8 178.425 163.8H143.25C135.334 163.76 128.905 157.43 128.705 149.553L128.7 149.176V90.6758C128.7 85.8295 124.771 81.9004 119.925 81.9004H67.2755Z",className:"fill-foreground"}),(0,b.jsx)("path",{d:"M8.77454 163.8C3.92844 163.8 0.00012207 167.729 0.00012207 172.575V225.225C0.00012207 230.071 3.92844 234 8.77454 234H61.4249C66.2712 234 70.2003 230.071 70.2003 225.225V172.575C70.2003 167.729 66.2712 163.8 61.4249 163.8H8.77454Z",className:"fill-foreground"})]})}function S({children:a}){let g=(0,e.useRouter)(),h=(0,e.useSearchParams)(),i=(0,J.useQueryParamConfig)(),j=h.get("id"),k=h.get("runId"),m=h.get("stepId"),n=h.get("hookId"),o=h.get("resource"),p=h.get("theme")||"system";return(0,f.useEffect)(()=>{let a=document.documentElement;a.classList.remove("light","dark"),("light"===p||"dark"===p)&&a.classList.add(p)},[p]),(0,f.useEffect)(()=>{let a;if(!o){if(k){let a;a=m?(0,J.buildUrlWithConfig)(`/run/${k}`,i,{sidebar:"step",stepId:m}):n?(0,J.buildUrlWithConfig)(`/run/${k}`,i,{sidebar:"hook",hookId:n}):(0,J.buildUrlWithConfig)(`/run/${k}`,i),g.push(a)}return}if(j){if("run"===o)a=(0,J.buildUrlWithConfig)(`/run/${j}`,i);else if("step"===o&&k)a=(0,J.buildUrlWithConfig)(`/run/${k}`,i,{sidebar:"step",stepId:j});else if("stream"===o&&k)a=(0,J.buildUrlWithConfig)(`/run/${k}`,i,{sidebar:"stream",streamId:j});else if("event"===o&&k)a=(0,J.buildUrlWithConfig)(`/run/${k}`,i,{sidebar:"event",eventId:j});else if("hook"===o&&k)a=(0,J.buildUrlWithConfig)(`/run/${k}`,i,{sidebar:"hook",hookId:j});else{if("hook"!==o||k)return void console.warn(`Can't deep-link to ${o} ${j}.`);a=(0,J.buildUrlWithConfig)("/",i,{sidebar:"hook",hookId:j})}g.push(a)}},[o,j,k,m,n,g,i]),(0,b.jsx)(l,{attribute:"class",defaultTheme:p,enableSystem:!0,disableTransitionOnChange:!0,children:(0,b.jsxs)("div",{className:"min-h-screen px-8 pt-8",children:[(0,b.jsx)(c.TooltipProvider,{delayDuration:0,children:(0,b.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,b.jsx)("div",{className:"flex items-start justify-between",children:(0,b.jsxs)("div",{className:"mb-8 items-center flex justify-between w-full",children:[(0,b.jsx)(d.default,{href:"https://useworkflow.dev",target:"_blank",children:(0,b.jsx)("h1",{className:"flex items-center gap-2 mb-2",title:"Workflow Observability",children:(0,b.jsx)(R,{})})}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)(v,{config:i}),(0,b.jsx)(O,{})]})]})}),a]})}),(0,b.jsx)(Q,{})]})})}a.s(["LayoutClient",()=>S],39350)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=packages_web_src_app_layout-client_tsx_7f30673c._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../node_modules/.pnpm/next-themes%400.4.6_react-dom%4019.1.0_react%4019.1.0__react%4019.1.0/node_modules/next-themes/dist/index.mjs","../../../../../../packages/web/src/components/display-utils/connection-status.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-label%402.1.7_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact%40_d21172d6270ea6a92471d0210cd35a78/node_modules/%40radix-ui/react-label/dist/index.mjs","../../../../../../packages/web/src/components/ui/label.tsx","../../../../../../packages/web/src/lib/data%3Afda74f%20%3Ctext/javascript%3E","../../../../../../packages/web/src/lib/data%3A588dbd%20%3Ctext/javascript%3E","../../../../../../packages/web/src/lib/hooks.ts","../../../../../../packages/web/src/components/settings-sidebar.tsx","../../../../../../packages/web/src/components/ui/sonner.tsx","../../../../../../packages/web/src/app/layout-client.tsx","../../../../../../packages/web/src/components/ui/input.tsx","../../../../../../packages/web/src/icons/logo.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/x.ts","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/info.ts","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/settings.ts"],"sourcesContent":["\"use client\";import*as t from\"react\";var M=(e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=[\"light\",\"dark\"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y===\"class\",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n===\"system\"?c():n;p(y)}catch(n){}};var b=[\"light\",\"dark\"],I=\"(prefers-color-scheme: dark)\",O=typeof window==\"undefined\",x=t.createContext(void 0),U={setTheme:e=>{},themes:[]},z=()=>{var e;return(e=t.useContext(x))!=null?e:U},J=e=>t.useContext(x)?t.createElement(t.Fragment,null,e.children):t.createElement(V,{...e}),N=[\"light\",\"dark\"],V=({forcedTheme:e,disableTransitionOnChange:i=!1,enableSystem:s=!0,enableColorScheme:u=!0,storageKey:m=\"theme\",themes:a=N,defaultTheme:l=s?\"system\":\"light\",attribute:h=\"data-theme\",value:d,children:w,nonce:p,scriptProps:R})=>{let[c,n]=t.useState(()=>H(m,l)),[T,y]=t.useState(()=>c===\"system\"?E():c),k=d?Object.values(d):a,S=t.useCallback(o=>{let r=o;if(!r)return;o===\"system\"&&s&&(r=E());let v=d?d[r]:r,C=i?W(p):null,P=document.documentElement,L=g=>{g===\"class\"?(P.classList.remove(...k),v&&P.classList.add(v)):g.startsWith(\"data-\")&&(v?P.setAttribute(g,v):P.removeAttribute(g))};if(Array.isArray(h)?h.forEach(L):L(h),u){let g=b.includes(l)?l:null,D=b.includes(r)?r:g;P.style.colorScheme=D}C==null||C()},[p]),f=t.useCallback(o=>{let r=typeof o==\"function\"?o(c):o;n(r);try{localStorage.setItem(m,r)}catch(v){}},[c]),A=t.useCallback(o=>{let r=E(o);y(r),c===\"system\"&&s&&!e&&S(\"system\")},[c,e]);t.useEffect(()=>{let o=window.matchMedia(I);return o.addListener(A),A(o),()=>o.removeListener(A)},[A]),t.useEffect(()=>{let o=r=>{r.key===m&&(r.newValue?n(r.newValue):f(l))};return window.addEventListener(\"storage\",o),()=>window.removeEventListener(\"storage\",o)},[f]),t.useEffect(()=>{S(e!=null?e:c)},[e,c]);let Q=t.useMemo(()=>({theme:c,setTheme:f,forcedTheme:e,resolvedTheme:c===\"system\"?T:c,themes:s?[...a,\"system\"]:a,systemTheme:s?T:void 0}),[c,f,e,T,s,a]);return t.createElement(x.Provider,{value:Q},t.createElement(_,{forcedTheme:e,storageKey:m,attribute:h,enableSystem:s,enableColorScheme:u,defaultTheme:l,value:d,themes:a,nonce:p,scriptProps:R}),w)},_=t.memo(({forcedTheme:e,storageKey:i,attribute:s,enableSystem:u,enableColorScheme:m,defaultTheme:a,value:l,themes:h,nonce:d,scriptProps:w})=>{let p=JSON.stringify([s,i,a,e,h,l,u,m]).slice(1,-1);return t.createElement(\"script\",{...w,suppressHydrationWarning:!0,nonce:typeof window==\"undefined\"?d:\"\",dangerouslySetInnerHTML:{__html:`(${M.toString()})(${p})`}})}),H=(e,i)=>{if(O)return;let s;try{s=localStorage.getItem(e)||void 0}catch(u){}return s||i},W=e=>{let i=document.createElement(\"style\");return e&&i.setAttribute(\"nonce\",e),i.appendChild(document.createTextNode(\"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\")),document.head.appendChild(i),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(i)},1)}},E=e=>(e||(e=window.matchMedia(I)),e.matches?\"dark\":\"light\");export{J as ThemeProvider,z as useTheme};\n","'use client';\n\nimport { InfoIcon } from 'lucide-react';\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\nimport type { WorldConfig } from '@/lib/config-world';\n\ninterface ConnectionStatusProps {\n config: WorldConfig;\n}\n\nconst getConnectionInfo = (\n backend: string,\n config: WorldConfig\n): { provider: string; parts: string[] } => {\n if (backend === 'vercel') {\n const parts: string[] = [];\n if (config.env) parts.push(`env: ${config.env}`);\n if (config.project) parts.push(`project: ${config.project}`);\n if (config.team) parts.push(`team: ${config.team}`);\n\n return { provider: 'Vercel', parts };\n }\n\n if (backend === 'local') {\n // Local backend\n const parts: string[] = [];\n if (config.dataDir) {\n parts.push(`dir: ${config.dataDir}`);\n }\n if (config.port) parts.push(`port: ${config.port}`);\n\n return { provider: 'Local', parts };\n }\n\n return { provider: config.backend || 'unknown', parts: [] };\n};\n\nexport function ConnectionStatus({ config }: ConnectionStatusProps) {\n const backend = config.backend || 'local';\n const { provider, parts } = getConnectionInfo(backend, config);\n\n return (\n <div className=\"text-sm text-muted-foreground flex items-center gap-2\">\n <span className=\"font-medium\">Connected to: {provider}</span>\n <Tooltip>\n <TooltipTrigger asChild>\n <InfoIcon className=\"w-4 h-4\" />\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"flex flex-col gap-1\">\n {parts.map((part) => (\n <span key={part}>{part}</span>\n ))}\n </div>\n </TooltipContent>\n </Tooltip>\n </div>\n );\n}\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","/* __next_internal_action_entry_do_not_use__ [{\"4032537ab6a3ad9eba4df7793874685fe3aae4b8db\":\"validateWorldConfig\"},\"packages/web/src/lib/config-world.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";export var validateWorldConfig=/*#__PURE__*/createServerReference(\"4032537ab6a3ad9eba4df7793874685fe3aae4b8db\",callServer,void 0,findSourceMapURL,\"validateWorldConfig\");","/* __next_internal_action_entry_do_not_use__ [{\"00e7090a0e9d10247dc00d78871326c406dba1eebd\":\"checkWorldsAvailability\"},\"packages/web/src/lib/config-world.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";export var checkWorldsAvailability=/*#__PURE__*/createServerReference(\"00e7090a0e9d10247dc00d78871326c406dba1eebd\",callServer,void 0,findSourceMapURL,\"checkWorldsAvailability\");","'use client';\n\nimport useSWR from 'swr';\nimport { checkWorldsAvailability } from './config-world';\n\nexport function useWorldsAvailability() {\n return useSWR('worlds-availability', checkWorldsAvailability, {\n revalidateOnFocus: false,\n });\n}\n","/** biome-ignore-all lint/correctness/useUniqueElementIds: <not relevant> */\n'use client';\n\nimport { AlertCircle, AlertTriangle, Settings, X } from 'lucide-react';\nimport { useEffect, useState } from 'react';\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/components/ui/select';\nimport { useQueryParamConfig, useUpdateConfigQueryParams } from '@/lib/config';\nimport {\n type ValidationError,\n validateWorldConfig,\n type WorldConfig,\n} from '@/lib/config-world';\nimport { useWorldsAvailability } from '@/lib/hooks';\n\nexport function SettingsSidebar() {\n const config = useQueryParamConfig();\n const updateConfig = useUpdateConfigQueryParams();\n\n const [isOpen, setIsOpen] = useState(false);\n const [localConfig, setLocalConfig] = useState<WorldConfig>(config);\n const [errors, setErrors] = useState<ValidationError[]>([]);\n const [isValidating, setIsValidating] = useState(false);\n\n const { data: worldsAvailability = [], isLoading: isLoadingWorlds } =\n useWorldsAvailability();\n\n const backend = localConfig.backend || 'local';\n const isLocal = backend === 'local';\n const isPostgres = backend === 'postgres';\n\n // Update local config when query params change\n useEffect(() => {\n setLocalConfig(config);\n }, [config]);\n\n const handleValidateAndApply = async () => {\n setIsValidating(true);\n try {\n const validationErrors = await validateWorldConfig(localConfig);\n setErrors(validationErrors);\n\n if (validationErrors.length === 0) {\n updateConfig(localConfig);\n setIsOpen(false);\n }\n } catch (error) {\n console.error('Validation error:', error);\n setErrors([\n {\n field: 'general',\n message: error instanceof Error ? error.message : 'Unknown error',\n },\n ]);\n } finally {\n setIsValidating(false);\n }\n };\n\n const handleInputChange = (field: keyof WorldConfig, value: string) => {\n setLocalConfig((prev) => ({ ...prev, [field]: value }));\n // Clear errors for this field when user types\n setErrors((prev) => prev.filter((e) => e.field !== field));\n };\n\n const getFieldError = (field: string) => {\n return errors.find((e) => e.field === field)?.message;\n };\n\n const hasChanges =\n JSON.stringify(localConfig) !== JSON.stringify(config) || errors.length > 0;\n\n return (\n <>\n <button\n type=\"button\"\n onClick={() => setIsOpen(true)}\n className=\"p-2 rounded-full hover:bg-accent transition-colors\"\n title=\"Configuration\"\n >\n <Settings className=\"h-6 w-6\" />\n </button>\n {isOpen && (\n <>\n {/* Backdrop */}\n <button\n type=\"button\"\n className=\"fixed inset-0 bg-black/50 z-40 cursor-default\"\n onClick={() => setIsOpen(false)}\n aria-label=\"Close configuration panel\"\n />\n\n {/* Panel */}\n <div className=\"fixed top-0 right-0 h-full w-96 bg-background border-l shadow-lg z-50 overflow-y-auto\">\n <div className=\"p-6\">\n <div className=\"flex items-center justify-between mb-6\">\n <h2 className=\"text-2xl font-bold\">Configuration</h2>\n <button\n type=\"button\"\n onClick={() => setIsOpen(false)}\n className=\"p-2 hover:bg-accent rounded-full transition-colors\"\n >\n <X className=\"h-5 w-5\" />\n </button>\n </div>\n\n <div className=\"space-y-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"backend\">Backend</Label>\n <Select\n value={localConfig.backend || 'local'}\n onValueChange={(value) =>\n handleInputChange('backend', value)\n }\n >\n <SelectTrigger id=\"backend\">\n <SelectValue placeholder=\"Select backend\" />\n </SelectTrigger>\n <SelectContent>\n {isLoadingWorlds ? (\n <SelectItem value=\"loading\" disabled>\n Loading worlds...\n </SelectItem>\n ) : worldsAvailability.length > 0 ? (\n worldsAvailability.map((world) => (\n <SelectItem key={world.id} value={world.id}>\n {world.displayName}\n </SelectItem>\n ))\n ) : (\n <>\n <SelectItem value=\"local\">Local</SelectItem>\n <SelectItem value=\"vercel\">Vercel</SelectItem>\n <SelectItem value=\"postgres\">PostgreSQL</SelectItem>\n </>\n )}\n </SelectContent>\n </Select>\n {/* Show warning if selected world is not installed */}\n {(() => {\n const selectedWorld = worldsAvailability.find(\n (w) => w.id === backend\n );\n if (selectedWorld && !selectedWorld.isInstalled) {\n return (\n <div className=\"flex items-start gap-2 p-2 rounded-md bg-amber-500/10 border border-amber-500/20 text-amber-600 dark:text-amber-400\">\n <AlertTriangle className=\"h-4 w-4 mt-0.5 shrink-0\" />\n <div className=\"text-xs\">\n <p className=\"font-medium\">Package not installed</p>\n <p className=\"mt-1 text-muted-foreground\">\n Run:{' '}\n <code className=\"bg-muted px-1 py-0.5 rounded\">\n {selectedWorld.installCommand}\n </code>\n </p>\n </div>\n </div>\n );\n }\n return null;\n })()}\n </div>\n\n {isLocal && (\n <>\n <div className=\"space-y-2\">\n <Label htmlFor=\"port\">Port</Label>\n <Input\n id=\"port\"\n value={localConfig.port || ''}\n onChange={(e) =>\n handleInputChange('port', e.target.value)\n }\n placeholder=\"3001\"\n className={\n getFieldError('port') ? 'border-destructive' : ''\n }\n />\n {getFieldError('port') && (\n <p className=\"text-sm text-destructive\">\n {getFieldError('port')}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"dataDir\">Data Directory</Label>\n <Input\n id=\"dataDir\"\n value={localConfig.dataDir || ''}\n onChange={(e) =>\n handleInputChange('dataDir', e.target.value)\n }\n placeholder=\".workflow-data or .next/workflow-data\"\n className={\n getFieldError('dataDir') ? 'border-destructive' : ''\n }\n />\n {getFieldError('dataDir') && (\n <p className=\"text-sm text-destructive\">\n {getFieldError('dataDir')}\n </p>\n )}\n <p className=\"text-xs text-muted-foreground\">\n Path to the workflow data directory. Can be relative or\n absolute.\n </p>\n </div>\n </>\n )}\n\n {isPostgres && (\n <>\n <div className=\"space-y-2\">\n <Label htmlFor=\"postgresUrl\">Connection URL</Label>\n <Input\n id=\"postgresUrl\"\n value={localConfig.postgresUrl || ''}\n onChange={(e) =>\n handleInputChange('postgresUrl', e.target.value)\n }\n placeholder=\"postgres://user:pass@host:5432/db\"\n className={\n getFieldError('postgresUrl')\n ? 'border-destructive'\n : ''\n }\n />\n {getFieldError('postgresUrl') && (\n <p className=\"text-sm text-destructive\">\n {getFieldError('postgresUrl')}\n </p>\n )}\n </div>\n </>\n )}\n\n {!isLocal && !isPostgres && (\n <>\n <div className=\"space-y-2\">\n <Label htmlFor=\"env\">Environment</Label>\n <Input\n id=\"env\"\n value={localConfig.env || 'production'}\n onChange={(e) =>\n handleInputChange('env', e.target.value)\n }\n placeholder=\"production or preview\"\n />\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"authToken\">Auth Token</Label>\n <Input\n id=\"authToken\"\n type=\"password\"\n value={localConfig.authToken || ''}\n onChange={(e) =>\n handleInputChange('authToken', e.target.value)\n }\n placeholder=\"Vercel auth token\"\n />\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"project\">Project ID</Label>\n <Input\n id=\"project\"\n value={localConfig.project || ''}\n onChange={(e) =>\n handleInputChange('project', e.target.value)\n }\n placeholder=\"prj_...\"\n />\n </div>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"team\">Team ID</Label>\n <Input\n id=\"team\"\n value={localConfig.team || ''}\n onChange={(e) =>\n handleInputChange('team', e.target.value)\n }\n placeholder=\"team_...\"\n />\n </div>\n </>\n )}\n\n {errors.length > 0 && (\n <Alert variant=\"destructive\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Configuration Error</AlertTitle>\n <AlertDescription>\n <ul className=\"list-disc list-inside space-y-1\">\n {errors.map((error, idx) => (\n <li key={`error-${idx}`}>\n {error.field !== 'general' && (\n <strong>{error.field}:</strong>\n )}{' '}\n {error.message}\n </li>\n ))}\n </ul>\n </AlertDescription>\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-2 pt-4\">\n <Button\n onClick={handleValidateAndApply}\n disabled={\n isValidating ||\n !hasChanges ||\n worldsAvailability.some(\n (w) => w.id === backend && !w.isInstalled\n )\n }\n className=\"w-full\"\n >\n {isValidating ? 'Validating...' : 'Apply Configuration'}\n </Button>\n <Button\n variant=\"outline\"\n onClick={() => {\n setLocalConfig(config);\n setErrors([]);\n setIsOpen(false);\n }}\n className=\"w-full\"\n >\n Cancel\n </Button>\n </div>\n </div>\n </div>\n </div>\n </>\n )}\n </>\n );\n}\n","'use client';\n\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner, type ToasterProps } from 'sonner';\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n description: 'group-[.toast]:text-muted-foreground',\n actionButton:\n 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n cancelButton:\n 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',\n error:\n 'group-[.toaster]:bg-destructive group-[.toaster]:text-destructive-foreground group-[.toaster]:border-destructive',\n success:\n 'group-[.toaster]:bg-green-600 group-[.toaster]:text-white group-[.toaster]:border-green-600',\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster };\n","'use client';\n\nimport { TooltipProvider } from '@radix-ui/react-tooltip';\nimport Link from 'next/link';\nimport { useRouter, useSearchParams } from 'next/navigation';\nimport { ThemeProvider } from 'next-themes';\nimport { useEffect } from 'react';\nimport { ConnectionStatus } from '@/components/display-utils/connection-status';\nimport { SettingsSidebar } from '@/components/settings-sidebar';\nimport { Toaster } from '@/components/ui/sonner';\nimport { buildUrlWithConfig, useQueryParamConfig } from '@/lib/config';\nimport { Logo } from '../icons/logo';\n\ninterface LayoutClientProps {\n children: React.ReactNode;\n}\n\nexport function LayoutClient({ children }: LayoutClientProps) {\n const router = useRouter();\n const searchParams = useSearchParams();\n const config = useQueryParamConfig();\n\n const id = searchParams.get('id');\n const runId = searchParams.get('runId');\n const stepId = searchParams.get('stepId');\n const hookId = searchParams.get('hookId');\n const resource = searchParams.get('resource');\n const theme = searchParams.get('theme') || 'system';\n\n // Apply theme class to document\n useEffect(() => {\n const html = document.documentElement;\n\n // Remove existing theme classes\n html.classList.remove('light', 'dark');\n\n // Apply theme class (system will use CSS media query)\n if (theme === 'light' || theme === 'dark') {\n html.classList.add(theme);\n }\n }, [theme]);\n\n // If initialized with a resource/id or direct ID params, we navigate to the appropriate page\n useEffect(() => {\n // Handle direct ID parameters (runId, stepId, hookId) without resource\n if (!resource) {\n if (runId) {\n // If we have a runId, open that run's detail view\n let targetUrl: string;\n if (stepId) {\n // Open run with step sidebar\n targetUrl = buildUrlWithConfig(`/run/${runId}`, config, {\n sidebar: 'step',\n stepId,\n });\n } else if (hookId) {\n // Open run with hook sidebar\n targetUrl = buildUrlWithConfig(`/run/${runId}`, config, {\n sidebar: 'hook',\n hookId,\n });\n } else {\n // Just open the run\n targetUrl = buildUrlWithConfig(`/run/${runId}`, config);\n }\n router.push(targetUrl);\n return;\n }\n // No resource and no direct params, nothing to do\n return;\n }\n\n // Handle resource-based navigation\n if (!id) {\n return;\n }\n\n let targetUrl: string;\n if (resource === 'run') {\n targetUrl = buildUrlWithConfig(`/run/${id}`, config);\n } else if (resource === 'step' && runId) {\n targetUrl = buildUrlWithConfig(`/run/${runId}`, config, {\n sidebar: 'step',\n stepId: id,\n });\n } else if (resource === 'stream' && runId) {\n targetUrl = buildUrlWithConfig(`/run/${runId}`, config, {\n sidebar: 'stream',\n streamId: id,\n });\n } else if (resource === 'event' && runId) {\n targetUrl = buildUrlWithConfig(`/run/${runId}`, config, {\n sidebar: 'event',\n eventId: id,\n });\n } else if (resource === 'hook' && runId) {\n targetUrl = buildUrlWithConfig(`/run/${runId}`, config, {\n sidebar: 'hook',\n hookId: id,\n });\n } else if (resource === 'hook' && !runId) {\n // Hook without runId - go to home page with hook sidebar\n targetUrl = buildUrlWithConfig('/', config, {\n sidebar: 'hook',\n hookId: id,\n });\n } else {\n console.warn(`Can't deep-link to ${resource} ${id}.`);\n return;\n }\n\n router.push(targetUrl);\n }, [resource, id, runId, stepId, hookId, router, config]);\n\n return (\n <ThemeProvider\n attribute=\"class\"\n defaultTheme={theme}\n enableSystem\n disableTransitionOnChange\n >\n <div className=\"min-h-screen px-8 pt-8\">\n <TooltipProvider delayDuration={0}>\n <div className=\"max-w-7xl mx-auto\">\n <div className=\"flex items-start justify-between\">\n <div className=\"mb-8 items-center flex justify-between w-full\">\n <Link href=\"https://useworkflow.dev\" target=\"_blank\">\n <h1\n className=\"flex items-center gap-2 mb-2\"\n title=\"Workflow Observability\"\n >\n <Logo />\n </h1>\n </Link>\n <div className=\"ml-auto flex items-center gap-2\">\n <ConnectionStatus config={config} />\n <SettingsSidebar />\n </div>\n </div>\n </div>\n\n {children}\n </div>\n </TooltipProvider>\n <Toaster />\n </div>\n </ThemeProvider>\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n 'flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = 'Input';\n\nexport { Input };\n","interface LogoProps {\n className?: string;\n}\n\nexport function Logo({ className }: LogoProps = {}) {\n return (\n <svg\n viewBox=\"0 0 1792 240\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className || 'h-6 w-auto'}\n role=\"img\"\n aria-label=\"Workflow Logo\"\n >\n <title>Workflow Logo</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M753.933 55.627C806.249 55.627 840.685 91.718 840.685 147.345C840.685 202.971 806.249 239.062 753.933 239.062C701.286 239.062 666.851 202.971 666.851 147.345C666.851 91.7181 701.286 55.6271 753.933 55.627ZM753.933 90.0625C726.451 90.0626 710.889 111.254 710.889 147.345C710.889 183.436 726.451 204.627 753.933 204.627C781.084 204.627 796.978 183.436 796.978 147.345C796.978 111.254 781.084 90.0625 753.933 90.0625Z\"\n className=\"fill-foreground\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1445.65 55.627C1497.96 55.627 1532.4 91.718 1532.4 147.345C1532.4 202.971 1497.96 239.062 1445.65 239.062C1393 239.062 1358.56 202.971 1358.56 147.345C1358.56 91.718 1393 55.627 1445.65 55.627ZM1445.65 90.0625C1418.16 90.0625 1402.6 111.254 1402.6 147.345C1402.6 183.436 1418.16 204.627 1445.65 204.627C1472.8 204.627 1488.69 183.436 1488.69 147.345C1488.69 111.254 1472.8 90.0626 1445.65 90.0625Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M902.473 94.0361C909.095 70.8584 922.34 59.5997 944.855 59.5996H961.079V92.3799H944.524C916.38 92.38 904.128 106.949 904.128 135.094V235.089H861.746V59.5996H901.48L902.473 94.0361Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M1019.25 138.735L1091.11 59.5996H1143.09L1074.55 132.113L1146.4 235.089H1098.72L1046.74 157.609L1019.25 187.078V235.089H976.872V0H1019.25V138.735Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M1263.63 32.7803H1235.82C1224.89 32.7803 1217.28 41.3893 1217.28 54.9648V59.5996H1260.98V92.3799H1217.28V235.089H1174.56V92.3799H1149.4V59.5996H1174.56V54.9648C1174.56 19.5359 1191.78 0 1230.85 0H1263.63V32.7803Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M1322.58 189.396C1322.58 197.673 1327.22 202.309 1335.5 202.31H1348.74V235.089H1324.57C1298.08 235.089 1280.2 218.534 1280.2 191.052V0H1322.58V189.396Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M1604.59 186.416L1641.02 59.5996H1677.77L1713.86 186.416L1749.95 59.5996H1791.34L1737.7 235.089H1694.32L1659.56 116.883L1624.79 235.089H1581.42L1527.77 59.5996H1568.83L1604.59 186.416Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M472.173 174.847L514.895 0.671875H554.66L598.038 174.847L640.432 0.671875H685.454L623.015 234H575.692L534.942 77.5713L493.863 234H446.869L384.1 0.671875H429.122L472.173 174.847Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M125.776 0C120.929 1.64945e-05 117 3.9291 117 8.77539V61.4248C117 66.2711 120.929 70.2002 125.776 70.2002H160.875L161.253 70.2051C169.032 70.4023 175.301 76.6734 175.495 84.4531L175.5 84.8252V143.325C175.5 148.171 179.429 152.101 184.276 152.101H219.375L219.753 152.105C227.53 152.303 233.798 158.571 233.995 166.348L234 166.726V225.225C234 230.071 237.929 234 242.776 234H295.425C300.271 234 304.2 230.071 304.2 225.225V172.575C304.2 167.729 300.271 163.8 295.425 163.8H260.25C252.334 163.76 245.905 157.43 245.705 149.553L245.7 149.176V90.6758C245.7 85.8295 241.771 81.9004 236.925 81.9004H201.825C193.874 81.9004 187.405 75.5551 187.205 67.6523L187.2 67.2754V8.77539C187.2 3.9291 183.271 1.64951e-05 178.425 0H125.776Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M67.2755 81.9004C62.4293 81.9004 58.5002 85.8295 58.5002 90.6758V143.325C58.5004 148.171 62.4294 152.101 67.2755 152.101H102.375L102.753 152.105C110.53 152.303 116.798 158.571 116.995 166.348L117 166.726V225.225C117 230.071 120.929 234 125.776 234H178.425C183.271 234 187.2 230.071 187.2 225.225V172.575C187.2 167.729 183.271 163.8 178.425 163.8H143.25C135.334 163.76 128.905 157.43 128.705 149.553L128.7 149.176V90.6758C128.7 85.8295 124.771 81.9004 119.925 81.9004H67.2755Z\"\n className=\"fill-foreground\"\n />\n <path\n d=\"M8.77454 163.8C3.92844 163.8 0.00012207 167.729 0.00012207 172.575V225.225C0.00012207 230.071 3.92844 234 8.77454 234H61.4249C66.2712 234 70.2003 230.071 70.2003 225.225V172.575C70.2003 167.729 66.2712 163.8 61.4249 163.8H8.77454Z\"\n className=\"fill-foreground\"\n />\n </svg>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('TriangleAlert', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Info\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Info = createLucideIcon('Info', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 16v-4', key: '1dtifu' }],\n ['path', { d: 'M12 8h.01', key: 'e9boi3' }],\n]);\n\nexport default Info;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Settings\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings = createLucideIcon('Settings', [\n [\n 'path',\n {\n d: 'M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z',\n key: '1qme2f',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Settings;\n"],"names":[],"mappings":"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","ignoreList":[0,2,12,13,14,15]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[62587,a=>{"use strict";var b=a.i(81156),c=a.i(30341),d=a.i(43747);a.i(80551);var e=a.i(21578),f=a.i(16336),g=a.i(7973),h=a.i(22427);let i=(0,h.default)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),j=(0,h.default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var k=a.i(25217),l=a.i(87286),m=a.i(35321),n=a.i(97494),o=a.i(76246),p=a.i(39465);let q=l.forwardRef(({className:a,href:c,children:d,...e},f)=>{let g=c.startsWith("http")?c:`https://useworkflow.dev/docs/${c.replace(/^\//,"")}`;return(0,b.jsx)(o.default,{href:g,className:(0,p.cn)("font-medium underline underline-offset-4 transition-colors",a),style:{color:"var(--ds-blue-600)"},target:"_blank",rel:"noopener noreferrer",ref:f,...e,children:d})});q.displayName="DocsLink";let r=l.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{className:"relative w-full overflow-auto",children:(0,b.jsx)("table",{ref:d,className:(0,p.cn)("w-full caption-bottom text-sm",a),...c})}));r.displayName="Table";let s=l.forwardRef(({className:a,...c},d)=>(0,b.jsx)("thead",{ref:d,className:(0,p.cn)("[&_tr]:border-b",a),...c}));s.displayName="TableHeader";let t=l.forwardRef(({className:a,...c},d)=>(0,b.jsx)("tbody",{ref:d,className:(0,p.cn)("[&_tr:last-child]:border-0",a),...c}));t.displayName="TableBody",l.forwardRef(({className:a,...c},d)=>(0,b.jsx)("tfoot",{ref:d,className:(0,p.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...c})).displayName="TableFooter";let u=l.forwardRef(({className:a,...c},d)=>(0,b.jsx)("tr",{ref:d,className:(0,p.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...c}));u.displayName="TableRow";let v=l.forwardRef(({className:a,...c},d)=>(0,b.jsx)("th",{ref:d,className:(0,p.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",a),...c}));v.displayName="TableHead";let w=l.forwardRef(({className:a,...c},d)=>(0,b.jsx)("td",{ref:d,className:(0,p.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",a),...c}));w.displayName="TableCell",l.forwardRef(({className:a,...c},d)=>(0,b.jsx)("caption",{ref:d,className:(0,p.cn)("mt-4 text-sm text-muted-foreground",a),...c})).displayName="TableCaption";var x=a.i(93557),y=a.i(8624),z=a.i(15244),A=a.i(33105);function B({rows:a=p.DEFAULT_PAGE_SIZE}){return(0,b.jsx)("div",{className:"w-full",children:(0,b.jsxs)("div",{className:"space-y-3",style:{minHeight:"512px"},children:[(0,b.jsx)(A.Skeleton,{className:"h-[40px] p-1 w-full"}),(0,b.jsx)("div",{className:"border-b border-gray-alpha-400 w-full"}),Array.from({length:a},(a,c)=>(0,b.jsxs)("div",{className:"flex gap-4 py-3",children:[(0,b.jsx)(A.Skeleton,{className:"h-4 w-1/4"}),(0,b.jsx)(A.Skeleton,{className:"h-4 w-1/4"}),(0,b.jsx)(A.Skeleton,{className:"h-4 w-1/6"}),(0,b.jsx)(A.Skeleton,{className:"h-4 w-1/6"}),(0,b.jsx)(A.Skeleton,{className:"h-4 w-1/6"})]},`skeleton-row-${c}`)),(0,b.jsxs)("div",{className:"mt-6 flex w-full justify-between",children:[(0,b.jsx)(A.Skeleton,{className:"h-4 w-12"}),(0,b.jsx)(A.Skeleton,{className:"h-8 w-1/6"})]})]})})}function C({config:a,runId:c,onHookClick:d,selectedHookId:h}){let[o,p]=(0,l.useState)(()=>new Date),A=(0,l.useMemo)(()=>(0,y.worldConfigToEnvMap)(a),[a]),{data:C,error:D,nextPage:E,previousPage:F,hasNextPage:G,hasPreviousPage:H,reload:I,pageInfo:J}=(0,e.useWorkflowHooks)(A,{runId:c,sortOrder:"desc"}),K=C.isLoading,L=C.data??[],[M,N]=(0,l.useState)(new Map);return(0,l.useEffect)(()=>{L.length&&(async()=>{let a=new Map;for(let b of L)a.set(b.hookId,{count:0,hasMore:!1,loading:!0});N(a);let b=await Promise.allSettled(L.map(async a=>{try{let b=await (0,f.fetchEventsByCorrelationId)(A,a.hookId,{sortOrder:"asc",limit:100});if(!b.success)return{hookId:a.hookId,count:Error(b.error?.message||"Failed to fetch events"),hasMore:!1};let c=b.data,d=c.data.filter(a=>"hook_received"===a.eventType).length;return{hookId:a.hookId,count:d,hasMore:c.hasMore}}catch(b){return{hookId:a.hookId,count:b,hasMore:!1}}}));N(a=>{let c=new Map(a);for(let a=0;a<b.length;a++){let d=b[a],e=L[a].hookId;"fulfilled"===d.status?c.set(d.value.hookId,{count:d.value.count,hasMore:d.value.hasMore,loading:!1}):c.set(e,{count:0,hasMore:!1,loading:!1})}return c})})()},[L,A]),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between my-4",children:[(0,b.jsx)("h2",{className:"text-2xl my-2 font-semibold leading-none tracking-tight",children:"Hooks"}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[o&&(0,b.jsx)(z.RelativeTime,{date:o,className:"text-sm text-muted-foreground",type:"distance"}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:()=>{p(()=>new Date),I()},disabled:K,children:[(0,b.jsx)(k.RefreshCw,{className:K?"animate-spin":""}),"Refresh"]})}),(0,b.jsx)(x.TooltipContent,{children:"Note that this resets pages"})]})]})]}),D?(0,b.jsxs)(m.Alert,{variant:"destructive",children:[(0,b.jsx)(g.AlertCircle,{className:"h-4 w-4"}),(0,b.jsx)(m.AlertTitle,{children:"Error loading hooks"}),(0,b.jsx)(m.AlertDescription,{children:(0,e.getErrorMessage)(D)})]}):K||L&&0!==L.length?K&&!C?.data?(0,b.jsx)(B,{}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(r,{children:[(0,b.jsx)(s,{children:(0,b.jsxs)(u,{children:[(0,b.jsx)(v,{children:"Hook ID"}),(0,b.jsx)(v,{children:"Run ID"}),(0,b.jsx)(v,{children:"Token"}),(0,b.jsx)(v,{children:"Created"}),(0,b.jsx)(v,{children:"Invocations"})]})}),(0,b.jsx)(t,{children:L.map(a=>(0,b.jsxs)(u,{className:"cursor-pointer group relative",onClick:()=>d(a.hookId,a.runId),"data-selected":a.hookId===h,children:[(0,b.jsx)(w,{className:"font-mono text-xs",children:a.hookId}),(0,b.jsx)(w,{className:"font-mono text-xs",children:a.runId}),(0,b.jsxs)(w,{className:"font-mono text-xs",children:[a.token.substring(0,12),"..."]}),(0,b.jsx)(w,{children:a.createdAt?(0,b.jsx)(z.RelativeTime,{date:a.createdAt}):"-"}),(0,b.jsx)(w,{children:(a=>{let c=M.get(a.hookId);if(!c||c.loading)return(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:"..."});if(c.count instanceof Error)return(0,b.jsx)("span",{className:"text-muted-foreground",children:"Error"});if(0===c.count)return(0,b.jsx)("span",{className:"text-muted-foreground",children:"0"});let d=c.hasMore?`${c.count}+`:`${c.count}`;return c.hasMore?(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"font-semibold cursor-help",children:d})}),(0,b.jsx)(x.TooltipContent,{children:(0,b.jsx)("div",{className:"text-xs",children:"Showing first 100 invocations. There may be more."})})]}):(0,b.jsx)("span",{className:"font-semibold",children:d})})(a)})]},a.hookId))})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between mt-4",children:[(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:J}),(0,b.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:F,disabled:!H,children:[(0,b.jsx)(i,{}),"Previous"]}),(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:E,disabled:!G,children:["Next",(0,b.jsx)(j,{})]})]})]})]}):(0,b.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:["No active hooks found."," ",(0,b.jsx)(q,{href:"https://useworkflow.dev/docs/api-reference/workflow/create-hook",children:"Learn how to create a hook"})]})]})}var D=a.i(38015);let E=(0,h.default)("ArrowDownAZ",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]),F=(0,h.default)("ArrowUpAZ",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]);var G=a.i(75196),H=a.i(93354);let I={pending:{label:"Pending",color:"bg-neutral-600 dark:bg-neutral-400"},running:{label:"Running",color:"bg-blue-600 dark:bg-blue-400"},completed:{label:"Completed",color:"bg-green-600 dark:bg-green-400"},failed:{label:"Failed",color:"bg-red-600 dark:bg-red-400"},paused:{label:"Paused",color:"bg-yellow-600 dark:bg-yellow-400"},cancelled:{label:"Cancelled",color:"bg-gray-600 dark:bg-gray-400"}};function J({config:a,onRunClick:d}){let f=(0,c.useRouter)(),h=(0,c.usePathname)(),o=(0,c.useSearchParams)(),p=o.get("status"),A=Object.keys(I),C="all"===p||p&&A.includes(p)?p:void 0,J=o.get("workflow"),[K,L]=(0,l.useState)("desc"),[M,N]=(0,l.useState)(()=>new Date),O=(0,l.useMemo)(()=>(0,y.worldConfigToEnvMap)(a),[a]),P=a.backend?.includes("vercel"),[Q,R]=(0,l.useState)(new Set),{data:S,error:T,nextPage:U,previousPage:V,hasNextPage:W,hasPreviousPage:X,reload:Y,pageInfo:Z}=(0,e.useWorkflowRuns)(O,{sortOrder:K,workflowName:"all"===J?void 0:J,status:"all"===C?void 0:C});(0,l.useEffect)(()=>{if(S.data&&S.data.length>0){let a=new Set(S.data.map(a=>a.workflowName));R(b=>{let c=new Set(b);for(let b of a)c.add(b);return c})}},[S.data]);let $=S.isLoading,_=(0,l.useCallback)((a,b)=>{let c=new URLSearchParams(o.toString());return c.set(a,b),c.toString()},[o]);return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between my-4",children:[(0,b.jsxs)("h2",{className:"text-2xl my-2 font-semibold leading-none tracking-tight flex gap-4 items-end",children:[(0,b.jsx)("span",{className:"flex items-center gap-2",children:"Runs"}),M&&(0,b.jsx)(z.RelativeTime,{date:M,className:"text-sm text-muted-foreground",type:"distance"})]}),(0,b.jsx)("div",{className:"flex items-center gap-4",children:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(G.Select,{value:J??"all",onValueChange:a=>{if("all"===a){let a=new URLSearchParams(o.toString());a.delete("workflow"),a.delete("status"),f.push(`${h}?${a.toString()}`)}else f.push(`${h}?${_("workflow",a)}`)},disabled:$,children:[(0,b.jsx)(G.SelectTrigger,{className:"w-[180px] h-9",children:(0,b.jsx)(G.SelectValue,{placeholder:"Filter by workflow"})}),(0,b.jsxs)(G.SelectContent,{children:[(0,b.jsx)(G.SelectItem,{value:"all",children:"All Workflows"}),Array.from(Q).sort().map(a=>(0,b.jsx)(G.SelectItem,{value:a,children:(0,D.parseWorkflowName)(a)?.shortName||a},a))]})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsxs)(G.Select,{value:C||"all",onValueChange:a=>{if("all"===a){let a=new URLSearchParams(o.toString());a.delete("status"),f.push(`${h}?${a.toString()}`)}else f.push(`${h}?${_("status",a)}`)},disabled:$||P&&!J,children:[(0,b.jsx)(G.SelectTrigger,{className:"w-[140px] h-9",children:(0,b.jsx)(G.SelectValue,{placeholder:"Filter by status"})}),(0,b.jsxs)(G.SelectContent,{children:[(0,b.jsx)(G.SelectItem,{value:"all",children:"Any status"}),Object.entries(I).map(([a,{label:c,color:d}])=>(0,b.jsx)(G.SelectItem,{value:a,children:(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsx)("span",{className:`${d} size-1.5 rounded-full mr-2`}),c]})},a))]})]})})}),(0,b.jsx)(x.TooltipContent,{children:P&&"all"===J?"Select a workflow first to filter by status":"Filter runs by status"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:()=>{L(a=>"desc"===a?"asc":"desc")},disabled:$,children:["desc"===K?(0,b.jsx)(E,{className:"h-4 w-4"}):(0,b.jsx)(F,{className:"h-4 w-4"}),"desc"===K?"Newest":"Oldest"]})}),(0,b.jsx)(x.TooltipContent,{children:"desc"===K?"Showing newest first":"Showing oldest first"})]}),(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:()=>{N(()=>new Date),Y()},disabled:$,children:[(0,b.jsx)(k.RefreshCw,{className:$?"animate-spin":""}),"Refresh"]})}),(0,b.jsx)(x.TooltipContent,{children:"Note that this resets pages"})]})]})})]}),T?(0,b.jsxs)(m.Alert,{variant:"destructive",children:[(0,b.jsx)(g.AlertCircle,{className:"h-4 w-4"}),(0,b.jsx)(m.AlertTitle,{children:"Error loading runs"}),(0,b.jsx)(m.AlertDescription,{children:(0,e.getErrorMessage)(T)})]}):$&&!S?.data?(0,b.jsx)(B,{}):$||S.data&&0!==S.data.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(r,{children:[(0,b.jsx)(s,{children:(0,b.jsxs)(u,{children:[(0,b.jsx)(v,{children:"Workflow"}),(0,b.jsx)(v,{children:"Run ID"}),(0,b.jsx)(v,{children:"Status"}),(0,b.jsx)(v,{children:"Started"}),(0,b.jsx)(v,{children:"Completed"})]})}),(0,b.jsx)(t,{children:S.data?.map(a=>(0,b.jsxs)(u,{className:"cursor-pointer group relative",onClick:()=>d(a.runId),children:[(0,b.jsx)(w,{children:(0,D.parseWorkflowName)(a.workflowName)?.shortName||"?"}),(0,b.jsx)(w,{className:"font-mono text-xs",children:a.runId}),(0,b.jsx)(w,{children:(0,b.jsx)(H.StatusBadge,{status:a.status,context:a})}),(0,b.jsx)(w,{children:a.startedAt?(0,b.jsx)(z.RelativeTime,{date:a.startedAt}):"-"}),(0,b.jsx)(w,{children:a.completedAt?(0,b.jsx)(z.RelativeTime,{date:a.completedAt}):"-"})]},a.runId))})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between mt-4",children:[(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:Z}),(0,b.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:V,disabled:!X,children:[(0,b.jsx)(i,{}),"Previous"]}),(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:U,disabled:!W,children:["Next",(0,b.jsx)(j,{})]})]})]})]}):(0,b.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:["No workflow runs found."," ",(0,b.jsx)(q,{href:"https://useworkflow.dev/docs/foundations/workflows-and-steps",children:"Learn how to create a workflow"})]})]})}function K(){let a=(0,c.useRouter)(),e=(0,c.useSearchParams)(),f=(0,y.useQueryParamConfig)(),g=e.get("sidebar"),h=e.get("hookId")||e.get("hook");return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(d.ErrorBoundary,{title:"Runs Error",description:"Failed to load workflow runs. Please try refreshing the page.",children:(0,b.jsx)(J,{config:f,onRunClick:(b,c)=>{c?a.push((0,y.buildUrlWithConfig)(`/run/${b}/streams/${c}`,f)):a.push((0,y.buildUrlWithConfig)(`/run/${b}`,f))}})}),(0,b.jsx)(d.ErrorBoundary,{title:"Hooks Error",description:"Failed to load hooks. Please try refreshing the page.",children:(0,b.jsx)(C,{config:f,onHookClick:(b,c)=>{b?a.push((0,y.buildUrlWithConfig)(`/run/${c}`,f,{sidebar:"hook",hookId:b})):a.push((0,y.buildUrlWithConfig)(`/run/${c}`,f))},selectedHookId:"hook"===g&&h?h:void 0})})]})}a.s(["default",()=>K],62587)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=packages_web_src_app_page_tsx_cd282e82._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/web/src/components/ui/docs-link.tsx","../../../../../../packages/web/src/components/display-utils/table-skeleton.tsx","../../../../../../packages/web/src/components/hooks-table.tsx","../../../../../../packages/web/src/components/runs-table.tsx","../../../../../../packages/web/src/app/page.tsx","../../../../../../packages/web/src/components/ui/table.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/arrow-up-a-z.ts","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/chevron-left.ts","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/chevron-right.ts","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/arrow-down-a-z.ts"],"sourcesContent":["import Link from 'next/link';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface DocsLinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n}\n\n/**\n * A styled link component for documentation links.\n * Automatically prepends the docs base URL if a relative path is provided.\n */\nconst DocsLink = React.forwardRef<HTMLAnchorElement, DocsLinkProps>(\n ({ className, href, children, ...props }, ref) => {\n // Convert relative paths to full docs URLs\n const fullHref = href.startsWith('http')\n ? href\n : `https://useworkflow.dev/docs/${href.replace(/^\\//, '')}`;\n\n return (\n <Link\n href={fullHref}\n className={cn(\n 'font-medium underline underline-offset-4 transition-colors',\n className\n )}\n style={{\n color: 'var(--ds-blue-600)',\n }}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n ref={ref}\n {...props}\n >\n {children}\n </Link>\n );\n }\n);\nDocsLink.displayName = 'DocsLink';\n\nexport { DocsLink };\n","'use client';\n\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { DEFAULT_PAGE_SIZE } from '@/lib/utils';\n\ninterface TableSkeletonProps {\n title?: string;\n rows?: number;\n bodyOnly?: boolean;\n}\n\nexport function TableSkeleton({\n rows = DEFAULT_PAGE_SIZE,\n}: TableSkeletonProps) {\n return (\n <div className=\"w-full\">\n <div className=\"space-y-3\" style={{ minHeight: '512px' }}>\n <Skeleton className=\"h-[40px] p-1 w-full\" />\n <div className=\"border-b border-gray-alpha-400 w-full\"></div>\n {Array.from({ length: rows }, (_, i) => (\n <div key={`skeleton-row-${i}`} className=\"flex gap-4 py-3\">\n <Skeleton className=\"h-4 w-1/4\" />\n <Skeleton className=\"h-4 w-1/4\" />\n <Skeleton className=\"h-4 w-1/6\" />\n <Skeleton className=\"h-4 w-1/6\" />\n <Skeleton className=\"h-4 w-1/6\" />\n </div>\n ))}\n <div className=\"mt-6 flex w-full justify-between\">\n <Skeleton className=\"h-4 w-12\" />\n <Skeleton className=\"h-8 w-1/6\" />\n </div>\n </div>\n </div>\n );\n}\n","'use client';\n\nimport { getErrorMessage, useWorkflowHooks } from '@workflow/web-shared';\nimport { fetchEventsByCorrelationId } from '@workflow/web-shared/server';\nimport type { Event, Hook } from '@workflow/world';\nimport {\n AlertCircle,\n ChevronLeft,\n ChevronRight,\n RefreshCw,\n} from 'lucide-react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';\nimport { Button } from '@/components/ui/button';\nimport { DocsLink } from '@/components/ui/docs-link';\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@/components/ui/table';\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\nimport { worldConfigToEnvMap } from '@/lib/config';\nimport type { WorldConfig } from '@/lib/config-world';\nimport { RelativeTime } from './display-utils/relative-time';\nimport { TableSkeleton } from './display-utils/table-skeleton';\n\ninterface HooksTableProps {\n config: WorldConfig;\n runId?: string;\n onHookClick: (hookId: string, runId?: string) => void;\n selectedHookId?: string;\n}\n\ninterface InvocationData {\n count: number | Error;\n hasMore: boolean;\n loading: boolean;\n}\n\n/**\n * HooksTable - Displays hooks with server-side pagination.\n * Uses the PaginatingTable pattern similar to RunsTable.\n * Fetches invocation counts in the background for each hook.\n */\nexport function HooksTable({\n config,\n runId,\n onHookClick,\n selectedHookId,\n}: HooksTableProps) {\n const [lastRefreshTime, setLastRefreshTime] = useState<Date | null>(\n () => new Date()\n );\n const env = useMemo(() => worldConfigToEnvMap(config), [config]);\n\n const {\n data,\n error,\n nextPage,\n previousPage,\n hasNextPage,\n hasPreviousPage,\n reload,\n pageInfo,\n } = useWorkflowHooks(env, {\n runId,\n sortOrder: 'desc',\n });\n\n const loading = data.isLoading;\n const hooks = data.data ?? [];\n\n const onReload = () => {\n setLastRefreshTime(() => new Date());\n reload();\n };\n\n // Track invocation counts per hook (fetched in background)\n const [invocationData, setInvocationData] = useState<\n Map<string, InvocationData>\n >(new Map());\n\n // Fetch invocation counts for each hook in the background\n useEffect(() => {\n if (!hooks.length) return;\n\n const fetchInvocations = async () => {\n // Initialize all hooks as loading\n const initialData = new Map<string, InvocationData>();\n for (const hook of hooks) {\n initialData.set(hook.hookId, {\n count: 0,\n hasMore: false,\n loading: true,\n });\n }\n setInvocationData(initialData);\n\n // Fetch events for each hook\n const results = await Promise.allSettled(\n hooks.map(async (hook) => {\n try {\n const serverResult = await fetchEventsByCorrelationId(\n env,\n hook.hookId,\n {\n sortOrder: 'asc',\n limit: 100,\n }\n );\n\n if (!serverResult.success) {\n return {\n hookId: hook.hookId,\n count: new Error(\n serverResult.error?.message || 'Failed to fetch events'\n ),\n hasMore: false,\n };\n }\n\n // Count only hook_received events\n const events = serverResult.data;\n const count = events.data.filter(\n (e: Event) => e.eventType === 'hook_received'\n ).length;\n\n return {\n hookId: hook.hookId,\n count,\n hasMore: events.hasMore,\n };\n } catch (e) {\n return {\n hookId: hook.hookId,\n count: e as Error,\n hasMore: false,\n };\n }\n })\n );\n\n // Update state with results\n setInvocationData((prev) => {\n const updated = new Map(prev);\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n const hookId = hooks[i].hookId;\n if (result.status === 'fulfilled') {\n updated.set(result.value.hookId, {\n count: result.value.count,\n hasMore: result.value.hasMore,\n loading: false,\n });\n } else {\n // Mark the failed hook as not loading with default values\n updated.set(hookId, { count: 0, hasMore: false, loading: false });\n }\n }\n return updated;\n });\n };\n\n fetchInvocations();\n }, [hooks, env]);\n\n // Render invocation count for a hook\n const renderInvocationCount = (hook: Hook) => {\n const data = invocationData.get(hook.hookId);\n\n if (!data || data.loading) {\n return <span className=\"text-muted-foreground text-xs\">...</span>;\n }\n\n if (data.count instanceof Error) {\n return <span className=\"text-muted-foreground\">Error</span>;\n }\n\n if (data.count === 0) {\n return <span className=\"text-muted-foreground\">0</span>;\n }\n\n const displayText = data.hasMore ? `${data.count}+` : `${data.count}`;\n\n if (data.hasMore) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"font-semibold cursor-help\">{displayText}</span>\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"text-xs\">\n Showing first 100 invocations. There may be more.\n </div>\n </TooltipContent>\n </Tooltip>\n );\n }\n\n return <span className=\"font-semibold\">{displayText}</span>;\n };\n\n return (\n <div>\n <div className=\"flex items-center justify-between my-4\">\n <h2 className=\"text-2xl my-2 font-semibold leading-none tracking-tight\">\n Hooks\n </h2>\n <div className=\"flex items-center gap-4\">\n {lastRefreshTime && (\n <RelativeTime\n date={lastRefreshTime}\n className=\"text-sm text-muted-foreground\"\n type=\"distance\"\n />\n )}\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onReload}\n disabled={loading}\n >\n <RefreshCw className={loading ? 'animate-spin' : ''} />\n Refresh\n </Button>\n </TooltipTrigger>\n <TooltipContent>Note that this resets pages</TooltipContent>\n </Tooltip>\n </div>\n </div>\n {error ? (\n <Alert variant=\"destructive\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Error loading hooks</AlertTitle>\n <AlertDescription>{getErrorMessage(error)}</AlertDescription>\n </Alert>\n ) : !loading && (!hooks || hooks.length === 0) ? (\n <div className=\"text-center py-8 text-muted-foreground\">\n No active hooks found.{' '}\n <DocsLink href=\"https://useworkflow.dev/docs/api-reference/workflow/create-hook\">\n Learn how to create a hook\n </DocsLink>\n </div>\n ) : loading && !data?.data ? (\n <TableSkeleton />\n ) : (\n <>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Hook ID</TableHead>\n <TableHead>Run ID</TableHead>\n <TableHead>Token</TableHead>\n <TableHead>Created</TableHead>\n <TableHead>Invocations</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {hooks.map((hook) => (\n <TableRow\n key={hook.hookId}\n className=\"cursor-pointer group relative\"\n onClick={() => onHookClick(hook.hookId, hook.runId)}\n data-selected={hook.hookId === selectedHookId}\n >\n <TableCell className=\"font-mono text-xs\">\n {hook.hookId}\n </TableCell>\n <TableCell className=\"font-mono text-xs\">\n {hook.runId}\n </TableCell>\n <TableCell className=\"font-mono text-xs\">\n {hook.token.substring(0, 12)}...\n </TableCell>\n <TableCell>\n {hook.createdAt ? (\n <RelativeTime date={hook.createdAt} />\n ) : (\n '-'\n )}\n </TableCell>\n <TableCell>{renderInvocationCount(hook)}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n\n <div className=\"flex items-center justify-between mt-4\">\n <div className=\"text-sm text-muted-foreground\">{pageInfo}</div>\n <div className=\"flex gap-2 items-center\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={previousPage}\n disabled={!hasPreviousPage}\n >\n <ChevronLeft />\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={nextPage}\n disabled={!hasNextPage}\n >\n Next\n <ChevronRight />\n </Button>\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { parseWorkflowName } from '@workflow/core/parse-name';\nimport { getErrorMessage, useWorkflowRuns } from '@workflow/web-shared';\nimport type { WorkflowRunStatus } from '@workflow/world';\nimport {\n AlertCircle,\n ArrowDownAZ,\n ArrowUpAZ,\n ChevronLeft,\n ChevronRight,\n RefreshCw,\n} from 'lucide-react';\nimport { usePathname, useRouter, useSearchParams } from 'next/navigation';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';\nimport { Button } from '@/components/ui/button';\nimport { DocsLink } from '@/components/ui/docs-link';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/components/ui/select';\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@/components/ui/table';\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\nimport { worldConfigToEnvMap } from '@/lib/config';\nimport type { WorldConfig } from '@/lib/config-world';\nimport { RelativeTime } from './display-utils/relative-time';\nimport { StatusBadge } from './display-utils/status-badge';\nimport { TableSkeleton } from './display-utils/table-skeleton';\n\ninterface RunsTableProps {\n config: WorldConfig;\n onRunClick: (runId: string) => void;\n}\n\nconst statusMap: Record<WorkflowRunStatus, { label: string; color: string }> = {\n pending: { label: 'Pending', color: 'bg-neutral-600 dark:bg-neutral-400' },\n running: { label: 'Running', color: 'bg-blue-600 dark:bg-blue-400' },\n completed: { label: 'Completed', color: 'bg-green-600 dark:bg-green-400' },\n failed: { label: 'Failed', color: 'bg-red-600 dark:bg-red-400' },\n paused: { label: 'Paused', color: 'bg-yellow-600 dark:bg-yellow-400' },\n cancelled: { label: 'Cancelled', color: 'bg-gray-600 dark:bg-gray-400' },\n};\n\n/**\n * RunsTable - Displays workflow runs with server-side pagination.\n * Uses the PaginatingTable pattern: fetches data for each page as needed from the server.\n * The table and fetching behavior are intertwined - pagination controls trigger new API calls.\n */\nexport function RunsTable({ config, onRunClick }: RunsTableProps) {\n const router = useRouter();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n // Validate status parameter - only allow known valid statuses or 'all'\n const rawStatus = searchParams.get('status');\n const validStatuses = Object.keys(statusMap) as WorkflowRunStatus[];\n const status: WorkflowRunStatus | 'all' | undefined =\n rawStatus === 'all' ||\n (rawStatus && validStatuses.includes(rawStatus as WorkflowRunStatus))\n ? (rawStatus as WorkflowRunStatus | 'all')\n : undefined;\n const workflowNameFilter = searchParams.get('workflow') as string | 'all';\n const [sortOrder, setSortOrder] = useState<'asc' | 'desc'>('desc');\n const [lastRefreshTime, setLastRefreshTime] = useState<Date | null>(\n () => new Date()\n );\n const env = useMemo(() => worldConfigToEnvMap(config), [config]);\n\n // TODO: World-vercel doesn't support filtering by status without a workflow name filter\n const statusFilterRequiresWorkflowNameFilter =\n config.backend?.includes('vercel');\n // TODO: This is a workaround. We should be getting a list of valid workflow names\n // from the manifest, which we need to put on the World interface.\n const [seenWorkflowNames, setSeenWorkflowNames] = useState<Set<string>>(\n new Set()\n );\n\n const {\n data,\n error,\n nextPage,\n previousPage,\n hasNextPage,\n hasPreviousPage,\n reload,\n pageInfo,\n } = useWorkflowRuns(env, {\n sortOrder,\n workflowName: workflowNameFilter === 'all' ? undefined : workflowNameFilter,\n status: status === 'all' ? undefined : status,\n });\n\n // Track seen workflow names from loaded data\n useEffect(() => {\n if (data.data && data.data.length > 0) {\n const newNames = new Set(data.data.map((run) => run.workflowName));\n setSeenWorkflowNames((prev) => {\n const updated = new Set(prev);\n for (const name of newNames) {\n updated.add(name);\n }\n return updated;\n });\n }\n }, [data.data]);\n\n const loading = data.isLoading;\n\n const onReload = () => {\n setLastRefreshTime(() => new Date());\n reload();\n };\n\n const toggleSortOrder = () => {\n setSortOrder((prev) => (prev === 'desc' ? 'asc' : 'desc'));\n };\n\n const createQueryString = useCallback(\n (name: string, value: string) => {\n const params = new URLSearchParams(searchParams.toString());\n params.set(name, value);\n\n return params.toString();\n },\n [searchParams]\n );\n\n return (\n <div>\n <div className=\"flex items-center justify-between my-4\">\n <h2 className=\"text-2xl my-2 font-semibold leading-none tracking-tight flex gap-4 items-end\">\n <span className=\"flex items-center gap-2\">Runs</span>\n {lastRefreshTime && (\n <RelativeTime\n date={lastRefreshTime}\n className=\"text-sm text-muted-foreground\"\n type=\"distance\"\n />\n )}\n </h2>\n <div className=\"flex items-center gap-4\">\n {\n <>\n <Select\n value={workflowNameFilter ?? 'all'}\n onValueChange={(value) => {\n if (value === 'all') {\n const params = new URLSearchParams(searchParams.toString());\n params.delete('workflow');\n params.delete('status');\n router.push(`${pathname}?${params.toString()}`);\n } else {\n router.push(\n `${pathname}?${createQueryString('workflow', value)}`\n );\n }\n }}\n disabled={loading}\n >\n <SelectTrigger className=\"w-[180px] h-9\">\n <SelectValue placeholder=\"Filter by workflow\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All Workflows</SelectItem>\n {Array.from(seenWorkflowNames)\n .sort()\n .map((name) => (\n <SelectItem key={name} value={name}>\n {parseWorkflowName(name)?.shortName || name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Tooltip>\n <TooltipTrigger asChild>\n <div>\n <Select\n value={status || 'all'}\n onValueChange={(value) => {\n if (value === 'all') {\n const params = new URLSearchParams(\n searchParams.toString()\n );\n params.delete('status');\n router.push(`${pathname}?${params.toString()}`);\n } else {\n router.push(\n `${pathname}?${createQueryString('status', value)}`\n );\n }\n }}\n disabled={\n loading ||\n (statusFilterRequiresWorkflowNameFilter &&\n !workflowNameFilter)\n }\n >\n <SelectTrigger className=\"w-[140px] h-9\">\n <SelectValue placeholder=\"Filter by status\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">Any status</SelectItem>\n {Object.entries(statusMap).map(\n ([status, { label, color }]) => (\n <SelectItem key={status} value={status}>\n <div className=\"flex items-center\">\n <span\n className={`${color} size-1.5 rounded-full mr-2`}\n />\n {label}\n </div>\n </SelectItem>\n )\n )}\n </SelectContent>\n </Select>\n </div>\n </TooltipTrigger>\n <TooltipContent>\n {statusFilterRequiresWorkflowNameFilter &&\n workflowNameFilter === 'all'\n ? 'Select a workflow first to filter by status'\n : 'Filter runs by status'}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={toggleSortOrder}\n disabled={loading}\n >\n {sortOrder === 'desc' ? (\n <ArrowDownAZ className=\"h-4 w-4\" />\n ) : (\n <ArrowUpAZ className=\"h-4 w-4\" />\n )}\n {sortOrder === 'desc' ? 'Newest' : 'Oldest'}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {sortOrder === 'desc'\n ? 'Showing newest first'\n : 'Showing oldest first'}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onReload}\n disabled={loading}\n >\n <RefreshCw className={loading ? 'animate-spin' : ''} />\n Refresh\n </Button>\n </TooltipTrigger>\n <TooltipContent>Note that this resets pages</TooltipContent>\n </Tooltip>\n </>\n }\n </div>\n </div>\n {error ? (\n <Alert variant=\"destructive\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Error loading runs</AlertTitle>\n <AlertDescription>{getErrorMessage(error)}</AlertDescription>\n </Alert>\n ) : loading && !data?.data ? (\n <TableSkeleton />\n ) : !loading && (!data.data || data.data.length === 0) ? (\n <div className=\"text-center py-8 text-muted-foreground\">\n No workflow runs found.{' '}\n <DocsLink href=\"https://useworkflow.dev/docs/foundations/workflows-and-steps\">\n Learn how to create a workflow\n </DocsLink>\n </div>\n ) : (\n <>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Workflow</TableHead>\n <TableHead>Run ID</TableHead>\n <TableHead>Status</TableHead>\n <TableHead>Started</TableHead>\n <TableHead>Completed</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.data?.map((run) => (\n <TableRow\n key={run.runId}\n className=\"cursor-pointer group relative\"\n onClick={() => onRunClick(run.runId)}\n >\n <TableCell>\n {parseWorkflowName(run.workflowName)?.shortName || '?'}\n </TableCell>\n <TableCell className=\"font-mono text-xs\">\n {run.runId}\n </TableCell>\n <TableCell>\n <StatusBadge status={run.status} context={run} />\n </TableCell>\n <TableCell>\n {run.startedAt ? (\n <RelativeTime date={run.startedAt} />\n ) : (\n '-'\n )}\n </TableCell>\n <TableCell>\n {run.completedAt ? (\n <RelativeTime date={run.completedAt} />\n ) : (\n '-'\n )}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n\n <div className=\"flex items-center justify-between mt-4\">\n <div className=\"text-sm text-muted-foreground\">{pageInfo}</div>\n <div className=\"flex gap-2 items-center\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={previousPage}\n disabled={!hasPreviousPage}\n >\n <ChevronLeft />\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={nextPage}\n disabled={!hasNextPage}\n >\n Next\n <ChevronRight />\n </Button>\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { useRouter, useSearchParams } from 'next/navigation';\nimport { ErrorBoundary } from '@/components/error-boundary';\nimport { HooksTable } from '@/components/hooks-table';\nimport { RunsTable } from '@/components/runs-table';\nimport { buildUrlWithConfig, useQueryParamConfig } from '@/lib/config';\n\nexport default function Home() {\n const router = useRouter();\n const searchParams = useSearchParams();\n const config = useQueryParamConfig();\n\n const sidebar = searchParams.get('sidebar');\n const hookId = searchParams.get('hookId') || searchParams.get('hook');\n const selectedHookId = sidebar === 'hook' && hookId ? hookId : undefined;\n\n const handleRunClick = (runId: string, streamId?: string) => {\n if (!streamId) {\n router.push(buildUrlWithConfig(`/run/${runId}`, config));\n } else {\n router.push(\n buildUrlWithConfig(`/run/${runId}/streams/${streamId}`, config)\n );\n }\n };\n\n const handleHookSelect = (hookId: string, runId?: string) => {\n if (hookId) {\n router.push(\n buildUrlWithConfig(`/run/${runId}`, config, {\n sidebar: 'hook',\n hookId,\n })\n );\n } else {\n router.push(buildUrlWithConfig(`/run/${runId}`, config));\n }\n };\n\n return (\n <div className=\"space-y-6\">\n <ErrorBoundary\n title=\"Runs Error\"\n description=\"Failed to load workflow runs. Please try refreshing the page.\"\n >\n <RunsTable config={config} onRunClick={handleRunClick} />\n </ErrorBoundary>\n\n <ErrorBoundary\n title=\"Hooks Error\"\n description=\"Failed to load hooks. Please try refreshing the page.\"\n >\n <HooksTable\n config={config}\n onHookClick={handleHookSelect}\n selectedHookId={selectedHookId}\n />\n </ErrorBoundary>\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n));\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowUpAZ\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-up-a-z\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowUpAZ = createLucideIcon('ArrowUpAZ', [\n ['path', { d: 'm3 8 4-4 4 4', key: '11wl7u' }],\n ['path', { d: 'M7 4v16', key: '1glfcx' }],\n ['path', { d: 'M20 8h-5', key: '1vsyxs' }],\n ['path', { d: 'M15 10V6.5a2.5 2.5 0 0 1 5 0V10', key: 'ag13bf' }],\n ['path', { d: 'M15 14h5l-5 6h5', key: 'ur5jdg' }],\n]);\n\nexport default ArrowUpAZ;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('ChevronLeft', [\n ['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }],\n]);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('ChevronRight', [\n ['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }],\n]);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowDownAZ\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-down-a-z\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowDownAZ = createLucideIcon('ArrowDownAZ', [\n ['path', { d: 'm3 16 4 4 4-4', key: '1co6wj' }],\n ['path', { d: 'M7 20V4', key: '1yoxec' }],\n ['path', { d: 'M20 8h-5', key: '1vsyxs' }],\n ['path', { d: 'M15 10V6.5a2.5 2.5 0 0 1 5 0V10', key: 'ag13bf' }],\n ['path', { d: 'M15 14h5l-5 6h5', key: 'ur5jdg' }],\n]);\n\nexport default ArrowDownAZ;\n"],"names":[],"mappings":"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","ignoreList":[6,7,8,9]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module.exports=[65642,a=>{"use strict";let b,c,d;var e,f,g=a.i(81156),h=a.i(30341),i=a.i(43747),j=a.i(38015);a.i(80551);var k=a.i(21578),l=a.i(7648),m=a.i(7973),n=a.i(22427);let o=(0,n.default)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);var p=a.i(87286),q=a.i(95811),r=a.i(35321);function s(a,b=[]){let c=[],d=()=>{let b=c.map(a=>p.createContext(a));return function(c){let d=c?.[a]||b;return p.useMemo(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])}};return d.scopeName=a,[function(b,d){let e=p.createContext(d),f=c.length;c=[...c,d];let h=b=>{let{scope:c,children:d,...h}=b,i=c?.[a]?.[f]||e,j=p.useMemo(()=>h,Object.values(h));return(0,g.jsx)(i.Provider,{value:j,children:d})};return h.displayName=b+"Provider",[h,function(c,g){let h=g?.[a]?.[f]||e,i=p.useContext(h);if(i)return i;if(void 0!==d)return d;throw Error(`\`${c}\` must be used within \`${b}\``)}]},function(...a){let b=a[0];if(1===a.length)return b;let c=()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return p.useMemo(()=>({[`__scope${b.scopeName}`]:d}),[d])}};return c.scopeName=b.scopeName,c}(d,...b)]}var t=a.i(84145);function u(a,b,{checkForDefaultPrevented:c=!0}={}){return function(d){if(a?.(d),!1===c||!d.defaultPrevented)return b?.(d)}}var v=globalThis?.document?p.useLayoutEffect:()=>{},w=p["useId".toString()]||(()=>void 0),x=0;function y(a){let[b,c]=p.useState(w());return v(()=>{a||c(a=>a??String(x++))},[a]),a||(b?`radix-${b}`:"")}function z(a){let b=p.useRef(a);return p.useEffect(()=>{b.current=a}),p.useMemo(()=>(...a)=>b.current?.(...a),[])}var A=a.i(36393),B=a.i(86839),C=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((a,b)=>{let c=p.forwardRef((a,c)=>{let{asChild:d,...e}=a,f=d?B.Slot:b;return(0,g.jsx)(f,{...e,ref:c})});return c.displayName=`Primitive.${b}`,{...a,[b]:c}},{}),D="dismissableLayer.update",E=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),F=p.forwardRef((a,b)=>{let{disableOutsidePointerEvents:c=!1,onEscapeKeyDown:d,onPointerDownOutside:e,onFocusOutside:h,onInteractOutside:i,onDismiss:j,...k}=a,l=p.useContext(E),[m,n]=p.useState(null),o=m?.ownerDocument??globalThis?.document,[,q]=p.useState({}),r=(0,t.useComposedRefs)(b,a=>n(a)),s=Array.from(l.layers),[v]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),w=s.indexOf(v),x=m?s.indexOf(m):-1,y=l.layersWithOutsidePointerEventsDisabled.size>0,A=x>=w,B=function(a,b=globalThis?.document){let c=z(a),d=p.useRef(!1),e=p.useRef(()=>{});return p.useEffect(()=>{let a=a=>{if(a.target&&!d.current){let d=function(){H("dismissableLayer.pointerDownOutside",c,f,{discrete:!0})},f={originalEvent:a};"touch"===a.pointerType?(b.removeEventListener("click",e.current),e.current=d,b.addEventListener("click",e.current,{once:!0})):d()}else b.removeEventListener("click",e.current);d.current=!1},f=window.setTimeout(()=>{b.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(f),b.removeEventListener("pointerdown",a),b.removeEventListener("click",e.current)}},[b,c]),{onPointerDownCapture:()=>d.current=!0}}(a=>{let b=a.target,c=[...l.branches].some(a=>a.contains(b));A&&!c&&(e?.(a),i?.(a),a.defaultPrevented||j?.())},o),F=function(a,b=globalThis?.document){let c=z(a),d=p.useRef(!1);return p.useEffect(()=>{let a=a=>{a.target&&!d.current&&H("dismissableLayer.focusOutside",c,{originalEvent:a},{discrete:!1})};return b.addEventListener("focusin",a),()=>b.removeEventListener("focusin",a)},[b,c]),{onFocusCapture:()=>d.current=!0,onBlurCapture:()=>d.current=!1}}(a=>{let b=a.target;![...l.branches].some(a=>a.contains(b))&&(h?.(a),i?.(a),a.defaultPrevented||j?.())},o);return!function(a,b=globalThis?.document){let c=z(a);p.useEffect(()=>{let a=a=>{"Escape"===a.key&&c(a)};return b.addEventListener("keydown",a,{capture:!0}),()=>b.removeEventListener("keydown",a,{capture:!0})},[c,b])}(a=>{x===l.layers.size-1&&(d?.(a),!a.defaultPrevented&&j&&(a.preventDefault(),j()))},o),p.useEffect(()=>{if(m)return c&&(0===l.layersWithOutsidePointerEventsDisabled.size&&(f=o.body.style.pointerEvents,o.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(m)),l.layers.add(m),G(),()=>{c&&1===l.layersWithOutsidePointerEventsDisabled.size&&(o.body.style.pointerEvents=f)}},[m,o,c,l]),p.useEffect(()=>()=>{m&&(l.layers.delete(m),l.layersWithOutsidePointerEventsDisabled.delete(m),G())},[m,l]),p.useEffect(()=>{let a=()=>q({});return document.addEventListener(D,a),()=>document.removeEventListener(D,a)},[]),(0,g.jsx)(C.div,{...k,ref:r,style:{pointerEvents:y?A?"auto":"none":void 0,...a.style},onFocusCapture:u(a.onFocusCapture,F.onFocusCapture),onBlurCapture:u(a.onBlurCapture,F.onBlurCapture),onPointerDownCapture:u(a.onPointerDownCapture,B.onPointerDownCapture)})});function G(){let a=new CustomEvent(D);document.dispatchEvent(a)}function H(a,b,c,{discrete:d}){let e=c.originalEvent.target,f=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:c});if(b&&e.addEventListener(a,b,{once:!0}),d)e&&A.flushSync(()=>e.dispatchEvent(f));else e.dispatchEvent(f)}F.displayName="DismissableLayer",p.forwardRef((a,b)=>{let c=p.useContext(E),d=p.useRef(null),e=(0,t.useComposedRefs)(b,d);return p.useEffect(()=>{let a=d.current;if(a)return c.branches.add(a),()=>{c.branches.delete(a)}},[c.branches]),(0,g.jsx)(C.div,{...a,ref:e})}).displayName="DismissableLayerBranch";var I="focusScope.autoFocusOnMount",J="focusScope.autoFocusOnUnmount",K={bubbles:!1,cancelable:!0},L=p.forwardRef((a,b)=>{let{loop:c=!1,trapped:d=!1,onMountAutoFocus:e,onUnmountAutoFocus:f,...h}=a,[i,j]=p.useState(null),k=z(e),l=z(f),m=p.useRef(null),n=(0,t.useComposedRefs)(b,a=>j(a)),o=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(d){let a=function(a){if(o.paused||!i)return;let b=a.target;i.contains(b)?m.current=b:O(m.current,{select:!0})},b=function(a){if(o.paused||!i)return;let b=a.relatedTarget;null!==b&&(i.contains(b)||O(m.current,{select:!0}))};document.addEventListener("focusin",a),document.addEventListener("focusout",b);let c=new MutationObserver(function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&O(i)});return i&&c.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),c.disconnect()}}},[d,i,o.paused]),p.useEffect(()=>{if(i){P.add(o);let a=document.activeElement;if(!i.contains(a)){let b=new CustomEvent(I,K);i.addEventListener(I,k),i.dispatchEvent(b),b.defaultPrevented||(function(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(O(d,{select:b}),document.activeElement!==c)return}(M(i).filter(a=>"A"!==a.tagName),{select:!0}),document.activeElement===a&&O(i))}return()=>{i.removeEventListener(I,k),setTimeout(()=>{let b=new CustomEvent(J,K);i.addEventListener(J,l),i.dispatchEvent(b),b.defaultPrevented||O(a??document.body,{select:!0}),i.removeEventListener(J,l),P.remove(o)},0)}}},[i,k,l,o]);let q=p.useCallback(a=>{if(!c&&!d||o.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){var f;let b,d=a.currentTarget,[g,h]=[N(b=M(f=d),f),N(b.reverse(),f)];g&&h?a.shiftKey||e!==h?a.shiftKey&&e===g&&(a.preventDefault(),c&&O(h,{select:!0})):(a.preventDefault(),c&&O(g,{select:!0})):e===d&&a.preventDefault()}},[c,d,o.paused]);return(0,g.jsx)(C.div,{tabIndex:-1,...h,ref:n,onKeyDown:q})});function M(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;c.nextNode();)b.push(c.currentNode);return b}function N(a,b){for(let c of a)if(!function(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}(c,{upTo:b}))return c}function O(a,{select:b=!1}={}){if(a&&a.focus){var c;let d=document.activeElement;a.focus({preventScroll:!0}),a!==d&&(c=a)instanceof HTMLInputElement&&"select"in c&&b&&a.select()}}L.displayName="FocusScope";var P=(d=[],{add(a){let b=d[0];a!==b&&b?.pause(),(d=Q(d,a)).unshift(a)},remove(a){d=Q(d,a),d[0]?.resume()}});function Q(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}var R=p.forwardRef((a,b)=>{let{container:c,...d}=a,[e,f]=p.useState(!1);v(()=>f(!0),[]);let h=c||e&&globalThis?.document?.body;return h?A.default.createPortal((0,g.jsx)(C.div,{...d,ref:b}),h):null});R.displayName="Portal";var S=a=>{var b;let c,d,{present:e,children:f}=a,g=function(a){var b,c;let[d,e]=p.useState(),f=p.useRef({}),g=p.useRef(a),h=p.useRef("none"),[i,j]=(b=a?"mounted":"unmounted",c={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},p.useReducer((a,b)=>c[a][b]??a,b));return p.useEffect(()=>{let a=T(f.current);h.current="mounted"===i?a:"none"},[i]),v(()=>{let b=f.current,c=g.current;if(c!==a){let d=h.current,e=T(b);a?j("MOUNT"):"none"===e||b?.display==="none"?j("UNMOUNT"):c&&d!==e?j("ANIMATION_OUT"):j("UNMOUNT"),g.current=a}},[a,j]),v(()=>{if(d){let a,b=d.ownerDocument.defaultView??window,c=c=>{let e=T(f.current).includes(c.animationName);if(c.target===d&&e&&(j("ANIMATION_END"),!g.current)){let c=d.style.animationFillMode;d.style.animationFillMode="forwards",a=b.setTimeout(()=>{"forwards"===d.style.animationFillMode&&(d.style.animationFillMode=c)})}},e=a=>{a.target===d&&(h.current=T(f.current))};return d.addEventListener("animationstart",e),d.addEventListener("animationcancel",c),d.addEventListener("animationend",c),()=>{b.clearTimeout(a),d.removeEventListener("animationstart",e),d.removeEventListener("animationcancel",c),d.removeEventListener("animationend",c)}}j("ANIMATION_END")},[d,j]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:p.useCallback(a=>{a&&(f.current=getComputedStyle(a)),e(a)},[])}}(e),h="function"==typeof f?f({present:g.isPresent}):p.Children.only(f),i=(0,t.useComposedRefs)(g.ref,(b=h,(d=(c=Object.getOwnPropertyDescriptor(b.props,"ref")?.get)&&"isReactWarning"in c&&c.isReactWarning)?b.ref:(d=(c=Object.getOwnPropertyDescriptor(b,"ref")?.get)&&"isReactWarning"in c&&c.isReactWarning)?b.props.ref:b.props.ref||b.ref));return"function"==typeof f||g.isPresent?p.cloneElement(h,{ref:i}):null};function T(a){return a?.animationName||"none"}S.displayName="Presence";var U=0;function V(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var W=a.i(13358),X=a.i(16164),Y="Dialog",[Z,$]=s(Y),[_,aa]=Z(Y),ab=a=>{let{__scopeDialog:b,children:c,open:d,defaultOpen:e,onOpenChange:f,modal:h=!0}=a,i=p.useRef(null),j=p.useRef(null),[k=!1,l]=function({prop:a,defaultProp:b,onChange:c=()=>{}}){let[d,e]=function({defaultProp:a,onChange:b}){let c=p.useState(a),[d]=c,e=p.useRef(d),f=z(b);return p.useEffect(()=>{e.current!==d&&(f(d),e.current=d)},[d,e,f]),c}({defaultProp:b,onChange:c}),f=void 0!==a,g=f?a:d,h=z(c);return[g,p.useCallback(b=>{if(f){let c="function"==typeof b?b(a):b;c!==a&&h(c)}else e(b)},[f,a,e,h])]}({prop:d,defaultProp:e,onChange:f});return(0,g.jsx)(_,{scope:b,triggerRef:i,contentRef:j,contentId:y(),titleId:y(),descriptionId:y(),open:k,onOpenChange:l,onOpenToggle:p.useCallback(()=>l(a=>!a),[l]),modal:h,children:c})};ab.displayName=Y;var ac="DialogTrigger",ad=p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=aa(ac,c),f=(0,t.useComposedRefs)(b,e.triggerRef);return(0,g.jsx)(C.button,{type:"button","aria-haspopup":"dialog","aria-expanded":e.open,"aria-controls":e.contentId,"data-state":aw(e.open),...d,ref:f,onClick:u(a.onClick,e.onOpenToggle)})});ad.displayName=ac;var ae="DialogPortal",[af,ag]=Z(ae,{forceMount:void 0}),ah=a=>{let{__scopeDialog:b,forceMount:c,children:d,container:e}=a,f=aa(ae,b);return(0,g.jsx)(af,{scope:b,forceMount:c,children:p.Children.map(d,a=>(0,g.jsx)(S,{present:c||f.open,children:(0,g.jsx)(R,{asChild:!0,container:e,children:a})}))})};ah.displayName=ae;var ai="DialogOverlay",aj=p.forwardRef((a,b)=>{let c=ag(ai,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=aa(ai,a.__scopeDialog);return f.modal?(0,g.jsx)(S,{present:d||f.open,children:(0,g.jsx)(ak,{...e,ref:b})}):null});aj.displayName=ai;var ak=p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=aa(ai,c);return(0,g.jsx)(W.RemoveScroll,{as:B.Slot,allowPinchZoom:!0,shards:[e.contentRef],children:(0,g.jsx)(C.div,{"data-state":aw(e.open),...d,ref:b,style:{pointerEvents:"auto",...d.style}})})}),al="DialogContent",am=p.forwardRef((a,b)=>{let c=ag(al,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=aa(al,a.__scopeDialog);return(0,g.jsx)(S,{present:d||f.open,children:f.modal?(0,g.jsx)(an,{...e,ref:b}):(0,g.jsx)(ao,{...e,ref:b})})});am.displayName=al;var an=p.forwardRef((a,b)=>{let c=aa(al,a.__scopeDialog),d=p.useRef(null),e=(0,t.useComposedRefs)(b,c.contentRef,d);return p.useEffect(()=>{let a=d.current;if(a)return(0,X.hideOthers)(a)},[]),(0,g.jsx)(ap,{...a,ref:e,trapFocus:c.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:u(a.onCloseAutoFocus,a=>{a.preventDefault(),c.triggerRef.current?.focus()}),onPointerDownOutside:u(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:u(a.onFocusOutside,a=>a.preventDefault())})}),ao=p.forwardRef((a,b)=>{let c=aa(al,a.__scopeDialog),d=p.useRef(!1),e=p.useRef(!1);return(0,g.jsx)(ap,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,e.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(e.current=!0));let f=b.target;c.triggerRef.current?.contains(f)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&e.current&&b.preventDefault()}})}),ap=p.forwardRef((a,b)=>{let{__scopeDialog:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:f,...h}=a,i=aa(al,c),j=p.useRef(null),k=(0,t.useComposedRefs)(b,j);return p.useEffect(()=>{let a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??V()),document.body.insertAdjacentElement("beforeend",a[1]??V()),U++,()=>{1===U&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),U--}},[]),(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(L,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:f,children:(0,g.jsx)(F,{role:"dialog",id:i.contentId,"aria-describedby":i.descriptionId,"aria-labelledby":i.titleId,"data-state":aw(i.open),...h,ref:k,onDismiss:()=>i.onOpenChange(!1)})}),(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(aA,{titleId:i.titleId}),(0,g.jsx)(aB,{contentRef:j,descriptionId:i.descriptionId})]})]})}),aq="DialogTitle",ar=p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=aa(aq,c);return(0,g.jsx)(C.h2,{id:e.titleId,...d,ref:b})});ar.displayName=aq;var as="DialogDescription",at=p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=aa(as,c);return(0,g.jsx)(C.p,{id:e.descriptionId,...d,ref:b})});at.displayName=as;var au="DialogClose",av=p.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=aa(au,c);return(0,g.jsx)(C.button,{type:"button",...d,ref:b,onClick:u(a.onClick,()=>e.onOpenChange(!1))})});function aw(a){return a?"open":"closed"}av.displayName=au;var ax="DialogTitleWarning",[ay,az]=(e={contentName:al,titleName:aq,docsSlug:"dialog"},b=p.createContext(e),(c=a=>{let{children:c,...d}=a,e=p.useMemo(()=>d,Object.values(d));return(0,g.jsx)(b.Provider,{value:e,children:c})}).displayName=ax+"Provider",[c,function(a){let c=p.useContext(b);if(c)return c;if(void 0!==e)return e;throw Error(`\`${a}\` must be used within \`${ax}\``)}]),aA=({titleId:a})=>{let b=az(ax),c=`\`${b.contentName}\` requires a \`${b.titleName}\` for the component to be accessible for screen reader users.
|
|
2
|
+
|
|
3
|
+
If you want to hide the \`${b.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
4
|
+
|
|
5
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${b.docsSlug}`;return p.useEffect(()=>{a&&(document.getElementById(a)||console.error(c))},[c,a]),null},aB=({contentRef:a,descriptionId:b})=>{let c=az("DialogDescriptionWarning"),d=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${c.contentName}}.`;return p.useEffect(()=>{let c=a.current?.getAttribute("aria-describedby");b&&c&&(document.getElementById(b)||console.warn(d))},[d,a,b]),null},aC="AlertDialog",[aD,aE]=s(aC,[$]),aF=$(),aG=a=>{let{__scopeAlertDialog:b,...c}=a,d=aF(b);return(0,g.jsx)(ab,{...d,...c,modal:!0})};aG.displayName=aC,p.forwardRef((a,b)=>{let{__scopeAlertDialog:c,...d}=a,e=aF(c);return(0,g.jsx)(ad,{...e,...d,ref:b})}).displayName="AlertDialogTrigger";var aH=a=>{let{__scopeAlertDialog:b,...c}=a,d=aF(b);return(0,g.jsx)(ah,{...d,...c})};aH.displayName="AlertDialogPortal";var aI=p.forwardRef((a,b)=>{let{__scopeAlertDialog:c,...d}=a,e=aF(c);return(0,g.jsx)(aj,{...e,...d,ref:b})});aI.displayName="AlertDialogOverlay";var aJ="AlertDialogContent",[aK,aL]=aD(aJ),aM=p.forwardRef((a,b)=>{let{__scopeAlertDialog:c,children:d,...e}=a,f=aF(c),h=p.useRef(null),i=(0,t.useComposedRefs)(b,h),j=p.useRef(null);return(0,g.jsx)(ay,{contentName:aJ,titleName:aN,docsSlug:"alert-dialog",children:(0,g.jsx)(aK,{scope:c,cancelRef:j,children:(0,g.jsxs)(am,{role:"alertdialog",...f,...e,ref:i,onOpenAutoFocus:u(e.onOpenAutoFocus,a=>{a.preventDefault(),j.current?.focus({preventScroll:!0})}),onPointerDownOutside:a=>a.preventDefault(),onInteractOutside:a=>a.preventDefault(),children:[(0,g.jsx)(B.Slottable,{children:d}),(0,g.jsx)(aU,{contentRef:h})]})})})});aM.displayName=aJ;var aN="AlertDialogTitle",aO=p.forwardRef((a,b)=>{let{__scopeAlertDialog:c,...d}=a,e=aF(c);return(0,g.jsx)(ar,{...e,...d,ref:b})});aO.displayName=aN;var aP="AlertDialogDescription",aQ=p.forwardRef((a,b)=>{let{__scopeAlertDialog:c,...d}=a,e=aF(c);return(0,g.jsx)(at,{...e,...d,ref:b})});aQ.displayName=aP;var aR=p.forwardRef((a,b)=>{let{__scopeAlertDialog:c,...d}=a,e=aF(c);return(0,g.jsx)(av,{...e,...d,ref:b})});aR.displayName="AlertDialogAction";var aS="AlertDialogCancel",aT=p.forwardRef((a,b)=>{let{__scopeAlertDialog:c,...d}=a,{cancelRef:e}=aL(aS,c),f=aF(c),h=(0,t.useComposedRefs)(b,e);return(0,g.jsx)(av,{...f,...d,ref:h})});aT.displayName=aS;var aU=({contentRef:a})=>{let b=`\`${aJ}\` requires a description for the component to be accessible for screen reader users.
|
|
6
|
+
|
|
7
|
+
You can add a description to the \`${aJ}\` by passing a \`${aP}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
8
|
+
|
|
9
|
+
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${aJ}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
10
|
+
|
|
11
|
+
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return p.useEffect(()=>{document.getElementById(a.current?.getAttribute("aria-describedby"))||console.warn(b)},[b,a]),null},aV=a.i(97494),aW=a.i(39465);function aX({...a}){return(0,g.jsx)(aG,{"data-slot":"alert-dialog",...a})}function aY({...a}){return(0,g.jsx)(aH,{"data-slot":"alert-dialog-portal",...a})}function aZ({className:a,...b}){return(0,g.jsx)(aI,{"data-slot":"alert-dialog-overlay",className:(0,aW.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}function a$({className:a,...b}){return(0,g.jsxs)(aY,{children:[(0,g.jsx)(aZ,{}),(0,g.jsx)(aM,{"data-slot":"alert-dialog-content",className:(0,aW.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a),...b})]})}function a_({className:a,...b}){return(0,g.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,aW.cn)("flex flex-col gap-2 text-center sm:text-left",a),...b})}function a0({className:a,...b}){return(0,g.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,aW.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...b})}function a1({className:a,...b}){return(0,g.jsx)(aO,{"data-slot":"alert-dialog-title",className:(0,aW.cn)("text-lg font-semibold",a),...b})}function a2({className:a,...b}){return(0,g.jsx)(aQ,{"data-slot":"alert-dialog-description",className:(0,aW.cn)("text-muted-foreground text-sm",a),...b})}function a3({className:a,...b}){return(0,g.jsx)(aR,{className:(0,aW.cn)((0,aV.buttonVariants)(),a),...b})}function a4({className:a,...b}){return(0,g.jsx)(aT,{className:(0,aW.cn)((0,aV.buttonVariants)({variant:"outline"}),a),...b})}var a5=a.i(8624),a6=a.i(14151);let a7=(0,n.default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);var a8=a.i(93557);function a9({canCancel:a,cancelling:b,cancelDisabledReason:c,onCancel:d}){return(0,g.jsxs)(a8.Tooltip,{children:[(0,g.jsx)(a8.TooltipTrigger,{asChild:!0,children:(0,g.jsx)("span",{children:(0,g.jsxs)(aV.Button,{variant:"outline",size:"sm",onClick:d,disabled:!a||b,children:[(0,g.jsx)(a7,{className:"h-4 w-4"}),b?"Cancelling...":"Cancel"]})})}),c&&(0,g.jsx)(a8.TooltipContent,{children:(0,g.jsx)("p",{children:c})})]})}var ba=a.i(2774);let bb=(0,n.default)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);function bc({text:a,children:b,className:c}){let[d,e]=(0,p.useState)(!1),f=async()=>{try{await navigator.clipboard.writeText(a),e(!0),setTimeout(()=>e(!1),2e3)}catch(a){console.error("Failed to copy text:",a)}};return(0,g.jsxs)("div",{className:(0,aW.cn)("flex items-center gap-2 group",c),children:[b,(0,g.jsxs)(a8.Tooltip,{children:[(0,g.jsx)(a8.TooltipTrigger,{asChild:!0,children:(0,g.jsx)("button",{type:"button",onClick:f,className:"opacity-0 group-hover:opacity-100 transition-opacity","aria-label":"Copy to clipboard",children:d?(0,g.jsx)(ba.Check,{className:"h-3 w-3 text-green-600"}):(0,g.jsx)(bb,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})}),(0,g.jsx)(a8.TooltipContent,{children:(0,g.jsx)("p",{children:d?"Copied!":"Copy to clipboard"})})]})]})}function bd({hasError:a,errorMessage:b}){return(0,g.jsx)("div",{className:"flex items-center gap-2",children:(0,g.jsxs)(a8.Tooltip,{children:[(0,g.jsx)(a8.TooltipTrigger,{asChild:!0,children:(0,g.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,g.jsx)("div",{className:`w-2 h-2 rounded-full ${a?"bg-red-500":"bg-green-500 animate-pulse"}`}),(0,g.jsx)("span",{className:`text-xs $
|
|
12
|
+
hasError
|
|
13
|
+
? 'text-red-600 dark:text-red-400'
|
|
14
|
+
: 'text-muted-foreground'`,children:a?"Error":"Live"})]})}),(0,g.jsx)(a8.TooltipContent,{children:(0,g.jsx)("p",{children:a?`Error updating data: ${b}`:`Content updates every ${aW.LIVE_UPDATE_INTERVAL_MS/1e3} seconds`})})]})})}var be=a.i(15244);let bf=(0,n.default)("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);function bg({canRerun:a,rerunning:b,rerunDisabledReason:c,onRerun:d}){return(0,g.jsxs)(a8.Tooltip,{children:[(0,g.jsx)(a8.TooltipTrigger,{asChild:!0,children:(0,g.jsx)("span",{children:(0,g.jsxs)(aV.Button,{variant:"outline",size:"sm",onClick:d,disabled:!a||b,children:[(0,g.jsx)(bf,{className:"h-4 w-4"}),b?"Re-running...":"Re-run"]})})}),c&&(0,g.jsx)(a8.TooltipContent,{children:(0,g.jsx)("p",{children:c})})]})}var bh=a.i(93354),bi=a.i(33105);function bj({config:a,runId:b,selectedId:c}){let d=(0,h.useRouter)(),[e,f]=(0,p.useState)(!1),[i,n]=(0,p.useState)(!1),[s,t]=(0,p.useState)(!1),[u,v]=(0,p.useState)(!1),w=(0,p.useMemo)(()=>(0,a5.worldConfigToEnvMap)(a),[a]),{run:x,steps:y,hooks:z,events:A,loading:B,auxiliaryDataLoading:C,error:D,update:E}=(0,k.useWorkflowTraceViewerData)(w,b,{live:!0}),F=x??{},G=async()=>{if(!e)try{f(!0),t(!1),await (0,k.cancelRun)(w,b),await E(),q.toast.success("Run cancelled successfully")}catch(a){console.error("Failed to cancel run:",a),q.toast.error("Failed to cancel run",{description:a instanceof Error?a.message:"An unknown error occurred"})}finally{f(!1)}},H=async()=>{if(!i)try{n(!0),v(!1);let b=await (0,k.recreateRun)(w,F.runId);q.toast.success("New run started successfully",{description:`Run ID: ${b}`}),d.push((0,a5.buildUrlWithConfig)(`/run/${b}`,a))}catch(a){console.error("Failed to re-run workflow:",a),q.toast.error("Failed to start new run",{description:a instanceof Error?a.message:"An unknown error occurred"})}finally{n(!1),v(!1)}};if(D&&!x)return(0,g.jsxs)(r.Alert,{variant:"destructive",className:"m-4",children:[(0,g.jsx)(m.AlertCircle,{className:"h-4 w-4"}),(0,g.jsx)(r.AlertTitle,{children:"Error loading workflow run"}),(0,g.jsx)(r.AlertDescription,{children:D.message})]});let I=(0,j.parseWorkflowName)(F.workflowName)?.shortName,J="pending"===F.status||"running"===F.status,K=e?"Cancelling run...":"completed"===F.status?"Run has already completed":"failed"===F.status?"Run has already failed":"cancelled"===F.status?"Run has already been cancelled":"",L="pending"===F.status||"running"===F.status;return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(aX,{open:s,onOpenChange:t,children:(0,g.jsxs)(a$,{children:[(0,g.jsxs)(a_,{children:[(0,g.jsx)(a1,{children:"Cancel Workflow Run?"}),(0,g.jsx)(a2,{children:"This will stop the workflow execution immediately, and no further steps will be executed. Partial workflow execution may occur. Are you sure you want to cancel the run?"})]}),(0,g.jsxs)(a0,{children:[(0,g.jsx)(a4,{children:"Keep Running"}),(0,g.jsx)(a3,{onClick:G,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Cancel Run"})]})]})}),(0,g.jsx)(aX,{open:u,onOpenChange:v,children:(0,g.jsxs)(a$,{children:[(0,g.jsxs)(a_,{children:[(0,g.jsx)(a1,{children:"Re-run Workflow?"}),(0,g.jsx)(a2,{children:"This can potentially re-run code that is meant to only execute once. Are you sure you want to re-run the workflow?"})]}),(0,g.jsxs)(a0,{children:[(0,g.jsx)(a4,{children:"Cancel"}),(0,g.jsx)(a3,{onClick:H,children:"Re-run Workflow"})]})]})}),(0,g.jsxs)("div",{className:"flex flex-col overflow-hidden",style:{height:"calc(100vh - 7rem)"},children:[(0,g.jsxs)("div",{className:"flex-none space-y-6",children:[(0,g.jsx)(a6.BackLink,{href:(0,a5.buildUrlWithConfig)("/",a)}),(0,g.jsxs)("div",{className:"space-y-4 pb-6 border-b",children:[(0,g.jsxs)("div",{className:"flex items-start justify-between",children:[(0,g.jsx)("div",{className:"mb-6",children:(0,g.jsx)("h1",{className:"text-2xl font-semibold",children:I||(0,g.jsx)(bi.Skeleton,{className:"w-[260px] h-[32px]"})})}),(0,g.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,g.jsx)(bd,{hasError:!1,errorMessage:""}),(0,g.jsx)(bg,{canRerun:!B&&!L&&!i,rerunning:i,rerunDisabledReason:i?"Re-running workflow...":B?"Loading run data...":L?"Cannot re-run while workflow is still running":"",onRerun:()=>{v(!0)}}),(0,g.jsx)(a9,{canCancel:J,cancelling:e,cancelDisabledReason:K,onCancel:()=>{t(!0)}})]})]}),(0,g.jsxs)("div",{className:"flex items-start gap-8",children:[(0,g.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,g.jsx)("div",{className:"text-xs text-muted-foreground",children:"Status"}),F.status?(0,g.jsx)(bh.StatusBadge,{status:F.status,context:F}):(0,g.jsx)(bi.Skeleton,{className:"w-[55px] h-[24px]"})]}),(0,g.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,g.jsx)("div",{className:"text-xs text-muted-foreground",children:"Run ID"}),F.runId?(0,g.jsx)(bc,{text:F.runId,children:(0,g.jsx)("div",{className:"text-sm mt-0.5 font-mono",children:F.runId})}):(0,g.jsx)(bi.Skeleton,{className:"w-[280px] h-[20px]"})]}),(0,g.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,g.jsx)("div",{className:"text-xs text-muted-foreground",children:"Queued"}),F.createdAt?(0,g.jsx)("div",{className:"text-sm",children:(0,g.jsx)(be.RelativeTime,{date:F.createdAt})}):(0,g.jsx)(bi.Skeleton,{className:"w-[110px] h-[20px]"})]}),(0,g.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,g.jsx)("div",{className:"text-xs text-muted-foreground",children:"Started"}),(0,g.jsx)("div",{className:"text-sm",children:F.runId?F.startedAt?(0,g.jsx)(be.RelativeTime,{date:F.startedAt}):"-":(0,g.jsx)(bi.Skeleton,{className:"w-[110px] h-[20px]"})})]}),(0,g.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,g.jsx)("div",{className:"text-xs text-muted-foreground",children:"Completed"}),(0,g.jsx)("div",{className:"text-sm",children:F.runId?F.completedAt?(0,g.jsx)(be.RelativeTime,{date:F.completedAt}):"-":(0,g.jsx)(bi.Skeleton,{className:"w-[110px] h-[20px]"})})]})]})]})]}),(0,g.jsxs)("div",{className:"flex-1 min-h-0 relative",children:[(0,g.jsx)(l.WorkflowTraceViewer,{error:D,steps:y,events:A,hooks:z,env:w,run:F,isLoading:B}),C&&(0,g.jsxs)("div",{className:"absolute flex items-center justify-center left-4 bottom-4",children:[(0,g.jsx)(o,{className:"size-4 animate-spin"}),(0,g.jsx)("span",{className:"ml-4",children:"Fetching data..."})]})]})]})]})}function bk(){let a=(0,h.useParams)(),b=(0,h.useSearchParams)(),c=(0,a5.useQueryParamConfig)(),d=a.runId,e=b.get("stepId")||b.get("step"),f=b.get("eventId")||b.get("event"),j=b.get("hookId")||b.get("hook");return(0,g.jsx)(i.ErrorBoundary,{title:"Run Detail Error",description:"Failed to load run details. Please try navigating back to the home page.",children:(0,g.jsx)(bj,{config:c,runId:d,selectedId:e||f||j||void 0})})}a.s(["default",()=>bk],65642)}];
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=packages_web_src_app_run_%5BrunId%5D_page_tsx_c7d0b139._.js.map
|