@minuque/no-pi-no-gang 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +28 -0
- package/.next/build/chunks/[root-of-the-server]__0d-m0h0._.js +206 -0
- package/.next/build/chunks/[root-of-the-server]__0ubbtyl._.js +500 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_06e.r3r._.js +13 -0
- package/.next/build/chunks/[turbopack]_runtime.js +890 -0
- package/.next/build/chunks/node_modules_13sb.px._.js +6765 -0
- package/.next/build/package.json +1 -0
- package/.next/build/postcss.js +6 -0
- package/.next/build-manifest.json +21 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/diagnostics/route-bundle-stats.json +30 -0
- package/.next/export-marker.json +6 -0
- package/.next/fallback-build-manifest.json +13 -0
- package/.next/images-manifest.json +71 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +114 -0
- package/.next/required-server-files.js +343 -0
- package/.next/required-server-files.json +343 -0
- package/.next/routes-manifest.json +283 -0
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +17 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +10 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +15 -0
- package/.next/server/app/_global-error.rsc +15 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_not-found/page/build-manifest.json +17 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +8 -0
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_not-found/page.js +13 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +16 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/api/agent/[id]/events/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/agent/[id]/events/route/build-manifest.json +9 -0
- package/.next/server/app/api/agent/[id]/events/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/agent/[id]/events/route.js +6 -0
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/agent/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/agent/[id]/route/build-manifest.json +9 -0
- package/.next/server/app/api/agent/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/agent/[id]/route.js +7 -0
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/agent/new/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/agent/new/route/build-manifest.json +9 -0
- package/.next/server/app/api/agent/new/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/agent/new/route.js +7 -0
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/new/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/auth/all-providers/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/auth/all-providers/route/build-manifest.json +9 -0
- package/.next/server/app/api/auth/all-providers/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/auth/all-providers/route.js +6 -0
- package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/auth/api-key/[provider]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/auth/api-key/[provider]/route/build-manifest.json +9 -0
- package/.next/server/app/api/auth/api-key/[provider]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js +7 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/auth/login/[provider]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/auth/login/[provider]/route/build-manifest.json +9 -0
- package/.next/server/app/api/auth/login/[provider]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/auth/login/[provider]/route.js +6 -0
- package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/auth/logout/[provider]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/auth/logout/[provider]/route/build-manifest.json +9 -0
- package/.next/server/app/api/auth/logout/[provider]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js +6 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/auth/providers/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/auth/providers/route/build-manifest.json +9 -0
- package/.next/server/app/api/auth/providers/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/auth/providers/route.js +6 -0
- package/.next/server/app/api/auth/providers/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/cwd/validate/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/cwd/validate/route/build-manifest.json +9 -0
- package/.next/server/app/api/cwd/validate/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/cwd/validate/route.js +7 -0
- package/.next/server/app/api/cwd/validate/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/default-cwd/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/default-cwd/route/build-manifest.json +9 -0
- package/.next/server/app/api/default-cwd/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/default-cwd/route.js +7 -0
- package/.next/server/app/api/default-cwd/route.js.nft.json +1 -0
- package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/files/[...path]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/files/[...path]/route/build-manifest.json +9 -0
- package/.next/server/app/api/files/[...path]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/files/[...path]/route.js +8 -0
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -0
- package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/home/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/home/route/build-manifest.json +9 -0
- package/.next/server/app/api/home/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/home/route.js +7 -0
- package/.next/server/app/api/home/route.js.nft.json +1 -0
- package/.next/server/app/api/home/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/models/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/models/route/build-manifest.json +9 -0
- package/.next/server/app/api/models/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/models/route.js +6 -0
- package/.next/server/app/api/models/route.js.nft.json +1 -0
- package/.next/server/app/api/models/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/models-config/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/models-config/route/build-manifest.json +9 -0
- package/.next/server/app/api/models-config/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/models-config/route.js +7 -0
- package/.next/server/app/api/models-config/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/models-config/test/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/models-config/test/route/build-manifest.json +9 -0
- package/.next/server/app/api/models-config/test/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/models-config/test/route.js +7 -0
- package/.next/server/app/api/models-config/test/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/sessions/[id]/context/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sessions/[id]/context/route/build-manifest.json +9 -0
- package/.next/server/app/api/sessions/[id]/context/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +7 -0
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/sessions/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sessions/[id]/route/build-manifest.json +9 -0
- package/.next/server/app/api/sessions/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sessions/[id]/route.js +7 -0
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/sessions/new/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sessions/new/route/build-manifest.json +9 -0
- package/.next/server/app/api/sessions/new/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sessions/new/route.js +6 -0
- package/.next/server/app/api/sessions/new/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/new/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/sessions/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sessions/route/build-manifest.json +9 -0
- package/.next/server/app/api/sessions/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sessions/route.js +7 -0
- package/.next/server/app/api/sessions/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/skills/install/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/skills/install/route/build-manifest.json +9 -0
- package/.next/server/app/api/skills/install/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/skills/install/route.js +7 -0
- package/.next/server/app/api/skills/install/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/install/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/skills/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/skills/route/build-manifest.json +9 -0
- package/.next/server/app/api/skills/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/skills/route.js +7 -0
- package/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/skills/search/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/skills/search/route/build-manifest.json +9 -0
- package/.next/server/app/api/skills/search/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/skills/search/route.js +7 -0
- package/.next/server/app/api/skills/search/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/search/route_client-reference-manifest.js +3 -0
- package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
- package/.next/server/app/favicon.ico/route/build-manifest.json +9 -0
- package/.next/server/app/favicon.ico/route.js +8 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/favicon.ico.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +14 -0
- package/.next/server/app/index.rsc +20 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/index.segments/_full.segment.rsc +20 -0
- package/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/.next/server/app/index.segments/_index.segment.rsc +5 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +17 -0
- package/.next/server/app/page/next-font-manifest.json +8 -0
- package/.next/server/app/page/react-loadable-manifest.json +28 -0
- package/.next/server/app/page/server-reference-manifest.json +4 -0
- package/.next/server/app/page.js +14 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +3 -0
- package/.next/server/app-paths-manifest.json +28 -0
- package/.next/server/chunks/[externals]__055mlvl._.js +3 -0
- package/.next/server/chunks/[externals]_fs_0eo4gmu._.js +3 -0
- package/.next/server/chunks/[externals]_next_dist_0d5ans~._.js +3 -0
- package/.next/server/chunks/[externals]_os_0149k2b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0.6ktu2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0.gdd-b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__00uikch._.js +13 -0
- package/.next/server/chunks/[root-of-the-server]__00zc4o9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__010..td._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01k0sdb._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__02~3pb0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__046ig0_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__04slun~._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__07h66vy._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_yokg6._.js +8 -0
- package/.next/server/chunks/[root-of-the-server]__0b46pqj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0b6-ha-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ezj5sg._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__0h5n0y4._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0j9v1it._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ku8iqx._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0s7rdqd._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0sa69ta._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0yp3ehn._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__0z0dr.m._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0~3icx-._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__11j~5mn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__11r3.m~._.js +5 -0
- package/.next/server/chunks/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/_0rd1g.~._.js +51 -0
- package/.next/server/chunks/_next-internal_server_app_api_agent_[id]_events_route_actions_05o7blz.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_agent_[id]_route_actions_0kr98j0.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_agent_new_route_actions_0w3r5tj.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_auth_all-providers_route_actions_0qx7ozc.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_auth_api-key_[provider]_route_actions_02zwuk7.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_auth_login_[provider]_route_actions_0iuf38..js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_auth_logout_[provider]_route_actions_0rakqrt.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_auth_providers_route_actions_0d~j0qt.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_cwd_validate_route_actions_036l79..js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_default-cwd_route_actions_0nw97z4.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_files_[___path]_route_actions_0_g4akf.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_home_route_actions_0_7wduh.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_models-config_route_actions_0ipr5cq.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_models-config_test_route_actions_078zink.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_0vfccm4.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_context_route_actions_0d0pnzf.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_route_actions_0eo4u5w.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sessions_new_route_actions_093p~n-.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sessions_route_actions_0y1t9w0.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_skills_install_route_actions_03-v3ve.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_skills_route_actions_0kp0j6w.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_skills_search_route_actions_011wkra.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js +3 -0
- package/.next/server/chunks/node_modules_next_04~_e52._.js +13 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yubv2d.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__06-2p1a._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0e7mf6k._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ft0rpu._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0jtt0~0._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0wovenu._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__11aaox2._.js +3 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/ssr/_0q~ogd.._.js +18 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +3 -0
- package/.next/server/chunks/ssr/app_global-error_tsx_0m9qisk._.js +3 -0
- package/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +3 -0
- package/.next/server/chunks/ssr/app_layout_tsx_13yf0ls._.js +3 -0
- package/.next/server/chunks/ssr/app_not-found_tsx_0u.hoe4._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_0vtdjw7._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_03nkrli._.js +19 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0xdsm99._.js +6 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0ee1czk._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_4weur.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c93gwg.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hrtur5.js +4 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +21 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +9 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +5 -0
- package/.next/static/chunks/0-_x27yxy_uq_.js +93 -0
- package/.next/static/chunks/0-whcx~709zzu.js +80 -0
- package/.next/static/chunks/0.e1a_4mnksx8.js +104 -0
- package/.next/static/chunks/0.fiftciismd2.js +226 -0
- package/.next/static/chunks/0.wuin48y61b7.js +1 -0
- package/.next/static/chunks/002jt~~cq5_aa.js +1 -0
- package/.next/static/chunks/004q74ucr0rud.js +152 -0
- package/.next/static/chunks/02ls~ed5vnxqv.js +24 -0
- package/.next/static/chunks/03~yq9q893hmn.js +1 -0
- package/.next/static/chunks/04fvpl_2xcddp.js +1 -0
- package/.next/static/chunks/06lwnambhb4f0.js +80 -0
- package/.next/static/chunks/06pzacrhunxk5.js +1 -0
- package/.next/static/chunks/07.pn5e.-cj9a.js +2 -0
- package/.next/static/chunks/07vyd7~f6.0u..js +10 -0
- package/.next/static/chunks/089d7..-0wnw3.js +1 -0
- package/.next/static/chunks/08praq-~ae4zt.js +1 -0
- package/.next/static/chunks/08zok6.5_1m~9.js +1 -0
- package/.next/static/chunks/09mnng_7obe78.js +1 -0
- package/.next/static/chunks/09ojirkh94w5..js +1 -0
- package/.next/static/chunks/0_68cloqifx~6.js +1 -0
- package/.next/static/chunks/0_u58hj44ucg2.js +1 -0
- package/.next/static/chunks/0a000ymgl7f3p.js +1 -0
- package/.next/static/chunks/0c9b-g9awna8q.js +29 -0
- package/.next/static/chunks/0ccl4ntkq96ni.js +1 -0
- package/.next/static/chunks/0cf94j-5q3pkw.js +1 -0
- package/.next/static/chunks/0coux02phyasu.js +1 -0
- package/.next/static/chunks/0d50~al.ol-4..js +7 -0
- package/.next/static/chunks/0dkt4l-f5ndy2.js +1 -0
- package/.next/static/chunks/0e1gsufr5shdc.js +62 -0
- package/.next/static/chunks/0egtubyx5jnob.js +1 -0
- package/.next/static/chunks/0fekzj03ltn5y.js +60 -0
- package/.next/static/chunks/0guyki.b1rj56.js +2 -0
- package/.next/static/chunks/0g~f0923b0wjv.js +1 -0
- package/.next/static/chunks/0h3ddk5cyq9xz.js +31 -0
- package/.next/static/chunks/0h4bblvd1oiwg.js +1 -0
- package/.next/static/chunks/0jbpr802lbcrt.css +5 -0
- package/.next/static/chunks/0kh6122expmgj.js +1 -0
- package/.next/static/chunks/0kl8vyx5367.j.js +64 -0
- package/.next/static/chunks/0kx.ki.9u_0dy.js +4 -0
- package/.next/static/chunks/0l_tj98f_5ot-.js +90 -0
- package/.next/static/chunks/0lesd95xyhlx9.js +1 -0
- package/.next/static/chunks/0lmm~3cjla0c9.js +148 -0
- package/.next/static/chunks/0lr2ip~4h2o.z.js +36 -0
- package/.next/static/chunks/0m56dahgfz4ep.js +1 -0
- package/.next/static/chunks/0m__cntkqew.o.js +13 -0
- package/.next/static/chunks/0nfagbuti-8nm.js +43 -0
- package/.next/static/chunks/0njmix7y_6miv.js +1 -0
- package/.next/static/chunks/0nt-wtu-~b7hv.js +15 -0
- package/.next/static/chunks/0nwbvs~t8m~k6.js +201 -0
- package/.next/static/chunks/0oliu54k0bk8f.js +2 -0
- package/.next/static/chunks/0pqew2nbfoy2f.js +1 -0
- package/.next/static/chunks/0puq-xa16mucw.js +15 -0
- package/.next/static/chunks/0qsudywiw6qo5.css +1 -0
- package/.next/static/chunks/0rgczfc39wsyk.js +19 -0
- package/.next/static/chunks/0rr4nl_auvf0b.js +115 -0
- package/.next/static/chunks/0r~pe8dyxc6dg.js +6 -0
- package/.next/static/chunks/0sxewv6qrvo3o.js +1 -0
- package/.next/static/chunks/0t-7~zw5_oj33.js +1 -0
- package/.next/static/chunks/0t-ecot2ot8jq.js +1 -0
- package/.next/static/chunks/0t1nhjmm.2-8-.js +287 -0
- package/.next/static/chunks/0tvexet6666de.js +1 -0
- package/.next/static/chunks/0v8zy131j2_sl.js +5 -0
- package/.next/static/chunks/0vj43fihkfmqz.js +1 -0
- package/.next/static/chunks/0vrtmg..zn4iz.js +1 -0
- package/.next/static/chunks/0v~puv980n2mn.js +1 -0
- package/.next/static/chunks/0w3.kcsbsqud9.js +1 -0
- package/.next/static/chunks/0w4h2u4jedq4..js +1 -0
- package/.next/static/chunks/0w8fjaur4pi6e.js +1 -0
- package/.next/static/chunks/0wed0o6unsb42.js +1 -0
- package/.next/static/chunks/0wlv.a_8drzhy.js +1 -0
- package/.next/static/chunks/0z9df3ijvbr8h.js +148 -0
- package/.next/static/chunks/0~dqy1ppqqjc9.js +9 -0
- package/.next/static/chunks/0~fjlnit~fkey.js +79 -0
- package/.next/static/chunks/10hi2_f5v~p3x.js +1 -0
- package/.next/static/chunks/11.py1pvzox4i.js +24 -0
- package/.next/static/chunks/11905-quym2vs.js +127 -0
- package/.next/static/chunks/143c.4snyrdfs.js +1 -0
- package/.next/static/chunks/152e7m9_0zf_j.js +1 -0
- package/.next/static/chunks/15ewybx3hor-7.js +15 -0
- package/.next/static/chunks/1683bx2og-ppu.js +4 -0
- package/.next/static/chunks/16_rz~7nlmstm.js +119 -0
- package/.next/static/chunks/17-ric8y98z08.js +1 -0
- package/.next/static/chunks/179i-blt6kp34.js +15 -0
- package/.next/static/chunks/17me7gnh4-..3.js +23 -0
- package/.next/static/chunks/17xrrnvso~-8i.js +1 -0
- package/.next/static/chunks/187wyatc9ke~-.js +1 -0
- package/.next/static/chunks/turbopack-0o4h.yrdaxsr5.js +1 -0
- package/.next/static/media/favicon.0~uco8ba8mwit.ico +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-400-italic.0kxdsy2j98sdf.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-400-italic.0yt8fcr_h34m_.woff +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-400-normal.087r1-tljb70l.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-400-normal.0bpn27hhc~-d3.woff +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-600-normal.0b5vejrrirynb.woff +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-600-normal.0zm.b9icodj1d.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-700-normal.013_5dph8sw_..woff2 +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-700-normal.145y-n9zy1zqe.woff +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-ext-400-italic.0ocl60c9i6viu.woff +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-ext-400-italic.10790__pku._6.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-ext-400-normal.0tng7c41iftcp.woff +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-ext-400-normal.0xpgvcoxruq.8.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-ext-600-normal.15aye3ng77~2..woff +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-ext-600-normal.15l1uglw06i2m.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-ext-700-normal.0752zn.y.dy9x.woff +0 -0
- package/.next/static/media/jetbrains-mono-cyrillic-ext-700-normal.16c.x..m_ubc2.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-greek-400-italic.0a9mpf0j.3g3c.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-greek-400-italic.0phe0-35czffn.woff +0 -0
- package/.next/static/media/jetbrains-mono-greek-400-normal.0bemy31mtia~~.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-greek-400-normal.15k7shgxnlfr2.woff +0 -0
- package/.next/static/media/jetbrains-mono-greek-600-normal.0.qfkh0.i7~80.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-greek-600-normal.0tkl4oj11l_1h.woff +0 -0
- package/.next/static/media/jetbrains-mono-greek-700-normal.0l3ez~ea.ay5s.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-greek-700-normal.0w5srk3jqf2s0.woff +0 -0
- package/.next/static/media/jetbrains-mono-latin-400-italic.0_egpny69anx8.woff +0 -0
- package/.next/static/media/jetbrains-mono-latin-400-italic.10f5cvhkww5xz.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-latin-400-normal.0ytsw4b~7cqpy.woff +0 -0
- package/.next/static/media/jetbrains-mono-latin-400-normal.0~~285bd0hytg.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-latin-600-normal.0q148sfpujlfj.woff +0 -0
- package/.next/static/media/jetbrains-mono-latin-600-normal.0uc1d..6ne28b.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-latin-700-normal.0m9n5azko2fxt.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-latin-700-normal.13jqqvs3baw_9.woff +0 -0
- package/.next/static/media/jetbrains-mono-latin-ext-400-italic.0_d.82yhle_f2.woff +0 -0
- package/.next/static/media/jetbrains-mono-latin-ext-400-italic.0l9sf.e.fhsvq.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-latin-ext-400-normal.00uufft-w4e71.woff +0 -0
- package/.next/static/media/jetbrains-mono-latin-ext-400-normal.0m58wcl-45-e_.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-latin-ext-600-normal.06nws4-kvn67y.woff +0 -0
- package/.next/static/media/jetbrains-mono-latin-ext-600-normal.0cj1gverw~qa~.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-latin-ext-700-normal.0ssmx3bb4p_-o.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-latin-ext-700-normal.18dhjbjjbfb~w.woff +0 -0
- package/.next/static/media/jetbrains-mono-vietnamese-400-italic.03cr.d44h7lai.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-vietnamese-400-italic.0s4jmzb.u_ekk.woff +0 -0
- package/.next/static/media/jetbrains-mono-vietnamese-400-normal.0if3lc5k5lnhh.woff +0 -0
- package/.next/static/media/jetbrains-mono-vietnamese-400-normal.0yjr~p._1wjhq.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-vietnamese-600-normal.0-bvm4.0k8yo6.woff2 +0 -0
- package/.next/static/media/jetbrains-mono-vietnamese-600-normal.04vz7.37ouk2l.woff +0 -0
- package/.next/static/media/jetbrains-mono-vietnamese-700-normal.00wj-mmx-ff5_.woff +0 -0
- package/.next/static/media/jetbrains-mono-vietnamese-700-normal.037krr091qkni.woff2 +0 -0
- package/.next/static/p5NTaAoK5vdcRUpPT9JJo/_buildManifest.js +11 -0
- package/.next/static/p5NTaAoK5vdcRUpPT9JJo/_clientMiddlewareManifest.js +1 -0
- package/.next/static/p5NTaAoK5vdcRUpPT9JJo/_ssgManifest.js +1 -0
- package/.next/trace +1 -0
- package/.next/trace-build +1 -0
- package/.next/turbopack +0 -0
- package/.next/types/routes.d.ts +94 -0
- package/.next/types/validator.ts +268 -0
- package/LICENSE +21 -0
- package/README.md +148 -0
- package/bin/no-pi-no-gang.js +73 -0
- package/next.config.ts +110 -0
- package/package.json +81 -0
- package/public/file.svg +1 -0
- package/public/globe.svg +1 -0
- package/public/manifest.json +16 -0
- package/public/next.svg +1 -0
- package/public/pi-logo-on-dark.svg +20 -0
- package/public/pi-logo-on-light.svg +20 -0
- package/public/robots.txt +2 -0
- package/public/vercel.svg +1 -0
- package/public/window.svg +1 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// This file is generated automatically by Next.js
|
|
2
|
+
// Do not edit this file manually
|
|
3
|
+
|
|
4
|
+
type AppRoutes = "/"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/events" | "/api/agent/new" | "/api/auth/all-providers" | "/api/auth/api-key/[provider]" | "/api/auth/login/[provider]" | "/api/auth/logout/[provider]" | "/api/auth/providers" | "/api/cwd/validate" | "/api/default-cwd" | "/api/files/[...path]" | "/api/home" | "/api/models" | "/api/models-config" | "/api/models-config/test" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/context" | "/api/sessions/new" | "/api/skills" | "/api/skills/install" | "/api/skills/search"
|
|
6
|
+
type PageRoutes = never
|
|
7
|
+
type LayoutRoutes = "/"
|
|
8
|
+
type RedirectRoutes = never
|
|
9
|
+
type RewriteRoutes = never
|
|
10
|
+
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes | AppRouteHandlerRoutes
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
interface ParamMap {
|
|
14
|
+
"/": {}
|
|
15
|
+
"/api/agent/[id]": { "id": string; }
|
|
16
|
+
"/api/agent/[id]/events": { "id": string; }
|
|
17
|
+
"/api/agent/new": {}
|
|
18
|
+
"/api/auth/all-providers": {}
|
|
19
|
+
"/api/auth/api-key/[provider]": { "provider": string; }
|
|
20
|
+
"/api/auth/login/[provider]": { "provider": string; }
|
|
21
|
+
"/api/auth/logout/[provider]": { "provider": string; }
|
|
22
|
+
"/api/auth/providers": {}
|
|
23
|
+
"/api/cwd/validate": {}
|
|
24
|
+
"/api/default-cwd": {}
|
|
25
|
+
"/api/files/[...path]": { "path": string[]; }
|
|
26
|
+
"/api/home": {}
|
|
27
|
+
"/api/models": {}
|
|
28
|
+
"/api/models-config": {}
|
|
29
|
+
"/api/models-config/test": {}
|
|
30
|
+
"/api/sessions": {}
|
|
31
|
+
"/api/sessions/[id]": { "id": string; }
|
|
32
|
+
"/api/sessions/[id]/context": { "id": string; }
|
|
33
|
+
"/api/sessions/new": {}
|
|
34
|
+
"/api/skills": {}
|
|
35
|
+
"/api/skills/install": {}
|
|
36
|
+
"/api/skills/search": {}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
export type ParamsOf<Route extends Routes> = ParamMap[Route]
|
|
41
|
+
|
|
42
|
+
interface LayoutSlotMap {
|
|
43
|
+
"/": never
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
export type { AppRoutes, PageRoutes, LayoutRoutes, RedirectRoutes, RewriteRoutes, ParamMap, AppRouteHandlerRoutes }
|
|
48
|
+
|
|
49
|
+
declare global {
|
|
50
|
+
/**
|
|
51
|
+
* Props for Next.js App Router page components
|
|
52
|
+
* @example
|
|
53
|
+
* ```tsx
|
|
54
|
+
* export default function Page(props: PageProps<'/blog/[slug]'>) {
|
|
55
|
+
* const { slug } = await props.params
|
|
56
|
+
* return <div>Blog post: {slug}</div>
|
|
57
|
+
* }
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
interface PageProps<AppRoute extends AppRoutes> {
|
|
61
|
+
params: Promise<ParamMap[AppRoute]>
|
|
62
|
+
searchParams: Promise<Record<string, string | string[] | undefined>>
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Props for Next.js App Router layout components
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* export default function Layout(props: LayoutProps<'/dashboard'>) {
|
|
70
|
+
* return <div>{props.children}</div>
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
type LayoutProps<LayoutRoute extends LayoutRoutes> = {
|
|
75
|
+
params: Promise<ParamMap[LayoutRoute]>
|
|
76
|
+
children: React.ReactNode
|
|
77
|
+
} & {
|
|
78
|
+
[K in LayoutSlotMap[LayoutRoute]]: React.ReactNode
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Context for Next.js App Router route handlers
|
|
83
|
+
* @example
|
|
84
|
+
* ```tsx
|
|
85
|
+
* export async function GET(request: NextRequest, context: RouteContext<'/api/users/[id]'>) {
|
|
86
|
+
* const { id } = await context.params
|
|
87
|
+
* return Response.json({ id })
|
|
88
|
+
* }
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
interface RouteContext<AppRouteHandlerRoute extends AppRouteHandlerRoutes> {
|
|
92
|
+
params: Promise<ParamMap[AppRouteHandlerRoute]>
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
// This file is generated automatically by Next.js
|
|
2
|
+
// Do not edit this file manually
|
|
3
|
+
// This file validates that all pages and layouts export the correct types
|
|
4
|
+
|
|
5
|
+
import type { AppRoutes, LayoutRoutes, ParamMap, AppRouteHandlerRoutes } from "./routes.js"
|
|
6
|
+
import type { ResolvingMetadata, ResolvingViewport } from "next/types.js"
|
|
7
|
+
import type { NextRequest } from 'next/server.js'
|
|
8
|
+
|
|
9
|
+
type AppPageConfig<Route extends AppRoutes = AppRoutes> = {
|
|
10
|
+
default: React.ComponentType<{ params: Promise<ParamMap[Route]> } & any> | ((props: { params: Promise<ParamMap[Route]> } & any) => React.ReactNode | Promise<React.ReactNode> | never | void | Promise<void>)
|
|
11
|
+
generateStaticParams?: (props: { params: ParamMap[Route] }) => Promise<any[]> | any[]
|
|
12
|
+
generateMetadata?: (
|
|
13
|
+
props: { params: Promise<ParamMap[Route]> } & any,
|
|
14
|
+
parent: ResolvingMetadata
|
|
15
|
+
) => Promise<any> | any
|
|
16
|
+
generateViewport?: (
|
|
17
|
+
props: { params: Promise<ParamMap[Route]> } & any,
|
|
18
|
+
parent: ResolvingViewport
|
|
19
|
+
) => Promise<any> | any
|
|
20
|
+
metadata?: any
|
|
21
|
+
viewport?: any
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type LayoutConfig<Route extends LayoutRoutes = LayoutRoutes> = {
|
|
25
|
+
default: React.ComponentType<LayoutProps<Route>> | ((props: LayoutProps<Route>) => React.ReactNode | Promise<React.ReactNode> | never | void | Promise<void>)
|
|
26
|
+
generateStaticParams?: (props: { params: ParamMap[Route] }) => Promise<any[]> | any[]
|
|
27
|
+
generateMetadata?: (
|
|
28
|
+
props: { params: Promise<ParamMap[Route]> } & any,
|
|
29
|
+
parent: ResolvingMetadata
|
|
30
|
+
) => Promise<any> | any
|
|
31
|
+
generateViewport?: (
|
|
32
|
+
props: { params: Promise<ParamMap[Route]> } & any,
|
|
33
|
+
parent: ResolvingViewport
|
|
34
|
+
) => Promise<any> | any
|
|
35
|
+
metadata?: any
|
|
36
|
+
viewport?: any
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRoutes> = {
|
|
40
|
+
GET?: (request: NextRequest, context: { params: Promise<ParamMap[Route]> }) => Promise<Response | void> | Response | void
|
|
41
|
+
POST?: (request: NextRequest, context: { params: Promise<ParamMap[Route]> }) => Promise<Response | void> | Response | void
|
|
42
|
+
PUT?: (request: NextRequest, context: { params: Promise<ParamMap[Route]> }) => Promise<Response | void> | Response | void
|
|
43
|
+
PATCH?: (request: NextRequest, context: { params: Promise<ParamMap[Route]> }) => Promise<Response | void> | Response | void
|
|
44
|
+
DELETE?: (request: NextRequest, context: { params: Promise<ParamMap[Route]> }) => Promise<Response | void> | Response | void
|
|
45
|
+
HEAD?: (request: NextRequest, context: { params: Promise<ParamMap[Route]> }) => Promise<Response | void> | Response | void
|
|
46
|
+
OPTIONS?: (request: NextRequest, context: { params: Promise<ParamMap[Route]> }) => Promise<Response | void> | Response | void
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
// Validate ../../app/page.tsx
|
|
51
|
+
{
|
|
52
|
+
type __IsExpected<Specific extends AppPageConfig<"/">> = Specific
|
|
53
|
+
const handler = {} as typeof import("../../app/page.js")
|
|
54
|
+
type __Check = __IsExpected<typeof handler>
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
type __Unused = __Check
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Validate ../../app/api/agent/[id]/events/route.ts
|
|
60
|
+
{
|
|
61
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/[id]/events">> = Specific
|
|
62
|
+
const handler = {} as typeof import("../../app/api/agent/[id]/events/route.js")
|
|
63
|
+
type __Check = __IsExpected<typeof handler>
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
type __Unused = __Check
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Validate ../../app/api/agent/[id]/route.ts
|
|
69
|
+
{
|
|
70
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/[id]">> = Specific
|
|
71
|
+
const handler = {} as typeof import("../../app/api/agent/[id]/route.js")
|
|
72
|
+
type __Check = __IsExpected<typeof handler>
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
type __Unused = __Check
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Validate ../../app/api/agent/new/route.ts
|
|
78
|
+
{
|
|
79
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/new">> = Specific
|
|
80
|
+
const handler = {} as typeof import("../../app/api/agent/new/route.js")
|
|
81
|
+
type __Check = __IsExpected<typeof handler>
|
|
82
|
+
// @ts-ignore
|
|
83
|
+
type __Unused = __Check
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Validate ../../app/api/auth/all-providers/route.ts
|
|
87
|
+
{
|
|
88
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/all-providers">> = Specific
|
|
89
|
+
const handler = {} as typeof import("../../app/api/auth/all-providers/route.js")
|
|
90
|
+
type __Check = __IsExpected<typeof handler>
|
|
91
|
+
// @ts-ignore
|
|
92
|
+
type __Unused = __Check
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Validate ../../app/api/auth/api-key/[provider]/route.ts
|
|
96
|
+
{
|
|
97
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/api-key/[provider]">> = Specific
|
|
98
|
+
const handler = {} as typeof import("../../app/api/auth/api-key/[provider]/route.js")
|
|
99
|
+
type __Check = __IsExpected<typeof handler>
|
|
100
|
+
// @ts-ignore
|
|
101
|
+
type __Unused = __Check
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Validate ../../app/api/auth/login/[provider]/route.ts
|
|
105
|
+
{
|
|
106
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/login/[provider]">> = Specific
|
|
107
|
+
const handler = {} as typeof import("../../app/api/auth/login/[provider]/route.js")
|
|
108
|
+
type __Check = __IsExpected<typeof handler>
|
|
109
|
+
// @ts-ignore
|
|
110
|
+
type __Unused = __Check
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Validate ../../app/api/auth/logout/[provider]/route.ts
|
|
114
|
+
{
|
|
115
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/logout/[provider]">> = Specific
|
|
116
|
+
const handler = {} as typeof import("../../app/api/auth/logout/[provider]/route.js")
|
|
117
|
+
type __Check = __IsExpected<typeof handler>
|
|
118
|
+
// @ts-ignore
|
|
119
|
+
type __Unused = __Check
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Validate ../../app/api/auth/providers/route.ts
|
|
123
|
+
{
|
|
124
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/providers">> = Specific
|
|
125
|
+
const handler = {} as typeof import("../../app/api/auth/providers/route.js")
|
|
126
|
+
type __Check = __IsExpected<typeof handler>
|
|
127
|
+
// @ts-ignore
|
|
128
|
+
type __Unused = __Check
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Validate ../../app/api/cwd/validate/route.ts
|
|
132
|
+
{
|
|
133
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/cwd/validate">> = Specific
|
|
134
|
+
const handler = {} as typeof import("../../app/api/cwd/validate/route.js")
|
|
135
|
+
type __Check = __IsExpected<typeof handler>
|
|
136
|
+
// @ts-ignore
|
|
137
|
+
type __Unused = __Check
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Validate ../../app/api/default-cwd/route.ts
|
|
141
|
+
{
|
|
142
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/default-cwd">> = Specific
|
|
143
|
+
const handler = {} as typeof import("../../app/api/default-cwd/route.js")
|
|
144
|
+
type __Check = __IsExpected<typeof handler>
|
|
145
|
+
// @ts-ignore
|
|
146
|
+
type __Unused = __Check
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Validate ../../app/api/files/[...path]/route.ts
|
|
150
|
+
{
|
|
151
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/files/[...path]">> = Specific
|
|
152
|
+
const handler = {} as typeof import("../../app/api/files/[...path]/route.js")
|
|
153
|
+
type __Check = __IsExpected<typeof handler>
|
|
154
|
+
// @ts-ignore
|
|
155
|
+
type __Unused = __Check
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Validate ../../app/api/home/route.ts
|
|
159
|
+
{
|
|
160
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/home">> = Specific
|
|
161
|
+
const handler = {} as typeof import("../../app/api/home/route.js")
|
|
162
|
+
type __Check = __IsExpected<typeof handler>
|
|
163
|
+
// @ts-ignore
|
|
164
|
+
type __Unused = __Check
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Validate ../../app/api/models-config/route.ts
|
|
168
|
+
{
|
|
169
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models-config">> = Specific
|
|
170
|
+
const handler = {} as typeof import("../../app/api/models-config/route.js")
|
|
171
|
+
type __Check = __IsExpected<typeof handler>
|
|
172
|
+
// @ts-ignore
|
|
173
|
+
type __Unused = __Check
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Validate ../../app/api/models-config/test/route.ts
|
|
177
|
+
{
|
|
178
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models-config/test">> = Specific
|
|
179
|
+
const handler = {} as typeof import("../../app/api/models-config/test/route.js")
|
|
180
|
+
type __Check = __IsExpected<typeof handler>
|
|
181
|
+
// @ts-ignore
|
|
182
|
+
type __Unused = __Check
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Validate ../../app/api/models/route.ts
|
|
186
|
+
{
|
|
187
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models">> = Specific
|
|
188
|
+
const handler = {} as typeof import("../../app/api/models/route.js")
|
|
189
|
+
type __Check = __IsExpected<typeof handler>
|
|
190
|
+
// @ts-ignore
|
|
191
|
+
type __Unused = __Check
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Validate ../../app/api/sessions/[id]/context/route.ts
|
|
195
|
+
{
|
|
196
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]/context">> = Specific
|
|
197
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/context/route.js")
|
|
198
|
+
type __Check = __IsExpected<typeof handler>
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
type __Unused = __Check
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Validate ../../app/api/sessions/[id]/route.ts
|
|
204
|
+
{
|
|
205
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]">> = Specific
|
|
206
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/route.js")
|
|
207
|
+
type __Check = __IsExpected<typeof handler>
|
|
208
|
+
// @ts-ignore
|
|
209
|
+
type __Unused = __Check
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Validate ../../app/api/sessions/new/route.ts
|
|
213
|
+
{
|
|
214
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/new">> = Specific
|
|
215
|
+
const handler = {} as typeof import("../../app/api/sessions/new/route.js")
|
|
216
|
+
type __Check = __IsExpected<typeof handler>
|
|
217
|
+
// @ts-ignore
|
|
218
|
+
type __Unused = __Check
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Validate ../../app/api/sessions/route.ts
|
|
222
|
+
{
|
|
223
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions">> = Specific
|
|
224
|
+
const handler = {} as typeof import("../../app/api/sessions/route.js")
|
|
225
|
+
type __Check = __IsExpected<typeof handler>
|
|
226
|
+
// @ts-ignore
|
|
227
|
+
type __Unused = __Check
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Validate ../../app/api/skills/install/route.ts
|
|
231
|
+
{
|
|
232
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/install">> = Specific
|
|
233
|
+
const handler = {} as typeof import("../../app/api/skills/install/route.js")
|
|
234
|
+
type __Check = __IsExpected<typeof handler>
|
|
235
|
+
// @ts-ignore
|
|
236
|
+
type __Unused = __Check
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Validate ../../app/api/skills/route.ts
|
|
240
|
+
{
|
|
241
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills">> = Specific
|
|
242
|
+
const handler = {} as typeof import("../../app/api/skills/route.js")
|
|
243
|
+
type __Check = __IsExpected<typeof handler>
|
|
244
|
+
// @ts-ignore
|
|
245
|
+
type __Unused = __Check
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Validate ../../app/api/skills/search/route.ts
|
|
249
|
+
{
|
|
250
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/search">> = Specific
|
|
251
|
+
const handler = {} as typeof import("../../app/api/skills/search/route.js")
|
|
252
|
+
type __Check = __IsExpected<typeof handler>
|
|
253
|
+
// @ts-ignore
|
|
254
|
+
type __Unused = __Check
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
// Validate ../../app/layout.tsx
|
|
262
|
+
{
|
|
263
|
+
type __IsExpected<Specific extends LayoutConfig<"/">> = Specific
|
|
264
|
+
const handler = {} as typeof import("../../app/layout.js")
|
|
265
|
+
type __Check = __IsExpected<typeof handler>
|
|
266
|
+
// @ts-ignore
|
|
267
|
+
type __Unused = __Check
|
|
268
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 agegr
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# no-pi-no-gang
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="public/pi-logo-on-dark.svg" alt="pi logo" width="100" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong><a href="https://github.com/badlogic/pi-mono">pi.dev</a></strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<img src="https://img.shields.io/badge/version-0.0.1-blue" alt="version" />
|
|
13
|
+
<img src="https://img.shields.io/badge/license-MIT-green" alt="license" />
|
|
14
|
+
<img src="https://img.shields.io/badge/Bun-≥1.0-fbf0df?logo=bun&logoColor=000" alt="Bun" />
|
|
15
|
+
<img src="https://img.shields.io/badge/Next.js-16-black" alt="Next.js 16" />
|
|
16
|
+
<img src="https://img.shields.io/badge/React-19-149eca" alt="React 19" />
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
## 概述
|
|
20
|
+
|
|
21
|
+
no-pi-no-gang 是 [pi.dev](https://github.com/badlogic/pi-mono) 的 Web UI——浏览器中的完整会话体验,附带图形化会话浏览、文件工作台和模型配置。沿用 pi 的 `.jsonl` + `AgentSession` 事实源模型,不引入额外持久层。
|
|
22
|
+
|
|
23
|
+
## 功能
|
|
24
|
+
|
|
25
|
+
| 能力 | 说明 |
|
|
26
|
+
|---|---|
|
|
27
|
+
| 会话浏览 | 按工作目录聚合本地 pi 会话,读取历史消息和分支树 |
|
|
28
|
+
| 实时对话 | SSE 流式响应、工具调用、思考/压缩态可视化 |
|
|
29
|
+
| Fork / Branch | 文件级 Fork + 同文件内消息分支切换 |
|
|
30
|
+
| 模型配置 | 界面内切换模型、配置工具集、管理供应商 |
|
|
31
|
+
| 技能管理 | 搜索、安装、查看技能配置 |
|
|
32
|
+
| 文件工作台 | 侧边栏浏览工作目录,辅助上下文追溯 |
|
|
33
|
+
| 运行态恢复 | 刷新后自动检测并重连 SSE |
|
|
34
|
+
|
|
35
|
+
## 安装
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# 配置 GitHub Packages registry(仅需一次)
|
|
39
|
+
npm config set @minuque:registry https://npm.pkg.github.com/
|
|
40
|
+
|
|
41
|
+
# Unix: 从 bash 读取 GH_TOKEN
|
|
42
|
+
npm login --registry=https://npm.pkg.github.com
|
|
43
|
+
# Username: 你的 GitHub 用户名
|
|
44
|
+
# Password: GitHub personal access token(需 write:packages 权限)
|
|
45
|
+
|
|
46
|
+
# 安装为项目依赖
|
|
47
|
+
npm install @minuque/no-pi-no-gang
|
|
48
|
+
|
|
49
|
+
# 或直接运行
|
|
50
|
+
npx @minuque/no-pi-no-gang
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 本地开发
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
bun install
|
|
57
|
+
bun run dev # → http://localhost:7777
|
|
58
|
+
|
|
59
|
+
bun run build
|
|
60
|
+
bun run start # → http://localhost:7777
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## 架构
|
|
64
|
+
|
|
65
|
+
no-pi-no-gang 是基于 pi 的 Web UI:浏览器负责交互,Next.js API 层转发命令,`AgentSession` 运行智能体逻辑,`~/.pi/agent/` 落盘历史。
|
|
66
|
+
|
|
67
|
+

|
|
68
|
+
|
|
69
|
+
### 数据目录
|
|
70
|
+
|
|
71
|
+
复用 pi 的本地数据,无需额外配置:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
~/.pi/agent/
|
|
75
|
+
sessions/<cwd>/<timestamp>_<uuid>.jsonl # 会话历史
|
|
76
|
+
models.json # 模型配置
|
|
77
|
+
settings.json # 用户偏好
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 三条主链路
|
|
81
|
+
|
|
82
|
+
| 链路 | 入口 | 核心 | 输出 |
|
|
83
|
+
|---|---|---|---|
|
|
84
|
+
| 历史读取 | `GET /api/sessions` | `session-reader.ts` 扫描解析 `.jsonl` | 会话树、消息列表、分支上下文 |
|
|
85
|
+
| 命令发送 | `POST /api/agent/*` | `rpc-manager.ts` 管理 `AgentSession` 生命周期 | prompt / fork / navigate 等动作 |
|
|
86
|
+
| 事件流 | `GET /api/agent/[id]/events` | `session.subscribe()` + SSE | 流式消息、工具调用、状态变更 |
|
|
87
|
+
|
|
88
|
+
### 模块边界
|
|
89
|
+
|
|
90
|
+
| 层级 | 负责 | 不负责 |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| 浏览器 UI | 展示会话、发送命令、消费 SSE | 直接读写 `.jsonl` 或执行智能体逻辑 |
|
|
93
|
+
| Next.js API | 校验请求、读取本地文件、管理 SSE | 保存额外业务数据库 |
|
|
94
|
+
| `session-reader.ts` | 只读解析历史会话 | 创建 `AgentSession` |
|
|
95
|
+
| `rpc-manager.ts` | `AgentSession` 生命周期和命令分发 | 解析会话列表 |
|
|
96
|
+
| `AgentSession` | 执行 pi 动作、写入会话事实 | 管理 Web UI 状态 |
|
|
97
|
+
|
|
98
|
+
## 项目结构
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
app/api/
|
|
102
|
+
agent/ # 新建会话、消息、Fork/Branch、压缩、SSE
|
|
103
|
+
sessions/ # 会话列表、详情、上下文
|
|
104
|
+
files/ # 工作目录文件读取
|
|
105
|
+
models/ # 可用模型列表
|
|
106
|
+
models-config/ # models.json 读写与测试
|
|
107
|
+
auth/ # provider、OAuth、API Key 登录
|
|
108
|
+
skills/ # 技能搜索、安装和列表
|
|
109
|
+
components/ # 三栏 UI、聊天流、会话树、文件工作台
|
|
110
|
+
hooks/ # 前端状态机与会话事件处理
|
|
111
|
+
lib/
|
|
112
|
+
session-reader.ts # .jsonl 读取、解析、规范化
|
|
113
|
+
rpc-manager.ts # AgentSession 包装、生命周期、命令分发
|
|
114
|
+
normalize.ts # 消息字段兼容和 toolCall 规范化
|
|
115
|
+
docs/ # 补充文档
|
|
116
|
+
bin/ # npm CLI 启动入口
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 脚本
|
|
120
|
+
|
|
121
|
+
| 命令 | 说明 |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `bun run dev` | 开发服务 `localhost:7777` |
|
|
124
|
+
| `bun run build` | 生产构建 |
|
|
125
|
+
| `bun run start` | 启动构建产物 |
|
|
126
|
+
| `bun run lint` | ESLint 全仓检查 |
|
|
127
|
+
| `node_modules/.bin/tsc --noEmit` | 类型检查 |
|
|
128
|
+
|
|
129
|
+
提交前验收:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
bun run build && bun run start
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 相关文档
|
|
136
|
+
|
|
137
|
+
- [ROADMAP.md](ROADMAP.md) — 系统架构、数据流、迭代路线
|
|
138
|
+
- [TODO.md](TODO.md) — 按优先级组织的任务包
|
|
139
|
+
- [Pi_SDK.md](Pi_SDK.md) — pi SDK 接口说明
|
|
140
|
+
- [AGENTS.md](AGENTS.md) — 协作、验证和文档约束
|
|
141
|
+
|
|
142
|
+
## 致谢
|
|
143
|
+
|
|
144
|
+
本项目 fork 自 [agegr/pi-web](https://github.com/agegr/pi-web),感谢原作者的杰出贡献。
|
|
145
|
+
|
|
146
|
+
## License
|
|
147
|
+
|
|
148
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
5
|
+
const { spawn } = require("child_process");
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
7
|
+
const path = require("path");
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
9
|
+
const fs = require("fs");
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
11
|
+
const { parseArgs } = require("util");
|
|
12
|
+
|
|
13
|
+
const pkgDir = path.join(__dirname, "..");
|
|
14
|
+
const nextDir = path.join(pkgDir, ".next");
|
|
15
|
+
|
|
16
|
+
// Resolve next's CLI entry directly to avoid relying on .bin symlinks (which
|
|
17
|
+
// may not exist when installed via npx).
|
|
18
|
+
let nextBin;
|
|
19
|
+
try {
|
|
20
|
+
nextBin = require.resolve("next/dist/bin/next", { paths: [pkgDir] });
|
|
21
|
+
} catch {
|
|
22
|
+
// Fallback: locate next package root and derive the bin path manually.
|
|
23
|
+
try {
|
|
24
|
+
const nextPkg = require.resolve("next/package.json", { paths: [pkgDir] });
|
|
25
|
+
nextBin = path.join(path.dirname(nextPkg), "dist", "bin", "next");
|
|
26
|
+
} catch {
|
|
27
|
+
nextBin = path.join(pkgDir, "node_modules", "next", "dist", "bin", "next");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const { values: cliArgs } = parseArgs({
|
|
32
|
+
options: {
|
|
33
|
+
port: { type: "string", short: "p" },
|
|
34
|
+
hostname: { type: "string", short: "H" },
|
|
35
|
+
},
|
|
36
|
+
strict: false,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const port = cliArgs.port ?? process.env.PORT ?? "30141";
|
|
40
|
+
const hostname = cliArgs.hostname ?? process.env.HOSTNAME ?? null;
|
|
41
|
+
|
|
42
|
+
if (!fs.existsSync(nextDir)) {
|
|
43
|
+
console.error("Build artifacts not found. Please report this issue.");
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const nextArgs = ["start", "-p", port];
|
|
48
|
+
if (hostname) nextArgs.push("-H", hostname);
|
|
49
|
+
|
|
50
|
+
// Always run next's JS entry with node directly — avoids .bin symlink issues
|
|
51
|
+
// and path-with-spaces problems on Windows when shell: true is used.
|
|
52
|
+
const child = spawn(process.execPath, [nextBin, ...nextArgs], {
|
|
53
|
+
cwd: pkgDir,
|
|
54
|
+
stdio: ["inherit", "pipe", "inherit"],
|
|
55
|
+
env: { ...process.env },
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
let browserOpened = false;
|
|
59
|
+
const url = `http://${hostname ?? "localhost"}:${port}`;
|
|
60
|
+
|
|
61
|
+
child.stdout.on("data", (chunk) => {
|
|
62
|
+
const text = chunk.toString();
|
|
63
|
+
process.stdout.write(text);
|
|
64
|
+
if (!browserOpened && text.includes("Ready")) {
|
|
65
|
+
browserOpened = true;
|
|
66
|
+
const isWindows = process.platform === "win32";
|
|
67
|
+
const isMac = process.platform === "darwin";
|
|
68
|
+
const openCmd = isWindows ? "start" : isMac ? "open" : "xdg-open";
|
|
69
|
+
spawn(openCmd, [url], { shell: isWindows, stdio: "ignore", detached: true }).unref();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
child.on("exit", (code) => process.exit(code ?? 0));
|