miclaw-app 0.1.0
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/standalone/.next/BUILD_ID +1 -0
- package/.next/standalone/.next/app-path-routes-manifest.json +14 -0
- package/.next/standalone/.next/build-manifest.json +20 -0
- package/.next/standalone/.next/package.json +1 -0
- package/.next/standalone/.next/prerender-manifest.json +282 -0
- package/.next/standalone/.next/required-server-files.json +333 -0
- package/.next/standalone/.next/routes-manifest.json +120 -0
- package/.next/standalone/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/standalone/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/_global-error/page.js +10 -0
- package/.next/standalone/.next/server/app/_global-error/page.js.map +5 -0
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/_global-error.html +1 -0
- package/.next/standalone/.next/server/app/_global-error.meta +15 -0
- package/.next/standalone/.next/server/app/_global-error.rsc +15 -0
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/standalone/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/_not-found/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/_not-found/page.js +13 -0
- package/.next/standalone/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/_not-found.html +9 -0
- package/.next/standalone/.next/server/app/_not-found.meta +16 -0
- package/.next/standalone/.next/server/app/_not-found.rsc +17 -0
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +17 -0
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/standalone/.next/server/app/agents/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/agents/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/agents/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/agents/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/agents/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/agents/page.js +15 -0
- package/.next/standalone/.next/server/app/agents/page.js.map +5 -0
- package/.next/standalone/.next/server/app/agents/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/agents.html +30 -0
- package/.next/standalone/.next/server/app/agents.meta +15 -0
- package/.next/standalone/.next/server/app/agents.rsc +345 -0
- package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +345 -0
- package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +331 -0
- package/.next/standalone/.next/server/app/agents.segments/agents.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/commands/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/commands/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/commands/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/commands/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/commands/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/commands/page.js +15 -0
- package/.next/standalone/.next/server/app/commands/page.js.map +5 -0
- package/.next/standalone/.next/server/app/commands/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/commands/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/commands.html +33 -0
- package/.next/standalone/.next/server/app/commands.meta +15 -0
- package/.next/standalone/.next/server/app/commands.rsc +1672 -0
- package/.next/standalone/.next/server/app/commands.segments/_full.segment.rsc +1672 -0
- package/.next/standalone/.next/server/app/commands.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/commands.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/commands.segments/_tree.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/commands.segments/commands/__PAGE__.segment.rsc +1658 -0
- package/.next/standalone/.next/server/app/commands.segments/commands.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/favicon.ico/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/favicon.ico/route.js +6 -0
- package/.next/standalone/.next/server/app/favicon.ico/route.js.map +5 -0
- package/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/favicon.ico.body +0 -0
- package/.next/standalone/.next/server/app/favicon.ico.meta +1 -0
- package/.next/standalone/.next/server/app/hooks/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/hooks/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/hooks/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/hooks/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/hooks/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/hooks/page.js +15 -0
- package/.next/standalone/.next/server/app/hooks/page.js.map +5 -0
- package/.next/standalone/.next/server/app/hooks/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/hooks/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/hooks.html +9 -0
- package/.next/standalone/.next/server/app/hooks.meta +15 -0
- package/.next/standalone/.next/server/app/hooks.rsc +21 -0
- package/.next/standalone/.next/server/app/hooks.segments/_full.segment.rsc +21 -0
- package/.next/standalone/.next/server/app/hooks.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/hooks.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/hooks.segments/_tree.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/hooks.segments/hooks/__PAGE__.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/hooks.segments/hooks.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/index.html +83 -0
- package/.next/standalone/.next/server/app/index.meta +14 -0
- package/.next/standalone/.next/server/app/index.rsc +20 -0
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +8 -0
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +20 -0
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/mcp/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/mcp/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/mcp/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/mcp/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/mcp/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/mcp/page.js +15 -0
- package/.next/standalone/.next/server/app/mcp/page.js.map +5 -0
- package/.next/standalone/.next/server/app/mcp/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/mcp/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/mcp.html +9 -0
- package/.next/standalone/.next/server/app/mcp.meta +15 -0
- package/.next/standalone/.next/server/app/mcp.rsc +23 -0
- package/.next/standalone/.next/server/app/mcp.segments/_full.segment.rsc +23 -0
- package/.next/standalone/.next/server/app/mcp.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/mcp.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/mcp.segments/_tree.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/mcp.segments/mcp/__PAGE__.segment.rsc +8 -0
- package/.next/standalone/.next/server/app/mcp.segments/mcp.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/page.js +15 -0
- package/.next/standalone/.next/server/app/page.js.map +5 -0
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page.js +16 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page.js.map +5 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/rules/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/rules/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/rules/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/rules/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/rules/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/rules/page.js +15 -0
- package/.next/standalone/.next/server/app/rules/page.js.map +5 -0
- package/.next/standalone/.next/server/app/rules/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/rules/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/rules.html +72 -0
- package/.next/standalone/.next/server/app/rules.meta +15 -0
- package/.next/standalone/.next/server/app/rules.rsc +2358 -0
- package/.next/standalone/.next/server/app/rules.segments/_full.segment.rsc +2358 -0
- package/.next/standalone/.next/server/app/rules.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/rules.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/rules.segments/_tree.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/rules.segments/rules/__PAGE__.segment.rsc +2344 -0
- package/.next/standalone/.next/server/app/rules.segments/rules.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/settings/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/settings/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/settings/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/settings/page.js +15 -0
- package/.next/standalone/.next/server/app/settings/page.js.map +5 -0
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/settings.html +56 -0
- package/.next/standalone/.next/server/app/settings.meta +15 -0
- package/.next/standalone/.next/server/app/settings.rsc +226 -0
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +226 -0
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +211 -0
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/skills/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/skills/page/build-manifest.json +16 -0
- package/.next/standalone/.next/server/app/skills/page/next-font-manifest.json +12 -0
- package/.next/standalone/.next/server/app/skills/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/skills/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/skills/page.js +15 -0
- package/.next/standalone/.next/server/app/skills/page.js.map +5 -0
- package/.next/standalone/.next/server/app/skills/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/skills/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/skills.html +30 -0
- package/.next/standalone/.next/server/app/skills.meta +15 -0
- package/.next/standalone/.next/server/app/skills.rsc +1111 -0
- package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +1111 -0
- package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +5 -0
- package/.next/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1097 -0
- package/.next/standalone/.next/server/app/skills.segments/skills.segment.rsc +5 -0
- package/.next/standalone/.next/server/app-paths-manifest.json +14 -0
- package/.next/standalone/.next/server/chunks/[externals]_next_dist_0arv.vj._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0teziyo._.js +13 -0
- package/.next/standalone/.next/server/chunks/[turbopack]_runtime.js +903 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.pno0_._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06czxzo._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06ipj7k._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08c9t2b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09x1iac._.js +33 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09z7o2x._.js +19 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0beg-.s._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bm8p5g._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ca-xeh._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dey16.._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fvw3d8._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qk5gqw._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s0h9e0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0u-t242._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xl6e~c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xrk31o._.js +33 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y_d026._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
- package/.next/standalone/.next/server/chunks/ssr/_09kkdgy._.js +6 -0
- package/.next/standalone/.next/server/chunks/ssr/_0g8yqoe._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_agents_page_actions_07l1ss4.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_commands_page_actions_0npst50.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_hooks_page_actions_0a_tx-6.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_mcp_page_actions_00_op~_.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_page_actions_0xg3f7c.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_rules_page_actions_0xcrbur.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_0mr68ai.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_skills_page_actions_0cxzzu-.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_09w7yel._.js +33 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0sy8gnb._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_0e1izl_._.js +6 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03-z2qq.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06b_a87.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_071geea.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07vh7rm.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08617.g.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dlz56b.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fnc180.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0iktlcc.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qp4u6g.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0t-uic4.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0v9mjz4.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/src_components_ExpandableBody_tsx_0-ivqwg._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_components_SphereView_tsx_0q2ope8._.js +13 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +4 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +20 -0
- package/.next/standalone/.next/server/middleware-manifest.json +6 -0
- package/.next/standalone/.next/server/next-font-manifest.js +1 -0
- package/.next/standalone/.next/server/next-font-manifest.json +57 -0
- package/.next/standalone/.next/server/pages/404.html +9 -0
- package/.next/standalone/.next/server/pages/500.html +1 -0
- package/.next/standalone/.next/server/pages-manifest.json +4 -0
- package/.next/standalone/.next/server/prefetch-hints.json +1 -0
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/server-reference-manifest.json +5 -0
- package/.next/standalone/node_modules/@img/colour/color.cjs +1596 -0
- package/.next/standalone/node_modules/@img/colour/index.cjs +1 -0
- package/.next/standalone/node_modules/@img/colour/package.json +58 -0
- package/.next/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/.next/standalone/node_modules/@img/sharp-darwin-arm64/package.json +40 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/README.md +46 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +220 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +1 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/package.json +36 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +30 -0
- package/.next/standalone/node_modules/@next/env/dist/index.js +1 -0
- package/.next/standalone/node_modules/@next/env/package.json +36 -0
- package/.next/standalone/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
- package/.next/standalone/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
- package/.next/standalone/node_modules/@swc/helpers/package.json +471 -0
- package/.next/standalone/node_modules/client-only/index.js +0 -0
- package/.next/standalone/node_modules/client-only/package.json +19 -0
- package/.next/standalone/node_modules/detect-libc/lib/detect-libc.js +313 -0
- package/.next/standalone/node_modules/detect-libc/lib/elf.js +39 -0
- package/.next/standalone/node_modules/detect-libc/lib/filesystem.js +51 -0
- package/.next/standalone/node_modules/detect-libc/lib/process.js +24 -0
- package/.next/standalone/node_modules/detect-libc/package.json +44 -0
- package/.next/standalone/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
- package/.next/standalone/node_modules/next/dist/build/define-env.js +255 -0
- package/.next/standalone/node_modules/next/dist/build/duration-to-string.js +99 -0
- package/.next/standalone/node_modules/next/dist/build/get-supported-browsers.js +38 -0
- package/.next/standalone/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
- package/.next/standalone/node_modules/next/dist/build/next-config-ts/transpile-config.js +251 -0
- package/.next/standalone/node_modules/next/dist/build/output/format.js +84 -0
- package/.next/standalone/node_modules/next/dist/build/output/log.js +135 -0
- package/.next/standalone/node_modules/next/dist/build/segment-config/app/app-segment-config.js +162 -0
- package/.next/standalone/node_modules/next/dist/build/segment-config/app/app-segments.js +137 -0
- package/.next/standalone/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
- package/.next/standalone/node_modules/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +137 -0
- package/.next/standalone/node_modules/next/dist/build/static-paths/app.js +735 -0
- package/.next/standalone/node_modules/next/dist/build/static-paths/pages.js +169 -0
- package/.next/standalone/node_modules/next/dist/build/static-paths/utils.js +119 -0
- package/.next/standalone/node_modules/next/dist/build/swc/helpers.js +15 -0
- package/.next/standalone/node_modules/next/dist/build/swc/index.js +1348 -0
- package/.next/standalone/node_modules/next/dist/build/swc/install-bindings.js +30 -0
- package/.next/standalone/node_modules/next/dist/build/swc/jest-transformer.js +76 -0
- package/.next/standalone/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
- package/.next/standalone/node_modules/next/dist/build/swc/options.js +403 -0
- package/.next/standalone/node_modules/next/dist/build/swc/types.js +6 -0
- package/.next/standalone/node_modules/next/dist/build/utils.js +1215 -0
- package/.next/standalone/node_modules/next/dist/cli/next-test.js +170 -0
- package/.next/standalone/node_modules/next/dist/client/add-base-path.js +24 -0
- package/.next/standalone/node_modules/next/dist/client/app-call-server.js +34 -0
- package/.next/standalone/node_modules/next/dist/client/app-find-source-map-url.js +39 -0
- package/.next/standalone/node_modules/next/dist/client/assign-location.js +29 -0
- package/.next/standalone/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
- package/.next/standalone/node_modules/next/dist/client/components/app-router-headers.js +138 -0
- package/.next/standalone/node_modules/next/dist/client/components/app-router-instance.js +397 -0
- package/.next/standalone/node_modules/next/dist/client/components/app-router-utils.js +62 -0
- package/.next/standalone/node_modules/next/dist/client/components/app-router.js +514 -0
- package/.next/standalone/node_modules/next/dist/client/components/builtin/default.js +35 -0
- package/.next/standalone/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
- package/.next/standalone/node_modules/next/dist/client/components/builtin/global-error.js +100 -0
- package/.next/standalone/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
- package/.next/standalone/node_modules/next/dist/client/components/error-boundary.js +144 -0
- package/.next/standalone/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
- package/.next/standalone/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
- package/.next/standalone/node_modules/next/dist/client/components/forbidden.js +48 -0
- package/.next/standalone/node_modules/next/dist/client/components/handle-isr-error.js +30 -0
- package/.next/standalone/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
- package/.next/standalone/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
- package/.next/standalone/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
- package/.next/standalone/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
- package/.next/standalone/node_modules/next/dist/client/components/links.js +299 -0
- package/.next/standalone/node_modules/next/dist/client/components/match-segments.js +32 -0
- package/.next/standalone/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
- package/.next/standalone/node_modules/next/dist/client/components/navigation-devtools.js +126 -0
- package/.next/standalone/node_modules/next/dist/client/components/navigation-untracked.js +67 -0
- package/.next/standalone/node_modules/next/dist/client/components/navigation.js +225 -0
- package/.next/standalone/node_modules/next/dist/client/components/navigation.react-server.js +75 -0
- package/.next/standalone/node_modules/next/dist/client/components/not-found.js +42 -0
- package/.next/standalone/node_modules/next/dist/client/components/readonly-url-search-params.js +41 -0
- package/.next/standalone/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
- package/.next/standalone/node_modules/next/dist/client/components/redirect-error.js +43 -0
- package/.next/standalone/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
- package/.next/standalone/node_modules/next/dist/client/components/redirect.js +91 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +201 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +153 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +457 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +59 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +1341 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +63 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +23 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +56 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +83 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +62 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +320 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +58 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +70 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/router-reducer.js +66 -0
- package/.next/standalone/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +60 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/bfcache.js +128 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/cache-key.js +28 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/cache-map.js +305 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +1933 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/lru.js +152 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +194 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +597 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +543 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/prefetch.js +31 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +1249 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/types.js +69 -0
- package/.next/standalone/node_modules/next/dist/client/components/segment-cache/vary-path.js +278 -0
- package/.next/standalone/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
- package/.next/standalone/node_modules/next/dist/client/components/unauthorized.js +49 -0
- package/.next/standalone/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
- package/.next/standalone/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
- package/.next/standalone/node_modules/next/dist/client/components/unstable-rethrow.browser.js +28 -0
- package/.next/standalone/node_modules/next/dist/client/components/unstable-rethrow.js +25 -0
- package/.next/standalone/node_modules/next/dist/client/components/unstable-rethrow.server.js +32 -0
- package/.next/standalone/node_modules/next/dist/client/components/use-action-queue.js +148 -0
- package/.next/standalone/node_modules/next/dist/client/dev/debug-channel.js +72 -0
- package/.next/standalone/node_modules/next/dist/client/flight-data-helpers.js +232 -0
- package/.next/standalone/node_modules/next/dist/client/has-base-path.js +23 -0
- package/.next/standalone/node_modules/next/dist/client/lib/console.js +177 -0
- package/.next/standalone/node_modules/next/dist/client/lib/javascript-url.js +32 -0
- package/.next/standalone/node_modules/next/dist/client/navigation-build-id.js +53 -0
- package/.next/standalone/node_modules/next/dist/client/normalize-trailing-slash.js +36 -0
- package/.next/standalone/node_modules/next/dist/client/remove-base-path.js +32 -0
- package/.next/standalone/node_modules/next/dist/client/route-params.js +230 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/async-retry/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/async-retry/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/async-sema/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/async-sema/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/busboy/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/busboy/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/bytes/index.js +8 -0
- package/.next/standalone/node_modules/next/dist/compiled/bytes/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/ci-info/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/ci-info/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/commander/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/commander/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/comment-json/index.js +7 -0
- package/.next/standalone/node_modules/next/dist/compiled/comment-json/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/compression/index.js +58 -0
- package/.next/standalone/node_modules/next/dist/compiled/compression/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/conf/index.js +15 -0
- package/.next/standalone/node_modules/next/dist/compiled/conf/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
- package/.next/standalone/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/cookie/index.js +7 -0
- package/.next/standalone/node_modules/next/dist/compiled/cookie/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/debug/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/debug/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/find-up/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/find-up/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/fresh/index.js +8 -0
- package/.next/standalone/node_modules/next/dist/compiled/fresh/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/http-proxy/index.js +34 -0
- package/.next/standalone/node_modules/next/dist/compiled/http-proxy/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/image-size/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/image-size/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/is-animated/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/is-animated/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/is-docker/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/is-docker/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
- package/.next/standalone/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/nanoid/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +54 -0
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +54 -0
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
- package/.next/standalone/node_modules/next/dist/compiled/p-limit/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/p-limit/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/p-queue/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/p-queue/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/picomatch/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/picomatch/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
- package/.next/standalone/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
- package/.next/standalone/node_modules/next/dist/compiled/react-is/index.js +7 -0
- package/.next/standalone/node_modules/next/dist/compiled/react-is/package.json +26 -0
- package/.next/standalone/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
- package/.next/standalone/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
- package/.next/standalone/node_modules/next/dist/compiled/semver/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/semver/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/send/index.js +70 -0
- package/.next/standalone/node_modules/next/dist/compiled/send/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/source-map/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/string-hash/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/string-hash/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/superstruct/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/tar/index.min.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/tar/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/text-table/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/text-table/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/watchpack/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/ws/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/ws/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/zod/index.cjs +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/zod/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
- package/.next/standalone/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
- package/.next/standalone/node_modules/next/dist/experimental/testmode/context.js +57 -0
- package/.next/standalone/node_modules/next/dist/experimental/testmode/fetch.js +142 -0
- package/.next/standalone/node_modules/next/dist/experimental/testmode/httpget.js +26 -0
- package/.next/standalone/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
- package/.next/standalone/node_modules/next/dist/experimental/testmode/server.js +62 -0
- package/.next/standalone/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
- package/.next/standalone/node_modules/next/dist/lib/batcher.js +65 -0
- package/.next/standalone/node_modules/next/dist/lib/build-custom-route.js +46 -0
- package/.next/standalone/node_modules/next/dist/lib/bundler.js +97 -0
- package/.next/standalone/node_modules/next/dist/lib/client-and-server-references.js +54 -0
- package/.next/standalone/node_modules/next/dist/lib/coalesced-function.js +39 -0
- package/.next/standalone/node_modules/next/dist/lib/compile-error.js +14 -0
- package/.next/standalone/node_modules/next/dist/lib/constants.js +420 -0
- package/.next/standalone/node_modules/next/dist/lib/create-client-router-filter.js +67 -0
- package/.next/standalone/node_modules/next/dist/lib/default-transpiled-packages.json +1 -0
- package/.next/standalone/node_modules/next/dist/lib/detached-promise.js +32 -0
- package/.next/standalone/node_modules/next/dist/lib/detect-typo.js +51 -0
- package/.next/standalone/node_modules/next/dist/lib/download-swc.js +183 -0
- package/.next/standalone/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
- package/.next/standalone/node_modules/next/dist/lib/fallback.js +100 -0
- package/.next/standalone/node_modules/next/dist/lib/fatal-error.js +14 -0
- package/.next/standalone/node_modules/next/dist/lib/file-exists.js +53 -0
- package/.next/standalone/node_modules/next/dist/lib/find-config.js +102 -0
- package/.next/standalone/node_modules/next/dist/lib/find-pages-dir.js +65 -0
- package/.next/standalone/node_modules/next/dist/lib/find-root.js +126 -0
- package/.next/standalone/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
- package/.next/standalone/node_modules/next/dist/lib/format-dynamic-import-path.js +24 -0
- package/.next/standalone/node_modules/next/dist/lib/format-server-error.js +75 -0
- package/.next/standalone/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
- package/.next/standalone/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
- package/.next/standalone/node_modules/next/dist/lib/fs/rename.js +87 -0
- package/.next/standalone/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
- package/.next/standalone/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +52 -0
- package/.next/standalone/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
- package/.next/standalone/node_modules/next/dist/lib/get-network-host.js +44 -0
- package/.next/standalone/node_modules/next/dist/lib/get-package-version.js +118 -0
- package/.next/standalone/node_modules/next/dist/lib/get-project-dir.js +51 -0
- package/.next/standalone/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
- package/.next/standalone/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
- package/.next/standalone/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
- package/.next/standalone/node_modules/next/dist/lib/helpers/get-online.js +50 -0
- package/.next/standalone/node_modules/next/dist/lib/helpers/get-pkg-manager.js +63 -0
- package/.next/standalone/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
- package/.next/standalone/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
- package/.next/standalone/node_modules/next/dist/lib/helpers/install.js +83 -0
- package/.next/standalone/node_modules/next/dist/lib/import-next-warning.js +50 -0
- package/.next/standalone/node_modules/next/dist/lib/inline-static-env.js +112 -0
- package/.next/standalone/node_modules/next/dist/lib/install-dependencies.js +40 -0
- package/.next/standalone/node_modules/next/dist/lib/interop-default.js +16 -0
- package/.next/standalone/node_modules/next/dist/lib/is-api-route.js +15 -0
- package/.next/standalone/node_modules/next/dist/lib/is-app-page-route.js +15 -0
- package/.next/standalone/node_modules/next/dist/lib/is-app-route-route.js +15 -0
- package/.next/standalone/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
- package/.next/standalone/node_modules/next/dist/lib/is-error.js +78 -0
- package/.next/standalone/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
- package/.next/standalone/node_modules/next/dist/lib/is-internal-component.js +36 -0
- package/.next/standalone/node_modules/next/dist/lib/is-serializable-props.js +106 -0
- package/.next/standalone/node_modules/next/dist/lib/known-edge-safe-packages.json +1 -0
- package/.next/standalone/node_modules/next/dist/lib/load-custom-routes.js +594 -0
- package/.next/standalone/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
- package/.next/standalone/node_modules/next/dist/lib/memory/shutdown.js +29 -0
- package/.next/standalone/node_modules/next/dist/lib/memory/startup.js +47 -0
- package/.next/standalone/node_modules/next/dist/lib/memory/trace.js +109 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/constants.js +40 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/get-metadata-route.js +123 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/metadata.js +1686 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/resolve-metadata.js +884 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
- package/.next/standalone/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
- package/.next/standalone/node_modules/next/dist/lib/mime-type.js +20 -0
- package/.next/standalone/node_modules/next/dist/lib/mkcert.js +204 -0
- package/.next/standalone/node_modules/next/dist/lib/multi-file-writer.js +75 -0
- package/.next/standalone/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
- package/.next/standalone/node_modules/next/dist/lib/non-nullable.js +15 -0
- package/.next/standalone/node_modules/next/dist/lib/normalize-path.js +21 -0
- package/.next/standalone/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
- package/.next/standalone/node_modules/next/dist/lib/page-types.js +18 -0
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
- package/.next/standalone/node_modules/next/dist/lib/pick.js +19 -0
- package/.next/standalone/node_modules/next/dist/lib/picocolors.js +177 -0
- package/.next/standalone/node_modules/next/dist/lib/pretty-bytes.js +74 -0
- package/.next/standalone/node_modules/next/dist/lib/realpath.js +20 -0
- package/.next/standalone/node_modules/next/dist/lib/recursive-copy.js +76 -0
- package/.next/standalone/node_modules/next/dist/lib/recursive-delete.js +137 -0
- package/.next/standalone/node_modules/next/dist/lib/recursive-readdir.js +124 -0
- package/.next/standalone/node_modules/next/dist/lib/redirect-status.js +46 -0
- package/.next/standalone/node_modules/next/dist/lib/require-instrumentation-client.js +26 -0
- package/.next/standalone/node_modules/next/dist/lib/resolve-build-paths.js +154 -0
- package/.next/standalone/node_modules/next/dist/lib/resolve-from.js +65 -0
- package/.next/standalone/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
- package/.next/standalone/node_modules/next/dist/lib/scheduler.js +64 -0
- package/.next/standalone/node_modules/next/dist/lib/semver-noop.js +18 -0
- package/.next/standalone/node_modules/next/dist/lib/server-external-packages.jsonc +103 -0
- package/.next/standalone/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
- package/.next/standalone/node_modules/next/dist/lib/static-env.js +92 -0
- package/.next/standalone/node_modules/next/dist/lib/try-to-parse-path.js +67 -0
- package/.next/standalone/node_modules/next/dist/lib/turbopack-warning.js +185 -0
- package/.next/standalone/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +243 -0
- package/.next/standalone/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +153 -0
- package/.next/standalone/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
- package/.next/standalone/node_modules/next/dist/lib/typescript/missingDependencyError.js +27 -0
- package/.next/standalone/node_modules/next/dist/lib/typescript/runTypeCheck.js +149 -0
- package/.next/standalone/node_modules/next/dist/lib/typescript/type-paths.js +51 -0
- package/.next/standalone/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +75 -0
- package/.next/standalone/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +395 -0
- package/.next/standalone/node_modules/next/dist/lib/url.js +75 -0
- package/.next/standalone/node_modules/next/dist/lib/verify-partytown-setup.js +115 -0
- package/.next/standalone/node_modules/next/dist/lib/verify-root-layout.js +165 -0
- package/.next/standalone/node_modules/next/dist/lib/verify-typescript-setup.js +228 -0
- package/.next/standalone/node_modules/next/dist/lib/wait.js +19 -0
- package/.next/standalone/node_modules/next/dist/lib/with-promise-cache.js +24 -0
- package/.next/standalone/node_modules/next/dist/lib/worker.js +234 -0
- package/.next/standalone/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
- package/.next/standalone/node_modules/next/dist/server/accept-header.js +132 -0
- package/.next/standalone/node_modules/next/dist/server/after/after-context.js +140 -0
- package/.next/standalone/node_modules/next/dist/server/after/after.js +26 -0
- package/.next/standalone/node_modules/next/dist/server/after/awaiter.js +74 -0
- package/.next/standalone/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
- package/.next/standalone/node_modules/next/dist/server/after/index.js +21 -0
- package/.next/standalone/node_modules/next/dist/server/after/run-with-after.js +35 -0
- package/.next/standalone/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
- package/.next/standalone/node_modules/next/dist/server/api-utils/index.js +201 -0
- package/.next/standalone/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
- package/.next/standalone/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
- package/.next/standalone/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +86 -0
- package/.next/standalone/node_modules/next/dist/server/api-utils/web.js +17 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/action-handler.js +1020 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +167 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/app-render-render-utils.js +76 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/app-render-scheduling.js +188 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/app-render.js +4469 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/collect-segment-data.js +600 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +33 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/create-component-tree.js +840 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/create-error-handler.js +189 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +102 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/csrf-protection.js +86 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/debug-channel-server.js +30 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/debug-channel-server.web.js +71 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/dynamic-rendering.js +1144 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/encryption-utils.js +93 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/encryption.js +259 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/entry-base.js +256 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/flight-render-result.js +28 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +49 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/get-layer-assets.js +65 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +44 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +13 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-impl.js +103 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +18 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +181 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js +128 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/instant-validation.js +713 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/interop-default.js +17 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +92 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/manifests-singleton.js +264 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +28 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/postponed-state.js +157 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/prospective-render-utils.js +74 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/render-css-resource.js +52 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/segment-explorer-path.js +128 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/staged-rendering.js +343 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/stale-time.js +111 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/stream-ops.js +106 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/stream-ops.web.js +163 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/types.js +65 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/use-flight-response.js +214 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/vary-params.js +336 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +232 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +280 -0
- package/.next/standalone/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
- package/.next/standalone/node_modules/next/dist/server/async-storage/request-store.js +144 -0
- package/.next/standalone/node_modules/next/dist/server/async-storage/with-store.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/async-storage/work-store.js +91 -0
- package/.next/standalone/node_modules/next/dist/server/base-http/helpers.js +36 -0
- package/.next/standalone/node_modules/next/dist/server/base-http/index.js +54 -0
- package/.next/standalone/node_modules/next/dist/server/base-http/node.js +147 -0
- package/.next/standalone/node_modules/next/dist/server/base-http/web.js +124 -0
- package/.next/standalone/node_modules/next/dist/server/base-server.js +1874 -0
- package/.next/standalone/node_modules/next/dist/server/body-streams.js +114 -0
- package/.next/standalone/node_modules/next/dist/server/cache-dir.js +26 -0
- package/.next/standalone/node_modules/next/dist/server/capsize-font-metrics.json +181516 -0
- package/.next/standalone/node_modules/next/dist/server/ci-info.js +41 -0
- package/.next/standalone/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
- package/.next/standalone/node_modules/next/dist/server/config-schema.js +718 -0
- package/.next/standalone/node_modules/next/dist/server/config-shared.js +369 -0
- package/.next/standalone/node_modules/next/dist/server/config-utils.js +185 -0
- package/.next/standalone/node_modules/next/dist/server/config.js +1545 -0
- package/.next/standalone/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
- package/.next/standalone/node_modules/next/dist/server/crypto-utils.js +70 -0
- package/.next/standalone/node_modules/next/dist/server/dev/browser-logs/file-logger.js +186 -0
- package/.next/standalone/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +558 -0
- package/.next/standalone/node_modules/next/dist/server/dev/browser-logs/source-map.js +222 -0
- package/.next/standalone/node_modules/next/dist/server/dev/debug-channel.js +87 -0
- package/.next/standalone/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
- package/.next/standalone/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
- package/.next/standalone/node_modules/next/dist/server/dev/hot-middleware.js +274 -0
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-rspack.js +171 -0
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1475 -0
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-types.js +58 -0
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1386 -0
- package/.next/standalone/node_modules/next/dist/server/dev/log-requests.js +149 -0
- package/.next/standalone/node_modules/next/dist/server/dev/messages.js +74 -0
- package/.next/standalone/node_modules/next/dist/server/dev/middleware-turbopack.js +403 -0
- package/.next/standalone/node_modules/next/dist/server/dev/middleware-webpack.js +483 -0
- package/.next/standalone/node_modules/next/dist/server/dev/node-stack-frames.js +72 -0
- package/.next/standalone/node_modules/next/dist/server/dev/on-demand-entry-handler.js +773 -0
- package/.next/standalone/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
- package/.next/standalone/node_modules/next/dist/server/dev/require-cache.js +79 -0
- package/.next/standalone/node_modules/next/dist/server/dev/serialized-errors.js +67 -0
- package/.next/standalone/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
- package/.next/standalone/node_modules/next/dist/server/dev/static-paths-worker.js +104 -0
- package/.next/standalone/node_modules/next/dist/server/dev/turbopack-utils.js +687 -0
- package/.next/standalone/node_modules/next/dist/server/dynamic-rendering-utils.js +108 -0
- package/.next/standalone/node_modules/next/dist/server/font-utils.js +43 -0
- package/.next/standalone/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
- package/.next/standalone/node_modules/next/dist/server/get-page-files.js +23 -0
- package/.next/standalone/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
- package/.next/standalone/node_modules/next/dist/server/htmlescape.js +37 -0
- package/.next/standalone/node_modules/next/dist/server/image-optimizer.js +1220 -0
- package/.next/standalone/node_modules/next/dist/server/instrumentation/types.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/instrumentation/utils.js +21 -0
- package/.next/standalone/node_modules/next/dist/server/internal-utils.js +39 -0
- package/.next/standalone/node_modules/next/dist/server/is-private-ip.js +36 -0
- package/.next/standalone/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
- package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +132 -0
- package/.next/standalone/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
- package/.next/standalone/node_modules/next/dist/server/lib/cache-control.js +22 -0
- package/.next/standalone/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
- package/.next/standalone/node_modules/next/dist/server/lib/cache-handlers/default.js +160 -0
- package/.next/standalone/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
- package/.next/standalone/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
- package/.next/standalone/node_modules/next/dist/server/lib/clone-response.js +77 -0
- package/.next/standalone/node_modules/next/dist/server/lib/cpu-profile.js +59 -0
- package/.next/standalone/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
- package/.next/standalone/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
- package/.next/standalone/node_modules/next/dist/server/lib/dev-bundler-service.js +95 -0
- package/.next/standalone/node_modules/next/dist/server/lib/disk-lru-cache.external.js +57 -0
- package/.next/standalone/node_modules/next/dist/server/lib/etag.js +56 -0
- package/.next/standalone/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
- package/.next/standalone/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
- package/.next/standalone/node_modules/next/dist/server/lib/find-page-file.js +147 -0
- package/.next/standalone/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
- package/.next/standalone/node_modules/next/dist/server/lib/format-hostname.js +16 -0
- package/.next/standalone/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
- package/.next/standalone/node_modules/next/dist/server/lib/implicit-tags.js +77 -0
- package/.next/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +335 -0
- package/.next/standalone/node_modules/next/dist/server/lib/incremental-cache/index.js +501 -0
- package/.next/standalone/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +57 -0
- package/.next/standalone/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +73 -0
- package/.next/standalone/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
- package/.next/standalone/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
- package/.next/standalone/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
- package/.next/standalone/node_modules/next/dist/server/lib/lazy-result.js +46 -0
- package/.next/standalone/node_modules/next/dist/server/lib/lru-cache.js +191 -0
- package/.next/standalone/node_modules/next/dist/server/lib/match-next-data-pathname.js +18 -0
- package/.next/standalone/node_modules/next/dist/server/lib/mock-request.js +416 -0
- package/.next/standalone/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
- package/.next/standalone/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
- package/.next/standalone/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
- package/.next/standalone/node_modules/next/dist/server/lib/node-fs-methods.js +28 -0
- package/.next/standalone/node_modules/next/dist/server/lib/parse-stack.js +46 -0
- package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +978 -0
- package/.next/standalone/node_modules/next/dist/server/lib/patch-set-header.js +38 -0
- package/.next/standalone/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
- package/.next/standalone/node_modules/next/dist/server/lib/render-server.js +155 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-server.js +696 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +110 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +50 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +211 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/filesystem.js +591 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +96 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/proxy-request.js +118 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +629 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +286 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/typegen.js +858 -0
- package/.next/standalone/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
- package/.next/standalone/node_modules/next/dist/server/lib/server-ipc/utils.js +81 -0
- package/.next/standalone/node_modules/next/dist/server/lib/source-maps.js +196 -0
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +494 -0
- package/.next/standalone/node_modules/next/dist/server/lib/streaming-metadata.js +38 -0
- package/.next/standalone/node_modules/next/dist/server/lib/to-route.js +37 -0
- package/.next/standalone/node_modules/next/dist/server/lib/trace/constants.js +203 -0
- package/.next/standalone/node_modules/next/dist/server/lib/trace/tracer.js +280 -0
- package/.next/standalone/node_modules/next/dist/server/lib/trace/utils.js +16 -0
- package/.next/standalone/node_modules/next/dist/server/lib/types.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/lib/utils.js +278 -0
- package/.next/standalone/node_modules/next/dist/server/lib/worker-utils.js +36 -0
- package/.next/standalone/node_modules/next/dist/server/load-components.js +179 -0
- package/.next/standalone/node_modules/next/dist/server/load-default-error-components.js +41 -0
- package/.next/standalone/node_modules/next/dist/server/load-manifest.external.js +117 -0
- package/.next/standalone/node_modules/next/dist/server/match-bundle.js +25 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/get-mcp-middleware.js +49 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +41 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/get-errors.js +114 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/get-logs.js +67 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +188 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +59 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/get-routes.js +136 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +121 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
- package/.next/standalone/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +137 -0
- package/.next/standalone/node_modules/next/dist/server/next-server.js +1429 -0
- package/.next/standalone/node_modules/next/dist/server/next-typescript.js +13 -0
- package/.next/standalone/node_modules/next/dist/server/next.js +455 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-baseline.js +25 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +301 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +577 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/io-utils.js +195 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +91 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +508 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
- package/.next/standalone/node_modules/next/dist/server/node-environment.js +19 -0
- package/.next/standalone/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +33 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
- package/.next/standalone/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
- package/.next/standalone/node_modules/next/dist/server/og/image-response.js +53 -0
- package/.next/standalone/node_modules/next/dist/server/patch-error-inspect.js +453 -0
- package/.next/standalone/node_modules/next/dist/server/pipe-readable.js +140 -0
- package/.next/standalone/node_modules/next/dist/server/post-process.js +39 -0
- package/.next/standalone/node_modules/next/dist/server/render-result.js +204 -0
- package/.next/standalone/node_modules/next/dist/server/render.js +1140 -0
- package/.next/standalone/node_modules/next/dist/server/request/connection.js +133 -0
- package/.next/standalone/node_modules/next/dist/server/request/cookies.js +235 -0
- package/.next/standalone/node_modules/next/dist/server/request/draft-mode.js +230 -0
- package/.next/standalone/node_modules/next/dist/server/request/fallback-params.js +69 -0
- package/.next/standalone/node_modules/next/dist/server/request/headers.js +229 -0
- package/.next/standalone/node_modules/next/dist/server/request/params.js +527 -0
- package/.next/standalone/node_modules/next/dist/server/request/pathname.js +119 -0
- package/.next/standalone/node_modules/next/dist/server/request/root-params.js +194 -0
- package/.next/standalone/node_modules/next/dist/server/request/search-params.js +526 -0
- package/.next/standalone/node_modules/next/dist/server/request/utils.js +51 -0
- package/.next/standalone/node_modules/next/dist/server/request-meta.js +55 -0
- package/.next/standalone/node_modules/next/dist/server/require-hook.js +82 -0
- package/.next/standalone/node_modules/next/dist/server/require.js +109 -0
- package/.next/standalone/node_modules/next/dist/server/response-cache/index.js +311 -0
- package/.next/standalone/node_modules/next/dist/server/response-cache/types.js +41 -0
- package/.next/standalone/node_modules/next/dist/server/response-cache/utils.js +104 -0
- package/.next/standalone/node_modules/next/dist/server/response-cache/web.js +101 -0
- package/.next/standalone/node_modules/next/dist/server/resume-data-cache/cache-store.js +96 -0
- package/.next/standalone/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +124 -0
- package/.next/standalone/node_modules/next/dist/server/revalidation-utils.js +157 -0
- package/.next/standalone/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
- package/.next/standalone/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-kind.js +32 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +91 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
- package/.next/standalone/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
- package/.next/standalone/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
- package/.next/standalone/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
- package/.next/standalone/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
- package/.next/standalone/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
- package/.next/standalone/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
- package/.next/standalone/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
- package/.next/standalone/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-matches/route-match.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +51 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/module.js +162 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +25 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/module.js +914 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/checks.js +45 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/pages-handler.js +545 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
- package/.next/standalone/node_modules/next/dist/server/route-modules/route-module.js +650 -0
- package/.next/standalone/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
- package/.next/standalone/node_modules/next/dist/server/send-payload.js +88 -0
- package/.next/standalone/node_modules/next/dist/server/send-response.js +70 -0
- package/.next/standalone/node_modules/next/dist/server/serve-static.js +66 -0
- package/.next/standalone/node_modules/next/dist/server/server-route-utils.js +30 -0
- package/.next/standalone/node_modules/next/dist/server/server-utils.js +323 -0
- package/.next/standalone/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
- package/.next/standalone/node_modules/next/dist/server/stream-utils/encoded-tags.js +122 -0
- package/.next/standalone/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +918 -0
- package/.next/standalone/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +74 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/constant.js +98 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/index.js +199 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/rules/client-boundary.js +97 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/rules/config.js +512 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/rules/error.js +38 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/rules/server.js +79 -0
- package/.next/standalone/node_modules/next/dist/server/typescript/utils.js +212 -0
- package/.next/standalone/node_modules/next/dist/server/use-cache/cache-life.js +163 -0
- package/.next/standalone/node_modules/next/dist/server/use-cache/cache-tag.js +52 -0
- package/.next/standalone/node_modules/next/dist/server/use-cache/constants.js +28 -0
- package/.next/standalone/node_modules/next/dist/server/use-cache/handlers.js +121 -0
- package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-errors.js +36 -0
- package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1588 -0
- package/.next/standalone/node_modules/next/dist/server/utils.js +73 -0
- package/.next/standalone/node_modules/next/dist/server/web/adapter.js +392 -0
- package/.next/standalone/node_modules/next/dist/server/web/edge-route-module-wrapper.js +123 -0
- package/.next/standalone/node_modules/next/dist/server/web/error.js +54 -0
- package/.next/standalone/node_modules/next/dist/server/web/exports/index.js +56 -0
- package/.next/standalone/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
- package/.next/standalone/node_modules/next/dist/server/web/globals.js +128 -0
- package/.next/standalone/node_modules/next/dist/server/web/http.js +39 -0
- package/.next/standalone/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
- package/.next/standalone/node_modules/next/dist/server/web/next-url.js +199 -0
- package/.next/standalone/node_modules/next/dist/server/web/sandbox/context.js +462 -0
- package/.next/standalone/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
- package/.next/standalone/node_modules/next/dist/server/web/sandbox/index.js +28 -0
- package/.next/standalone/node_modules/next/dist/server/web/sandbox/resource-managers.js +88 -0
- package/.next/standalone/node_modules/next/dist/server/web/sandbox/sandbox.js +137 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +192 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +211 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/revalidate.js +214 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +289 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +51 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/url-pattern.js +14 -0
- package/.next/standalone/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
- package/.next/standalone/node_modules/next/dist/server/web/types.js +6 -0
- package/.next/standalone/node_modules/next/dist/server/web/utils.js +151 -0
- package/.next/standalone/node_modules/next/dist/server/web/web-on-close.js +87 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/action-revalidation-kind.js +31 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/app-router-types.js +46 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/constants.js +448 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/deployment-id.js +63 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/dset.js +34 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/error-source.js +36 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +39 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +24 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +20 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/hash.js +42 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/head.js +163 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +60 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/image-config.js +77 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/invariant-error.js +18 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/adapters.js +136 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/routes/app.js +122 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/app-paths.js +62 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +24 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +174 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js +33 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +30 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +43 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/parse-url.js +38 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +292 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +21 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js +116 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +32 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/segment.js +102 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/server-reference-info.js +56 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/side-effect.js +63 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/size-limit.js +40 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/utils.js +207 -0
- package/.next/standalone/node_modules/next/dist/shared/lib/zod.js +101 -0
- package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +89 -0
- package/.next/standalone/node_modules/next/dist/telemetry/detached-flush.js +56 -0
- package/.next/standalone/node_modules/next/dist/telemetry/events/build.js +174 -0
- package/.next/standalone/node_modules/next/dist/telemetry/events/index.js +41 -0
- package/.next/standalone/node_modules/next/dist/telemetry/events/plugins.js +51 -0
- package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
- package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +66 -0
- package/.next/standalone/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
- package/.next/standalone/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
- package/.next/standalone/node_modules/next/dist/telemetry/project-id.js +48 -0
- package/.next/standalone/node_modules/next/dist/telemetry/storage.js +301 -0
- package/.next/standalone/node_modules/next/dist/trace/index.js +58 -0
- package/.next/standalone/node_modules/next/dist/trace/report/index.js +37 -0
- package/.next/standalone/node_modules/next/dist/trace/report/to-json-build.js +40 -0
- package/.next/standalone/node_modules/next/dist/trace/report/to-json.js +165 -0
- package/.next/standalone/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
- package/.next/standalone/node_modules/next/dist/trace/shared.js +39 -0
- package/.next/standalone/node_modules/next/dist/trace/trace.js +211 -0
- package/.next/standalone/node_modules/next/package.json +378 -0
- package/.next/standalone/node_modules/react/cjs/react-compiler-runtime.production.js +16 -0
- package/.next/standalone/node_modules/react/cjs/react-jsx-dev-runtime.production.js +14 -0
- package/.next/standalone/node_modules/react/cjs/react-jsx-runtime.production.js +34 -0
- package/.next/standalone/node_modules/react/cjs/react.development.js +1284 -0
- package/.next/standalone/node_modules/react/cjs/react.production.js +542 -0
- package/.next/standalone/node_modules/react/compiler-runtime.js +14 -0
- package/.next/standalone/node_modules/react/index.js +7 -0
- package/.next/standalone/node_modules/react/jsx-dev-runtime.js +7 -0
- package/.next/standalone/node_modules/react/jsx-runtime.js +7 -0
- package/.next/standalone/node_modules/react/package.json +51 -0
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +7707 -0
- package/.next/standalone/node_modules/react-dom/cjs/react-dom.production.js +210 -0
- package/.next/standalone/node_modules/react-dom/index.js +38 -0
- package/.next/standalone/node_modules/react-dom/package.json +117 -0
- package/.next/standalone/node_modules/react-dom/server.browser.js +16 -0
- package/.next/standalone/node_modules/react-dom/server.edge.js +17 -0
- package/.next/standalone/node_modules/react-dom/server.node.js +18 -0
- package/.next/standalone/node_modules/react-dom/static.node.js +14 -0
- package/.next/standalone/node_modules/sharp/lib/channel.js +177 -0
- package/.next/standalone/node_modules/sharp/lib/colour.js +195 -0
- package/.next/standalone/node_modules/sharp/lib/composite.js +212 -0
- package/.next/standalone/node_modules/sharp/lib/constructor.js +499 -0
- package/.next/standalone/node_modules/sharp/lib/index.js +16 -0
- package/.next/standalone/node_modules/sharp/lib/input.js +809 -0
- package/.next/standalone/node_modules/sharp/lib/is.js +143 -0
- package/.next/standalone/node_modules/sharp/lib/libvips.js +207 -0
- package/.next/standalone/node_modules/sharp/lib/operation.js +1016 -0
- package/.next/standalone/node_modules/sharp/lib/output.js +1666 -0
- package/.next/standalone/node_modules/sharp/lib/resize.js +595 -0
- package/.next/standalone/node_modules/sharp/lib/sharp.js +121 -0
- package/.next/standalone/node_modules/sharp/lib/utility.js +291 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +143 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/range.js +557 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +333 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +54 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +62 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +7 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +5 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +5 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +5 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +5 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +5 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +5 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +18 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +12 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +37 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +11 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +29 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +42 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +17 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/re.js +223 -0
- package/.next/standalone/node_modules/sharp/node_modules/semver/package.json +78 -0
- package/.next/standalone/node_modules/sharp/package.json +202 -0
- package/.next/standalone/node_modules/styled-jsx/dist/index/index.js +499 -0
- package/.next/standalone/node_modules/styled-jsx/index.js +1 -0
- package/.next/standalone/node_modules/styled-jsx/package.json +132 -0
- package/.next/standalone/node_modules/styled-jsx/style.js +1 -0
- package/.next/standalone/package.json +55 -0
- package/.next/standalone/server.js +38 -0
- package/.next/static/BgLP6ChyOyE0k8Ahr8F2H/_buildManifest.js +11 -0
- package/.next/static/BgLP6ChyOyE0k8Ahr8F2H/_clientMiddlewareManifest.js +1 -0
- package/.next/static/BgLP6ChyOyE0k8Ahr8F2H/_ssgManifest.js +1 -0
- package/.next/static/chunks/01xlw8hd842-c.js +1 -0
- package/.next/static/chunks/03~yq9q893hmn.js +1 -0
- package/.next/static/chunks/0bogtdbh.dcu1.js +1 -0
- package/.next/static/chunks/0bzupvr5gt3k9.js +31 -0
- package/.next/static/chunks/0d3shmwh5_nmn.js +1 -0
- package/.next/static/chunks/0iym2_f33sxs7.css +4 -0
- package/.next/static/chunks/0mmpyn9fv2fjf.js +2 -0
- package/.next/static/chunks/0qmupjhwdppg9.js +11 -0
- package/.next/static/chunks/0y3~cortx~or~.js +5 -0
- package/.next/static/chunks/12p3iqtw2ohfq.js +1 -0
- package/.next/static/chunks/turbopack-06dy8k5p5cegf.js +1 -0
- package/.next/static/media/166ab60e98aadb0a-s.p.0mka4ru4_bj1d.woff2 +0 -0
- package/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
- package/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
- package/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
- package/.next/static/media/47fe59148dddec23-s.0miki_k4yhs4d.woff2 +0 -0
- package/.next/static/media/4e86c6b06ecb547e-s.0w2c6_8~q7i1~.woff2 +0 -0
- package/.next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
- package/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
- package/.next/static/media/63599ae31785f475-s.01zyq0dc2~0hp.woff2 +0 -0
- package/.next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
- package/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
- package/.next/static/media/8b19d8d892dc610b-s.0.m6yiwn-kka2.woff2 +0 -0
- package/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
- package/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
- package/.next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
- package/.next/static/media/c5ff0a46612d668f-s.0hhk-7qht1v87.woff2 +0 -0
- package/.next/static/media/f10b37ddd5a9e949-s.15ktajnz8ofs..woff2 +0 -0
- package/.next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
- package/README.md +75 -0
- package/bin/miclaw.mjs +99 -0
- package/package.json +55 -0
- package/public/file.svg +1 -0
- package/public/globe.svg +1 -0
- package/public/logo.png +0 -0
- package/public/next.svg +1 -0
- package/public/screenshot.png +0 -0
- package/public/vercel.svg +1 -0
- package/public/window.svg +1 -0
|
@@ -0,0 +1,1097 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[22450,["/_next/static/chunks/0mmpyn9fv2fjf.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/12p3iqtw2ohfq.js"],"ExpandableBody"]
|
|
3
|
+
d:I[97367,["/_next/static/chunks/0mmpyn9fv2fjf.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
|
4
|
+
e:"$Sreact.suspense"
|
|
5
|
+
3:Tc6c,# Implement Ticket Pipeline
|
|
6
|
+
|
|
7
|
+
You are orchestrating a full implementation pipeline for ticket: **$ARGUMENTS**
|
|
8
|
+
|
|
9
|
+
Follow these phases strictly and in order. Use the custom subagents defined in `~/.claude/agents/` to do the work -- do NOT do the implementation or review yourself.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Phase 0: Setup
|
|
14
|
+
|
|
15
|
+
1. Determine the repo root: `git rev-parse --show-toplevel`
|
|
16
|
+
2. Read the repo's instruction file (check in order: AGENTS.md, CLAUDE.md, .clauderules at repo root). You will pass this file path to each subagent so they know the standards.
|
|
17
|
+
3. Fetch the ticket details for **$ARGUMENTS** using Linear (or parse the ticket ID to understand context if provided inline).
|
|
18
|
+
4. Analyze the ticket requirements and determine which packages, services, or modules need changes.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Phase 1: Implement
|
|
23
|
+
|
|
24
|
+
**Goal**: Write code and tests for the ticket.
|
|
25
|
+
|
|
26
|
+
### If changes span a single package/service:
|
|
27
|
+
- Spawn ONE `implement` subagent with the ticket requirements, repo instruction file path, and target area.
|
|
28
|
+
|
|
29
|
+
### If changes span multiple packages/services:
|
|
30
|
+
- Spawn MULTIPLE `implement` subagents IN PARALLEL (one per package/service), each in its own **worktree** (`isolation: worktree`).
|
|
31
|
+
- Each agent gets: the ticket requirements, repo instruction file path, and its specific package/service scope.
|
|
32
|
+
- After all parallel agents complete, integrate their changes. If worktrees were used, merge the branches they created.
|
|
33
|
+
|
|
34
|
+
Wait for all implementation work to complete before proceeding.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Phase 2: Review
|
|
39
|
+
|
|
40
|
+
**Goal**: Code review of all changes.
|
|
41
|
+
|
|
42
|
+
- Spawn the `review` subagent to review ALL changes from Phase 1.
|
|
43
|
+
- The review agent will read the repo instruction file and `~/.claude/review-instructions.md` (if it exists) automatically.
|
|
44
|
+
- Wait for the review to complete and read its findings.
|
|
45
|
+
|
|
46
|
+
### Decision point:
|
|
47
|
+
- If the review finds **no blocking issues**: skip Phase 3, go directly to Phase 4.
|
|
48
|
+
- If the review finds **blocking issues**: proceed to Phase 3.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Phase 3: Address Review (only if needed)
|
|
53
|
+
|
|
54
|
+
**Goal**: Fix all blocking issues from the review.
|
|
55
|
+
|
|
56
|
+
### If fixes are isolated to a single package/service:
|
|
57
|
+
- Spawn ONE `address-review` subagent with the review feedback.
|
|
58
|
+
|
|
59
|
+
### If fixes span multiple packages/services:
|
|
60
|
+
- Spawn MULTIPLE `address-review` subagents IN PARALLEL, each scoped to its package and the relevant review comments.
|
|
61
|
+
|
|
62
|
+
Wait for all fixes to complete before proceeding.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Phase 4: Fix Tests
|
|
67
|
+
|
|
68
|
+
**Goal**: Ensure all tests pass.
|
|
69
|
+
|
|
70
|
+
- Spawn the `fix-tests` subagent to run the test suite and fix any failures.
|
|
71
|
+
- If the repo has multiple test suites (e.g., per-package), spawn MULTIPLE `fix-tests` subagents IN PARALLEL.
|
|
72
|
+
- Wait for all tests to pass.
|
|
73
|
+
|
|
74
|
+
If tests cannot be fixed after the agent's attempts, report the failures to the user rather than looping.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Phase 5: Summary
|
|
79
|
+
|
|
80
|
+
After all phases complete, provide a concise summary:
|
|
81
|
+
|
|
82
|
+
- **Ticket**: $ARGUMENTS
|
|
83
|
+
- **What changed**: list of files/packages modified
|
|
84
|
+
- **Tests**: pass/fail status
|
|
85
|
+
- **Review**: whether all issues were addressed
|
|
86
|
+
- **Ready for**: what the user should do next (e.g., "ready for git staging and commit")
|
|
87
|
+
|
|
88
|
+
Do NOT run `git add` or `git commit`. The user handles all git operations.0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"mx-auto max-w-5xl px-8 py-10","children":[["$","div",null,{"className":"mb-8","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","h1",null,{"className":"text-2xl font-medium tracking-tight","children":"Skills"}],["$","span",null,{"className":"text-sm text-text-muted","children":7}]]}],["$","p",null,{"className":"mt-1 text-sm text-text-muted","children":"Reusable prompts and workflows"}]]}],["$","div",null,{"className":"mb-8","children":[["$","h2",null,{"className":"text-xs font-medium text-text-dim uppercase tracking-wide mb-3","children":"Global"}],["$","div",null,{"className":"space-y-3","children":[["$","div","/Users/gabry/.claude/skills/implement-ticket/SKILL.md",{"className":"border border-border rounded-sm p-5 ","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":["$","div",null,{"className":"flex items-center gap-2 flex-wrap","children":[["$","h3",null,{"className":"text-sm font-medium","children":"implement-ticket"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-dim","children":"Global"}],null,"$undefined"]}]}],["$","p",null,{"className":"mt-1.5 text-sm text-text-muted leading-relaxed","children":"Full implementation pipeline for a ticket -- implement, review, address feedback, fix tests. Orchestrates subagents with parallelism for multi-package changes."}],"$undefined",["$","div",null,{"className":"mt-3 flex flex-wrap gap-2","children":[["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"user-invocable"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-dim","children":"manual only"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-muted","children":"<ticket-id>"}],false,"$undefined"]}],["$","div",null,{"className":"mt-2 flex flex-wrap gap-x-4 gap-y-1 text-xs text-text-dim","children":["$undefined","$undefined","$undefined","$undefined"]}],["$","div",null,{"className":"mt-3","children":[["$","p",null,{"className":"text-xs text-text-dim mb-1.5","children":"Orchestrates:"}],["$","div",null,{"className":"flex flex-wrap gap-1.5","children":[["$","span","address-review",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"address-review"}],["$","span","fix-tests",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"fix-tests"}],["$","span","implement",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"implement"}],["$","span","review",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"review"}]]}]]}],["$","$L2",null,{"content":"$3"}]]}]]}]]}],"$L4"]}],["$L5"],"$L6"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"BgLP6ChyOyE0k8Ahr8F2H"}
|
|
89
|
+
7:Td51,# find-variant
|
|
90
|
+
|
|
91
|
+
Looks up a genomic variant in the user's VCF file and researches it across public genomic databases.
|
|
92
|
+
|
|
93
|
+
## Input Formats
|
|
94
|
+
|
|
95
|
+
The user will provide a variant identifier in one of these formats:
|
|
96
|
+
|
|
97
|
+
1. **chr:pos:ref:alt** -- e.g., `chr6:26092913:G:A`
|
|
98
|
+
2. **rsID** -- e.g., `rs1800562`
|
|
99
|
+
3. **ClinVar VCV ID** -- e.g., `VCV000000009` or a ClinVar URL
|
|
100
|
+
|
|
101
|
+
## Instructions
|
|
102
|
+
|
|
103
|
+
### Step 1: Resolve Coordinates
|
|
104
|
+
|
|
105
|
+
Depending on the input format, resolve to GRCh38 genomic coordinates:
|
|
106
|
+
|
|
107
|
+
- **chr:pos:ref:alt**: Use directly.
|
|
108
|
+
- **rsID**: Fetch the dbSNP page `https://www.ncbi.nlm.nih.gov/snp/<rsID>` to get GRCh38 chr and position, plus ref/alt alleles.
|
|
109
|
+
- **VCV ID**: Fetch the ClinVar variation page `https://www.ncbi.nlm.nih.gov/clinvar/variation/<ID>/` to get GRCh38 coordinates, gene, ref/alt, and any rsID.
|
|
110
|
+
|
|
111
|
+
### Step 2: Check the VCF
|
|
112
|
+
|
|
113
|
+
Find the VCF file. Look for `*.vcf.gz` files in the current working directory. If multiple exist, ask the user which one.
|
|
114
|
+
|
|
115
|
+
Query using bcftools:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
bcftools view -H <vcf_file> <chr>:<pos>-<pos>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Report whether the variant is present. If found, display the full VCF line and extract key fields:
|
|
122
|
+
- Genotype (GT) -- translate to human-readable (e.g., "heterozygous", "homozygous alt", "homozygous ref")
|
|
123
|
+
- Genotype Quality (GQ)
|
|
124
|
+
- Read Depth (DP)
|
|
125
|
+
- Allele Depths (AD)
|
|
126
|
+
- Filter status (PASS or not)
|
|
127
|
+
|
|
128
|
+
If NOT found, explicitly state the variant is absent from the VCF.
|
|
129
|
+
|
|
130
|
+
### Step 3: Database Research
|
|
131
|
+
|
|
132
|
+
Launch a research subagent to query public databases **in parallel** with the VCF lookup when possible. The subagent should search the web for:
|
|
133
|
+
|
|
134
|
+
1. **dbSNP**: Allele frequencies across populations (gnomAD, ALFA, TOPMED). A variant with >5% global frequency is common and unlikely to be pathogenic for a rare Mendelian condition.
|
|
135
|
+
|
|
136
|
+
2. **ClinVar**: Clinical significance classification, review status (star rating), associated conditions, number of submitters, and assertion criteria. Flag 0-star submissions with no assertion criteria as low-confidence. Flag any "pathogenic" classification on a variant with >5% population frequency as likely erroneous.
|
|
137
|
+
|
|
138
|
+
3. **ClinGen**: Check if the gene has ClinGen gene-disease validity curations. Note if it is on the ACMG secondary findings list.
|
|
139
|
+
|
|
140
|
+
4. **GWAS Catalog**: Any significant GWAS associations (trait, p-value, odds ratio).
|
|
141
|
+
|
|
142
|
+
### Step 4: Report
|
|
143
|
+
|
|
144
|
+
Present a concise summary with:
|
|
145
|
+
|
|
146
|
+
1. **VCF status**: Present or absent, with key genotype fields if present
|
|
147
|
+
2. **Full VCF line**: In a code block if present
|
|
148
|
+
3. **Gene and consequence**: Gene name, variant type (missense, intronic, synonymous, etc.)
|
|
149
|
+
4. **ClinVar**: Classification, stars, conditions -- with quality caveats where warranted
|
|
150
|
+
5. **Population frequency**: Global and major population frequencies
|
|
151
|
+
6. **ClinGen**: Gene-disease validity status, ACMG secondary findings status
|
|
152
|
+
7. **GWAS**: Notable associations if any
|
|
153
|
+
8. **Bottom line**: One-sentence clinical interpretation appropriate for the genotype observed
|
|
154
|
+
|
|
155
|
+
## Important Notes
|
|
156
|
+
|
|
157
|
+
- Always use `bcftools` for VCF queries, never grep/zgrep.
|
|
158
|
+
- VCF files may not contain rsIDs -- always query by genomic position.
|
|
159
|
+
- Be skeptical of 0-star ClinVar submissions, especially for common variants.
|
|
160
|
+
- Distinguish between Mendelian pathogenicity (rare, high-penetrance) and GWAS risk alleles (common, low effect size).
|
|
161
|
+
- If the variant is in a well-known gene (BRCA1, HFE, CFTR, etc.), note relevant compound heterozygosity considerations.4:["$","div",null,{"children":[["$","h2",null,{"className":"text-xs font-medium text-text-dim uppercase tracking-wide mb-3","children":"Project"}],["$","div",null,{"className":"space-y-3","children":[["$","div","/Users/gabry/Desktop/.claude/skills/find-variant/SKILL.md",{"className":"border border-border rounded-sm p-5 ","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":["$","div",null,{"className":"flex items-center gap-2 flex-wrap","children":[["$","h3",null,{"className":"text-sm font-medium","children":"find-variant"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-muted","children":"Desktop"}],null,"$undefined"]}]}],["$","p",null,{"className":"mt-1.5 text-sm text-text-muted leading-relaxed","children":"Look up a genomic variant in a local VCF and public databases (ClinVar, dbSNP, ClinGen, GWAS)"}],"$undefined",["$","div",null,{"className":"mt-3 flex flex-wrap gap-2","children":[["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"user-invocable"}],"$undefined","$undefined",false,"$undefined"]}],["$","div",null,{"className":"mt-2 flex flex-wrap gap-x-4 gap-y-1 text-xs text-text-dim","children":["$undefined","$undefined","$undefined","$undefined"]}],["$","div",null,{"className":"mt-3","children":[["$","p",null,{"className":"text-xs text-text-dim mb-1.5","children":"Orchestrates:"}],["$","div",null,{"className":"flex flex-wrap gap-1.5","children":[["$","span","review",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"review"}]]}]]}],["$","$L2",null,{"content":"$7"}]]}],"$L8","$L9","$La","$Lb","$Lc"]}]]}]
|
|
162
|
+
5:["$","script","script-0",{"src":"/_next/static/chunks/12p3iqtw2ohfq.js","async":true}]
|
|
163
|
+
6:["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]
|
|
164
|
+
10:T130d,# fix-tests
|
|
165
|
+
|
|
166
|
+
Analyzes and fixes test files to conform to platform-services testing standards defined in AGENTS.md.
|
|
167
|
+
|
|
168
|
+
## Instructions
|
|
169
|
+
|
|
170
|
+
You are tasked with reviewing and fixing test files to follow the platform-services testing standards defined in AGENTS.md.
|
|
171
|
+
|
|
172
|
+
### Step 1: Identify Test Files
|
|
173
|
+
|
|
174
|
+
Ask the user which test file(s) to fix, or analyze all test files in the current package if not specified.
|
|
175
|
+
|
|
176
|
+
### Step 2: Review Against Standards
|
|
177
|
+
|
|
178
|
+
Check each test file for:
|
|
179
|
+
|
|
180
|
+
**1. Parametrization**
|
|
181
|
+
- ❌ Multiple similar test methods testing same function with different inputs
|
|
182
|
+
- ✅ Use `@pytest.mark.parametrize` to combine them
|
|
183
|
+
|
|
184
|
+
**2. AWS Service Mocking**
|
|
185
|
+
- ❌ Direct `mock.patch` on boto3 clients
|
|
186
|
+
- ✅ Mock the `get_{service}` context manager from package's `aws.py`
|
|
187
|
+
- ✅ Use `botocore.stub.Stubber` for AWS service responses
|
|
188
|
+
- Exception: `dynamodb_helper` uses `moto`
|
|
189
|
+
|
|
190
|
+
**3. Logger Mocking**
|
|
191
|
+
- ❌ `mock_logger = AsyncMock()` or `MagicMock()`
|
|
192
|
+
- ✅ Use real `BioscopeLogger` from conftest.py fixture
|
|
193
|
+
|
|
194
|
+
**4. Fixture Usage**
|
|
195
|
+
- ❌ Mocks defined inline in test methods
|
|
196
|
+
- ✅ All mocks defined as pytest fixtures in conftest.py or test file
|
|
197
|
+
- ✅ Use `pytest_mock.MockerFixture` for creating mocks
|
|
198
|
+
- ❌ Same `mocker.patch("path.to.module")` repeated 3+ times across tests
|
|
199
|
+
- ✅ Extract repeated patches to named fixtures in conftest.py
|
|
200
|
+
|
|
201
|
+
**5. Async vs Sync Assertions**
|
|
202
|
+
- ❌ `mock_async_func.assert_called_once_with()`
|
|
203
|
+
- ✅ `mock_async_func.assert_awaited_once_with()` for AsyncMock
|
|
204
|
+
- ✅ `mock_sync_func.assert_called_once_with()` for MagicMock
|
|
205
|
+
|
|
206
|
+
**6. Mock Types**
|
|
207
|
+
- ❌ Using wrong mock type for function
|
|
208
|
+
- ✅ `AsyncMock` for async functions
|
|
209
|
+
- ✅ `MagicMock` for sync functions
|
|
210
|
+
|
|
211
|
+
**7. Assertions**
|
|
212
|
+
- ❌ Individual field assertions (`assert result.id == "123"`, `assert result.name == "foo"`)
|
|
213
|
+
- ✅ Compare entire objects: `assert result == ExpectedModel(id="123", name="foo")`
|
|
214
|
+
- ✅ Include negative assertions (what should NOT happen)
|
|
215
|
+
|
|
216
|
+
**8. Mock Depth**
|
|
217
|
+
- ❌ Mocking internal functions multiple levels deep
|
|
218
|
+
- ✅ Mock at most one level deep (mock direct dependencies)
|
|
219
|
+
|
|
220
|
+
**9. Import Organization**
|
|
221
|
+
- ❌ Relative imports in test files: `from .conftest import fixture`
|
|
222
|
+
- ✅ Test directories should NOT have `__init__.py`
|
|
223
|
+
- ✅ Use absolute imports from the package being tested
|
|
224
|
+
|
|
225
|
+
### Step 3: Suggest Fixes
|
|
226
|
+
|
|
227
|
+
For each issue found:
|
|
228
|
+
1. Show the current code
|
|
229
|
+
2. Explain the problem
|
|
230
|
+
3. Provide the fixed version
|
|
231
|
+
4. Apply the fix if user approves
|
|
232
|
+
|
|
233
|
+
### Step 4: Verify
|
|
234
|
+
|
|
235
|
+
After fixes:
|
|
236
|
+
1. Run tests to ensure they still pass
|
|
237
|
+
2. Check coverage is maintained at 100%
|
|
238
|
+
3. Run lint and type-check
|
|
239
|
+
|
|
240
|
+
## Key Patterns
|
|
241
|
+
|
|
242
|
+
### Fixture Example
|
|
243
|
+
```python
|
|
244
|
+
# conftest.py
|
|
245
|
+
@pytest.fixture
|
|
246
|
+
def logger() -> BioscopeLogger:
|
|
247
|
+
return get_logger("package-name", uuid4())
|
|
248
|
+
|
|
249
|
+
@pytest.fixture
|
|
250
|
+
def mock_some_function(mocker: MockerFixture) -> AsyncMock:
|
|
251
|
+
return mocker.patch("package.module.some_function", new_callable=AsyncMock)
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Parametrized Test Example
|
|
255
|
+
```python
|
|
256
|
+
@pytest.mark.parametrize(
|
|
257
|
+
("input_value", "expected"),
|
|
258
|
+
[
|
|
259
|
+
("foo", True),
|
|
260
|
+
("bar", False),
|
|
261
|
+
("", False),
|
|
262
|
+
],
|
|
263
|
+
)
|
|
264
|
+
def test_validation(input_value: str, expected: bool) -> None:
|
|
265
|
+
result = validate(input_value)
|
|
266
|
+
assert result == expected
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Extracting Repeated Patches Example
|
|
270
|
+
```python
|
|
271
|
+
# BAD - same patch repeated in multiple tests
|
|
272
|
+
class TestSomething:
|
|
273
|
+
def test_one(self, mocker: MockerFixture):
|
|
274
|
+
mock_fetch = mocker.patch("mypackage.module.fetch_data")
|
|
275
|
+
mock_fetch.return_value = {"key": "value1"}
|
|
276
|
+
...
|
|
277
|
+
|
|
278
|
+
def test_two(self, mocker: MockerFixture):
|
|
279
|
+
mock_fetch = mocker.patch("mypackage.module.fetch_data")
|
|
280
|
+
mock_fetch.return_value = {"key": "value2"}
|
|
281
|
+
...
|
|
282
|
+
|
|
283
|
+
# GOOD - extract to fixture
|
|
284
|
+
@pytest.fixture
|
|
285
|
+
def mock_fetch_data(mocker: MockerFixture) -> MagicMock:
|
|
286
|
+
return mocker.patch("mypackage.module.fetch_data")
|
|
287
|
+
|
|
288
|
+
class TestSomething:
|
|
289
|
+
def test_one(self, mock_fetch_data: MagicMock):
|
|
290
|
+
mock_fetch_data.return_value = {"key": "value1"}
|
|
291
|
+
...
|
|
292
|
+
|
|
293
|
+
def test_two(self, mock_fetch_data: MagicMock):
|
|
294
|
+
mock_fetch_data.return_value = {"key": "value2"}
|
|
295
|
+
...
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### AWS Mocking with Stubber Example
|
|
299
|
+
```python
|
|
300
|
+
@pytest.fixture
|
|
301
|
+
async def s3_stub(mock_get_s3: MockType) -> AsyncGenerator[Stubber]:
|
|
302
|
+
session = Session()
|
|
303
|
+
async with session.client("s3", region_name="us-east-2") as s3_client:
|
|
304
|
+
stubber = Stubber(s3_client)
|
|
305
|
+
stubber.activate()
|
|
306
|
+
|
|
307
|
+
@asynccontextmanager
|
|
308
|
+
async def _fake_get_s3():
|
|
309
|
+
yield s3_client
|
|
310
|
+
|
|
311
|
+
mock_get_s3.side_effect = _fake_get_s3
|
|
312
|
+
yield stubber
|
|
313
|
+
stubber.assert_no_pending_responses()
|
|
314
|
+
stubber.deactivate()
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Execution
|
|
318
|
+
|
|
319
|
+
When this skill is invoked:
|
|
320
|
+
1. Read the test file(s)
|
|
321
|
+
2. Analyze against all standards
|
|
322
|
+
3. Present findings organized by issue type
|
|
323
|
+
4. Apply fixes one by one with user approval
|
|
324
|
+
5. Verify tests still pass with 100% coverage8:["$","div","/Users/gabry/Desktop/.claude/skills/fix-tests/SKILL.md",{"className":"border border-border rounded-sm p-5 ","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":["$","div",null,{"className":"flex items-center gap-2 flex-wrap","children":[["$","h3",null,{"className":"text-sm font-medium","children":"fix-tests"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-muted","children":"Desktop"}],null,"$undefined"]}]}],["$","p",null,{"className":"mt-1.5 text-sm text-text-muted leading-relaxed","children":"Analyze and fix test files to follow platform-services testing standards"}],"$undefined",["$","div",null,{"className":"mt-3 flex flex-wrap gap-2","children":[["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"user-invocable"}],"$undefined","$undefined",false,"$undefined"]}],["$","div",null,{"className":"mt-2 flex flex-wrap gap-x-4 gap-y-1 text-xs text-text-dim","children":["$undefined","$undefined","$undefined","$undefined"]}],["$","div",null,{"className":"mt-3","children":[["$","p",null,{"className":"text-xs text-text-dim mb-1.5","children":"Orchestrates:"}],["$","div",null,{"className":"flex flex-wrap gap-1.5","children":[["$","span","fix-tests",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"fix-tests"}],["$","span","review",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"review"}]]}]]}],["$","$L2",null,{"content":"$10"}]]}]
|
|
325
|
+
11:T2126,Create a weekly status report that contains the last 7 days of activity.
|
|
326
|
+
|
|
327
|
+
There will be Four components - GitHub behavior, Notion page scraping, ASKING for any additional major items, and then styling the report. Each has a sub section below.
|
|
328
|
+
|
|
329
|
+
The final output should be direclty to the CLI. Not to slack, or to Notion, or anywhere else.
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
## Nick Gabry - GitHub Activity
|
|
333
|
+
|
|
334
|
+
Use this guide to fetch a summary of a GitHub user's activity over the last N days using the `gh` CLI.
|
|
335
|
+
|
|
336
|
+
## Prerequisites
|
|
337
|
+
|
|
338
|
+
- `gh` CLI installed and authenticated
|
|
339
|
+
- Target GitHub username and date range
|
|
340
|
+
|
|
341
|
+
## Commands
|
|
342
|
+
|
|
343
|
+
Replace `<USERNAME>` and `<SINCE_DATE>` (format: `YYYY-MM-DD`) in each command.
|
|
344
|
+
|
|
345
|
+
### 1. PRs Authored
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
gh search prs --author <USERNAME> --created ">= <SINCE_DATE>" \
|
|
349
|
+
--json number,title,state,repository,createdAt,url --limit 50
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### 2. PRs Reviewed
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
gh search prs --reviewed-by <USERNAME> --updated ">= <SINCE_DATE>" \
|
|
356
|
+
--json number,title,state,repository,updatedAt,url --limit 50
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### 3. Issues Authored
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
gh search issues --author <USERNAME> --created ">= <SINCE_DATE>" \
|
|
363
|
+
--json number,title,state,repository,createdAt,url --limit 50
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### 4. Issues Commented On
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
gh search issues --commenter <USERNAME> --updated ">= <SINCE_DATE>" \
|
|
370
|
+
--json number,title,state,repository,updatedAt,url --limit 50
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
## LLM Prompt Template
|
|
374
|
+
|
|
375
|
+
To get a formatted summary, pass the raw JSON output from all four commands to an LLM with the following prompt:
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
Given the following GitHub activity data for user <USERNAME> from <SINCE_DATE> to <TODAY>:
|
|
379
|
+
|
|
380
|
+
PRs Authored:
|
|
381
|
+
<paste JSON>
|
|
382
|
+
|
|
383
|
+
PRs Reviewed:
|
|
384
|
+
<paste JSON>
|
|
385
|
+
|
|
386
|
+
Issues Authored:
|
|
387
|
+
<paste JSON>
|
|
388
|
+
|
|
389
|
+
Issues Commented On:
|
|
390
|
+
<paste JSON>
|
|
391
|
+
|
|
392
|
+
Summarize the activity in markdown. Include:
|
|
393
|
+
- A table of PRs authored grouped by repository, with status (open/merged/closed)
|
|
394
|
+
- A grouped summary of PRs reviewed, highlighting themes or feature areas
|
|
395
|
+
- Any issue activity
|
|
396
|
+
- A short TL;DR paragraph at the end
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
## Notes
|
|
400
|
+
|
|
401
|
+
- The `--reviewed-by` filter returns PRs updated in the window, not necessarily reviewed in it. Some older PRs may appear if they were recently re-touched (e.g. bulk merges).
|
|
402
|
+
- Use `--limit 100` if the user is highly active.
|
|
403
|
+
- The `gh search` commands require GitHub's search index, which may lag by a few minutes for very recent activity.
|
|
404
|
+
- To scope to a specific org or repo, add `--owner <ORG>` or `--repo <ORG>/<REPO>`.
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
## Notion Page Scraping
|
|
408
|
+
|
|
409
|
+
Ask the user to copy and paste their work from the week from Notion.
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
## Status Report Style Guide
|
|
413
|
+
|
|
414
|
+
## Overview
|
|
415
|
+
|
|
416
|
+
Status reports are written for a technical audience that is already familiar with the project
|
|
417
|
+
domain. The goal is to communicate what happened, what is in progress, and what is blocked —
|
|
418
|
+
clearly and without padding. Write like an engineer, not a PR person.
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
## Structure
|
|
423
|
+
|
|
424
|
+
Reports are organized into **domain-grouped sections**, each with a bolded header and
|
|
425
|
+
indented sub-bullets. Common section headers:
|
|
426
|
+
|
|
427
|
+
- **WGS**
|
|
428
|
+
- **PGX**
|
|
429
|
+
- **PRS** (or **DataTecnica / PRS**)
|
|
430
|
+
- **Microbiome** (or **cmbio / microbiome**)
|
|
431
|
+
- **Hiring**
|
|
432
|
+
- **Misc**
|
|
433
|
+
|
|
434
|
+
Use flat bullets (no grouping) only when the week's work does not naturally cluster into
|
|
435
|
+
distinct tracks. As project surface area grows, prefer grouped sections.
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Formatting Rules
|
|
440
|
+
|
|
441
|
+
- Top-level items use `•` bullets
|
|
442
|
+
- Sub-items use `◦` indented under the parent bullet
|
|
443
|
+
- Section headers are bolded inline on the parent bullet line:
|
|
444
|
+
`• **WGS**` followed by `◦` sub-bullets
|
|
445
|
+
- Do not use headers (`#`, `##`) — everything lives in bullet form
|
|
446
|
+
- Links are inline and labeled: `[Slide Deck](url)` or `[architecture diagram](url)`
|
|
447
|
+
- No horizontal rules, no tables, no numbered lists
|
|
448
|
+
- No sign-off, no greeting, no date header
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Tone and Voice
|
|
453
|
+
|
|
454
|
+
- Terse and direct — omit filler words and transition phrases
|
|
455
|
+
- Drop the subject ("Built out core of...", not "I built out core of...")
|
|
456
|
+
- No editorializing or self-congratulation, with rare exceptions for genuinely notable wins
|
|
457
|
+
(e.g., "Big win to have this stood up" — used sparingly)
|
|
458
|
+
- Acknowledge blockers and friction plainly: "Communication here has gone unnervingly quiet"
|
|
459
|
+
- Name collaborators and external parties specifically — avoid vague references like "the team"
|
|
460
|
+
- Refer to external vendors, partners, and contacts by first name or company name consistently
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## Content Norms
|
|
465
|
+
|
|
466
|
+
**What to include:**
|
|
467
|
+
- Work completed, with enough specificity that a technical reader understands the scope
|
|
468
|
+
- Work in progress, with a clear sense of where it stands and what is left
|
|
469
|
+
- Blockers or dependencies on external parties
|
|
470
|
+
- Notable decisions or pivots, briefly explained
|
|
471
|
+
- Hiring activity (interviews, pipeline stage, outcomes)
|
|
472
|
+
- Cross-functional collaboration that produced a concrete output
|
|
473
|
+
|
|
474
|
+
**What to omit:**
|
|
475
|
+
- Process narration ("I spent time thinking about...")
|
|
476
|
+
- Praise of others' work (that belongs in other channels)
|
|
477
|
+
- Business-context backstory the reader already knows
|
|
478
|
+
- Vague status like "making progress" without a concrete anchor
|
|
479
|
+
- Meeting attendance without an associated outcome or decision
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## Technical Language
|
|
484
|
+
|
|
485
|
+
Use domain-specific terminology without explanation:
|
|
486
|
+
- Bioinformatics: VCF, WGS, SNP, multi-allelic, zygosity, heteroplasmy, haplotype,
|
|
487
|
+
PRS, PGX, CPIC, ClinVar, ClinGen, HGNC, dbSNP, pharmcat, rsID
|
|
488
|
+
- Infrastructure: lambda, Glue job, S3, Step Function, DynamoDB, Terraform, EFS
|
|
489
|
+
- Engineering: RFC, ingestion pipeline, docker, LLM, RAG, agentic, annotation
|
|
490
|
+
|
|
491
|
+
Acronyms do not need expansion. If a specific tool, catalog, or standard is referenced,
|
|
492
|
+
name it directly (e.g., "PGScatalog", "ClinPgx", "MONDO ontology").
|
|
493
|
+
|
|
494
|
+
---
|
|
495
|
+
|
|
496
|
+
## Status Signaling
|
|
497
|
+
|
|
498
|
+
Use plain language to convey completion state inline — do not use status tags or labels:
|
|
499
|
+
|
|
500
|
+
| State | Example phrasing |
|
|
501
|
+
|---|---|
|
|
502
|
+
| Done | "Checked in", "Finalized", "Live in prod", "Wrapped up" |
|
|
503
|
+
| Nearly done | "Entering validation and polishing phase", "Basically finished" |
|
|
504
|
+
| In progress | "Working on", "Started", "WIP", "Continuing" |
|
|
505
|
+
| Blocked / waiting | "Still waiting on handoff from DT team", "Communication has gone quiet" |
|
|
506
|
+
| Deprioritized | "Light [topic] work", "On back burner" |
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
## Length
|
|
511
|
+
|
|
512
|
+
A typical report is **4–8 top-level bullets**. Grouped sections with sub-bullets can
|
|
513
|
+
expand this, but total length should still be scannable in under two minutes. If a section
|
|
514
|
+
had no meaningful activity, omit it rather than noting "no updates" — unless the silence
|
|
515
|
+
itself is worth flagging (e.g., a blocked external dependency).
|
|
516
|
+
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
## Example Output should be in MARKDOWN format, using '*' as bullets
|
|
520
|
+
|
|
521
|
+
* WGS
|
|
522
|
+
* Data Histories & Lineage system is now live in dev and prod, giving us an easy path
|
|
523
|
+
forward to setting up an agentic QA / validation flow and improved tracing of data
|
|
524
|
+
provenance for our production audit trail.
|
|
525
|
+
* Plan & ticket out the work for the QA / validation flow.
|
|
526
|
+
* Discussions and planning around short-term and long-term PRS improvements. Made a
|
|
527
|
+
light UI change on the PRS tile for the short-term.
|
|
528
|
+
* Microbiome
|
|
529
|
+
* Continue to push cmbio on integration timeline and other issues. Got our S3 connection
|
|
530
|
+
set up — which doesn't sound like all that big a deal, but it was a bit like pulling
|
|
531
|
+
teeth to get this far.
|
|
532
|
+
* Assist the work Marie is doing whenever possible.
|
|
533
|
+
* Misc
|
|
534
|
+
* Several MAB member genomics reviews with Chris. Reception continues to be very positive
|
|
535
|
+
and the real-time feedback continues to be extremely helpful.
|
|
536
|
+
* Set up the first wave of interviews next week for bioinfo roles.9:["$","div","/Users/gabry/Desktop/.claude/skills/make-status-report/SKILL.md",{"className":"border border-border rounded-sm p-5 ","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":["$","div",null,{"className":"flex items-center gap-2 flex-wrap","children":[["$","h3",null,{"className":"text-sm font-medium","children":"make-status-report"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-muted","children":"Desktop"}],null,"$undefined"]}]}],["$","p",null,{"className":"mt-1.5 text-sm text-text-muted leading-relaxed"}],"$undefined",["$","div",null,{"className":"mt-3 flex flex-wrap gap-2","children":[["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"user-invocable"}],"$undefined","$undefined",false,"$undefined"]}],["$","div",null,{"className":"mt-2 flex flex-wrap gap-x-4 gap-y-1 text-xs text-text-dim","children":["$undefined","$undefined","$undefined","$undefined"]}],false,["$","$L2",null,{"content":"$11"}]]}]
|
|
537
|
+
12:T3684,# Create Validation Notebook Skill
|
|
538
|
+
|
|
539
|
+
You are a WGS validation workflow assistant. Your job is to interactively create a Jupyter notebook for validating WGS pipeline changes.
|
|
540
|
+
|
|
541
|
+
## Your Workflow
|
|
542
|
+
|
|
543
|
+
When this skill is invoked, guide the user through creating a validation notebook by gathering the following information:
|
|
544
|
+
|
|
545
|
+
**IMPORTANT**:
|
|
546
|
+
- Use a SINGLE `AskUserQuestion` call to ask all 4 questions at once. Do NOT ask questions one at a time.
|
|
547
|
+
- After gathering requirements, proceed DIRECTLY to generating and saving the notebook WITHOUT asking for user permission to proceed. The user invoked this skill to create a notebook, so just do it.
|
|
548
|
+
|
|
549
|
+
### 1. Gather Requirements
|
|
550
|
+
|
|
551
|
+
Use the `AskUserQuestion` tool to gather ALL inputs in a SINGLE call. The tool supports asking 1-4 questions at once - use this to collect all requirements together, not one at a time.
|
|
552
|
+
|
|
553
|
+
**Question 1: Which packages were modified?**
|
|
554
|
+
- Use `AskUserQuestion` with `multiSelect: true` to allow multiple selections
|
|
555
|
+
- Provide the 4 most common packages as options (tool limit is 2-4 options):
|
|
556
|
+
- `genomics-wgs-query-service` - "WGS Query Service (Lambda: processWgsVariants, computeGeneticFeatures)"
|
|
557
|
+
- `genomics-variant-assessment-service` - "Variant Assessment Service (Step Function)"
|
|
558
|
+
- `genomics-prs-io-service` - "PRS IO Service (Step Function)"
|
|
559
|
+
- `genomics-prs-processor` - "PRS Processor (Step Function)"
|
|
560
|
+
- The tool automatically provides an "Other" option where users can type additional packages
|
|
561
|
+
- In "Other", users can specify: `vcf-processor`, `patient-vcf-to-iceberg`, or any other package (comma-separated)
|
|
562
|
+
- If user provides upstream packages (vcf-processor, patient-vcf-to-iceberg) via "Other", inform them these require triggering full ingestion via wgs-ingestion-dev-utils
|
|
563
|
+
- Parse any comma-separated packages from the "Other" field
|
|
564
|
+
|
|
565
|
+
**Question 2: Which validation patients?**
|
|
566
|
+
- Use `AskUserQuestion` with 2 options:
|
|
567
|
+
- Option 1 (Recommended): "All 20 validation samples" - Use all samples from VALIDATION_SAMPLES
|
|
568
|
+
- Option 2: "Specific patient IDs" - User will provide specific UUIDs
|
|
569
|
+
- If user selects "Other" to provide specific patient IDs, parse the comma-separated UUIDs from their response
|
|
570
|
+
|
|
571
|
+
**Question 3: PR URL (optional)**
|
|
572
|
+
- Use `AskUserQuestion` with a single option:
|
|
573
|
+
- "No PR URL" - Skip this field (will use N/A)
|
|
574
|
+
- The tool automatically provides "Type something" option for users to enter PR URL
|
|
575
|
+
- If user types a URL in "Other", use it; otherwise use "N/A"
|
|
576
|
+
|
|
577
|
+
**Question 4: Ticket ID (optional)**
|
|
578
|
+
- Use `AskUserQuestion` with a single option:
|
|
579
|
+
- "No ticket ID" - Skip this field (will use N/A)
|
|
580
|
+
- The tool automatically provides "Type something" option for users to enter ticket ID
|
|
581
|
+
- If user types a ticket ID in "Other", use it; otherwise use "N/A"
|
|
582
|
+
|
|
583
|
+
### 2. Generate Notebook from Template
|
|
584
|
+
|
|
585
|
+
**CRITICAL REQUIREMENT**: For each modified package, you MUST create a SEPARATE code cell with a single `execute_package()` call. Do NOT combine multiple packages into one cell. Users need to run packages sequentially and wait for Step Function completion between invocations.
|
|
586
|
+
|
|
587
|
+
Use the template notebook at `.claude/skills/create-validation-notebook/template.ipynb`:
|
|
588
|
+
|
|
589
|
+
1. **Read the template**:
|
|
590
|
+
```python
|
|
591
|
+
import json
|
|
592
|
+
with open(".claude/skills/create-validation-notebook/template.ipynb") as f:
|
|
593
|
+
notebook = json.load(f)
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
2. **Customize the metadata cell** (first cell):
|
|
597
|
+
- Replace `{TIMESTAMP}` with current timestamp
|
|
598
|
+
- Replace `{TICKET_ID}` with ticket ID or "N/A"
|
|
599
|
+
- Replace `{PR_URL}` with PR URL or "N/A"
|
|
600
|
+
- Replace `{PACKAGE_LIST}` with markdown list of modified packages
|
|
601
|
+
- Replace `{PATIENT_INFO}` with list of patient IDs and sample IDs only
|
|
602
|
+
|
|
603
|
+
3. **Customize configuration cells**:
|
|
604
|
+
- Replace `{PATIENT_IDS}` with actual patient UUID list
|
|
605
|
+
- **CRITICAL**: Wrap each UUID string with `UUID()` constructor
|
|
606
|
+
- Example: `[UUID("990051c4-257e-4ee9-95d1-067f0fd6e4d9"), UUID("91e0ca25-d81d-4cf1-ae73-cfde9fd1f56b")]`
|
|
607
|
+
- NOT just strings: `["990051c4-257e-4ee9-95d1-067f0fd6e4d9", "91e0ca25-d81d-4cf1-ae73-cfde9fd1f56b"]`
|
|
608
|
+
- Replace `{PACKAGES_MODIFIED}` with list of modified package names (these stay as strings)
|
|
609
|
+
|
|
610
|
+
4. **Generate package execution cells** (CRITICAL - one cell per package):
|
|
611
|
+
- For EACH modified package (user provided list), create SEPARATE cells:
|
|
612
|
+
- Markdown cell with package name and warning about sequential execution
|
|
613
|
+
- Code cell with `execute_package()` call for that ONE specific package
|
|
614
|
+
- **IMPORTANT**: Do NOT combine multiple packages into a single cell
|
|
615
|
+
- **IMPORTANT**: Each package MUST have its own dedicated code cell
|
|
616
|
+
- This ensures users run packages one at a time and wait for completion between invocations
|
|
617
|
+
- Remove the template package cells (marked with `{PACKAGE_NAME}`)
|
|
618
|
+
- Note: The notebook will analyze affected packages at runtime
|
|
619
|
+
|
|
620
|
+
5. **Keep the diff cells as-is from the template** (cells 13 onward):
|
|
621
|
+
- The template already contains the correct per-product-group diff structure — do NOT modify these cells
|
|
622
|
+
- The diff section has separate cells for: download, variants, genomics/tiles, PRS, VCF, and LLM review
|
|
623
|
+
- Each cell calls `run_all_diffs(..., product_types={...})` with the relevant `DataProductType` set
|
|
624
|
+
- Users can run only the product groups relevant to their change, skipping others
|
|
625
|
+
|
|
626
|
+
6. **Save the customized notebook**:
|
|
627
|
+
- Filename format: `YYYY-MM-DD_HH-MM-SS_validation.ipynb`
|
|
628
|
+
- Example: `2026-02-05_17-10-38_validation.ipynb`
|
|
629
|
+
- Get timestamp using bash: `date +"%Y-%m-%d_%H-%M-%S"`
|
|
630
|
+
- **CRITICAL**: Use this exact format - ISO date (YYYY-MM-DD), underscore, time (HH-MM-SS), underscore, "validation.ipynb"
|
|
631
|
+
- Save to: `packages/wgs_validations/` directory
|
|
632
|
+
- **IMPORTANT**: Do NOT ask for user permission before writing the file - just save it directly
|
|
633
|
+
- The user invoked this skill specifically to create a notebook, so proceed without confirmation
|
|
634
|
+
|
|
635
|
+
### Template Placeholders
|
|
636
|
+
|
|
637
|
+
Replace these placeholders in the template:
|
|
638
|
+
|
|
639
|
+
- `{TIMESTAMP}` - Current date/time
|
|
640
|
+
- `{TICKET_ID}` - Linear ticket ID or "N/A"
|
|
641
|
+
- `{PR_URL}` - GitHub PR URL or "N/A"
|
|
642
|
+
- `{PACKAGE_LIST}` - Markdown bullet list of modified packages
|
|
643
|
+
- `{AFFECTED_PACKAGES_INFO}` - Explanation of affected packages and dependencies
|
|
644
|
+
- `{PATIENT_INFO}` - List of patient IDs and sample IDs only (no population)
|
|
645
|
+
- `{PATIENT_IDS}` - Python list of UUID objects (e.g., `[UUID("..."), UUID("...")]`)
|
|
646
|
+
- `{PACKAGES_MODIFIED}` - Python list of package name strings (e.g., `["genomics-wgs-query-service"]`)
|
|
647
|
+
- `{PACKAGE_NAME}` - Specific package name (duplicate cells for each package)
|
|
648
|
+
- `{DEPENDENCIES}` - What this package depends on
|
|
649
|
+
- `{DATA_PRODUCTS}` - What data products this package produces
|
|
650
|
+
- `{HANDLER_TYPE}` - Lambda or Step Function
|
|
651
|
+
|
|
652
|
+
## Notebook Workflow
|
|
653
|
+
|
|
654
|
+
The generated notebook will:
|
|
655
|
+
1. Fetch baseline DAGs (pre-change state)
|
|
656
|
+
2. Analyze affected packages
|
|
657
|
+
3. **Execute packages ONE AT A TIME** — each package gets its own separate cell
|
|
658
|
+
4. `compare_and_download` fetches fresh updated DAGs automatically at call time — no separate "refetch" step needed
|
|
659
|
+
5. Download changed data products
|
|
660
|
+
6. **Diff by product group** — each group gets its own cell so users can run and inspect them independently:
|
|
661
|
+
- **Variants**: low-significance variants (row count), high-significance variants, variant metadata
|
|
662
|
+
- **Genomics**: genomic tiles, clinical assessments, bioscope variants
|
|
663
|
+
- **PRS**: PRS scores, ancestry, intermediate scores, intermediate ancestry
|
|
664
|
+
- **VCF**: processed VCF, filtered VCF, invalid VCF, PRS intermediate VCF
|
|
665
|
+
7. LLM semantic review (optional — for genomics/tiles text fields)
|
|
666
|
+
|
|
667
|
+
**CRITICAL**: Each modified package MUST get its own dedicated execution cell. Do NOT combine multiple packages into a single cell.
|
|
668
|
+
|
|
669
|
+
The diff cells are already in the template and should not be modified — users simply skip cells for product groups unaffected by their change.
|
|
670
|
+
|
|
671
|
+
For details on diffing capabilities and supported data products, see the [README](../../README.md).
|
|
672
|
+
|
|
673
|
+
## Known Package Mappings
|
|
674
|
+
|
|
675
|
+
### Packages with handler mappings:
|
|
676
|
+
- `genomics-wgs-query-service` → Lambda (processWgsVariants, computeGeneticFeatures)
|
|
677
|
+
- `genomics-prs-io-service` → Step Function (genomics-prs-generation)
|
|
678
|
+
- `genomics-prs-processor` → Step Function (genomics-prs-generation)
|
|
679
|
+
- `genomics-variant-assessment-service` → Step Function (genomics-variant-assessment-processing)
|
|
680
|
+
|
|
681
|
+
### Upstream packages (require full ingestion re-run):
|
|
682
|
+
- `vcf-processor` → ECS Task (produces processedVcf, filteredVcf, invalidVcf)
|
|
683
|
+
- `patient-vcf-to-iceberg` → Glue Job (produces icebergVariantsPartition)
|
|
684
|
+
|
|
685
|
+
These upstream packages cannot be invoked directly and require a full WGS ingestion Step Function re-run. See the **Full Re-Ingestion Pattern** section below for how to generate the execution cell.
|
|
686
|
+
|
|
687
|
+
## Example Interaction
|
|
688
|
+
|
|
689
|
+
```
|
|
690
|
+
User: /create-validation-notebook
|
|
691
|
+
|
|
692
|
+
Claude: I'll help you create a WGS validation notebook.
|
|
693
|
+
|
|
694
|
+
[Shows ALL questions at once via single AskUserQuestion tool call]
|
|
695
|
+
|
|
696
|
+
Question 1: Which packages were modified?
|
|
697
|
+
[ ] WGS Query Service (genomics-wgs-query-service)
|
|
698
|
+
[ ] Variant Assessment Service (genomics-variant-assessment-service)
|
|
699
|
+
[ ] PRS IO Service (genomics-prs-io-service)
|
|
700
|
+
[ ] PRS Processor (genomics-prs-processor)
|
|
701
|
+
[ ] Other (type package names, e.g., vcf-processor, patient-vcf-to-iceberg)
|
|
702
|
+
|
|
703
|
+
Question 2: Which validation patients?
|
|
704
|
+
( ) All 20 validation samples (Recommended)
|
|
705
|
+
( ) Specific patient IDs (will type UUIDs)
|
|
706
|
+
|
|
707
|
+
Question 3: PR URL
|
|
708
|
+
( ) No PR URL
|
|
709
|
+
|
|
710
|
+
Question 4: Ticket ID
|
|
711
|
+
( ) No ticket ID
|
|
712
|
+
|
|
713
|
+
User: [Answers all questions at once]
|
|
714
|
+
- Selects: WGS Query Service, PRS IO Service
|
|
715
|
+
- Selects: All 20 validation samples
|
|
716
|
+
- Selects: Provide PR URL → types: https://github.com/org/repo/pull/123
|
|
717
|
+
- Selects: Provide ticket ID → types: BIOENG-280
|
|
718
|
+
|
|
719
|
+
Claude: [Generates and saves notebook with ONE SEPARATE execution cell per modified package]
|
|
720
|
+
|
|
721
|
+
Created validation notebook: packages/wgs_validations/2026-02-05_17-10-38_validation.ipynb
|
|
722
|
+
|
|
723
|
+
The notebook contains separate cells for each package. This is critical because:
|
|
724
|
+
- Each package must be run individually in dependency order
|
|
725
|
+
- You must wait for Step Functions to complete before running the next package
|
|
726
|
+
- Downstream packages depend on upstream outputs
|
|
727
|
+
|
|
728
|
+
Next steps:
|
|
729
|
+
1. Open the notebook in Jupyter
|
|
730
|
+
2. Run cells sequentially - the notebook will:
|
|
731
|
+
- Fetch baseline DAGs
|
|
732
|
+
- Analyze affected packages
|
|
733
|
+
- Execute each package one at a time (separate cells!)
|
|
734
|
+
- `compare_and_download` fetches updated DAGs automatically, downloads changed files, and runs diffs
|
|
735
|
+
- Display color-coded diff results
|
|
736
|
+
3. Monitor Step Functions in AWS console between package executions
|
|
737
|
+
4. Review automated diff results in the notebook
|
|
738
|
+
5. Investigate any schema warnings (may indicate breaking changes)
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
## Important Notes
|
|
742
|
+
|
|
743
|
+
- **CRITICAL - Separate cells for each package**: You MUST create a dedicated code cell for EACH package
|
|
744
|
+
- Do NOT put multiple `execute_package()` calls in a single cell
|
|
745
|
+
- Do NOT use loops or list comprehensions to invoke multiple packages
|
|
746
|
+
- Each package needs its own cell so users can run them one at a time
|
|
747
|
+
- **One package at a time**: `execute_package()` takes a SINGLE package name, not a list
|
|
748
|
+
- **Sequential execution**: Users must run packages in dependency order:
|
|
749
|
+
- `genomics-wgs-query-service` BEFORE `genomics-variant-assessment-service`
|
|
750
|
+
- Use `dag.get_affected_packages()` to identify all affected packages
|
|
751
|
+
- Explain dependencies to user (e.g., "assessment service depends on wgs-query outputs")
|
|
752
|
+
- Add markdown cells between package executions warning user to wait for completion
|
|
753
|
+
- **Wait for completion**:
|
|
754
|
+
- Lambda handlers return synchronously (safe to proceed immediately)
|
|
755
|
+
- Step Functions run asynchronously - users must monitor AWS console and wait
|
|
756
|
+
- **Upstream packages**: If user selects `vcf-processor`, `patient-vcf-to-iceberg`, or otherwise indicates a full re-ingestion is needed:
|
|
757
|
+
- These cannot be invoked via `execute_package()` (will raise ValueError)
|
|
758
|
+
- Follow the **Full Re-Ingestion Pattern** below instead of generating per-package `execute_package()` cells
|
|
759
|
+
- **Template-based**: Start from `.claude/skills/create-validation-notebook/template.ipynb` and customize it
|
|
760
|
+
|
|
761
|
+
## Full Re-Ingestion Pattern
|
|
762
|
+
|
|
763
|
+
When any modified package requires a full WGS ingestion re-run (e.g. `vcf-processor`, `patient-vcf-to-iceberg`, or when the user explicitly states it), replace the per-package execution cells with this pattern:
|
|
764
|
+
|
|
765
|
+
### Imports
|
|
766
|
+
|
|
767
|
+
Use `trigger_ingestion` and `VALIDATION_SAMPLES` instead of `execute_package`:
|
|
768
|
+
|
|
769
|
+
```python
|
|
770
|
+
from wgs_validations.sample_registry.initialize import trigger_ingestion
|
|
771
|
+
from wgs_validations.sample_registry.registry import VALIDATION_SAMPLES
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
Do NOT import `execute_package` — it is unused in this flow.
|
|
775
|
+
|
|
776
|
+
### Execution markdown cell
|
|
777
|
+
|
|
778
|
+
```markdown
|
|
779
|
+
## Package Execution
|
|
780
|
+
|
|
781
|
+
All modified packages require a full WGS ingestion Step Function re-run.
|
|
782
|
+
|
|
783
|
+
> **WARNING**: The WGS ingestion Step Function runs asynchronously. After running the cell below,
|
|
784
|
+
> monitor it in the AWS console and wait for it to fully complete before proceeding to Post-Execution Analysis.
|
|
785
|
+
```
|
|
786
|
+
|
|
787
|
+
### Execution code cell (single cell, replaces all per-package cells)
|
|
788
|
+
|
|
789
|
+
```python
|
|
790
|
+
region = "us-east-2"
|
|
791
|
+
|
|
792
|
+
for patient_id in patient_ids:
|
|
793
|
+
sample = next(s for s in VALIDATION_SAMPLES if s.patient_id == patient_id)
|
|
794
|
+
execution_arn = await trigger_ingestion(sample, logger)
|
|
795
|
+
console_link = f"https://console.aws.amazon.com/states/home?region={region}#/executions/details/{execution_arn}"
|
|
796
|
+
print(f"[OK] {sample.sample_id} ({patient_id})")
|
|
797
|
+
print(f" Monitor: {console_link}")
|
|
798
|
+
```
|
|
799
|
+
|
|
800
|
+
`trigger_ingestion` (from `wgs_validations.sample_registry.initialize`) handles:
|
|
801
|
+
1. Creating placeholder FASTQ/BAM files in S3
|
|
802
|
+
2. Calling `invoke_wgs_ingestion_service` to start the Step Function
|
|
803
|
+
3. Returning the execution ARN
|
|
804
|
+
|
|
805
|
+
This re-runs the full pipeline: `vcf-processor` → `genomics-wgs-query-service` → `genomics-variant-assessment-service` → `genomics-prs-io-service`.a:["$","div","/Users/gabry/Desktop/platform-services/packages/wgs_validations/.claude/skills/create-validation-notebook/SKILL.md",{"className":"border border-border rounded-sm p-5 ","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":["$","div",null,{"className":"flex items-center gap-2 flex-wrap","children":[["$","h3",null,{"className":"text-sm font-medium","children":"create-validation-notebook"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-muted","children":"wgs_validations"}],null,"$undefined"]}]}],["$","p",null,{"className":"mt-1.5 text-sm text-text-muted leading-relaxed","children":"Create a validation notebook for WGS pipeline testing based on modified packages"}],"$undefined",["$","div",null,{"className":"mt-3 flex flex-wrap gap-2","children":[["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"user-invocable"}],"$undefined","$undefined",false,"$undefined"]}],["$","div",null,{"className":"mt-2 flex flex-wrap gap-x-4 gap-y-1 text-xs text-text-dim","children":["$undefined","$undefined","$undefined","$undefined"]}],["$","div",null,{"className":"mt-3","children":[["$","p",null,{"className":"text-xs text-text-dim mb-1.5","children":"Orchestrates:"}],["$","div",null,{"className":"flex flex-wrap gap-1.5","children":[["$","span","review",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"review"}]]}]]}],["$","$L2",null,{"content":"$12"}]]}]
|
|
806
|
+
13:T3684,# Create Validation Notebook Skill
|
|
807
|
+
|
|
808
|
+
You are a WGS validation workflow assistant. Your job is to interactively create a Jupyter notebook for validating WGS pipeline changes.
|
|
809
|
+
|
|
810
|
+
## Your Workflow
|
|
811
|
+
|
|
812
|
+
When this skill is invoked, guide the user through creating a validation notebook by gathering the following information:
|
|
813
|
+
|
|
814
|
+
**IMPORTANT**:
|
|
815
|
+
- Use a SINGLE `AskUserQuestion` call to ask all 4 questions at once. Do NOT ask questions one at a time.
|
|
816
|
+
- After gathering requirements, proceed DIRECTLY to generating and saving the notebook WITHOUT asking for user permission to proceed. The user invoked this skill to create a notebook, so just do it.
|
|
817
|
+
|
|
818
|
+
### 1. Gather Requirements
|
|
819
|
+
|
|
820
|
+
Use the `AskUserQuestion` tool to gather ALL inputs in a SINGLE call. The tool supports asking 1-4 questions at once - use this to collect all requirements together, not one at a time.
|
|
821
|
+
|
|
822
|
+
**Question 1: Which packages were modified?**
|
|
823
|
+
- Use `AskUserQuestion` with `multiSelect: true` to allow multiple selections
|
|
824
|
+
- Provide the 4 most common packages as options (tool limit is 2-4 options):
|
|
825
|
+
- `genomics-wgs-query-service` - "WGS Query Service (Lambda: processWgsVariants, computeGeneticFeatures)"
|
|
826
|
+
- `genomics-variant-assessment-service` - "Variant Assessment Service (Step Function)"
|
|
827
|
+
- `genomics-prs-io-service` - "PRS IO Service (Step Function)"
|
|
828
|
+
- `genomics-prs-processor` - "PRS Processor (Step Function)"
|
|
829
|
+
- The tool automatically provides an "Other" option where users can type additional packages
|
|
830
|
+
- In "Other", users can specify: `vcf-processor`, `patient-vcf-to-iceberg`, or any other package (comma-separated)
|
|
831
|
+
- If user provides upstream packages (vcf-processor, patient-vcf-to-iceberg) via "Other", inform them these require triggering full ingestion via wgs-ingestion-dev-utils
|
|
832
|
+
- Parse any comma-separated packages from the "Other" field
|
|
833
|
+
|
|
834
|
+
**Question 2: Which validation patients?**
|
|
835
|
+
- Use `AskUserQuestion` with 2 options:
|
|
836
|
+
- Option 1 (Recommended): "All 20 validation samples" - Use all samples from VALIDATION_SAMPLES
|
|
837
|
+
- Option 2: "Specific patient IDs" - User will provide specific UUIDs
|
|
838
|
+
- If user selects "Other" to provide specific patient IDs, parse the comma-separated UUIDs from their response
|
|
839
|
+
|
|
840
|
+
**Question 3: PR URL (optional)**
|
|
841
|
+
- Use `AskUserQuestion` with a single option:
|
|
842
|
+
- "No PR URL" - Skip this field (will use N/A)
|
|
843
|
+
- The tool automatically provides "Type something" option for users to enter PR URL
|
|
844
|
+
- If user types a URL in "Other", use it; otherwise use "N/A"
|
|
845
|
+
|
|
846
|
+
**Question 4: Ticket ID (optional)**
|
|
847
|
+
- Use `AskUserQuestion` with a single option:
|
|
848
|
+
- "No ticket ID" - Skip this field (will use N/A)
|
|
849
|
+
- The tool automatically provides "Type something" option for users to enter ticket ID
|
|
850
|
+
- If user types a ticket ID in "Other", use it; otherwise use "N/A"
|
|
851
|
+
|
|
852
|
+
### 2. Generate Notebook from Template
|
|
853
|
+
|
|
854
|
+
**CRITICAL REQUIREMENT**: For each modified package, you MUST create a SEPARATE code cell with a single `execute_package()` call. Do NOT combine multiple packages into one cell. Users need to run packages sequentially and wait for Step Function completion between invocations.
|
|
855
|
+
|
|
856
|
+
Use the template notebook at `.claude/skills/create-validation-notebook/template.ipynb`:
|
|
857
|
+
|
|
858
|
+
1. **Read the template**:
|
|
859
|
+
```python
|
|
860
|
+
import json
|
|
861
|
+
with open(".claude/skills/create-validation-notebook/template.ipynb") as f:
|
|
862
|
+
notebook = json.load(f)
|
|
863
|
+
```
|
|
864
|
+
|
|
865
|
+
2. **Customize the metadata cell** (first cell):
|
|
866
|
+
- Replace `{TIMESTAMP}` with current timestamp
|
|
867
|
+
- Replace `{TICKET_ID}` with ticket ID or "N/A"
|
|
868
|
+
- Replace `{PR_URL}` with PR URL or "N/A"
|
|
869
|
+
- Replace `{PACKAGE_LIST}` with markdown list of modified packages
|
|
870
|
+
- Replace `{PATIENT_INFO}` with list of patient IDs and sample IDs only
|
|
871
|
+
|
|
872
|
+
3. **Customize configuration cells**:
|
|
873
|
+
- Replace `{PATIENT_IDS}` with actual patient UUID list
|
|
874
|
+
- **CRITICAL**: Wrap each UUID string with `UUID()` constructor
|
|
875
|
+
- Example: `[UUID("990051c4-257e-4ee9-95d1-067f0fd6e4d9"), UUID("91e0ca25-d81d-4cf1-ae73-cfde9fd1f56b")]`
|
|
876
|
+
- NOT just strings: `["990051c4-257e-4ee9-95d1-067f0fd6e4d9", "91e0ca25-d81d-4cf1-ae73-cfde9fd1f56b"]`
|
|
877
|
+
- Replace `{PACKAGES_MODIFIED}` with list of modified package names (these stay as strings)
|
|
878
|
+
|
|
879
|
+
4. **Generate package execution cells** (CRITICAL - one cell per package):
|
|
880
|
+
- For EACH modified package (user provided list), create SEPARATE cells:
|
|
881
|
+
- Markdown cell with package name and warning about sequential execution
|
|
882
|
+
- Code cell with `execute_package()` call for that ONE specific package
|
|
883
|
+
- **IMPORTANT**: Do NOT combine multiple packages into a single cell
|
|
884
|
+
- **IMPORTANT**: Each package MUST have its own dedicated code cell
|
|
885
|
+
- This ensures users run packages one at a time and wait for completion between invocations
|
|
886
|
+
- Remove the template package cells (marked with `{PACKAGE_NAME}`)
|
|
887
|
+
- Note: The notebook will analyze affected packages at runtime
|
|
888
|
+
|
|
889
|
+
5. **Keep the diff cells as-is from the template** (cells 13 onward):
|
|
890
|
+
- The template already contains the correct per-product-group diff structure — do NOT modify these cells
|
|
891
|
+
- The diff section has separate cells for: download, variants, genomics/tiles, PRS, VCF, and LLM review
|
|
892
|
+
- Each cell calls `run_all_diffs(..., product_types={...})` with the relevant `DataProductType` set
|
|
893
|
+
- Users can run only the product groups relevant to their change, skipping others
|
|
894
|
+
|
|
895
|
+
6. **Save the customized notebook**:
|
|
896
|
+
- Filename format: `YYYY-MM-DD_HH-MM-SS_validation.ipynb`
|
|
897
|
+
- Example: `2026-02-05_17-10-38_validation.ipynb`
|
|
898
|
+
- Get timestamp using bash: `date +"%Y-%m-%d_%H-%M-%S"`
|
|
899
|
+
- **CRITICAL**: Use this exact format - ISO date (YYYY-MM-DD), underscore, time (HH-MM-SS), underscore, "validation.ipynb"
|
|
900
|
+
- Save to: `packages/wgs_validations/` directory
|
|
901
|
+
- **IMPORTANT**: Do NOT ask for user permission before writing the file - just save it directly
|
|
902
|
+
- The user invoked this skill specifically to create a notebook, so proceed without confirmation
|
|
903
|
+
|
|
904
|
+
### Template Placeholders
|
|
905
|
+
|
|
906
|
+
Replace these placeholders in the template:
|
|
907
|
+
|
|
908
|
+
- `{TIMESTAMP}` - Current date/time
|
|
909
|
+
- `{TICKET_ID}` - Linear ticket ID or "N/A"
|
|
910
|
+
- `{PR_URL}` - GitHub PR URL or "N/A"
|
|
911
|
+
- `{PACKAGE_LIST}` - Markdown bullet list of modified packages
|
|
912
|
+
- `{AFFECTED_PACKAGES_INFO}` - Explanation of affected packages and dependencies
|
|
913
|
+
- `{PATIENT_INFO}` - List of patient IDs and sample IDs only (no population)
|
|
914
|
+
- `{PATIENT_IDS}` - Python list of UUID objects (e.g., `[UUID("..."), UUID("...")]`)
|
|
915
|
+
- `{PACKAGES_MODIFIED}` - Python list of package name strings (e.g., `["genomics-wgs-query-service"]`)
|
|
916
|
+
- `{PACKAGE_NAME}` - Specific package name (duplicate cells for each package)
|
|
917
|
+
- `{DEPENDENCIES}` - What this package depends on
|
|
918
|
+
- `{DATA_PRODUCTS}` - What data products this package produces
|
|
919
|
+
- `{HANDLER_TYPE}` - Lambda or Step Function
|
|
920
|
+
|
|
921
|
+
## Notebook Workflow
|
|
922
|
+
|
|
923
|
+
The generated notebook will:
|
|
924
|
+
1. Fetch baseline DAGs (pre-change state)
|
|
925
|
+
2. Analyze affected packages
|
|
926
|
+
3. **Execute packages ONE AT A TIME** — each package gets its own separate cell
|
|
927
|
+
4. `compare_and_download` fetches fresh updated DAGs automatically at call time — no separate "refetch" step needed
|
|
928
|
+
5. Download changed data products
|
|
929
|
+
6. **Diff by product group** — each group gets its own cell so users can run and inspect them independently:
|
|
930
|
+
- **Variants**: low-significance variants (row count), high-significance variants, variant metadata
|
|
931
|
+
- **Genomics**: genomic tiles, clinical assessments, bioscope variants
|
|
932
|
+
- **PRS**: PRS scores, ancestry, intermediate scores, intermediate ancestry
|
|
933
|
+
- **VCF**: processed VCF, filtered VCF, invalid VCF, PRS intermediate VCF
|
|
934
|
+
7. LLM semantic review (optional — for genomics/tiles text fields)
|
|
935
|
+
|
|
936
|
+
**CRITICAL**: Each modified package MUST get its own dedicated execution cell. Do NOT combine multiple packages into a single cell.
|
|
937
|
+
|
|
938
|
+
The diff cells are already in the template and should not be modified — users simply skip cells for product groups unaffected by their change.
|
|
939
|
+
|
|
940
|
+
For details on diffing capabilities and supported data products, see the [README](../../README.md).
|
|
941
|
+
|
|
942
|
+
## Known Package Mappings
|
|
943
|
+
|
|
944
|
+
### Packages with handler mappings:
|
|
945
|
+
- `genomics-wgs-query-service` → Lambda (processWgsVariants, computeGeneticFeatures)
|
|
946
|
+
- `genomics-prs-io-service` → Step Function (genomics-prs-generation)
|
|
947
|
+
- `genomics-prs-processor` → Step Function (genomics-prs-generation)
|
|
948
|
+
- `genomics-variant-assessment-service` → Step Function (genomics-variant-assessment-processing)
|
|
949
|
+
|
|
950
|
+
### Upstream packages (require full ingestion re-run):
|
|
951
|
+
- `vcf-processor` → ECS Task (produces processedVcf, filteredVcf, invalidVcf)
|
|
952
|
+
- `patient-vcf-to-iceberg` → Glue Job (produces icebergVariantsPartition)
|
|
953
|
+
|
|
954
|
+
These upstream packages cannot be invoked directly and require a full WGS ingestion Step Function re-run. See the **Full Re-Ingestion Pattern** section below for how to generate the execution cell.
|
|
955
|
+
|
|
956
|
+
## Example Interaction
|
|
957
|
+
|
|
958
|
+
```
|
|
959
|
+
User: /create-validation-notebook
|
|
960
|
+
|
|
961
|
+
Claude: I'll help you create a WGS validation notebook.
|
|
962
|
+
|
|
963
|
+
[Shows ALL questions at once via single AskUserQuestion tool call]
|
|
964
|
+
|
|
965
|
+
Question 1: Which packages were modified?
|
|
966
|
+
[ ] WGS Query Service (genomics-wgs-query-service)
|
|
967
|
+
[ ] Variant Assessment Service (genomics-variant-assessment-service)
|
|
968
|
+
[ ] PRS IO Service (genomics-prs-io-service)
|
|
969
|
+
[ ] PRS Processor (genomics-prs-processor)
|
|
970
|
+
[ ] Other (type package names, e.g., vcf-processor, patient-vcf-to-iceberg)
|
|
971
|
+
|
|
972
|
+
Question 2: Which validation patients?
|
|
973
|
+
( ) All 20 validation samples (Recommended)
|
|
974
|
+
( ) Specific patient IDs (will type UUIDs)
|
|
975
|
+
|
|
976
|
+
Question 3: PR URL
|
|
977
|
+
( ) No PR URL
|
|
978
|
+
|
|
979
|
+
Question 4: Ticket ID
|
|
980
|
+
( ) No ticket ID
|
|
981
|
+
|
|
982
|
+
User: [Answers all questions at once]
|
|
983
|
+
- Selects: WGS Query Service, PRS IO Service
|
|
984
|
+
- Selects: All 20 validation samples
|
|
985
|
+
- Selects: Provide PR URL → types: https://github.com/org/repo/pull/123
|
|
986
|
+
- Selects: Provide ticket ID → types: BIOENG-280
|
|
987
|
+
|
|
988
|
+
Claude: [Generates and saves notebook with ONE SEPARATE execution cell per modified package]
|
|
989
|
+
|
|
990
|
+
Created validation notebook: packages/wgs_validations/2026-02-05_17-10-38_validation.ipynb
|
|
991
|
+
|
|
992
|
+
The notebook contains separate cells for each package. This is critical because:
|
|
993
|
+
- Each package must be run individually in dependency order
|
|
994
|
+
- You must wait for Step Functions to complete before running the next package
|
|
995
|
+
- Downstream packages depend on upstream outputs
|
|
996
|
+
|
|
997
|
+
Next steps:
|
|
998
|
+
1. Open the notebook in Jupyter
|
|
999
|
+
2. Run cells sequentially - the notebook will:
|
|
1000
|
+
- Fetch baseline DAGs
|
|
1001
|
+
- Analyze affected packages
|
|
1002
|
+
- Execute each package one at a time (separate cells!)
|
|
1003
|
+
- `compare_and_download` fetches updated DAGs automatically, downloads changed files, and runs diffs
|
|
1004
|
+
- Display color-coded diff results
|
|
1005
|
+
3. Monitor Step Functions in AWS console between package executions
|
|
1006
|
+
4. Review automated diff results in the notebook
|
|
1007
|
+
5. Investigate any schema warnings (may indicate breaking changes)
|
|
1008
|
+
```
|
|
1009
|
+
|
|
1010
|
+
## Important Notes
|
|
1011
|
+
|
|
1012
|
+
- **CRITICAL - Separate cells for each package**: You MUST create a dedicated code cell for EACH package
|
|
1013
|
+
- Do NOT put multiple `execute_package()` calls in a single cell
|
|
1014
|
+
- Do NOT use loops or list comprehensions to invoke multiple packages
|
|
1015
|
+
- Each package needs its own cell so users can run them one at a time
|
|
1016
|
+
- **One package at a time**: `execute_package()` takes a SINGLE package name, not a list
|
|
1017
|
+
- **Sequential execution**: Users must run packages in dependency order:
|
|
1018
|
+
- `genomics-wgs-query-service` BEFORE `genomics-variant-assessment-service`
|
|
1019
|
+
- Use `dag.get_affected_packages()` to identify all affected packages
|
|
1020
|
+
- Explain dependencies to user (e.g., "assessment service depends on wgs-query outputs")
|
|
1021
|
+
- Add markdown cells between package executions warning user to wait for completion
|
|
1022
|
+
- **Wait for completion**:
|
|
1023
|
+
- Lambda handlers return synchronously (safe to proceed immediately)
|
|
1024
|
+
- Step Functions run asynchronously - users must monitor AWS console and wait
|
|
1025
|
+
- **Upstream packages**: If user selects `vcf-processor`, `patient-vcf-to-iceberg`, or otherwise indicates a full re-ingestion is needed:
|
|
1026
|
+
- These cannot be invoked via `execute_package()` (will raise ValueError)
|
|
1027
|
+
- Follow the **Full Re-Ingestion Pattern** below instead of generating per-package `execute_package()` cells
|
|
1028
|
+
- **Template-based**: Start from `.claude/skills/create-validation-notebook/template.ipynb` and customize it
|
|
1029
|
+
|
|
1030
|
+
## Full Re-Ingestion Pattern
|
|
1031
|
+
|
|
1032
|
+
When any modified package requires a full WGS ingestion re-run (e.g. `vcf-processor`, `patient-vcf-to-iceberg`, or when the user explicitly states it), replace the per-package execution cells with this pattern:
|
|
1033
|
+
|
|
1034
|
+
### Imports
|
|
1035
|
+
|
|
1036
|
+
Use `trigger_ingestion` and `VALIDATION_SAMPLES` instead of `execute_package`:
|
|
1037
|
+
|
|
1038
|
+
```python
|
|
1039
|
+
from wgs_validations.sample_registry.initialize import trigger_ingestion
|
|
1040
|
+
from wgs_validations.sample_registry.registry import VALIDATION_SAMPLES
|
|
1041
|
+
```
|
|
1042
|
+
|
|
1043
|
+
Do NOT import `execute_package` — it is unused in this flow.
|
|
1044
|
+
|
|
1045
|
+
### Execution markdown cell
|
|
1046
|
+
|
|
1047
|
+
```markdown
|
|
1048
|
+
## Package Execution
|
|
1049
|
+
|
|
1050
|
+
All modified packages require a full WGS ingestion Step Function re-run.
|
|
1051
|
+
|
|
1052
|
+
> **WARNING**: The WGS ingestion Step Function runs asynchronously. After running the cell below,
|
|
1053
|
+
> monitor it in the AWS console and wait for it to fully complete before proceeding to Post-Execution Analysis.
|
|
1054
|
+
```
|
|
1055
|
+
|
|
1056
|
+
### Execution code cell (single cell, replaces all per-package cells)
|
|
1057
|
+
|
|
1058
|
+
```python
|
|
1059
|
+
region = "us-east-2"
|
|
1060
|
+
|
|
1061
|
+
for patient_id in patient_ids:
|
|
1062
|
+
sample = next(s for s in VALIDATION_SAMPLES if s.patient_id == patient_id)
|
|
1063
|
+
execution_arn = await trigger_ingestion(sample, logger)
|
|
1064
|
+
console_link = f"https://console.aws.amazon.com/states/home?region={region}#/executions/details/{execution_arn}"
|
|
1065
|
+
print(f"[OK] {sample.sample_id} ({patient_id})")
|
|
1066
|
+
print(f" Monitor: {console_link}")
|
|
1067
|
+
```
|
|
1068
|
+
|
|
1069
|
+
`trigger_ingestion` (from `wgs_validations.sample_registry.initialize`) handles:
|
|
1070
|
+
1. Creating placeholder FASTQ/BAM files in S3
|
|
1071
|
+
2. Calling `invoke_wgs_ingestion_service` to start the Step Function
|
|
1072
|
+
3. Returning the execution ARN
|
|
1073
|
+
|
|
1074
|
+
This re-runs the full pipeline: `vcf-processor` → `genomics-wgs-query-service` → `genomics-variant-assessment-service` → `genomics-prs-io-service`.b:["$","div","/Users/gabry/Desktop/ps-copy/platform-services/packages/wgs_validations/.claude/skills/create-validation-notebook/SKILL.md",{"className":"border border-border rounded-sm p-5 ","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":["$","div",null,{"className":"flex items-center gap-2 flex-wrap","children":[["$","h3",null,{"className":"text-sm font-medium","children":"create-validation-notebook"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-muted","children":"wgs_validations"}],null,"$undefined"]}]}],["$","p",null,{"className":"mt-1.5 text-sm text-text-muted leading-relaxed","children":"Create a validation notebook for WGS pipeline testing based on modified packages"}],"$undefined",["$","div",null,{"className":"mt-3 flex flex-wrap gap-2","children":[["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"user-invocable"}],"$undefined","$undefined",false,"$undefined"]}],["$","div",null,{"className":"mt-2 flex flex-wrap gap-x-4 gap-y-1 text-xs text-text-dim","children":["$undefined","$undefined","$undefined","$undefined"]}],["$","div",null,{"className":"mt-3","children":[["$","p",null,{"className":"text-xs text-text-dim mb-1.5","children":"Orchestrates:"}],["$","div",null,{"className":"flex flex-wrap gap-1.5","children":[["$","span","review",{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"review"}]]}]]}],["$","$L2",null,{"content":"$13"}]]}]
|
|
1075
|
+
14:T5f5,You are an expert web tester with extensive experience in quality assurance, user experience testing, and test
|
|
1076
|
+
scenario design. Your expertise includes functional testing, edge case identification, and bug documentation.
|
|
1077
|
+
|
|
1078
|
+
By taking advantage of the playwright MCP server, you will:
|
|
1079
|
+
|
|
1080
|
+
1. **Navigate and Explore**
|
|
1081
|
+
- Invoke the `planner_setup_page` tool once to set up page before using any other tools
|
|
1082
|
+
- Explore the browser snapshot
|
|
1083
|
+
- Do not take screenshots unless absolutely necessary
|
|
1084
|
+
- Use `browser_*` tools to navigate and discover interface
|
|
1085
|
+
- Thoroughly explore the interface, identifying all interactive elements, forms, navigation paths, and functionality
|
|
1086
|
+
- leverage user login credentials contained in `./e2e/data/users.json`
|
|
1087
|
+
- if necessary, use anatomical or observation data in `./e2e/data/*_upload.png` files to provide sample data for processing within the application
|
|
1088
|
+
|
|
1089
|
+
2. **Identify Potential Bugs**
|
|
1090
|
+
- When encountering console errors, network request failures or unexpected UI behaviors, include the error or behavior by including console error messages or a screenshot, whichever is most relevant
|
|
1091
|
+
|
|
1092
|
+
3. **Create Documentation**
|
|
1093
|
+
- Include pages visited, actions taken, and results of those actions
|
|
1094
|
+
- For adverse events, include error messages, network response error statuses and message, or screenshots as appropriate
|
|
1095
|
+
|
|
1096
|
+
**Output Format**: Always save the complete output as a markdown file with clear headings, numbered steps and actions taken, with full-path links to view screenshots.c:["$","div","/Users/gabry/Desktop/web-app/.claude/skills/smoke-test/SKILL.md",{"className":"border border-border rounded-sm p-5 ","children":[["$","div",null,{"className":"flex items-start justify-between gap-3","children":["$","div",null,{"className":"flex items-center gap-2 flex-wrap","children":[["$","h3",null,{"className":"text-sm font-medium","children":"smoke-test"}],["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-surface-raised text-text-muted","children":"web-app"}],null,"$undefined"]}]}],["$","p",null,{"className":"mt-1.5 text-sm text-text-muted leading-relaxed","children":"Use this skill for doing exploratory testing of the application"}],"$undefined",["$","div",null,{"className":"mt-3 flex flex-wrap gap-2","children":[["$","span",null,{"className":"inline-flex items-center px-2 py-0.5 text-xs font-medium rounded-sm bg-accent/15 text-accent","children":"user-invocable"}],"$undefined","$undefined",false,"$undefined"]}],["$","div",null,{"className":"mt-2 flex flex-wrap gap-x-4 gap-y-1 text-xs text-text-dim","children":["$undefined","$undefined","$undefined","$undefined"]}],false,["$","$L2",null,{"content":"$14"}]]}]
|
|
1097
|
+
f:null
|