@a5c-ai/babysitter-observer-dashboard 5.0.1-staging.05ee168a
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 -0
- package/.next/app-path-routes-manifest.json +16 -0
- package/.next/build-manifest.json +23 -0
- package/.next/export-marker.json +6 -0
- package/.next/fallback-build-manifest.json +13 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +114 -0
- package/.next/required-server-files.json +334 -0
- package/.next/routes-manifest.json +139 -0
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +19 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +9 -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 +3 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +15 -0
- package/.next/server/app/_global-error.rsc +14 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -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 +19 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +6 -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 +4 -0
- package/.next/server/app/_not-found/page.js +13 -0
- package/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +19 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +19 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/api/config/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/config/route/build-manifest.json +9 -0
- package/.next/server/app/api/config/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/config/route.js +8 -0
- package/.next/server/app/api/config/route.js.map +5 -0
- package/.next/server/app/api/config/route.js.nft.json +1 -0
- package/.next/server/app/api/config/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/digest/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/digest/route/build-manifest.json +9 -0
- package/.next/server/app/api/digest/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/digest/route.js +9 -0
- package/.next/server/app/api/digest/route.js.map +5 -0
- package/.next/server/app/api/digest/route.js.nft.json +1 -0
- package/.next/server/app/api/digest/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/runs/[runId]/events/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/runs/[runId]/events/route/build-manifest.json +9 -0
- package/.next/server/app/api/runs/[runId]/events/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/runs/[runId]/events/route.js +8 -0
- package/.next/server/app/api/runs/[runId]/events/route.js.map +5 -0
- package/.next/server/app/api/runs/[runId]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/[runId]/events/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/runs/[runId]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/runs/[runId]/route/build-manifest.json +9 -0
- package/.next/server/app/api/runs/[runId]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/runs/[runId]/route.js +9 -0
- package/.next/server/app/api/runs/[runId]/route.js.map +5 -0
- package/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/[runId]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route/build-manifest.json +9 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route.js +8 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route.js.map +5 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/runs/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/runs/route/build-manifest.json +9 -0
- package/.next/server/app/api/runs/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/runs/route.js +9 -0
- package/.next/server/app/api/runs/route.js.map +5 -0
- package/.next/server/app/api/runs/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/stream/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/stream/route/build-manifest.json +9 -0
- package/.next/server/app/api/stream/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/stream/route.js +8 -0
- package/.next/server/app/api/stream/route.js.map +5 -0
- package/.next/server/app/api/stream/route.js.nft.json +1 -0
- package/.next/server/app/api/stream/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/test/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/test/route/build-manifest.json +9 -0
- package/.next/server/app/api/test/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/test/route.js +6 -0
- package/.next/server/app/api/test/route.js.map +5 -0
- package/.next/server/app/api/test/route.js.nft.json +1 -0
- package/.next/server/app/api/test/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/version/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/version/route/build-manifest.json +9 -0
- package/.next/server/app/api/version/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/version/route.js +7 -0
- package/.next/server/app/api/version/route.js.map +5 -0
- package/.next/server/app/api/version/route.js.nft.json +1 -0
- package/.next/server/app/api/version/route_client-reference-manifest.js +3 -0
- package/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
- package/.next/server/app/icon.svg/route/build-manifest.json +9 -0
- package/.next/server/app/icon.svg/route.js +7 -0
- package/.next/server/app/icon.svg/route.js.map +5 -0
- package/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/.next/server/app/icon.svg.body +20 -0
- package/.next/server/app/icon.svg.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +14 -0
- package/.next/server/app/index.rsc +21 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/index.segments/_full.segment.rsc +21 -0
- package/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/.next/server/app/index.segments/_index.segment.rsc +8 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +19 -0
- package/.next/server/app/page/next-font-manifest.json +6 -0
- package/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/page/server-reference-manifest.json +17 -0
- package/.next/server/app/page.js +15 -0
- package/.next/server/app/page.js.map +5 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +3 -0
- package/.next/server/app/runs/[runId]/page/app-paths-manifest.json +3 -0
- package/.next/server/app/runs/[runId]/page/build-manifest.json +19 -0
- package/.next/server/app/runs/[runId]/page/next-font-manifest.json +6 -0
- package/.next/server/app/runs/[runId]/page/react-loadable-manifest.json +22 -0
- package/.next/server/app/runs/[runId]/page/server-reference-manifest.json +17 -0
- package/.next/server/app/runs/[runId]/page.js +15 -0
- package/.next/server/app/runs/[runId]/page.js.map +5 -0
- package/.next/server/app/runs/[runId]/page.js.nft.json +1 -0
- package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +3 -0
- package/.next/server/app-paths-manifest.json +16 -0
- package/.next/server/chunks/01oi_server_app_api_runs_[runId]_tasks_[effectId]_route_actions_0r72yai.js +3 -0
- package/.next/server/chunks/01oi_server_app_api_runs_[runId]_tasks_[effectId]_route_actions_0r72yai.js.map +1 -0
- package/.next/server/chunks/0h.v__next-internal_server_app_api_runs_[runId]_events_route_actions_0~msldk.js +3 -0
- package/.next/server/chunks/0h.v__next-internal_server_app_api_runs_[runId]_events_route_actions_0~msldk.js.map +1 -0
- package/.next/server/chunks/0h.v__next-internal_server_app_api_runs_[runId]_route_actions_09iz0n6.js +3 -0
- package/.next/server/chunks/0h.v__next-internal_server_app_api_runs_[runId]_route_actions_09iz0n6.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_config_route_actions_0~eypoa.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_config_route_actions_0~eypoa.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_digest_route_actions_04jj5zs.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_digest_route_actions_04jj5zs.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_runs_route_actions_0~-t-o4.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_runs_route_actions_0~-t-o4.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_stream_route_actions_0fkmv2_.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_stream_route_actions_0fkmv2_.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_test_route_actions_00ugava.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_test_route_actions_00ugava.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_version_route_actions_0~v3ojm.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_version_route_actions_0~v3ojm.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_icon_svg_route_actions_0yypxkm.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_icon_svg_route_actions_0yypxkm.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0.6bt.6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0.6bt.6._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__08kwev1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__08kwev1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__096el.d._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__096el.d._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0_bmt4z._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_bmt4z._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0_ln2d2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_ln2d2._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0al3v65._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0al3v65._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0gf516b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0gf516b._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0kdfw4x._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0kdfw4x._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0pxt00h._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0pxt00h._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0rubnza._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rubnza._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0tn9iud._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0tn9iud._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0ws5o6i._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ws5o6i._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +11 -0
- package/.next/server/chunks/node_modules_next_04~_e52._.js +13 -0
- package/.next/server/chunks/node_modules_next_04~_e52._.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0nyyph-.js +9 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0nyyph-.js.map +1 -0
- package/.next/server/chunks/packages_observer-dashboard_src_lib_02.vvb.._.js +3 -0
- package/.next/server/chunks/packages_observer-dashboard_src_lib_02.vvb.._.js.map +1 -0
- package/.next/server/chunks/packages_observer-dashboard_src_lib_0rqgpk0._.js +3 -0
- package/.next/server/chunks/packages_observer-dashboard_src_lib_0rqgpk0._.js.map +1 -0
- package/.next/server/chunks/ssr/0juq_observer-dashboard__next-internal_server_app__global-error_page_actions_0ekoxmy.js +3 -0
- package/.next/server/chunks/ssr/0juq_observer-dashboard__next-internal_server_app__global-error_page_actions_0ekoxmy.js.map +1 -0
- package/.next/server/chunks/ssr/0juq_observer-dashboard__next-internal_server_app__not-found_page_actions_09b3ti3.js +3 -0
- package/.next/server/chunks/ssr/0juq_observer-dashboard__next-internal_server_app__not-found_page_actions_09b3ti3.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__006f7~t._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__006f7~t._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__02jgvbi._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__02jgvbi._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__04j8t~1._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__04j8t~1._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09c~s.0._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09c~s.0._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0cpy61n._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0cpy61n._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0cwa32j._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0cwa32j._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0fk_g0j._.js +19 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0fk_g0j._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pddpic._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pddpic._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pvtneq._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pvtneq._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xc-2vm._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xc-2vm._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10xgshr._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10xgshr._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +11 -0
- package/.next/server/chunks/ssr/_00yo1im._.js +3 -0
- package/.next/server/chunks/ssr/_00yo1im._.js.map +1 -0
- package/.next/server/chunks/ssr/_03sbc.o._.js +3 -0
- package/.next/server/chunks/ssr/_03sbc.o._.js.map +1 -0
- package/.next/server/chunks/ssr/_04z5ea0._.js +3 -0
- package/.next/server/chunks/ssr/_04z5ea0._.js.map +1 -0
- package/.next/server/chunks/ssr/_0gmb3g_._.js +3 -0
- package/.next/server/chunks/ssr/_0gmb3g_._.js.map +1 -0
- package/.next/server/chunks/ssr/_0okz9j8._.js +6 -0
- package/.next/server/chunks/ssr/_0okz9j8._.js.map +1 -0
- package/.next/server/chunks/ssr/_0wrbwro._.js +6 -0
- package/.next/server/chunks/ssr/_0wrbwro._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_09w7yel._.js +33 -0
- package/.next/server/chunks/ssr/node_modules_09w7yel._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0avqw4q._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0avqw4q._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js +6 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0i_._k3._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0i_._k3._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0ee1czk._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0ee1czk._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0amzg6z.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0amzg6z.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dw1x0d.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dw1x0d.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rc3ul_.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rc3ul_.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10iomok.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10iomok.js.map +1 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_0~a2tmu._.js +3 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_0~a2tmu._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_src_0f.ozc-._.js +3 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_src_0f.ozc-._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_src_components_providers_tsx_03_vrrn._.js +7 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_src_components_providers_tsx_03_vrrn._.js.map +1 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +23 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +6 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +24 -0
- package/.next/static/EABLIK_sdQGd8BsGP793M/_buildManifest.js +11 -0
- package/.next/static/EABLIK_sdQGd8BsGP793M/_clientMiddlewareManifest.js +1 -0
- package/.next/static/EABLIK_sdQGd8BsGP793M/_ssgManifest.js +1 -0
- package/.next/static/chunks/0.syqclhhnw~3.js +4 -0
- package/.next/static/chunks/01xlw8hd842-c.js +1 -0
- package/.next/static/chunks/034i63v_muq~d.js +1 -0
- package/.next/static/chunks/03mo-6~4pxdio.js +1 -0
- package/.next/static/chunks/03~yq9q893hmn.js +1 -0
- package/.next/static/chunks/04dm5qn77.fc2.js +1 -0
- package/.next/static/chunks/07uz2g0_38qia.js +4 -0
- package/.next/static/chunks/08nqnwvixoxnk.js +2 -0
- package/.next/static/chunks/09fqccrs830-n.js +1 -0
- package/.next/static/chunks/0d3shmwh5_nmn.js +1 -0
- package/.next/static/chunks/0e_wyjw3nx.a..js +1 -0
- package/.next/static/chunks/0jgju7iyqhzfr.js +1 -0
- package/.next/static/chunks/0mstyq17cbf8-.js +1 -0
- package/.next/static/chunks/0ntuxw9.how-q.js +1 -0
- package/.next/static/chunks/0t3uzajv1qzmo.js +1 -0
- package/.next/static/chunks/0tk7tld3z8q_b.js +1 -0
- package/.next/static/chunks/0u~_nwr5-v.xp.js +1 -0
- package/.next/static/chunks/0x6y7yt4kiddp.css +1 -0
- package/.next/static/chunks/0ze4gu236oq96.js +31 -0
- package/.next/static/chunks/0zwozael9msy1.js +1 -0
- package/.next/static/chunks/0~nsmwzvlcp_3.js +1 -0
- package/.next/static/chunks/10qd__0r7a~.l.js +1 -0
- package/.next/static/chunks/11jh_u1ynmatg.js +1 -0
- package/.next/static/chunks/144kcri75qczu.js +1 -0
- package/.next/static/chunks/170fc9ko4~0_4.js +5 -0
- package/.next/static/chunks/turbopack-0-ww6fe7b37qt.js +1 -0
- package/.next/static/media/icon.08ljfy7xai2x_.svg +20 -0
- package/LICENSE +21 -0
- package/README.md +490 -0
- package/next.config.mjs +25 -0
- package/package.json +104 -0
- package/postcss.config.mjs +8 -0
- package/src/app/actions/__tests__/approve-breakpoint.test.ts +246 -0
- package/src/app/actions/approve-breakpoint.ts +145 -0
- package/src/app/api/config/route.ts +137 -0
- package/src/app/api/digest/route.ts +45 -0
- package/src/app/api/runs/[runId]/events/route.ts +56 -0
- package/src/app/api/runs/[runId]/route.ts +84 -0
- package/src/app/api/runs/[runId]/tasks/[effectId]/route.ts +44 -0
- package/src/app/api/runs/route.ts +48 -0
- package/src/app/api/stream/route.ts +136 -0
- package/src/app/api/test/route.ts +1 -0
- package/src/app/api/version/route.ts +57 -0
- package/src/app/globals.css +555 -0
- package/src/app/icon.svg +20 -0
- package/src/app/layout.tsx +39 -0
- package/src/app/not-found.tsx +16 -0
- package/src/app/page.tsx +120 -0
- package/src/app/runs/[runId]/page.tsx +279 -0
- package/src/cli.ts +271 -0
- package/src/components/breakpoint/__tests__/breakpoint-approval.test.tsx +212 -0
- package/src/components/breakpoint/__tests__/breakpoint-panel.test.tsx +130 -0
- package/src/components/breakpoint/__tests__/file-preview.test.tsx +313 -0
- package/src/components/breakpoint/breakpoint-approval.tsx +138 -0
- package/src/components/breakpoint/breakpoint-panel.tsx +95 -0
- package/src/components/breakpoint/file-preview.tsx +215 -0
- package/src/components/dashboard/.gitkeep +0 -0
- package/src/components/dashboard/__tests__/breakpoint-banner.test.tsx +177 -0
- package/src/components/dashboard/__tests__/catch-up-banner.test.tsx +141 -0
- package/src/components/dashboard/__tests__/executive-summary-banner.test.tsx +164 -0
- package/src/components/dashboard/__tests__/kpi-grid.test.tsx +101 -0
- package/src/components/dashboard/__tests__/pagination-controls.test.tsx +125 -0
- package/src/components/dashboard/__tests__/project-accordion.test.tsx +97 -0
- package/src/components/dashboard/__tests__/project-list-view.test.tsx +174 -0
- package/src/components/dashboard/__tests__/project-search-input.test.tsx +110 -0
- package/src/components/dashboard/__tests__/project-section-header.test.tsx +91 -0
- package/src/components/dashboard/__tests__/project-section.test.tsx +151 -0
- package/src/components/dashboard/__tests__/run-card.test.tsx +164 -0
- package/src/components/dashboard/__tests__/run-filter-bar.test.tsx +109 -0
- package/src/components/dashboard/__tests__/run-list.test.tsx +123 -0
- package/src/components/dashboard/__tests__/search-filter.test.tsx +150 -0
- package/src/components/dashboard/__tests__/virtualized-run-list.test.tsx +179 -0
- package/src/components/dashboard/breakpoint-banner.tsx +301 -0
- package/src/components/dashboard/catch-up-banner.tsx +88 -0
- package/src/components/dashboard/executive-summary-banner.tsx +174 -0
- package/src/components/dashboard/global-search.tsx +323 -0
- package/src/components/dashboard/kpi-grid.tsx +140 -0
- package/src/components/dashboard/pagination-controls.tsx +100 -0
- package/src/components/dashboard/project-accordion.tsx +72 -0
- package/src/components/dashboard/project-health-card.tsx +536 -0
- package/src/components/dashboard/project-list-view.tsx +246 -0
- package/src/components/dashboard/project-search-input.tsx +41 -0
- package/src/components/dashboard/project-section-header.tsx +73 -0
- package/src/components/dashboard/project-section.tsx +89 -0
- package/src/components/dashboard/run-card.tsx +218 -0
- package/src/components/dashboard/run-filter-bar.tsx +100 -0
- package/src/components/dashboard/run-list.tsx +77 -0
- package/src/components/dashboard/search-filter.tsx +69 -0
- package/src/components/dashboard/virtualized-run-list.tsx +130 -0
- package/src/components/details/.gitkeep +0 -0
- package/src/components/details/__tests__/agent-panel.test.tsx +236 -0
- package/src/components/details/__tests__/json-tree.test.tsx +347 -0
- package/src/components/details/__tests__/log-viewer.test.tsx +168 -0
- package/src/components/details/__tests__/task-detail.test.tsx +212 -0
- package/src/components/details/__tests__/timing-panel.test.tsx +271 -0
- package/src/components/details/agent-panel.tsx +234 -0
- package/src/components/details/json-tree/categorize.ts +131 -0
- package/src/components/details/json-tree/index.tsx +120 -0
- package/src/components/details/json-tree/json-node.tsx +223 -0
- package/src/components/details/json-tree/smart-summary.tsx +596 -0
- package/src/components/details/json-tree/tree-controls.tsx +47 -0
- package/src/components/details/json-tree.tsx +9 -0
- package/src/components/details/log-viewer.tsx +140 -0
- package/src/components/details/task-detail.tsx +114 -0
- package/src/components/details/timing-panel.tsx +247 -0
- package/src/components/events/.gitkeep +0 -0
- package/src/components/events/__tests__/event-item.test.tsx +211 -0
- package/src/components/events/__tests__/event-stream.test.tsx +225 -0
- package/src/components/events/event-item.tsx +121 -0
- package/src/components/events/event-stream.tsx +260 -0
- package/src/components/notifications/.gitkeep +0 -0
- package/src/components/notifications/__tests__/notification-panel.test.tsx +287 -0
- package/src/components/notifications/__tests__/notification-provider.test.tsx +585 -0
- package/src/components/notifications/__tests__/toast-stack.test.tsx +217 -0
- package/src/components/notifications/notification-panel.tsx +124 -0
- package/src/components/notifications/notification-provider.tsx +175 -0
- package/src/components/notifications/toast-stack.tsx +75 -0
- package/src/components/pipeline/.gitkeep +0 -0
- package/src/components/pipeline/__tests__/parallel-group.test.tsx +88 -0
- package/src/components/pipeline/__tests__/pipeline-view.test.tsx +345 -0
- package/src/components/pipeline/__tests__/step-card.test.tsx +330 -0
- package/src/components/pipeline/parallel-group.tsx +39 -0
- package/src/components/pipeline/pipeline-view.tsx +197 -0
- package/src/components/pipeline/step-card.tsx +166 -0
- package/src/components/providers/event-stream-provider.tsx +29 -0
- package/src/components/providers.tsx +24 -0
- package/src/components/shared/.gitkeep +0 -0
- package/src/components/shared/__tests__/empty-state.test.tsx +49 -0
- package/src/components/shared/__tests__/friendly-id.test.tsx +47 -0
- package/src/components/shared/__tests__/kbd.test.tsx +45 -0
- package/src/components/shared/__tests__/kind-badge.test.tsx +71 -0
- package/src/components/shared/__tests__/metrics-row.test.tsx +74 -0
- package/src/components/shared/__tests__/outcome-banner.test.tsx +71 -0
- package/src/components/shared/__tests__/progress-bar.test.tsx +89 -0
- package/src/components/shared/__tests__/session-pill.test.tsx +62 -0
- package/src/components/shared/__tests__/settings-modal.test.tsx +201 -0
- package/src/components/shared/__tests__/shortcuts-help.test.tsx +103 -0
- package/src/components/shared/__tests__/status-badge.test.tsx +98 -0
- package/src/components/shared/__tests__/theme-provider.test.tsx +100 -0
- package/src/components/shared/__tests__/truncated-id.test.tsx +53 -0
- package/src/components/shared/app-footer.tsx +80 -0
- package/src/components/shared/app-header.tsx +160 -0
- package/src/components/shared/empty-state.tsx +18 -0
- package/src/components/shared/error-boundary.tsx +81 -0
- package/src/components/shared/friendly-id.tsx +48 -0
- package/src/components/shared/kbd.tsx +15 -0
- package/src/components/shared/kind-badge.tsx +51 -0
- package/src/components/shared/metrics-row.tsx +106 -0
- package/src/components/shared/outcome-banner.tsx +56 -0
- package/src/components/shared/progress-bar.tsx +42 -0
- package/src/components/shared/session-pill.tsx +69 -0
- package/src/components/shared/settings-modal.tsx +509 -0
- package/src/components/shared/shortcuts-help.tsx +113 -0
- package/src/components/shared/status-badge.tsx +110 -0
- package/src/components/shared/theme-provider.tsx +46 -0
- package/src/components/shared/truncated-id.tsx +51 -0
- package/src/components/ui/.gitkeep +0 -0
- package/src/components/ui/__tests__/accordion.test.tsx +96 -0
- package/src/components/ui/__tests__/badge.test.tsx +69 -0
- package/src/components/ui/__tests__/button.test.tsx +113 -0
- package/src/components/ui/__tests__/tabs.test.tsx +75 -0
- package/src/components/ui/__tests__/tooltip.test.tsx +90 -0
- package/src/components/ui/accordion.tsx +61 -0
- package/src/components/ui/badge.tsx +25 -0
- package/src/components/ui/button.tsx +40 -0
- package/src/components/ui/card.tsx +21 -0
- package/src/components/ui/scroll-area.tsx +35 -0
- package/src/components/ui/separator.tsx +24 -0
- package/src/components/ui/tabs.tsx +64 -0
- package/src/components/ui/tooltip.tsx +37 -0
- package/src/hooks/.gitkeep +0 -0
- package/src/hooks/__tests__/use-animated-number.test.ts +184 -0
- package/src/hooks/__tests__/use-batched-updates.test.ts +315 -0
- package/src/hooks/__tests__/use-event-stream.test.ts +243 -0
- package/src/hooks/__tests__/use-keyboard.test.ts +217 -0
- package/src/hooks/__tests__/use-notifications.test.ts +230 -0
- package/src/hooks/__tests__/use-polling.test.ts +274 -0
- package/src/hooks/__tests__/use-project-runs.test.ts +163 -0
- package/src/hooks/__tests__/use-projects.test.ts +248 -0
- package/src/hooks/__tests__/use-run-dashboard.test.ts +168 -0
- package/src/hooks/__tests__/use-run-detail.test.ts +273 -0
- package/src/hooks/__tests__/use-smart-polling.test.ts +305 -0
- package/src/hooks/use-animated-number.ts +87 -0
- package/src/hooks/use-batched-updates.ts +150 -0
- package/src/hooks/use-event-stream.ts +150 -0
- package/src/hooks/use-keyboard.ts +45 -0
- package/src/hooks/use-notifications.ts +82 -0
- package/src/hooks/use-persisted-state.ts +60 -0
- package/src/hooks/use-polling.ts +60 -0
- package/src/hooks/use-project-runs.ts +51 -0
- package/src/hooks/use-projects.ts +26 -0
- package/src/hooks/use-run-dashboard.ts +207 -0
- package/src/hooks/use-run-detail.ts +77 -0
- package/src/hooks/use-smart-polling.ts +144 -0
- package/src/lib/.gitkeep +0 -0
- package/src/lib/__tests__/cn.test.ts +69 -0
- package/src/lib/__tests__/config-loader.test.ts +210 -0
- package/src/lib/__tests__/config.test.ts +561 -0
- package/src/lib/__tests__/error-handler.test.ts +143 -0
- package/src/lib/__tests__/fetcher.test.ts +517 -0
- package/src/lib/__tests__/global-registry.test.ts +214 -0
- package/src/lib/__tests__/parser.test.ts +1532 -0
- package/src/lib/__tests__/path-resolver.test.ts +112 -0
- package/src/lib/__tests__/run-cache.test.ts +591 -0
- package/src/lib/__tests__/server-init.test.ts +512 -0
- package/src/lib/__tests__/source-discovery.test.ts +246 -0
- package/src/lib/__tests__/utils.test.ts +160 -0
- package/src/lib/__tests__/watcher.test.ts +227 -0
- package/src/lib/cn.ts +6 -0
- package/src/lib/config-loader.ts +195 -0
- package/src/lib/config.ts +20 -0
- package/src/lib/error-handler.ts +76 -0
- package/src/lib/fetcher.ts +394 -0
- package/src/lib/global-registry.ts +117 -0
- package/src/lib/parser.ts +794 -0
- package/src/lib/path-resolver.ts +16 -0
- package/src/lib/run-cache.ts +404 -0
- package/src/lib/server-init.ts +226 -0
- package/src/lib/services/__tests__/run-query-service.test.ts +819 -0
- package/src/lib/services/run-query-service.ts +286 -0
- package/src/lib/source-discovery.ts +216 -0
- package/src/lib/utils.ts +103 -0
- package/src/lib/watcher.ts +265 -0
- package/src/test/fixtures.ts +269 -0
- package/src/test/mocks/handlers.ts +110 -0
- package/src/test/mocks/server.ts +17 -0
- package/src/test/setup.ts +200 -0
- package/src/test/test-utils.tsx +36 -0
- package/src/types/.gitkeep +0 -0
- package/src/types/breakpoint.ts +17 -0
- package/src/types/index.ts +214 -0
- package/tsconfig.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
module.exports=[37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},55738,a=>{"use strict";let b,c,d;var e,f,g=a.i(37936),h=a.i(22734),i=a.i(14747),j=a.i(54799),k=a.i(66680);let l="0123456789ABCDEFGHJKMNPQRSTVWXYZ";(e=f||(f={})).Base32IncorrectEncoding="B32_ENC_INVALID",e.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",e.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",e.EncodeTimeNegative="ENC_TIME_NEG",e.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",e.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",e.PRNGDetectFailure="PRNG_DETECT",e.ULIDInvalid="ULID_INVALID",e.Unexpected="UNEXPECTED",e.UUIDInvalid="UUID_INVALID";class m extends Error{constructor(a,b){super(`${b} (${a})`),this.name="ULIDError",this.code=a}}function n(a,b,c){return b>a.length-1?a:a.substr(0,b)+c+a.substr(b+1)}function o(a,b=10){if(isNaN(a))throw new m(f.EncodeTimeValueMalformed,`Time must be a number: ${a}`);if(a>0xffffffffffff)throw new m(f.EncodeTimeSizeExceeded,`Cannot encode a time larger than 281474976710655: ${a}`);if(a<0)throw new m(f.EncodeTimeNegative,`Time must be positive: ${a}`);if(!1===Number.isInteger(a))throw new m(f.EncodeTimeValueMalformed,`Time must be an integer: ${a}`);let c,d="";for(let e=b;e>0;e--)c=a%32,d=l.charAt(c)+d,a=(a-c)/32;return d}var p=a.i(46786);function q(a){if(!(a instanceof Error))return!1;let b=a.code;return"ENOENT"===b||"ENOTDIR"===b||a.message.includes("ENOENT")}let r=process.env.OBSERVER_REGISTRY||i.default.join(p.default.homedir(),".a5c","observer.json"),s=null,t=0;async function u(){try{let a=await h.promises.readFile(r,"utf-8"),b=JSON.parse(a);return{sources:Array.isArray(b.sources)?b.sources.map(a=>({path:String(a.path||""),depth:"number"==typeof a.depth?a.depth:2,label:a.label?String(a.label):void 0})):[],pollInterval:"number"==typeof b.pollInterval?b.pollInterval:void 0,theme:"dark"===b.theme||"light"===b.theme?b.theme:void 0,staleThresholdMs:"number"==typeof b.staleThresholdMs?b.staleThresholdMs:void 0,recentCompletionWindowMs:"number"==typeof b.recentCompletionWindowMs?b.recentCompletionWindowMs:void 0,retentionDays:"number"==typeof b.retentionDays?b.retentionDays:void 0,hiddenProjects:Array.isArray(b.hiddenProjects)?b.hiddenProjects.filter(a=>"string"==typeof a):void 0}}catch(a){return q(a)||console.warn(`[config] Failed to load registry from ${r} — using defaults:`,a),{sources:[]}}}async function v(){let a=Date.now();if(s&&a-t<1e4)return s;let b=await u(),c=function(){let a=[];if(process.env.OBSERVER_WATCH_DIR&&a.push({path:process.env.OBSERVER_WATCH_DIR,depth:3,label:"cli"}),process.env.WATCH_DIR&&a.push({path:process.env.WATCH_DIR,depth:0,label:"env"}),process.env.WATCH_DIRS)for(let b of process.env.WATCH_DIRS.split(",")){let c=b.trim();c&&a.push({path:c,depth:2})}return 0===a.length&&a.push({path:i.default.resolve(process.cwd(),".."),depth:3,label:"parent"}),a}(),d=b.sources.length>0?b.sources:c,e=new Set,f=d.filter(a=>{let b=i.default.resolve(a.path);return!e.has(b)&&(e.add(b),!0)}),g=process.env.OBSERVER_POLL_INTERVAL||process.env.POLL_INTERVAL,h=process.env.OBSERVER_DEFAULT_THEME||process.env.THEME,j=process.env.OBSERVER_STALE_THRESHOLD_MS,k=process.env.OBSERVER_RECENT_WINDOW_MS,l=process.env.OBSERVER_RETENTION_DAYS;return s={sources:f,port:parseInt(process.env.OBSERVER_PORT||process.env.PORT||"4800",10),pollInterval:b.pollInterval??(g?parseInt(g,10):2e3),theme:b.theme??("dark"===h||"light"===h?h:"dark"),staleThresholdMs:b.staleThresholdMs??(j?parseInt(j,10):36e5),recentCompletionWindowMs:b.recentCompletionWindowMs??(k?parseInt(k,10):144e5),retentionDays:b.retentionDays??(l?parseInt(l,10):30),hiddenProjects:b.hiddenProjects??[]},t=a,s}async function w(a){let b=[];async function c(d,e){try{if(0===a.depth)return(await h.promises.readdir(d,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(a=>i.default.join(d,a.name));let f=i.default.join(d,".a5c","runs");try{(await h.promises.stat(f)).isDirectory()&&b.push(f)}catch{}if(e<a.depth)for(let a of(await h.promises.readdir(d,{withFileTypes:!0})))a.isDirectory()&&!a.name.startsWith(".")&&"node_modules"!==a.name&&await c(i.default.join(d,a.name),e+1)}catch(a){q(a)||console.warn(`[config] Cannot scan directory ${d} (depth=${e}):`,a)}}if(0===a.depth)try{return(await h.promises.readdir(a.path,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(b=>i.default.join(a.path,b.name))}catch(b){return console.warn(`[config] Cannot list runs in direct source ${a.path}:`,b),[]}return await c(a.path,0),b}let x=[],y=0;async function z(){let a=Date.now();if(x.length>0&&a-y<1e4)return x;let b=await v(),c=[];for(let a of b.sources)if(0===a.depth){let b=a.label||i.default.basename(a.path);try{for(let d of(await h.promises.readdir(a.path,{withFileTypes:!0})))if(d.isDirectory()){let e=b;try{let b=i.default.join(a.path,d.name,"run.json"),c=await h.promises.readFile(b,"utf-8"),f=JSON.parse(c);f.projectName&&(e=f.projectName)}catch(b){q(b)||console.warn(`[config] Failed to read run.json in ${i.default.join(a.path,d.name)} — using fallback project name:`,b)}c.push({runDir:i.default.join(a.path,d.name),source:a,projectName:e,projectPath:a.path})}}catch(b){console.warn(`[config] Source directory not accessible ${a.path}:`,b)}}else for(let b of(await w(a))){let{projectName:d,projectPath:e}=function(a){let b=i.default.dirname(a),c=i.default.dirname(b);return{projectName:i.default.basename(c),projectPath:c}}(b);try{for(let f of(await h.promises.readdir(b,{withFileTypes:!0})))f.isDirectory()&&c.push({runDir:i.default.join(b,f.name),source:a,projectName:d,projectPath:e})}catch(a){console.warn(`[config] Cannot read runs directory ${b}:`,a)}}let d=new Map;for(let a of c){let b=i.default.basename(a.runDir);if(d.has(b)){let c=d.get(b);!await h.promises.access(i.default.join(c.runDir,"run.json")).then(()=>!0,()=>!1)&&await h.promises.access(i.default.join(a.runDir,"run.json")).then(()=>!0,()=>!1)&&d.set(b,a)}else d.set(b,a)}let e=Array.from(d.values());return x=e,y=Date.now(),e}async function A(a){let b=(await z()).find(b=>i.default.basename(b.runDir)===a);return b||(x=[],y=0,(await z()).find(b=>i.default.basename(b.runDir)===a)||null)}var B=a.i(13095);let C=(b=function(){let b="u">typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:a.g,c=b&&(b.crypto||b.msCrypto)||(void 0!==k.default?k.default:null);if("function"==typeof c?.getRandomValues)return()=>{let a=new Uint8Array(1);return c.getRandomValues(a),a[0]/256};if("function"==typeof c?.randomBytes)return()=>c.randomBytes(1).readUInt8()/256;if(k.default?.randomBytes)return()=>k.default.randomBytes(1).readUInt8()/256;throw new m(f.PRNGDetectFailure,"Failed to find a reliable PRNG")}(),c=0,function(a){let e=!a||isNaN(a)?Date.now():a;if(e<=c){let a=d=function(a){let b,c=a.length,d,e,g=a;for(;!b&&c-- >=0;){if(d=g[c],-1===(e=l.indexOf(d)))throw new m(f.Base32IncorrectEncoding,"Incorrectly encoded string");if(31===e){g=n(g,c,l[0]);continue}b=n(g,c,l[e+1])}if("string"==typeof b)return b;throw new m(f.Base32IncorrectEncoding,"Failed incrementing string")}(d);return o(c,10)+a}c=e;let g=d=function(a,b){let c="";for(;a>0;a--)c=function(a){let b=Math.floor(32*a())%32;return l.charAt(b)}(b)+c;return c}(16,b);return o(e,10)+g});async function D(a){try{let b=await h.promises.readdir(a),c=0;for(let a of b){let b=a.split(".")[0],d=Number(b);Number.isFinite(d)&&d>c&&(c=d)}return c+1}catch{return 1}}async function E(a,b,c){let d=i.default.join(a,"journal");await h.promises.mkdir(d,{recursive:!0});let e=await D(d),f=C(),g=`${e.toString().padStart(6,"0")}.${f}.json`,k={type:"EFFECT_RESOLVED",recordedAt:c,data:{effectId:b,status:"ok",resultRef:`tasks/${b}/result.json`,startedAt:c,finishedAt:c}},l=JSON.stringify(k,null,2)+"\n",m=j.default.createHash("sha256").update(l).digest("hex"),n=JSON.stringify({...k,checksum:m},null,2)+"\n";await h.promises.writeFile(i.default.join(d,g),n,"utf-8")}async function F(a,b,c){if(!a||"string"!=typeof a)return{success:!1,error:"Missing or invalid runId"};if(!b||"string"!=typeof b)return{success:!1,error:"Missing or invalid effectId"};if(!c||"string"!=typeof c||0===c.trim().length)return{success:!1,error:"Answer cannot be empty"};let d=/^[a-zA-Z0-9_\-]+$/;if(!d.test(a)||!d.test(b))return{success:!1,error:"Invalid characters in runId or effectId"};try{let d=await A(a);if(!d)return{success:!1,error:`Run not found: ${a}`};let e=d.runDir,f=i.default.join(e,"tasks",b);try{await h.promises.access(f)}catch{return{success:!1,error:`Task directory not found: ${b}`}}let g=new Date().toISOString(),j={status:"ok",value:{answer:c.trim(),approvedAt:g,approvedBy:"observer-dashboard"},startedAt:g,finishedAt:g},k=i.default.join(f,"result.json");return await h.promises.writeFile(k,JSON.stringify(j,null,2),"utf-8"),await E(e,b,g),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:String(a)}}}(0,B.ensureServerEntryExports)([F]),(0,g.registerServerReference)(F,"701608e6b4ba3d1d98216ed1071673a54ce642a4e6",null),a.s(["approveBreakpoint",0,F],55738)}];
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__006f7~t._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../../packages/observer-dashboard/src/app/actions/approve-breakpoint.ts","../../../../../../packages/observer-dashboard/node_modules/ulid/dist/node/index.js","../../../../../../packages/observer-dashboard/src/lib/config-loader.ts","../../../../../../packages/observer-dashboard/src/lib/source-discovery.ts","../../../../../../packages/observer-dashboard/src/lib/path-resolver.ts"],"sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","\"use server\";\n\nimport { promises as fs } from \"fs\";\nimport path from \"path\";\nimport crypto from \"crypto\";\nimport { monotonicFactory } from \"ulid\";\nimport { findRunDir } from \"@/lib/path-resolver\";\n\nexport interface ApproveBreakpointResult {\n success: boolean;\n error?: string;\n}\n\nconst nextUlid = monotonicFactory();\n\n/**\n * Determine the next journal sequence number by scanning existing files.\n */\nasync function getNextJournalSeq(journalDir: string): Promise<number> {\n try {\n const files = await fs.readdir(journalDir);\n let max = 0;\n for (const f of files) {\n const seqStr = f.split(\".\")[0];\n const seq = Number(seqStr);\n if (Number.isFinite(seq) && seq > max) max = seq;\n }\n return max + 1;\n } catch {\n // Journal dir may not exist yet — seq 1\n return 1;\n }\n}\n\n/**\n * Write an EFFECT_RESOLVED journal entry using the same format as the\n * babysitter SDK: SHA-256 checksum of the JSON payload (without checksum)\n * serialized as `JSON.stringify(payload, null, 2) + \"\\n\"`.\n */\nasync function appendJournalEntry(\n runDir: string,\n effectId: string,\n now: string,\n): Promise<void> {\n const journalDir = path.join(runDir, \"journal\");\n await fs.mkdir(journalDir, { recursive: true });\n\n const seq = await getNextJournalSeq(journalDir);\n const ulid = nextUlid();\n const filename = `${seq.toString().padStart(6, \"0\")}.${ulid}.json`;\n\n const eventPayload = {\n type: \"EFFECT_RESOLVED\",\n recordedAt: now,\n data: {\n effectId,\n status: \"ok\",\n resultRef: `tasks/${effectId}/result.json`,\n startedAt: now,\n finishedAt: now,\n },\n };\n\n const contents = JSON.stringify(eventPayload, null, 2) + \"\\n\";\n const checksum = crypto.createHash(\"sha256\").update(contents).digest(\"hex\");\n const payloadWithChecksum = JSON.stringify({ ...eventPayload, checksum }, null, 2) + \"\\n\";\n\n await fs.writeFile(path.join(journalDir, filename), payloadWithChecksum, \"utf-8\");\n}\n\n/**\n * Server Action: approve a breakpoint by writing both the result.json AND\n * an EFFECT_RESOLVED journal entry. This ensures the SDK's state machine\n * recognizes the resolution on the next `run:iterate` (the SDK auto-rebuilds\n * its state cache when it detects journal head mismatch).\n *\n * Previous implementation only wrote result.json, leaving the journal\n * untouched — the SDK never knew the breakpoint was resolved, causing runs\n * to stay stuck in \"Waiting\" state permanently.\n */\nexport async function approveBreakpoint(\n runId: string,\n effectId: string,\n answer: string,\n): Promise<ApproveBreakpointResult> {\n // --- Validate inputs ---\n if (!runId || typeof runId !== \"string\") {\n return { success: false, error: \"Missing or invalid runId\" };\n }\n if (!effectId || typeof effectId !== \"string\") {\n return { success: false, error: \"Missing or invalid effectId\" };\n }\n if (!answer || typeof answer !== \"string\" || answer.trim().length === 0) {\n return { success: false, error: \"Answer cannot be empty\" };\n }\n\n // Sanitize IDs to prevent path traversal\n const idPattern = /^[a-zA-Z0-9_\\-]+$/;\n if (!idPattern.test(runId) || !idPattern.test(effectId)) {\n return { success: false, error: \"Invalid characters in runId or effectId\" };\n }\n\n try {\n // --- Resolve the run directory ---\n const found = await findRunDir(runId);\n if (!found) {\n return { success: false, error: `Run not found: ${runId}` };\n }\n const runDir = found.runDir;\n\n // --- Verify the task directory exists ---\n const taskDir = path.join(runDir, \"tasks\", effectId);\n try {\n await fs.access(taskDir);\n } catch {\n return { success: false, error: `Task directory not found: ${effectId}` };\n }\n\n // --- Write result.json (SDK-compatible format) ---\n const now = new Date().toISOString();\n const resultPayload = {\n status: \"ok\",\n value: {\n answer: answer.trim(),\n approvedAt: now,\n approvedBy: \"observer-dashboard\",\n },\n startedAt: now,\n finishedAt: now,\n };\n const resultPath = path.join(taskDir, \"result.json\");\n await fs.writeFile(resultPath, JSON.stringify(resultPayload, null, 2), \"utf-8\");\n\n // --- Append EFFECT_RESOLVED journal entry ---\n // This is the critical piece that was missing: without a journal entry,\n // the SDK's state machine never knows the breakpoint was resolved and\n // the run stays stuck in \"Waiting\" forever.\n await appendJournalEntry(runDir, effectId, now);\n\n return { success: true };\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n return { success: false, error: msg };\n }\n}\n","import crypto from 'node:crypto';\n\n// These values should NEVER change. The values are precisely for\n// generating ULIDs.\nconst B32_CHARACTERS = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\";\nconst ENCODING = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"; // Crockford's Base32\nconst ENCODING_LEN = 32; // from ENCODING.length;\nconst MAX_ULID = \"7ZZZZZZZZZZZZZZZZZZZZZZZZZ\";\nconst MIN_ULID = \"00000000000000000000000000\";\nconst RANDOM_LEN = 16;\nconst TIME_LEN = 10;\nconst TIME_MAX = 281474976710655; // from Math.pow(2, 48) - 1;\nconst ULID_REGEX = /^[0-7][0-9a-hjkmnp-tv-zA-HJKMNP-TV-Z]{25}$/;\nconst UUID_REGEX = /^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$/;\n\nvar ULIDErrorCode;\n(function (ULIDErrorCode) {\n ULIDErrorCode[\"Base32IncorrectEncoding\"] = \"B32_ENC_INVALID\";\n ULIDErrorCode[\"DecodeTimeInvalidCharacter\"] = \"DEC_TIME_CHAR\";\n ULIDErrorCode[\"DecodeTimeValueMalformed\"] = \"DEC_TIME_MALFORMED\";\n ULIDErrorCode[\"EncodeTimeNegative\"] = \"ENC_TIME_NEG\";\n ULIDErrorCode[\"EncodeTimeSizeExceeded\"] = \"ENC_TIME_SIZE_EXCEED\";\n ULIDErrorCode[\"EncodeTimeValueMalformed\"] = \"ENC_TIME_MALFORMED\";\n ULIDErrorCode[\"PRNGDetectFailure\"] = \"PRNG_DETECT\";\n ULIDErrorCode[\"ULIDInvalid\"] = \"ULID_INVALID\";\n ULIDErrorCode[\"Unexpected\"] = \"UNEXPECTED\";\n ULIDErrorCode[\"UUIDInvalid\"] = \"UUID_INVALID\";\n})(ULIDErrorCode || (ULIDErrorCode = {}));\nclass ULIDError extends Error {\n constructor(errorCode, message) {\n super(`${message} (${errorCode})`);\n this.name = \"ULIDError\";\n this.code = errorCode;\n }\n}\n\nfunction randomChar(prng) {\n // Currently PRNGs generate fractions from 0 to _less than_ 1, so no \"%\" is necessary.\n // However, just in case a future PRNG can generate 1,\n // we are applying \"% ENCODING LEN\" to wrap back to the first character\n const randomPosition = Math.floor(prng() * ENCODING_LEN) % ENCODING_LEN;\n return ENCODING.charAt(randomPosition);\n}\nfunction replaceCharAt(str, index, char) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\n\n// Code from https://github.com/devbanana/crockford-base32/blob/develop/src/index.ts\nfunction crockfordEncode(input) {\n const output = [];\n let bitsRead = 0;\n let buffer = 0;\n const reversedInput = new Uint8Array(input.slice().reverse());\n for (const byte of reversedInput) {\n buffer |= byte << bitsRead;\n bitsRead += 8;\n while (bitsRead >= 5) {\n output.unshift(buffer & 0x1f);\n buffer >>>= 5;\n bitsRead -= 5;\n }\n }\n if (bitsRead > 0) {\n output.unshift(buffer & 0x1f);\n }\n return output.map(byte => B32_CHARACTERS.charAt(byte)).join(\"\");\n}\nfunction crockfordDecode(input) {\n const sanitizedInput = input.toUpperCase().split(\"\").reverse().join(\"\");\n const output = [];\n let bitsRead = 0;\n let buffer = 0;\n for (const character of sanitizedInput) {\n const byte = B32_CHARACTERS.indexOf(character);\n if (byte === -1) {\n throw new Error(`Invalid base 32 character found in string: ${character}`);\n }\n buffer |= byte << bitsRead;\n bitsRead += 5;\n while (bitsRead >= 8) {\n output.unshift(buffer & 0xff);\n buffer >>>= 8;\n bitsRead -= 8;\n }\n }\n if (bitsRead >= 5 || buffer > 0) {\n output.unshift(buffer & 0xff);\n }\n return new Uint8Array(output);\n}\n/**\n * Fix a ULID's Base32 encoding -\n * i and l (case-insensitive) will be treated as 1 and o (case-insensitive) will be treated as 0.\n * hyphens are ignored during decoding.\n * @param id The ULID\n * @returns The cleaned up ULID\n */\nfunction fixULIDBase32(id) {\n return id.replace(/i/gi, \"1\").replace(/l/gi, \"1\").replace(/o/gi, \"0\").replace(/-/g, \"\");\n}\nfunction incrementBase32(str) {\n let done = undefined, index = str.length, char, charIndex, output = str;\n const maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = output[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw new ULIDError(ULIDErrorCode.Base32IncorrectEncoding, \"Incorrectly encoded string\");\n }\n if (charIndex === maxCharIndex) {\n output = replaceCharAt(output, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(output, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === \"string\") {\n return done;\n }\n throw new ULIDError(ULIDErrorCode.Base32IncorrectEncoding, \"Failed incrementing string\");\n}\n\n/**\n * Decode time from a ULID\n * @param id The ULID\n * @returns The decoded timestamp\n */\nfunction decodeTime(id) {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw new ULIDError(ULIDErrorCode.DecodeTimeValueMalformed, \"Malformed ULID\");\n }\n const time = id\n .substr(0, TIME_LEN)\n .toUpperCase()\n .split(\"\")\n .reverse()\n .reduce((carry, char, index) => {\n const encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw new ULIDError(ULIDErrorCode.DecodeTimeInvalidCharacter, `Time decode error: Invalid character: ${char}`);\n }\n return (carry += encodingIndex * Math.pow(ENCODING_LEN, index));\n }, 0);\n if (time > TIME_MAX) {\n throw new ULIDError(ULIDErrorCode.DecodeTimeValueMalformed, `Malformed ULID: timestamp too large: ${time}`);\n }\n return time;\n}\n/**\n * Detect the best PRNG (pseudo-random number generator)\n * @param root The root to check from (global/window)\n * @returns The PRNG function\n */\nfunction detectPRNG(root) {\n const rootLookup = detectRoot();\n const globalCrypto = (rootLookup && (rootLookup.crypto || rootLookup.msCrypto)) ||\n (typeof crypto !== \"undefined\" ? crypto : null);\n if (typeof globalCrypto?.getRandomValues === \"function\") {\n return () => {\n const buffer = new Uint8Array(1);\n globalCrypto.getRandomValues(buffer);\n return buffer[0] / 256;\n };\n }\n else if (typeof globalCrypto?.randomBytes === \"function\") {\n return () => globalCrypto.randomBytes(1).readUInt8() / 256;\n }\n else if (crypto?.randomBytes) {\n return () => crypto.randomBytes(1).readUInt8() / 256;\n }\n throw new ULIDError(ULIDErrorCode.PRNGDetectFailure, \"Failed to find a reliable PRNG\");\n}\nfunction detectRoot() {\n if (inWebWorker())\n return self;\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n return null;\n}\nfunction encodeRandom(len, prng) {\n let str = \"\";\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\n/**\n * Encode the time portion of a ULID\n * @param now The current timestamp\n * @param len Length to generate\n * @returns The encoded time\n */\nfunction encodeTime(now, len = TIME_LEN) {\n if (isNaN(now)) {\n throw new ULIDError(ULIDErrorCode.EncodeTimeValueMalformed, `Time must be a number: ${now}`);\n }\n else if (now > TIME_MAX) {\n throw new ULIDError(ULIDErrorCode.EncodeTimeSizeExceeded, `Cannot encode a time larger than ${TIME_MAX}: ${now}`);\n }\n else if (now < 0) {\n throw new ULIDError(ULIDErrorCode.EncodeTimeNegative, `Time must be positive: ${now}`);\n }\n else if (Number.isInteger(now) === false) {\n throw new ULIDError(ULIDErrorCode.EncodeTimeValueMalformed, `Time must be an integer: ${now}`);\n }\n let mod, str = \"\";\n for (let currentLen = len; currentLen > 0; currentLen--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\nfunction inWebWorker() {\n // @ts-ignore\n return typeof WorkerGlobalScope !== \"undefined\" && self instanceof WorkerGlobalScope;\n}\n/**\n * Check if a ULID is valid\n * @param id The ULID to test\n * @returns True if valid, false otherwise\n * @example\n * isValid(\"01HNZX8JGFACFA36RBXDHEQN6E\"); // true\n * isValid(\"\"); // false\n */\nfunction isValid(id) {\n return (typeof id === \"string\" &&\n id.length === TIME_LEN + RANDOM_LEN &&\n id\n .toUpperCase()\n .split(\"\")\n .every(char => ENCODING.indexOf(char) !== -1));\n}\n/**\n * Create a ULID factory to generate monotonically-increasing\n * ULIDs\n * @param prng The PRNG to use\n * @returns A ulid factory\n * @example\n * const ulid = monotonicFactory();\n * ulid(); // \"01HNZXD07M5CEN5XA66EMZSRZW\"\n */\nfunction monotonicFactory(prng) {\n const currentPRNG = prng || detectPRNG();\n let lastTime = 0, lastRandom;\n return function _ulid(seedTime) {\n const seed = !seedTime || isNaN(seedTime) ? Date.now() : seedTime;\n if (seed <= lastTime) {\n const incrementedRandom = (lastRandom = incrementBase32(lastRandom));\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seed;\n const newRandom = (lastRandom = encodeRandom(RANDOM_LEN, currentPRNG));\n return encodeTime(seed, TIME_LEN) + newRandom;\n };\n}\n/**\n * Generate a ULID\n * @param seedTime Optional time seed\n * @param prng Optional PRNG function\n * @returns A ULID string\n * @example\n * ulid(); // \"01HNZXD07M5CEN5XA66EMZSRZW\"\n */\nfunction ulid(seedTime, prng) {\n const currentPRNG = prng || detectPRNG();\n const seed = !seedTime || isNaN(seedTime) ? Date.now() : seedTime;\n return encodeTime(seed, TIME_LEN) + encodeRandom(RANDOM_LEN, currentPRNG);\n}\n\n/**\n * Convert a ULID to a UUID\n * @param ulid The ULID to convert\n * @returns A UUID string\n */\nfunction ulidToUUID(ulid) {\n const isValid = ULID_REGEX.test(ulid);\n if (!isValid) {\n throw new ULIDError(ULIDErrorCode.ULIDInvalid, `Invalid ULID: ${ulid}`);\n }\n const uint8Array = crockfordDecode(ulid);\n let uuid = Array.from(uint8Array)\n .map(byte => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n uuid =\n uuid.substring(0, 8) +\n \"-\" +\n uuid.substring(8, 12) +\n \"-\" +\n uuid.substring(12, 16) +\n \"-\" +\n uuid.substring(16, 20) +\n \"-\" +\n uuid.substring(20);\n return uuid.toUpperCase();\n}\n/**\n * Convert a UUID to a ULID\n * @param uuid The UUID to convert\n * @returns A ULID string\n */\nfunction uuidToULID(uuid) {\n const isValid = UUID_REGEX.test(uuid);\n if (!isValid) {\n throw new ULIDError(ULIDErrorCode.UUIDInvalid, `Invalid UUID: ${uuid}`);\n }\n const bytes = uuid.replace(/-/g, \"\").match(/.{1,2}/g);\n if (!bytes) {\n throw new ULIDError(ULIDErrorCode.Unexpected, `Failed parsing UUID bytes: ${uuid}`);\n }\n const uint8Array = new Uint8Array(bytes.map(byte => parseInt(byte, 16)));\n return crockfordEncode(uint8Array);\n}\n\nexport { MAX_ULID, MIN_ULID, TIME_LEN, TIME_MAX, ULIDError, ULIDErrorCode, decodeTime, encodeTime, fixULIDBase32, incrementBase32, isValid, monotonicFactory, ulid, ulidToUUID, uuidToULID };\n","import { promises as fs } from \"fs\";\nimport path from \"path\";\nimport os from \"os\";\n\n/** Return true when err represents a \"file/directory not found\" filesystem error. */\nexport function isNotFoundError(err: unknown): boolean {\n if (!(err instanceof Error)) return false;\n const code = (err as NodeJS.ErrnoException).code;\n return code === \"ENOENT\" || code === \"ENOTDIR\" || err.message.includes(\"ENOENT\");\n}\n\nexport interface WatchSource {\n path: string;\n depth: number; // how many levels deep to search for .a5c/runs/\n label?: string;\n}\n\nexport interface ObserverConfig {\n sources: WatchSource[];\n port: number;\n pollInterval: number;\n theme: \"dark\" | \"light\";\n staleThresholdMs: number;\n recentCompletionWindowMs: number;\n retentionDays: number;\n hiddenProjects: string[];\n}\n\n// Default registry path\nconst REGISTRY_PATH =\n process.env.OBSERVER_REGISTRY ||\n path.join(os.homedir(), \".a5c\", \"observer.json\");\n\nlet cachedConfig: ObserverConfig | null = null;\nlet cacheTime = 0;\nconst CACHE_TTL = 10000; // 10s\n\n// Invalidate the config cache (called after POST /api/config writes new values)\nexport function invalidateConfigCache(): void {\n cachedConfig = null;\n cacheTime = 0;\n}\n\n// Write config to the registry file (~/.a5c/observer.json)\nexport async function writeConfig(data: {\n sources: WatchSource[];\n pollInterval?: number;\n theme?: string;\n staleThresholdMs?: number;\n recentCompletionWindowMs?: number;\n retentionDays?: number;\n hiddenProjects?: string[];\n}): Promise<void> {\n const dir = path.dirname(REGISTRY_PATH);\n await fs.mkdir(dir, { recursive: true });\n\n // Read existing file to preserve any extra fields\n let existing: Record<string, unknown> = {};\n try {\n const content = await fs.readFile(REGISTRY_PATH, \"utf-8\");\n existing = JSON.parse(content);\n } catch (err) {\n // Expected when writing config for the first time; warn if the file exists but is unreadable\n if (!isNotFoundError(err)) {\n console.warn(`[config] Failed to read existing config at ${REGISTRY_PATH} before merge:`, err);\n }\n }\n\n const merged = {\n ...existing,\n sources: data.sources,\n ...(data.pollInterval !== undefined ? { pollInterval: data.pollInterval } : {}),\n ...(data.theme !== undefined ? { theme: data.theme } : {}),\n ...(data.staleThresholdMs !== undefined ? { staleThresholdMs: data.staleThresholdMs } : {}),\n ...(data.recentCompletionWindowMs !== undefined ? { recentCompletionWindowMs: data.recentCompletionWindowMs } : {}),\n ...(data.retentionDays !== undefined ? { retentionDays: data.retentionDays } : {}),\n ...(data.hiddenProjects !== undefined ? { hiddenProjects: data.hiddenProjects } : {}),\n };\n\n await fs.writeFile(REGISTRY_PATH, JSON.stringify(merged, null, 2) + \"\\n\", \"utf-8\");\n}\n\ninterface RegistryData {\n sources: WatchSource[];\n pollInterval?: number;\n theme?: \"dark\" | \"light\";\n staleThresholdMs?: number;\n recentCompletionWindowMs?: number;\n retentionDays?: number;\n hiddenProjects?: string[];\n}\n\nasync function loadRegistry(): Promise<RegistryData> {\n try {\n const content = await fs.readFile(REGISTRY_PATH, \"utf-8\");\n const parsed = JSON.parse(content);\n const sources = Array.isArray(parsed.sources)\n ? parsed.sources.map((s: Record<string, unknown>) => ({\n path: String(s.path || \"\"),\n depth: typeof s.depth === \"number\" ? s.depth : 2,\n label: s.label ? String(s.label) : undefined,\n }))\n : [];\n return {\n sources,\n pollInterval: typeof parsed.pollInterval === \"number\" ? parsed.pollInterval : undefined,\n theme: parsed.theme === \"dark\" || parsed.theme === \"light\" ? parsed.theme : undefined,\n staleThresholdMs: typeof parsed.staleThresholdMs === \"number\" ? parsed.staleThresholdMs : undefined,\n recentCompletionWindowMs: typeof parsed.recentCompletionWindowMs === \"number\" ? parsed.recentCompletionWindowMs : undefined,\n retentionDays: typeof parsed.retentionDays === \"number\" ? parsed.retentionDays : undefined,\n hiddenProjects: Array.isArray(parsed.hiddenProjects) ? parsed.hiddenProjects.filter((s: unknown) => typeof s === \"string\") : undefined,\n };\n } catch (err) {\n if (!isNotFoundError(err)) {\n console.warn(`[config] Failed to load registry from ${REGISTRY_PATH} — using defaults:`, err);\n }\n return { sources: [] };\n }\n}\n\nfunction getDefaultSources(): WatchSource[] {\n const sources: WatchSource[] = [];\n\n // CLI flag via OBSERVER_WATCH_DIR (set by src/cli.ts — defaults to user's cwd)\n if (process.env.OBSERVER_WATCH_DIR) {\n sources.push({ path: process.env.OBSERVER_WATCH_DIR, depth: 3, label: \"cli\" });\n }\n\n // WATCH_DIR env (backwards-compatible single dir)\n if (process.env.WATCH_DIR) {\n sources.push({ path: process.env.WATCH_DIR, depth: 0, label: \"env\" });\n }\n\n // WATCH_DIRS env (comma-separated)\n if (process.env.WATCH_DIRS) {\n for (const dir of process.env.WATCH_DIRS.split(\",\")) {\n const trimmed = dir.trim();\n if (trimmed) sources.push({ path: trimmed, depth: 2 });\n }\n }\n\n // Default: parent of cwd — users typically run from inside a project dir\n // but want to observe ALL sibling projects in the parent folder\n if (sources.length === 0) {\n sources.push({\n path: path.resolve(process.cwd(), \"..\"),\n depth: 3,\n label: \"parent\",\n });\n }\n\n return sources;\n}\n\nexport async function getConfig(): Promise<ObserverConfig> {\n const now = Date.now();\n if (cachedConfig && now - cacheTime < CACHE_TTL) {\n return cachedConfig;\n }\n\n const registry = await loadRegistry();\n const defaultSources = getDefaultSources();\n\n // Merge: registry sources take priority, defaults as fallback\n // Deduplicate sources by normalized path to prevent duplicate discovery\n const rawSources = registry.sources.length > 0 ? registry.sources : defaultSources;\n const seen = new Set<string>();\n const sources = rawSources.filter((s) => {\n const normalized = path.resolve(s.path);\n if (seen.has(normalized)) return false;\n seen.add(normalized);\n return true;\n });\n\n // Priority: registry file > env vars > defaults\n const envPollInterval = process.env.OBSERVER_POLL_INTERVAL || process.env.POLL_INTERVAL;\n const envTheme = process.env.OBSERVER_DEFAULT_THEME || process.env.THEME;\n const envStaleThreshold = process.env.OBSERVER_STALE_THRESHOLD_MS;\n const envRecentWindow = process.env.OBSERVER_RECENT_WINDOW_MS;\n const envRetentionDays = process.env.OBSERVER_RETENTION_DAYS;\n\n cachedConfig = {\n sources,\n port: parseInt(process.env.OBSERVER_PORT || process.env.PORT || \"4800\", 10),\n pollInterval: registry.pollInterval ?? (envPollInterval ? parseInt(envPollInterval, 10) : 2000),\n theme: registry.theme ?? ((envTheme === \"dark\" || envTheme === \"light\" ? envTheme : \"dark\") as \"dark\" | \"light\"),\n staleThresholdMs: registry.staleThresholdMs ?? (envStaleThreshold ? parseInt(envStaleThreshold, 10) : 3600000),\n recentCompletionWindowMs: registry.recentCompletionWindowMs ?? (envRecentWindow ? parseInt(envRecentWindow, 10) : 14400000),\n retentionDays: registry.retentionDays ?? (envRetentionDays ? parseInt(envRetentionDays, 10) : 30),\n hiddenProjects: registry.hiddenProjects ?? [],\n };\n cacheTime = now;\n\n return cachedConfig;\n}\n","import { promises as fs } from \"fs\";\nimport path from \"path\";\nimport { isNotFoundError, getConfig, type WatchSource } from \"./config-loader\";\n\nexport interface DiscoveredRun {\n runDir: string;\n source: WatchSource;\n projectName: string; // e.g. \"hockey_7_shifts\", \"podcast-intel\"\n projectPath: string; // full path to the project directory\n}\n\n// Discover all .a5c/runs/ directories within a source\nasync function discoverRunsInSource(source: WatchSource): Promise<string[]> {\n const results: string[] = [];\n\n async function scan(dir: string, currentDepth: number) {\n try {\n // Check if this directory itself IS an .a5c/runs dir (depth=0 means direct path)\n if (source.depth === 0) {\n const entries = await fs.readdir(dir, { withFileTypes: true });\n return entries\n .filter((e) => e.isDirectory())\n .map((e) => path.join(dir, e.name));\n }\n\n // Check for .a5c/runs/ at this level\n const runsPath = path.join(dir, \".a5c\", \"runs\");\n try {\n const stat = await fs.stat(runsPath);\n if (stat.isDirectory()) {\n results.push(runsPath);\n }\n } catch {\n // Expected: no .a5c/runs directory at this level — skip silently\n }\n\n // Recurse into subdirectories if within depth\n if (currentDepth < source.depth) {\n const entries = await fs.readdir(dir, { withFileTypes: true });\n for (const entry of entries) {\n if (\n entry.isDirectory() &&\n !entry.name.startsWith(\".\") &&\n entry.name !== \"node_modules\"\n ) {\n await scan(path.join(dir, entry.name), currentDepth + 1);\n }\n }\n }\n } catch (err) {\n if (!isNotFoundError(err)) {\n console.warn(`[config] Cannot scan directory ${dir} (depth=${currentDepth}):`, err);\n }\n }\n }\n\n if (source.depth === 0) {\n // Direct .a5c/runs path — just return runs inside it\n try {\n const entries = await fs.readdir(source.path, { withFileTypes: true });\n return entries\n .filter((e) => e.isDirectory())\n .map((e) => path.join(source.path, e.name));\n } catch (err) {\n console.warn(`[config] Cannot list runs in direct source ${source.path}:`, err);\n return [];\n }\n }\n\n await scan(source.path, 0);\n return results;\n}\n\n// Extract project name from a .a5c/runs/ path\nfunction extractProjectName(runsDir: string): { projectName: string; projectPath: string } {\n // runsDir is like /path/to/project/.a5c/runs\n // projectPath is /path/to/project\n const a5cDir = path.dirname(runsDir); // .a5c\n const projectPath = path.dirname(a5cDir); // project dir\n const projectName = path.basename(projectPath);\n return { projectName, projectPath };\n}\n\n// Cache discovery results to avoid repeated filesystem scanning\nlet discoveryCache: DiscoveredRun[] = [];\nlet discoveryCacheTime = 0;\nconst DISCOVERY_CACHE_TTL = 10000; // 10s — watcher handles real-time changes\n\n// Force re-discovery on next call (called when new runs are detected by watcher)\nexport function invalidateDiscoveryCache(): void {\n discoveryCache = [];\n discoveryCacheTime = 0;\n}\n\n// Get all run directories across all sources\nexport async function discoverAllRunDirs(): Promise<DiscoveredRun[]> {\n const now = Date.now();\n if (discoveryCache.length > 0 && now - discoveryCacheTime < DISCOVERY_CACHE_TTL) {\n return discoveryCache;\n }\n\n const config = await getConfig();\n const allRuns: DiscoveredRun[] = [];\n\n for (const source of config.sources) {\n if (source.depth === 0) {\n // Direct runs directory — list subdirs as individual runs\n // Project name: prefer run.json's projectName, fall back to source label or path\n const fallbackProjectName = source.label || path.basename(source.path);\n try {\n const entries = await fs.readdir(source.path, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory()) {\n // Try to read projectName from run.json for more accurate project grouping\n let projectName = fallbackProjectName;\n try {\n const runJsonPath = path.join(source.path, entry.name, \"run.json\");\n const content = await fs.readFile(runJsonPath, \"utf-8\");\n const json = JSON.parse(content);\n if (json.projectName) {\n projectName = json.projectName;\n }\n } catch (err) {\n // run.json missing is expected for new runs; warn only on parse/permission errors\n if (!isNotFoundError(err)) {\n console.warn(`[config] Failed to read run.json in ${path.join(source.path, entry.name)} — using fallback project name:`, err);\n }\n }\n allRuns.push({\n runDir: path.join(source.path, entry.name),\n source,\n projectName,\n projectPath: source.path,\n });\n }\n }\n } catch (err) {\n console.warn(`[config] Source directory not accessible ${source.path}:`, err);\n }\n } else {\n // Discover .a5c/runs/ directories within depth\n const runsDirs = await discoverRunsInSource(source);\n for (const runsDir of runsDirs) {\n const { projectName, projectPath } = extractProjectName(runsDir);\n try {\n const entries = await fs.readdir(runsDir, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory()) {\n allRuns.push({\n runDir: path.join(runsDir, entry.name),\n source,\n projectName,\n projectPath,\n });\n }\n }\n } catch (err) {\n console.warn(`[config] Cannot read runs directory ${runsDir}:`, err);\n }\n }\n }\n }\n\n // Deduplicate by runId (basename of runDir). When the same run ID appears\n // under multiple .a5c/runs/ directories (e.g. a \"ghost\" .a5c created by a\n // task execution in a subdirectory), keep the first occurrence — which is\n // the shallowest/earliest discovered and typically the one with full data\n // (run.json + journal).\n const seenRunIds = new Map<string, DiscoveredRun>();\n for (const run of allRuns) {\n const runId = path.basename(run.runDir);\n if (!seenRunIds.has(runId)) {\n seenRunIds.set(runId, run);\n } else {\n // Prefer the run directory that has a run.json (i.e. the real one)\n const existing = seenRunIds.get(runId)!;\n const existingHasRunJson = await fs.access(path.join(existing.runDir, \"run.json\")).then(() => true, () => false);\n if (!existingHasRunJson) {\n const candidateHasRunJson = await fs.access(path.join(run.runDir, \"run.json\")).then(() => true, () => false);\n if (candidateHasRunJson) {\n seenRunIds.set(runId, run);\n }\n }\n }\n }\n\n const result = Array.from(seenRunIds.values());\n discoveryCache = result;\n discoveryCacheTime = Date.now();\n return result;\n}\n\n// Discover all .a5c/runs/ parent directories (including empty ones).\n// Used by the watcher to set up watches on directories that don't have runs yet,\n// so that the very first run in a new project is detected immediately.\nexport async function discoverAllRunsParentDirs(): Promise<string[]> {\n const config = await getConfig();\n const allDirs: string[] = [];\n\n for (const source of config.sources) {\n if (source.depth === 0) {\n // Direct runs path — watch the source path itself\n try {\n await fs.access(source.path);\n allDirs.push(source.path);\n } catch (err) {\n console.warn(`[config] Watch source path not accessible ${source.path}:`, err);\n }\n } else {\n const runsDirs = await discoverRunsInSource(source);\n allDirs.push(...runsDirs);\n }\n }\n\n return allDirs;\n}\n","import path from \"path\";\nimport { discoverAllRunDirs, invalidateDiscoveryCache, type DiscoveredRun } from \"./source-discovery\";\n\n// Find a specific run directory by runId across all sources.\n// On cache miss, invalidates the discovery cache and retries once\n// to handle runs created after the last cache refresh.\nexport async function findRunDir(runId: string): Promise<DiscoveredRun | null> {\n const allRuns = await discoverAllRunDirs();\n const found = allRuns.find((r) => path.basename(r.runDir) === runId);\n if (found) return found;\n\n // Cache may be stale — force re-discovery and retry\n invalidateDiscoveryCache();\n const fresh = await discoverAllRunDirs();\n return fresh.find((r) => path.basename(r.runDir) === runId) || null;\n}\n"],"names":["registerServerReference","ensureServerEntryExports","actions","i","length","action","Error","B32_CHARACTERS","ENCODING","ENCODING_LEN","MAX_ULID","MIN_ULID","RANDOM_LEN","TIME_LEN","TIME_MAX","ULID_REGEX","UUID_REGEX","ULIDErrorCode","ULIDError","errorCode","message","name","code","randomChar","prng","randomPosition","Math","floor","charAt","replaceCharAt","str","index","char","substr","crockfordEncode","input","output","bitsRead","buffer","reversedInput","Uint8Array","slice","reverse","byte","unshift","map","join","crockfordDecode","sanitizedInput","toUpperCase","split","character","indexOf","fixULIDBase32","id","replace","incrementBase32","done","undefined","charIndex","maxCharIndex","Base32IncorrectEncoding","decodeTime","DecodeTimeValueMalformed","time","reduce","carry","encodingIndex","DecodeTimeInvalidCharacter","pow","detectPRNG","root","rootLookup","detectRoot","globalCrypto","crypto","msCrypto","getRandomValues","randomBytes","readUInt8","PRNGDetectFailure","inWebWorker","self","encodeRandom","len","encodeTime","now","isNaN","EncodeTimeValueMalformed","EncodeTimeSizeExceeded","EncodeTimeNegative","Number","isInteger","mod","currentLen","WorkerGlobalScope","isValid","every","monotonicFactory","currentPRNG","lastTime","lastRandom","_ulid","seedTime","seed","Date","incrementedRandom","newRandom","ulid","ulidToUUID","test","ULIDInvalid","uint8Array","uuid","Array","from","toString","padStart","substring","uuidToULID","UUIDInvalid","bytes","match","Unexpected","parseInt"],"mappings":"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","ignoreList":[0,1,3]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},53637,a=>{a.v("/_next/static/media/icon.08ljfy7xai2x_.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},87416,a=>{"use strict";let b={src:a.i(53637).default,width:32,height:32};a.s(["default",0,b])},4276,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>"))},82509,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js"))},66114,a=>{"use strict";a.i(4276);var b=a.i(82509);a.n(b)},62212,a=>{a.n(a.i(66114))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__02jgvbi._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../../../packages/observer-dashboard/src/app/icon.svg.mjs%20%28structured%20image%20object%29","../../../../../../node_modules/next/dist/client/components/builtin/global-error.js/__nextjs-internal-proxy.cjs","../../../../../../node_modules/next/src/client/components/builtin/global-error.tsx"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","import src from \"IMAGE\";\nexport default { src, width: 32, height: 32 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/client/components/builtin/global-error.js\"));\n","'use client'\n\nimport React from 'react'\nimport { handleISRError } from '../handle-isr-error'\nimport { errorStyles, errorThemeCss, WarningIcon } from './error-styles'\n\nexport type GlobalErrorComponent = React.ComponentType<{\n error: any\n reset: () => void\n unstable_retry: () => void\n}>\n\nfunction DefaultGlobalError({ error }: { error: any }) {\n const digest: string | undefined = error?.digest\n const isServerError = !!digest\n\n const message = isServerError\n ? 'A server error occurred. Reload to try again.'\n : 'Reload to try again, or go back.'\n\n handleISRError({ error })\n\n return (\n <html id=\"__next_error__\">\n <head>\n <style dangerouslySetInnerHTML={{ __html: errorThemeCss }} />\n </head>\n <body>\n <div style={errorStyles.container}>\n <div style={errorStyles.card}>\n <WarningIcon />\n <h1 style={errorStyles.title}>This page couldn’t load</h1>\n <p style={errorStyles.message}>{message}</p>\n <div style={errorStyles.buttonGroup}>\n <form style={errorStyles.form}>\n <button type=\"submit\" style={errorStyles.button}>\n Reload\n </button>\n </form>\n {!isServerError && (\n <button\n type=\"button\"\n style={errorStyles.buttonSecondary}\n onClick={() => {\n if (window.history.length > 1) {\n window.history.back()\n } else {\n window.location.href = '/'\n }\n }}\n >\n Back\n </button>\n )}\n </div>\n </div>\n </div>\n {digest && <p style={errorStyles.digestFooter}>ERROR {digest}</p>}\n </body>\n </html>\n )\n}\n\n// Exported so that the import signature in the loaders can be identical to user\n// supplied custom global error signatures.\nexport default DefaultGlobalError\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","src","width","height","createClientModuleProxy","__turbopack_context__","n","DefaultGlobalError","error","digest","isServerError","message","handleISRError","html","id","head","style","dangerouslySetInnerHTML","__html","errorThemeCss","body","div","errorStyles","container","card","WarningIcon","h1","title","p","buttonGroup","form","button","type","buttonSecondary","onClick","window","history","length","back","location","href","digestFooter"],"mappings":"uLA0BQG,EAAOC,OAAO,CAAGC,EAAQ,CAAA,CAAA,IAAA,0/BCzBlB,CAAEI,IADjB,AACiBA,EADjB,CAAA,CAAA,OACiBA,OAAG,CAAEC,MAAO,GAAIC,OAAQ,EAAG,uCCA5C,GAAM,yBAAEC,CAAuB,CAAE,CAAA,EAAA,CAAA,CAAA,OAEjCC,EAAsBC,CAAC,CAACF,EAAwB,oHAFhD,GAAM,CAAEA,yBAAuB,CAAE,CAAA,EAAA,CAAA,CAAA,OAEjCC,EAAsBC,CAAC,CAACF,EAAwB","ignoreList":[0,2]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71306,(a,b,c)=>{b.exports=a.r(18622)},79847,a=>{a.n(a.i(3343))},9185,a=>{a.n(a.i(29432))},72842,a=>{a.n(a.i(75164))},54897,a=>{a.n(a.i(30106))},56157,a=>{a.n(a.i(18970))},94331,a=>{a.n(a.i(60644))},15988,a=>{a.n(a.i(56952))},25766,a=>{a.n(a.i(77341))},29725,a=>{a.n(a.i(94290))},5785,a=>{a.n(a.i(90588))},74793,a=>{a.n(a.i(33169))},85826,a=>{a.n(a.i(37111))},21565,a=>{a.n(a.i(41763))},65911,a=>{a.n(a.i(8950))},25128,a=>{a.n(a.i(91562))},40781,a=>{a.n(a.i(49670))},69411,a=>{a.n(a.i(75700))},63081,a=>{a.n(a.i(276))},62837,a=>{a.n(a.i(40795))},34607,a=>{a.n(a.i(11614))},96338,a=>{a.n(a.i(21751))},50642,a=>{a.n(a.i(12213))},32242,a=>{a.n(a.i(22693))},88530,a=>{a.n(a.i(10531))},8583,a=>{a.n(a.i(1082))},38534,a=>{a.n(a.i(98175))},70408,a=>{a.n(a.i(9095))},22922,a=>{a.n(a.i(96772))},78294,a=>{a.n(a.i(71717))},16625,a=>{a.n(a.i(85034))},88648,a=>{a.n(a.i(68113))},51914,a=>{a.n(a.i(66482))},25466,a=>{a.n(a.i(91505))},53637,a=>{a.v("/_next/static/media/icon.08ljfy7xai2x_.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},87416,a=>{"use strict";let b={src:a.i(53637).default,width:32,height:32};a.s(["default",0,b])},18517,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/packages/observer-dashboard/src/app/runs/[runId]/page.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/observer-dashboard/src/app/runs/[runId]/page.tsx <module evaluation>","default")},78337,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/packages/observer-dashboard/src/app/runs/[runId]/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/observer-dashboard/src/app/runs/[runId]/page.tsx","default")},32289,a=>{"use strict";a.i(18517);var b=a.i(78337);a.n(b)},76678,a=>{a.n(a.i(32289))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__04j8t~1._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../../../packages/observer-dashboard/src/app/icon.svg.mjs%20%28structured%20image%20object%29","../../../../../../packages/observer-dashboard/src/app/runs/%5BrunId%5D/page.tsx/__nextjs-internal-proxy.mjs"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","import src from \"IMAGE\";\nexport default { src, width: 32, height: 32 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/packages/observer-dashboard/src/app/runs/[runId]/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/observer-dashboard/src/app/runs/[runId]/page.tsx\",\n \"default\",\n);\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","src","width","height","Error"],"mappings":"uLA0BQG,EAAOC,OAAO,CAAGC,EAAQ,CAAA,CAAA,IAAA,0/BCzBlB,CAAEI,IADjB,AACiBA,EADjB,CAAA,CAAA,OACiBA,OAAG,CAAEC,MAAO,GAAIC,OAAQ,EAAG,4ECC7B,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIC,MAAM,2TAA6T,EAC1V,0FACA,gEAHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,uSAAyS,EACtU,sEACA","ignoreList":[0,2]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},51234,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"handleISRError",{enumerable:!0,get:function(){return e}});let d=a.r(56704).workAsyncStorage;function e({error:a}){if(d){let b=d.getStore();if(b?.isStaticGeneration)throw a&&console.error(a),a}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},57068,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});a.r(33354);let f=a.r(87924);a.r(72131);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
|
|
2
|
+
:root {
|
|
3
|
+
--next-error-bg: #fff;
|
|
4
|
+
--next-error-text: #171717;
|
|
5
|
+
--next-error-title: #171717;
|
|
6
|
+
--next-error-message: #171717;
|
|
7
|
+
--next-error-digest: #666666;
|
|
8
|
+
--next-error-btn-text: #fff;
|
|
9
|
+
--next-error-btn-bg: #171717;
|
|
10
|
+
--next-error-btn-border: none;
|
|
11
|
+
--next-error-btn-secondary-text: #171717;
|
|
12
|
+
--next-error-btn-secondary-bg: transparent;
|
|
13
|
+
--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);
|
|
14
|
+
}
|
|
15
|
+
@media (prefers-color-scheme: dark) {
|
|
16
|
+
:root {
|
|
17
|
+
--next-error-bg: #0a0a0a;
|
|
18
|
+
--next-error-text: #ededed;
|
|
19
|
+
--next-error-title: #ededed;
|
|
20
|
+
--next-error-message: #ededed;
|
|
21
|
+
--next-error-digest: #a0a0a0;
|
|
22
|
+
--next-error-btn-text: #0a0a0a;
|
|
23
|
+
--next-error-btn-bg: #ededed;
|
|
24
|
+
--next-error-btn-border: none;
|
|
25
|
+
--next-error-btn-secondary-text: #ededed;
|
|
26
|
+
--next-error-btn-secondary-bg: transparent;
|
|
27
|
+
--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
|
|
31
|
+
`.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},40622,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}}),a.r(33354);let d=a.r(87924);a.r(72131);let e=a.r(51234),f=a.r(57068),g=function({error:a}){let b=a?.digest,c=!!b;return(0,e.handleISRError)({error:a}),(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsx)("head",{children:(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:f.errorThemeCss}})}),(0,d.jsxs)("body",{children:[(0,d.jsx)("div",{style:f.errorStyles.container,children:(0,d.jsxs)("div",{style:f.errorStyles.card,children:[(0,d.jsx)(f.WarningIcon,{}),(0,d.jsx)("h1",{style:f.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:f.errorStyles.message,children:c?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,d.jsxs)("div",{style:f.errorStyles.buttonGroup,children:[(0,d.jsx)("form",{style:f.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:f.errorStyles.button,children:"Reload"})}),!c&&(0,d.jsx)("button",{type:"button",style:f.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),b&&(0,d.jsxs)("p",{style:f.errorStyles.digestFooter,children:["ERROR ",b]})]})]})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__09c~s.0._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../../../node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../../../node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/next/src/client/components/handle-isr-error.tsx","../../../../../../node_modules/next/src/client/components/builtin/error-styles.tsx","../../../../../../node_modules/next/src/client/components/builtin/global-error.tsx"],"sourcesContent":["module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","const workAsyncStorage =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external')\n ).workAsyncStorage\n : undefined\n\n// if we are revalidating we want to re-throw the error so the\n// function crashes so we can maintain our previous cache\n// instead of caching the error page\nexport function handleISRError({ error }: { error: any }) {\n if (workAsyncStorage) {\n const store = workAsyncStorage.getStore()\n if (store?.isStaticGeneration) {\n if (error) {\n console.error(error)\n }\n throw error\n }\n }\n}\n","import React from 'react'\n\nexport const errorStyles = {\n container: {\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n card: {\n marginTop: '-32px',\n maxWidth: '325px',\n padding: '32px 28px',\n textAlign: 'left' as const,\n },\n icon: {\n marginBottom: '24px',\n },\n title: {\n fontSize: '24px',\n fontWeight: 500,\n letterSpacing: '-0.02em',\n lineHeight: '32px',\n margin: '0 0 12px 0',\n color: 'var(--next-error-title)',\n },\n message: {\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '21px',\n margin: '0 0 20px 0',\n color: 'var(--next-error-message)',\n },\n form: {\n margin: 0,\n },\n buttonGroup: {\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n },\n button: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '32px',\n padding: '0 12px',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n borderRadius: '6px',\n cursor: 'pointer',\n color: 'var(--next-error-btn-text)',\n background: 'var(--next-error-btn-bg)',\n border: 'var(--next-error-btn-border)',\n },\n buttonSecondary: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '32px',\n padding: '0 12px',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n borderRadius: '6px',\n cursor: 'pointer',\n color: 'var(--next-error-btn-secondary-text)',\n background: 'var(--next-error-btn-secondary-bg)',\n border: 'var(--next-error-btn-secondary-border)',\n },\n digestFooter: {\n position: 'fixed' as const,\n bottom: '32px',\n left: '0',\n right: '0',\n textAlign: 'center' as const,\n fontFamily:\n 'ui-monospace,SFMono-Regular,\"SF Mono\",Menlo,Consolas,monospace',\n fontSize: '12px',\n lineHeight: '18px',\n fontWeight: 400,\n margin: '0',\n color: 'var(--next-error-digest)',\n },\n} as const\n\nexport const errorThemeCss = `\n:root {\n --next-error-bg: #fff;\n --next-error-text: #171717;\n --next-error-title: #171717;\n --next-error-message: #171717;\n --next-error-digest: #666666;\n --next-error-btn-text: #fff;\n --next-error-btn-bg: #171717;\n --next-error-btn-border: none;\n --next-error-btn-secondary-text: #171717;\n --next-error-btn-secondary-bg: transparent;\n --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);\n}\n@media (prefers-color-scheme: dark) {\n :root {\n --next-error-bg: #0a0a0a;\n --next-error-text: #ededed;\n --next-error-title: #ededed;\n --next-error-message: #ededed;\n --next-error-digest: #a0a0a0;\n --next-error-btn-text: #0a0a0a;\n --next-error-btn-bg: #ededed;\n --next-error-btn-border: none;\n --next-error-btn-secondary-text: #ededed;\n --next-error-btn-secondary-bg: transparent;\n --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);\n }\n}\nbody { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\n`.replace(/\\n\\s*/g, '')\n\nexport function WarningIcon() {\n return (\n <svg\n width=\"32\"\n height=\"32\"\n viewBox=\"-0.2 -1.5 32 32\"\n fill=\"none\"\n style={errorStyles.icon}\n >\n <path\n d=\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\"\n fill=\"var(--next-error-title)\"\n />\n </svg>\n )\n}\n","'use client'\n\nimport React from 'react'\nimport { handleISRError } from '../handle-isr-error'\nimport { errorStyles, errorThemeCss, WarningIcon } from './error-styles'\n\nexport type GlobalErrorComponent = React.ComponentType<{\n error: any\n reset: () => void\n unstable_retry: () => void\n}>\n\nfunction DefaultGlobalError({ error }: { error: any }) {\n const digest: string | undefined = error?.digest\n const isServerError = !!digest\n\n const message = isServerError\n ? 'A server error occurred. Reload to try again.'\n : 'Reload to try again, or go back.'\n\n handleISRError({ error })\n\n return (\n <html id=\"__next_error__\">\n <head>\n <style dangerouslySetInnerHTML={{ __html: errorThemeCss }} />\n </head>\n <body>\n <div style={errorStyles.container}>\n <div style={errorStyles.card}>\n <WarningIcon />\n <h1 style={errorStyles.title}>This page couldn’t load</h1>\n <p style={errorStyles.message}>{message}</p>\n <div style={errorStyles.buttonGroup}>\n <form style={errorStyles.form}>\n <button type=\"submit\" style={errorStyles.button}>\n Reload\n </button>\n </form>\n {!isServerError && (\n <button\n type=\"button\"\n style={errorStyles.buttonSecondary}\n onClick={() => {\n if (window.history.length > 1) {\n window.history.back()\n } else {\n window.location.href = '/'\n }\n }}\n >\n Back\n </button>\n )}\n </div>\n </div>\n </div>\n {digest && <p style={errorStyles.digestFooter}>ERROR {digest}</p>}\n </body>\n </html>\n )\n}\n\n// Exported so that the import signature in the loaders can be identical to user\n// supplied custom global error signatures.\nexport default DefaultGlobalError\n"],"names":["module","exports","require","vendored","ReactDOM","HooksClientContext","ServerInsertedHtml","process","env","NEXT_RUNTIME","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","ReactJsxRuntime","React","AppRouterContext","ReactServerDOMTurbopackClient","_interop_require_default","obj","__esModule","default","_","handleISRError","workAsyncStorage","window","undefined","error","store","getStore","isStaticGeneration","console","WarningIcon","errorStyles","errorThemeCss","container","fontFamily","height","display","alignItems","justifyContent","card","marginTop","maxWidth","padding","textAlign","icon","marginBottom","title","fontSize","fontWeight","letterSpacing","lineHeight","margin","color","message","form","buttonGroup","gap","button","borderRadius","cursor","background","border","buttonSecondary","digestFooter","position","bottom","left","right","replace","svg","width","viewBox","fill","style","path","d","DefaultGlobalError","digest","isServerError","html","id","head","dangerouslySetInnerHTML","__html","body","div","h1","p","type","onClick","history","length","back","location","href"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},28978,a=>{"use strict";var b=a.i(55738);a.s([],88680),a.i(88680),a.s(["701608e6b4ba3d1d98216ed1071673a54ce642a4e6",()=>b.approveBreakpoint],28978)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0cpy61n._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/observer-dashboard/.next-internal/server/app/runs/%5BrunId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {approveBreakpoint as '701608e6b4ba3d1d98216ed1071673a54ce642a4e6'} from 'ACTIONS_MODULE0'\n"],"names":[],"mappings":"oNAAA,IAAA,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},18031,a=>{"use strict";var b=a.i(55738);a.s([],58379),a.i(58379),a.s(["701608e6b4ba3d1d98216ed1071673a54ce642a4e6",()=>b.approveBreakpoint],18031)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0cwa32j._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/observer-dashboard/.next-internal/server/app/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {approveBreakpoint as '701608e6b4ba3d1d98216ed1071673a54ce642a4e6'} from 'ACTIONS_MODULE0'\n"],"names":[],"mappings":"oNAAA,IAAA,EAAA,EAAA,CAAA,CAAA"}
|