@pananfly/pi-web 0.8.1
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 +46 -0
- package/.next/build-manifest.json +20 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +138 -0
- package/.next/react-loadable-manifest.json +2367 -0
- package/.next/required-server-files.js +350 -0
- package/.next/required-server-files.json +350 -0
- package/.next/routes-manifest.json +348 -0
- package/.next/server/app/_global-error/page.js +32 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +16 -0
- package/.next/server/app/_global-error.rsc +14 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +19 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +19 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -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 +5 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/events/route.js +3 -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 +1 -0
- package/.next/server/app/api/agent/[id]/route.js +1 -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 +1 -0
- package/.next/server/app/api/agent/new/route.js +1 -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 +1 -0
- package/.next/server/app/api/agent/running/events/route.js +3 -0
- package/.next/server/app/api/agent/running/events/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/running/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/all-providers/route.js +1 -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 +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -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 +1 -0
- package/.next/server/app/api/auth/login/[provider]/route.js +3 -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 +1 -0
- package/.next/server/app/api/auth/login/route.js +1 -0
- package/.next/server/app/api/auth/login/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -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 +1 -0
- package/.next/server/app/api/auth/logout/route.js +1 -0
- package/.next/server/app/api/auth/logout/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/providers/route.js +1 -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 +1 -0
- package/.next/server/app/api/auth/refresh/route.js +1 -0
- package/.next/server/app/api/auth/refresh/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/status/route.js +1 -0
- package/.next/server/app/api/auth/status/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/verify/route.js +1 -0
- package/.next/server/app/api/auth/verify/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/verify/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js +1 -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 +1 -0
- package/.next/server/app/api/default-cwd/route.js +1 -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 +1 -0
- package/.next/server/app/api/file-index/route.js +1 -0
- package/.next/server/app/api/file-index/route.js.nft.json +1 -0
- package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/files/[...path]/route.js +49 -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 +1 -0
- package/.next/server/app/api/git/diff/route.js +6 -0
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/status/route.js +6 -0
- package/.next/server/app/api/git/status/route.js.nft.json +1 -0
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/home/route.js +1 -0
- package/.next/server/app/api/home/route.js.nft.json +1 -0
- package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/route.js +1 -0
- package/.next/server/app/api/models/route.js.nft.json +1 -0
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/route.js +1 -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 +1 -0
- package/.next/server/app/api/models-config/test/route.js +1 -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 +1 -0
- package/.next/server/app/api/plugins/route.js +1 -0
- package/.next/server/app/api/plugins/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +10 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -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 +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/export/route.js +54 -0
- package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js +1 -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 +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/route.js +1 -0
- package/.next/server/app/api/sessions/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/check/route.js +1 -0
- package/.next/server/app/api/skills/check/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/install/route.js +1 -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 +1 -0
- package/.next/server/app/api/skills/route.js +6 -0
- package/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/search/route.js +1 -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 +1 -0
- package/.next/server/app/api/skills/update/route.js +1 -0
- package/.next/server/app/api/skills/update/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/route.js +1 -0
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -0
- package/.next/server/app/favicon.ico/route.js +1 -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 +18 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -0
- package/.next/server/app/index.segments/_full.segment.rsc +18 -0
- package/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/.next/server/app/index.segments/_index.segment.rsc +6 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/login/page.js +2 -0
- package/.next/server/app/login/page.js.nft.json +1 -0
- package/.next/server/app/login/page_client-reference-manifest.js +1 -0
- package/.next/server/app/login.html +1 -0
- package/.next/server/app/login.meta +15 -0
- package/.next/server/app/login.rsc +20 -0
- package/.next/server/app/login.segments/_full.segment.rsc +20 -0
- package/.next/server/app/login.segments/_head.segment.rsc +6 -0
- package/.next/server/app/login.segments/_index.segment.rsc +6 -0
- package/.next/server/app/login.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +6 -0
- package/.next/server/app/login.segments/login.segment.rsc +5 -0
- package/.next/server/app/page.js +73 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +46 -0
- package/.next/server/chunks/1069.js +23 -0
- package/.next/server/chunks/1089.js +1 -0
- package/.next/server/chunks/1130.js +79 -0
- package/.next/server/chunks/1207.js +36 -0
- package/.next/server/chunks/1515.js +1 -0
- package/.next/server/chunks/1570.js +24 -0
- package/.next/server/chunks/1605.js +1 -0
- package/.next/server/chunks/1707.js +93 -0
- package/.next/server/chunks/1792.js +38 -0
- package/.next/server/chunks/1813.js +1 -0
- package/.next/server/chunks/2018.js +148 -0
- package/.next/server/chunks/2106.js +1 -0
- package/.next/server/chunks/2155.js +34 -0
- package/.next/server/chunks/2185.js +5 -0
- package/.next/server/chunks/2190.js +1 -0
- package/.next/server/chunks/2325.js +82 -0
- package/.next/server/chunks/2349.js +1 -0
- package/.next/server/chunks/2394.js +1 -0
- package/.next/server/chunks/2434.js +1 -0
- package/.next/server/chunks/2744.js +1 -0
- package/.next/server/chunks/2815.js +1 -0
- package/.next/server/chunks/2871.js +8 -0
- package/.next/server/chunks/2903.js +1 -0
- package/.next/server/chunks/319.js +45 -0
- package/.next/server/chunks/3252.js +115 -0
- package/.next/server/chunks/3379.js +1 -0
- package/.next/server/chunks/3770.js +1 -0
- package/.next/server/chunks/3894.js +1 -0
- package/.next/server/chunks/4030.js +86 -0
- package/.next/server/chunks/4286.js +1 -0
- package/.next/server/chunks/4309.js +1 -0
- package/.next/server/chunks/4338.js +64 -0
- package/.next/server/chunks/4367.js +1 -0
- package/.next/server/chunks/4372.js +1 -0
- package/.next/server/chunks/4424.js +215 -0
- package/.next/server/chunks/4485.js +1 -0
- package/.next/server/chunks/46.js +62 -0
- package/.next/server/chunks/4674.js +1 -0
- package/.next/server/chunks/4741.js +18 -0
- package/.next/server/chunks/4742.js +80 -0
- package/.next/server/chunks/4796.js +104 -0
- package/.next/server/chunks/4980.js +1 -0
- package/.next/server/chunks/5029.js +1 -0
- package/.next/server/chunks/5198.js +90 -0
- package/.next/server/chunks/5318.js +1 -0
- package/.next/server/chunks/5461.js +1 -0
- package/.next/server/chunks/5582.js +3 -0
- package/.next/server/chunks/5598.js +1 -0
- package/.next/server/chunks/5627.js +1 -0
- package/.next/server/chunks/6219.js +41 -0
- package/.next/server/chunks/6337.js +1 -0
- package/.next/server/chunks/6429.js +1 -0
- package/.next/server/chunks/6476.js +27 -0
- package/.next/server/chunks/6509.js +153 -0
- package/.next/server/chunks/6949.js +1 -0
- package/.next/server/chunks/6953.js +1 -0
- package/.next/server/chunks/703.js +1 -0
- package/.next/server/chunks/7152.js +1 -0
- package/.next/server/chunks/7181.js +160 -0
- package/.next/server/chunks/7233.js +1 -0
- package/.next/server/chunks/7307.js +1 -0
- package/.next/server/chunks/7434.js +77 -0
- package/.next/server/chunks/7561.js +1 -0
- package/.next/server/chunks/7872.js +1 -0
- package/.next/server/chunks/7914.js +226 -0
- package/.next/server/chunks/8267.js +24 -0
- package/.next/server/chunks/8294.js +1 -0
- package/.next/server/chunks/835.js +1 -0
- package/.next/server/chunks/8645.js +141 -0
- package/.next/server/chunks/9081.js +1 -0
- package/.next/server/chunks/9169.js +1 -0
- package/.next/server/chunks/9280.js +255 -0
- package/.next/server/chunks/940.js +287 -0
- package/.next/server/chunks/9486.js +1 -0
- package/.next/server/chunks/9509.js +1 -0
- package/.next/server/functions-config-manifest.json +15 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +18 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -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 +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/chunks/050357b0.986bc6597f184c3b.js +62 -0
- package/.next/static/chunks/1212.c32f02f461182c5b.js +226 -0
- package/.next/static/chunks/127.394be8b7a579a747.js +8 -0
- package/.next/static/chunks/1327.09252bb80616cc3a.js +1 -0
- package/.next/static/chunks/1377.e883e13864574c26.js +36 -0
- package/.next/static/chunks/1390.3e7d84d187924556.js +104 -0
- package/.next/static/chunks/1438.d742ea00e0f072ca.js +27 -0
- package/.next/static/chunks/1474.605367a77b6161a0.js +115 -0
- package/.next/static/chunks/1576.93e0666990c12243.js +38 -0
- package/.next/static/chunks/1951.4b73bf47740c2bfb.js +160 -0
- package/.next/static/chunks/2081.47b6e9391094055f.js +1 -0
- package/.next/static/chunks/2178.2adcd2b51553bd50.js +1 -0
- package/.next/static/chunks/2217.4bf1455eb89bdd9b.js +1 -0
- package/.next/static/chunks/2325.23caf22075e51aa5.js +1 -0
- package/.next/static/chunks/2356.52627097a8b56ec1.js +1 -0
- package/.next/static/chunks/2418.b5d9e177e10a686e.js +1 -0
- package/.next/static/chunks/249.973d23a3940a5fc9.js +1 -0
- package/.next/static/chunks/2554.ca4cb2f8bc69f32e.js +86 -0
- package/.next/static/chunks/2566.505384571dedf726.js +79 -0
- package/.next/static/chunks/2619.9aac8983f30c7c8a.js +1 -0
- package/.next/static/chunks/2646.c653cac657d7b035.js +215 -0
- package/.next/static/chunks/2784.3d8e0d20edb71dcd.js +64 -0
- package/.next/static/chunks/2821.934bcf60fbdc28c6.js +1 -0
- package/.next/static/chunks/2847.b66f6d92e4f5e495.js +23 -0
- package/.next/static/chunks/2866.4ecb766127917d99.js +1 -0
- package/.next/static/chunks/28f0fb3b.5f2b0099c24fbe32.js +122 -0
- package/.next/static/chunks/3308.29d4f7078e26a916.js +73 -0
- package/.next/static/chunks/3316.5c51b238308a838b.js +34 -0
- package/.next/static/chunks/3341.6042c7cb7225d88d.js +41 -0
- package/.next/static/chunks/339.1a094bb1c6eaf9dc.js +1 -0
- package/.next/static/chunks/370.57cfa27da8567918.js +1 -0
- package/.next/static/chunks/3708.81252290870c8487.js +1 -0
- package/.next/static/chunks/3794-e569667691edc8f7.js +32 -0
- package/.next/static/chunks/3832.5d713641634c65b5.js +24 -0
- package/.next/static/chunks/4368.e43e952c5535cba6.js +80 -0
- package/.next/static/chunks/4424.fd0c93a807a333e1.js +1 -0
- package/.next/static/chunks/4866.d1060b4faf2ae1e2.js +1 -0
- package/.next/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
- package/.next/static/chunks/5020.9ac8d0dc8390bb6e.js +1 -0
- package/.next/static/chunks/5166.7d3648847337fe52.js +62 -0
- package/.next/static/chunks/5242.7b643c6b3394cac1.js +1 -0
- package/.next/static/chunks/5361.afc00ab2626bacbf.js +1 -0
- package/.next/static/chunks/5460.0337c14f29b9ff9a.js +90 -0
- package/.next/static/chunks/5521.cfdf2cfc6db31407.js +1 -0
- package/.next/static/chunks/5715.048f1bae2c41fa89.js +1 -0
- package/.next/static/chunks/6121.5b8cb3199531d194.js +1 -0
- package/.next/static/chunks/6294.24f510c0c3e3714c.js +1 -0
- package/.next/static/chunks/6467.b354ed428e3bef01.js +5 -0
- package/.next/static/chunks/66d203d7.3e90bc8f1f096a8e.js +153 -0
- package/.next/static/chunks/6787.a15de946178e8ef7.js +1 -0
- package/.next/static/chunks/7176.2979806e91c0df29.js +1 -0
- package/.next/static/chunks/7256.e07cf52d87d40252.js +1 -0
- package/.next/static/chunks/7543.89f7b805ed0f2901.js +1 -0
- package/.next/static/chunks/776.fe8e64ab3669a915.js +287 -0
- package/.next/static/chunks/8118.f905a690db2b859b.js +148 -0
- package/.next/static/chunks/8233.a465d18b04719c6d.js +141 -0
- package/.next/static/chunks/8249.7a48897e80a16391.js +1 -0
- package/.next/static/chunks/8311-95813758da2b283c.js +1 -0
- package/.next/static/chunks/8365.dc22e1ff76d04a3b.js +93 -0
- package/.next/static/chunks/8498.1083c36ddbbedd69.js +1 -0
- package/.next/static/chunks/8511.c7c064a8f58f1355.js +1 -0
- package/.next/static/chunks/869.7152372b662e31af.js +1 -0
- package/.next/static/chunks/8782.9ab86081b5661687.js +77 -0
- package/.next/static/chunks/8863.fa0320ea586efb3b.js +1 -0
- package/.next/static/chunks/8953.e5e7399c7952a1ff.js +1 -0
- package/.next/static/chunks/90542734.b75ad0df50bf68f5.js +1 -0
- package/.next/static/chunks/9165.02dc1f4804b94791.js +24 -0
- package/.next/static/chunks/934.9006461bd0548660.js +1 -0
- package/.next/static/chunks/9522.c7c6e9c330f9ba6b.js +1 -0
- package/.next/static/chunks/9667.c6d6228dd3c4861b.js +1 -0
- package/.next/static/chunks/9705.40a82b97f214e28b.js +1 -0
- package/.next/static/chunks/9793.4567af813117ad25.js +1 -0
- package/.next/static/chunks/app/_global-error/page-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/_not-found/page-3ea40c1a91b0cd39.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/agent/running/events/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/refresh/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/auth/verify/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/home/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/models/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/skills/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/app/layout-fc0dbec63c654527.js +1 -0
- package/.next/static/chunks/app/login/page-c7d96da038297463.js +1 -0
- package/.next/static/chunks/app/page-883e877df3335b30.js +72 -0
- package/.next/static/chunks/d2c09beb.4f5ff7197b5bbbea.js +1 -0
- package/.next/static/chunks/d3ac728e-7964f816a1ca64e5.js +1 -0
- package/.next/static/chunks/da12927c.00775c0e4542fd3e.js +82 -0
- package/.next/static/chunks/framework-711ef29bc66f648c.js +1 -0
- package/.next/static/chunks/main-app-6d3ca1bd083597b7.js +1 -0
- package/.next/static/chunks/main-b70eb01cb9d3de17.js +5 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-129b03c25e777d59.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6270af0206ac74b6.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-bbd44e4ff13f4c9b.js +1 -0
- package/.next/static/css/88714c00e109ce28.css +1 -0
- package/.next/static/css/afdadd5192f321e7.css +1 -0
- package/.next/static/media/15605e25b523335c-s.woff2 +0 -0
- package/.next/static/media/1a3dce5cfb5f7760-s.woff2 +0 -0
- package/.next/static/media/1cdd02902f937a18-s.woff2 +0 -0
- package/.next/static/media/4c4b3b30b6bcb2be-s.woff2 +0 -0
- package/.next/static/media/641a7b8a5800ee0e-s.woff2 +0 -0
- package/.next/static/media/7deddc85b7ffd1dc-s.p.woff2 +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
- package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
- package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- package/.next/static/media/ec14413c594b3356-s.p.woff2 +0 -0
- package/.next/static/rNxNXXmbOkkvQk0-VdhVR/_buildManifest.js +1 -0
- package/.next/static/rNxNXXmbOkkvQk0-VdhVR/_ssgManifest.js +1 -0
- package/.next/trace +6 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/api/agent/[id]/bash-output/route.ts +351 -0
- package/.next/types/app/api/agent/[id]/events/route.ts +351 -0
- package/.next/types/app/api/agent/[id]/route.ts +351 -0
- package/.next/types/app/api/agent/new/route.ts +351 -0
- package/.next/types/app/api/agent/running/events/route.ts +351 -0
- package/.next/types/app/api/auth/all-providers/route.ts +351 -0
- package/.next/types/app/api/auth/api-key/[provider]/route.ts +351 -0
- package/.next/types/app/api/auth/login/[provider]/route.ts +351 -0
- package/.next/types/app/api/auth/login/route.ts +351 -0
- package/.next/types/app/api/auth/logout/[provider]/route.ts +351 -0
- package/.next/types/app/api/auth/logout/route.ts +351 -0
- package/.next/types/app/api/auth/providers/route.ts +351 -0
- package/.next/types/app/api/auth/refresh/route.ts +351 -0
- package/.next/types/app/api/auth/status/route.ts +351 -0
- package/.next/types/app/api/auth/verify/route.ts +351 -0
- package/.next/types/app/api/cwd/validate/route.ts +351 -0
- package/.next/types/app/api/default-cwd/route.ts +351 -0
- package/.next/types/app/api/file-index/route.ts +351 -0
- package/.next/types/app/api/files/[...path]/route.ts +351 -0
- package/.next/types/app/api/git/diff/route.ts +351 -0
- package/.next/types/app/api/git/status/route.ts +351 -0
- package/.next/types/app/api/home/route.ts +351 -0
- package/.next/types/app/api/models/route.ts +351 -0
- package/.next/types/app/api/models-config/route.ts +351 -0
- package/.next/types/app/api/models-config/test/route.ts +351 -0
- package/.next/types/app/api/plugins/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/auto-name/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/context/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/export/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/state/route.ts +351 -0
- package/.next/types/app/api/sessions/route.ts +351 -0
- package/.next/types/app/api/skills/check/route.ts +351 -0
- package/.next/types/app/api/skills/install/route.ts +351 -0
- package/.next/types/app/api/skills/route.ts +351 -0
- package/.next/types/app/api/skills/search/route.ts +351 -0
- package/.next/types/app/api/skills/update/route.ts +351 -0
- package/.next/types/app/api/worktrees/route.ts +351 -0
- package/.next/types/app/layout.ts +87 -0
- package/.next/types/app/login/page.ts +87 -0
- package/.next/types/app/page.ts +87 -0
- package/.next/types/cache-life.d.ts +145 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +112 -0
- package/.next/types/validator.ts +430 -0
- package/LICENSE +21 -0
- package/README.md +140 -0
- package/README.zh-CN.md +136 -0
- package/bin/pi-web-options.js +45 -0
- package/bin/pi-web.js +343 -0
- package/lib/auth-cli.js +115 -0
- package/next.config.ts +37 -0
- package/package.json +79 -0
|
@@ -0,0 +1,430 @@
|
|
|
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/login/page.tsx
|
|
51
|
+
{
|
|
52
|
+
type __IsExpected<Specific extends AppPageConfig<"/login">> = Specific
|
|
53
|
+
const handler = {} as typeof import("../../app/login/page.js")
|
|
54
|
+
type __Check = __IsExpected<typeof handler>
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
type __Unused = __Check
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Validate ../../app/page.tsx
|
|
60
|
+
{
|
|
61
|
+
type __IsExpected<Specific extends AppPageConfig<"/">> = Specific
|
|
62
|
+
const handler = {} as typeof import("../../app/page.js")
|
|
63
|
+
type __Check = __IsExpected<typeof handler>
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
type __Unused = __Check
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Validate ../../app/api/agent/[id]/bash-output/route.ts
|
|
69
|
+
{
|
|
70
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/[id]/bash-output">> = Specific
|
|
71
|
+
const handler = {} as typeof import("../../app/api/agent/[id]/bash-output/route.js")
|
|
72
|
+
type __Check = __IsExpected<typeof handler>
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
type __Unused = __Check
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Validate ../../app/api/agent/[id]/events/route.ts
|
|
78
|
+
{
|
|
79
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/[id]/events">> = Specific
|
|
80
|
+
const handler = {} as typeof import("../../app/api/agent/[id]/events/route.js")
|
|
81
|
+
type __Check = __IsExpected<typeof handler>
|
|
82
|
+
// @ts-ignore
|
|
83
|
+
type __Unused = __Check
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Validate ../../app/api/agent/[id]/route.ts
|
|
87
|
+
{
|
|
88
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/[id]">> = Specific
|
|
89
|
+
const handler = {} as typeof import("../../app/api/agent/[id]/route.js")
|
|
90
|
+
type __Check = __IsExpected<typeof handler>
|
|
91
|
+
// @ts-ignore
|
|
92
|
+
type __Unused = __Check
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Validate ../../app/api/agent/new/route.ts
|
|
96
|
+
{
|
|
97
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/new">> = Specific
|
|
98
|
+
const handler = {} as typeof import("../../app/api/agent/new/route.js")
|
|
99
|
+
type __Check = __IsExpected<typeof handler>
|
|
100
|
+
// @ts-ignore
|
|
101
|
+
type __Unused = __Check
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Validate ../../app/api/agent/running/events/route.ts
|
|
105
|
+
{
|
|
106
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/running/events">> = Specific
|
|
107
|
+
const handler = {} as typeof import("../../app/api/agent/running/events/route.js")
|
|
108
|
+
type __Check = __IsExpected<typeof handler>
|
|
109
|
+
// @ts-ignore
|
|
110
|
+
type __Unused = __Check
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Validate ../../app/api/auth/all-providers/route.ts
|
|
114
|
+
{
|
|
115
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/all-providers">> = Specific
|
|
116
|
+
const handler = {} as typeof import("../../app/api/auth/all-providers/route.js")
|
|
117
|
+
type __Check = __IsExpected<typeof handler>
|
|
118
|
+
// @ts-ignore
|
|
119
|
+
type __Unused = __Check
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Validate ../../app/api/auth/api-key/[provider]/route.ts
|
|
123
|
+
{
|
|
124
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/api-key/[provider]">> = Specific
|
|
125
|
+
const handler = {} as typeof import("../../app/api/auth/api-key/[provider]/route.js")
|
|
126
|
+
type __Check = __IsExpected<typeof handler>
|
|
127
|
+
// @ts-ignore
|
|
128
|
+
type __Unused = __Check
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Validate ../../app/api/auth/login/[provider]/route.ts
|
|
132
|
+
{
|
|
133
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/login/[provider]">> = Specific
|
|
134
|
+
const handler = {} as typeof import("../../app/api/auth/login/[provider]/route.js")
|
|
135
|
+
type __Check = __IsExpected<typeof handler>
|
|
136
|
+
// @ts-ignore
|
|
137
|
+
type __Unused = __Check
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Validate ../../app/api/auth/login/route.ts
|
|
141
|
+
{
|
|
142
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/login">> = Specific
|
|
143
|
+
const handler = {} as typeof import("../../app/api/auth/login/route.js")
|
|
144
|
+
type __Check = __IsExpected<typeof handler>
|
|
145
|
+
// @ts-ignore
|
|
146
|
+
type __Unused = __Check
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Validate ../../app/api/auth/logout/[provider]/route.ts
|
|
150
|
+
{
|
|
151
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/logout/[provider]">> = Specific
|
|
152
|
+
const handler = {} as typeof import("../../app/api/auth/logout/[provider]/route.js")
|
|
153
|
+
type __Check = __IsExpected<typeof handler>
|
|
154
|
+
// @ts-ignore
|
|
155
|
+
type __Unused = __Check
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Validate ../../app/api/auth/logout/route.ts
|
|
159
|
+
{
|
|
160
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/logout">> = Specific
|
|
161
|
+
const handler = {} as typeof import("../../app/api/auth/logout/route.js")
|
|
162
|
+
type __Check = __IsExpected<typeof handler>
|
|
163
|
+
// @ts-ignore
|
|
164
|
+
type __Unused = __Check
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Validate ../../app/api/auth/providers/route.ts
|
|
168
|
+
{
|
|
169
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/providers">> = Specific
|
|
170
|
+
const handler = {} as typeof import("../../app/api/auth/providers/route.js")
|
|
171
|
+
type __Check = __IsExpected<typeof handler>
|
|
172
|
+
// @ts-ignore
|
|
173
|
+
type __Unused = __Check
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Validate ../../app/api/auth/refresh/route.ts
|
|
177
|
+
{
|
|
178
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/refresh">> = Specific
|
|
179
|
+
const handler = {} as typeof import("../../app/api/auth/refresh/route.js")
|
|
180
|
+
type __Check = __IsExpected<typeof handler>
|
|
181
|
+
// @ts-ignore
|
|
182
|
+
type __Unused = __Check
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Validate ../../app/api/auth/status/route.ts
|
|
186
|
+
{
|
|
187
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/status">> = Specific
|
|
188
|
+
const handler = {} as typeof import("../../app/api/auth/status/route.js")
|
|
189
|
+
type __Check = __IsExpected<typeof handler>
|
|
190
|
+
// @ts-ignore
|
|
191
|
+
type __Unused = __Check
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Validate ../../app/api/auth/verify/route.ts
|
|
195
|
+
{
|
|
196
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/verify">> = Specific
|
|
197
|
+
const handler = {} as typeof import("../../app/api/auth/verify/route.js")
|
|
198
|
+
type __Check = __IsExpected<typeof handler>
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
type __Unused = __Check
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Validate ../../app/api/cwd/validate/route.ts
|
|
204
|
+
{
|
|
205
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/cwd/validate">> = Specific
|
|
206
|
+
const handler = {} as typeof import("../../app/api/cwd/validate/route.js")
|
|
207
|
+
type __Check = __IsExpected<typeof handler>
|
|
208
|
+
// @ts-ignore
|
|
209
|
+
type __Unused = __Check
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Validate ../../app/api/default-cwd/route.ts
|
|
213
|
+
{
|
|
214
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/default-cwd">> = Specific
|
|
215
|
+
const handler = {} as typeof import("../../app/api/default-cwd/route.js")
|
|
216
|
+
type __Check = __IsExpected<typeof handler>
|
|
217
|
+
// @ts-ignore
|
|
218
|
+
type __Unused = __Check
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Validate ../../app/api/file-index/route.ts
|
|
222
|
+
{
|
|
223
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/file-index">> = Specific
|
|
224
|
+
const handler = {} as typeof import("../../app/api/file-index/route.js")
|
|
225
|
+
type __Check = __IsExpected<typeof handler>
|
|
226
|
+
// @ts-ignore
|
|
227
|
+
type __Unused = __Check
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Validate ../../app/api/files/[...path]/route.ts
|
|
231
|
+
{
|
|
232
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/files/[...path]">> = Specific
|
|
233
|
+
const handler = {} as typeof import("../../app/api/files/[...path]/route.js")
|
|
234
|
+
type __Check = __IsExpected<typeof handler>
|
|
235
|
+
// @ts-ignore
|
|
236
|
+
type __Unused = __Check
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Validate ../../app/api/git/diff/route.ts
|
|
240
|
+
{
|
|
241
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/git/diff">> = Specific
|
|
242
|
+
const handler = {} as typeof import("../../app/api/git/diff/route.js")
|
|
243
|
+
type __Check = __IsExpected<typeof handler>
|
|
244
|
+
// @ts-ignore
|
|
245
|
+
type __Unused = __Check
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Validate ../../app/api/git/status/route.ts
|
|
249
|
+
{
|
|
250
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/git/status">> = Specific
|
|
251
|
+
const handler = {} as typeof import("../../app/api/git/status/route.js")
|
|
252
|
+
type __Check = __IsExpected<typeof handler>
|
|
253
|
+
// @ts-ignore
|
|
254
|
+
type __Unused = __Check
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Validate ../../app/api/home/route.ts
|
|
258
|
+
{
|
|
259
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/home">> = Specific
|
|
260
|
+
const handler = {} as typeof import("../../app/api/home/route.js")
|
|
261
|
+
type __Check = __IsExpected<typeof handler>
|
|
262
|
+
// @ts-ignore
|
|
263
|
+
type __Unused = __Check
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// Validate ../../app/api/models-config/route.ts
|
|
267
|
+
{
|
|
268
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models-config">> = Specific
|
|
269
|
+
const handler = {} as typeof import("../../app/api/models-config/route.js")
|
|
270
|
+
type __Check = __IsExpected<typeof handler>
|
|
271
|
+
// @ts-ignore
|
|
272
|
+
type __Unused = __Check
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Validate ../../app/api/models-config/test/route.ts
|
|
276
|
+
{
|
|
277
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models-config/test">> = Specific
|
|
278
|
+
const handler = {} as typeof import("../../app/api/models-config/test/route.js")
|
|
279
|
+
type __Check = __IsExpected<typeof handler>
|
|
280
|
+
// @ts-ignore
|
|
281
|
+
type __Unused = __Check
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// Validate ../../app/api/models/route.ts
|
|
285
|
+
{
|
|
286
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models">> = Specific
|
|
287
|
+
const handler = {} as typeof import("../../app/api/models/route.js")
|
|
288
|
+
type __Check = __IsExpected<typeof handler>
|
|
289
|
+
// @ts-ignore
|
|
290
|
+
type __Unused = __Check
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Validate ../../app/api/plugins/route.ts
|
|
294
|
+
{
|
|
295
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/plugins">> = Specific
|
|
296
|
+
const handler = {} as typeof import("../../app/api/plugins/route.js")
|
|
297
|
+
type __Check = __IsExpected<typeof handler>
|
|
298
|
+
// @ts-ignore
|
|
299
|
+
type __Unused = __Check
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// Validate ../../app/api/sessions/[id]/auto-name/route.ts
|
|
303
|
+
{
|
|
304
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]/auto-name">> = Specific
|
|
305
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/auto-name/route.js")
|
|
306
|
+
type __Check = __IsExpected<typeof handler>
|
|
307
|
+
// @ts-ignore
|
|
308
|
+
type __Unused = __Check
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// Validate ../../app/api/sessions/[id]/context/route.ts
|
|
312
|
+
{
|
|
313
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]/context">> = Specific
|
|
314
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/context/route.js")
|
|
315
|
+
type __Check = __IsExpected<typeof handler>
|
|
316
|
+
// @ts-ignore
|
|
317
|
+
type __Unused = __Check
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Validate ../../app/api/sessions/[id]/entries/[entryId]/thinking/route.ts
|
|
321
|
+
{
|
|
322
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]/entries/[entryId]/thinking">> = Specific
|
|
323
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/entries/[entryId]/thinking/route.js")
|
|
324
|
+
type __Check = __IsExpected<typeof handler>
|
|
325
|
+
// @ts-ignore
|
|
326
|
+
type __Unused = __Check
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// Validate ../../app/api/sessions/[id]/export/route.ts
|
|
330
|
+
{
|
|
331
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]/export">> = Specific
|
|
332
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/export/route.js")
|
|
333
|
+
type __Check = __IsExpected<typeof handler>
|
|
334
|
+
// @ts-ignore
|
|
335
|
+
type __Unused = __Check
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// Validate ../../app/api/sessions/[id]/route.ts
|
|
339
|
+
{
|
|
340
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]">> = Specific
|
|
341
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/route.js")
|
|
342
|
+
type __Check = __IsExpected<typeof handler>
|
|
343
|
+
// @ts-ignore
|
|
344
|
+
type __Unused = __Check
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Validate ../../app/api/sessions/[id]/state/route.ts
|
|
348
|
+
{
|
|
349
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]/state">> = Specific
|
|
350
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/state/route.js")
|
|
351
|
+
type __Check = __IsExpected<typeof handler>
|
|
352
|
+
// @ts-ignore
|
|
353
|
+
type __Unused = __Check
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// Validate ../../app/api/sessions/route.ts
|
|
357
|
+
{
|
|
358
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions">> = Specific
|
|
359
|
+
const handler = {} as typeof import("../../app/api/sessions/route.js")
|
|
360
|
+
type __Check = __IsExpected<typeof handler>
|
|
361
|
+
// @ts-ignore
|
|
362
|
+
type __Unused = __Check
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Validate ../../app/api/skills/check/route.ts
|
|
366
|
+
{
|
|
367
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/check">> = Specific
|
|
368
|
+
const handler = {} as typeof import("../../app/api/skills/check/route.js")
|
|
369
|
+
type __Check = __IsExpected<typeof handler>
|
|
370
|
+
// @ts-ignore
|
|
371
|
+
type __Unused = __Check
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// Validate ../../app/api/skills/install/route.ts
|
|
375
|
+
{
|
|
376
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/install">> = Specific
|
|
377
|
+
const handler = {} as typeof import("../../app/api/skills/install/route.js")
|
|
378
|
+
type __Check = __IsExpected<typeof handler>
|
|
379
|
+
// @ts-ignore
|
|
380
|
+
type __Unused = __Check
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
// Validate ../../app/api/skills/route.ts
|
|
384
|
+
{
|
|
385
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills">> = Specific
|
|
386
|
+
const handler = {} as typeof import("../../app/api/skills/route.js")
|
|
387
|
+
type __Check = __IsExpected<typeof handler>
|
|
388
|
+
// @ts-ignore
|
|
389
|
+
type __Unused = __Check
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
// Validate ../../app/api/skills/search/route.ts
|
|
393
|
+
{
|
|
394
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/search">> = Specific
|
|
395
|
+
const handler = {} as typeof import("../../app/api/skills/search/route.js")
|
|
396
|
+
type __Check = __IsExpected<typeof handler>
|
|
397
|
+
// @ts-ignore
|
|
398
|
+
type __Unused = __Check
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// Validate ../../app/api/skills/update/route.ts
|
|
402
|
+
{
|
|
403
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/update">> = Specific
|
|
404
|
+
const handler = {} as typeof import("../../app/api/skills/update/route.js")
|
|
405
|
+
type __Check = __IsExpected<typeof handler>
|
|
406
|
+
// @ts-ignore
|
|
407
|
+
type __Unused = __Check
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
// Validate ../../app/api/worktrees/route.ts
|
|
411
|
+
{
|
|
412
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/worktrees">> = Specific
|
|
413
|
+
const handler = {} as typeof import("../../app/api/worktrees/route.js")
|
|
414
|
+
type __Check = __IsExpected<typeof handler>
|
|
415
|
+
// @ts-ignore
|
|
416
|
+
type __Unused = __Check
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
// Validate ../../app/layout.tsx
|
|
424
|
+
{
|
|
425
|
+
type __IsExpected<Specific extends LayoutConfig<"/">> = Specific
|
|
426
|
+
const handler = {} as typeof import("../../app/layout.js")
|
|
427
|
+
type __Check = __IsExpected<typeof handler>
|
|
428
|
+
// @ts-ignore
|
|
429
|
+
type __Unused = __Check
|
|
430
|
+
}
|
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,140 @@
|
|
|
1
|
+
# Pi Web
|
|
2
|
+
|
|
3
|
+
[中文文档](./README.zh-CN.md)
|
|
4
|
+
|
|
5
|
+
Local web UI for the [pi coding agent](https://github.com/badlogic/pi-mono). Pi Web reads your local pi session files and gives you a browser workspace for session browsing, real-time chat, model configuration, skill management, and project file preview.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
The same pi session in CLI and Pi Web: structured tool calls, readable Markdown, session browsing, and cleaner results.
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
**Run without installing:**
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx @agegr/pi-web@latest
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Or install globally:**
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -g @agegr/pi-web
|
|
23
|
+
pi-web
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Then open [http://localhost:30141](http://localhost:30141). The CLI will try to open the browser automatically after the server is ready.
|
|
27
|
+
|
|
28
|
+
**Options:**
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pi-web --port 8080 # custom port
|
|
32
|
+
pi-web --hostname 127.0.0.1 # local access only
|
|
33
|
+
pi-web -p 8080 -H 127.0.0.1 # combine options
|
|
34
|
+
pi-web --no-open # do not open the browser automatically
|
|
35
|
+
|
|
36
|
+
PORT=8080 pi-web # environment variable is also supported
|
|
37
|
+
PI_WEB_NO_OPEN=1 pi-web # useful when running as a background service
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## HTTP Proxy
|
|
41
|
+
|
|
42
|
+
Pi Web reads the standard `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables for server-side model and API requests.
|
|
43
|
+
|
|
44
|
+
On macOS or Linux:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
HTTP_PROXY=http://127.0.0.1:7890 \
|
|
48
|
+
HTTPS_PROXY=http://127.0.0.1:7890 \
|
|
49
|
+
NO_PROXY=localhost,127.0.0.1 \
|
|
50
|
+
npx @agegr/pi-web@latest
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
On Windows PowerShell:
|
|
54
|
+
|
|
55
|
+
```powershell
|
|
56
|
+
$env:HTTP_PROXY = "http://127.0.0.1:7890"
|
|
57
|
+
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
|
|
58
|
+
$env:NO_PROXY = "localhost,127.0.0.1"
|
|
59
|
+
npx @agegr/pi-web@latest
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Features
|
|
63
|
+
|
|
64
|
+
- **Pick work back up**: browse previous pi conversations by project without digging through terminal history or session paths.
|
|
65
|
+
- **Try different directions safely**: continue from an earlier message or fork a session into a separate route.
|
|
66
|
+
- **Work across branches**: switch Git worktrees from the sidebar so new sessions and the Explorer follow the checkout you choose.
|
|
67
|
+
- **Chat beside the project**: browse files on the left and preview source, docs, images, audio, and PDFs on the right while the agent works.
|
|
68
|
+
- **See session state clearly**: context usage, cost, compaction state, and system prompt details are visible from the top bar.
|
|
69
|
+
- **Configure less from the terminal**: manage models, login/API keys, model tests, and skill switches from the web UI.
|
|
70
|
+
|
|
71
|
+
## Notes
|
|
72
|
+
|
|
73
|
+
- **Data directory**: Pi Web reads `~/.pi/agent/sessions` by default. Set `PI_CODING_AGENT_DIR` to point at another pi agent directory.
|
|
74
|
+
- **Session files**: files are stored as `~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl`.
|
|
75
|
+
- **Model config**: the Models panel reads and writes `models.json` in the pi agent directory. Model lists and defaults come from pi's config.
|
|
76
|
+
- **File access**: file browsing and preview are scoped to the selected project directory and working directories that appear in sessions.
|
|
77
|
+
- **Git worktrees**: see [Worktrees in Pi Web](./docs/worktrees.md) for when the switcher appears, how new worktrees are created, and what removal does.
|
|
78
|
+
- **Forks vs in-session branches**: Fork creates a new `.jsonl` file. "Edit from here" creates another branch inside the same session file.
|
|
79
|
+
|
|
80
|
+
## Development
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm install
|
|
84
|
+
npm run dev
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The local dev server runs at [http://localhost:30141](http://localhost:30141).
|
|
88
|
+
|
|
89
|
+
Common checks:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
node_modules/.bin/tsc --noEmit
|
|
93
|
+
npm run lint
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Avoid running `next build` / `npm run build` during local development. It writes to `.next/` and can interfere with the dev server; leave builds for release work.
|
|
97
|
+
|
|
98
|
+
## Project Structure
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
app/
|
|
102
|
+
api/
|
|
103
|
+
agent/ # creates/drives AgentSession and exposes SSE events
|
|
104
|
+
auth/ # OAuth and API key management
|
|
105
|
+
cwd/validate/ # custom working directory validation
|
|
106
|
+
default-cwd/ # pi default working directory lookup
|
|
107
|
+
files/ # file listing, reading, preview, and watching
|
|
108
|
+
home/ # current user home directory
|
|
109
|
+
models/ # available models, default model, thinking levels
|
|
110
|
+
models-config/ # read/write models.json and test models
|
|
111
|
+
sessions/ # session reads, rename, delete, context, HTML export
|
|
112
|
+
skills/ # skill listing, search, install, enable/disable
|
|
113
|
+
components/
|
|
114
|
+
AppShell.tsx # main layout, URL state, top panels, file tabs
|
|
115
|
+
SessionSidebar.tsx # project selector, session tree, Explorer
|
|
116
|
+
ChatWindow.tsx # messages, SSE, image drag/drop, minimap
|
|
117
|
+
ChatInput.tsx # input bar, model/tools/thinking/compact/slash controls
|
|
118
|
+
MessageView.tsx # message, thinking, tool call/result rendering
|
|
119
|
+
ModelsConfig.tsx # model and auth configuration panel
|
|
120
|
+
SkillsConfig.tsx # skill management panel
|
|
121
|
+
FileExplorer.tsx # file tree
|
|
122
|
+
FileViewer.tsx # source, diff, image, audio, PDF, DOCX preview
|
|
123
|
+
lib/
|
|
124
|
+
http-dispatcher.ts # HTTP(S) proxy setup for server-side fetch
|
|
125
|
+
rpc-manager.ts # AgentSessionWrapper lifecycle and global registry
|
|
126
|
+
session-reader.ts # parses .jsonl session files and branch contexts
|
|
127
|
+
normalize.ts # normalizes toolCall field names
|
|
128
|
+
file-access.ts # file read safety boundary
|
|
129
|
+
file-paths.ts # path encoding and relative path helpers
|
|
130
|
+
markdown.ts # Markdown/Mermaid/KaTeX plugin configuration
|
|
131
|
+
pi-types.ts # pi-related types
|
|
132
|
+
hooks/
|
|
133
|
+
useAgentSession.ts # session loading, command sending, SSE state machine
|
|
134
|
+
useAudio.ts # completion sound
|
|
135
|
+
useDragDrop.ts # image drag/drop
|
|
136
|
+
useTheme.ts # theme switching
|
|
137
|
+
bin/
|
|
138
|
+
pi-web.js # npm CLI entrypoint
|
|
139
|
+
instrumentation.ts # initializes the server HTTP dispatcher
|
|
140
|
+
```
|