pi-app 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +55 -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 +114 -0
- package/.next/react-loadable-manifest.json +2271 -0
- package/.next/required-server-files.js +347 -0
- package/.next/required-server-files.json +347 -0
- package/.next/routes-manifest.json +394 -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 +4 -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]/export.html/route.js +1 -0
- package/.next/server/app/api/agent/[id]/export.html/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/export.html/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/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/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/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/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/extensions/route.js +2 -0
- package/.next/server/app/api/extensions/route.js.nft.json +1 -0
- package/.next/server/app/api/extensions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/files/[...path]/route.js +50 -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/files/stage/route.js +1 -0
- package/.next/server/app/api/files/stage/route.js.nft.json +1 -0
- package/.next/server/app/api/files/stage/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git-branch/route.js +1 -0
- package/.next/server/app/api/git-branch/route.js.nft.json +1 -0
- package/.next/server/app/api/git-branch/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/health/route.js +1 -0
- package/.next/server/app/api/health/route.js.nft.json +1 -0
- package/.next/server/app/api/health/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/history/[id]/route.js +2 -0
- package/.next/server/app/api/history/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/history/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/history/route.js +2 -0
- package/.next/server/app/api/history/route.js.nft.json +1 -0
- package/.next/server/app/api/history/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/notifications/agent-end/route.js +3 -0
- package/.next/server/app/api/notifications/agent-end/route.js.nft.json +1 -0
- package/.next/server/app/api/notifications/agent-end/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/preferences/route.js +2 -0
- package/.next/server/app/api/preferences/route.js.nft.json +1 -0
- package/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/product-sessions/[id]/route.js +3 -0
- package/.next/server/app/api/product-sessions/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/product-sessions/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/push/route.js +2 -0
- package/.next/server/app/api/push/route.js.nft.json +1 -0
- package/.next/server/app/api/push/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/remote/audit/route.js +1 -0
- package/.next/server/app/api/remote/audit/route.js.nft.json +1 -0
- package/.next/server/app/api/remote/audit/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/remote/client/route.js +1 -0
- package/.next/server/app/api/remote/client/route.js.nft.json +1 -0
- package/.next/server/app/api/remote/client/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/remote/pair/route.js +1 -0
- package/.next/server/app/api/remote/pair/route.js.nft.json +1 -0
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/remote/route.js +1 -0
- package/.next/server/app/api/remote/route.js.nft.json +1 -0
- package/.next/server/app/api/remote/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/scene-overrides/[sceneId]/route.js +3 -0
- package/.next/server/app/api/scene-overrides/[sceneId]/route.js.nft.json +1 -0
- package/.next/server/app/api/scene-overrides/[sceneId]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/scene-overrides/export/route.js +4 -0
- package/.next/server/app/api/scene-overrides/export/route.js.nft.json +1 -0
- package/.next/server/app/api/scene-overrides/export/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/scene-overrides/import/route.js +3 -0
- package/.next/server/app/api/scene-overrides/import/route.js.nft.json +1 -0
- package/.next/server/app/api/scene-overrides/import/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/scene-overrides/route.js +3 -0
- package/.next/server/app/api/scene-overrides/route.js.nft.json +1 -0
- package/.next/server/app/api/scene-overrides/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +2 -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]/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]/share/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/share/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/share/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/new/route.js +1 -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 +1 -0
- package/.next/server/app/api/sessions/route.js +2 -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/settings/default-model/route.js +1 -0
- package/.next/server/app/api/settings/default-model/route.js.nft.json +1 -0
- package/.next/server/app/api/settings/default-model/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/share/[token]/route.js +2 -0
- package/.next/server/app/api/share/[token]/route.js.nft.json +1 -0
- package/.next/server/app/api/share/[token]/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/usage/route.js +2 -0
- package/.next/server/app/api/usage/route.js.nft.json +1 -0
- package/.next/server/app/api/usage/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/web-fetch/install-agent-browser/route.js +3 -0
- package/.next/server/app/api/web-fetch/install-agent-browser/route.js.nft.json +1 -0
- package/.next/server/app/api/web-fetch/install-agent-browser/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/web-fetch/preferences/route.js +1 -0
- package/.next/server/app/api/web-fetch/preferences/route.js.nft.json +1 -0
- package/.next/server/app/api/web-fetch/preferences/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/web-fetch/status/route.js +1 -0
- package/.next/server/app/api/web-fetch/status/route.js.nft.json +1 -0
- package/.next/server/app/api/web-fetch/status/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 +4 -0
- package/.next/server/app/page.js +5 -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/share/[token]/page.js +2 -0
- package/.next/server/app/share/[token]/page.js.nft.json +1 -0
- package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +55 -0
- package/.next/server/chunks/1048.js +1 -0
- package/.next/server/chunks/1185.js +3 -0
- package/.next/server/chunks/1367.js +77 -0
- package/.next/server/chunks/1381.js +1 -0
- package/.next/server/chunks/165.js +1 -0
- package/.next/server/chunks/1681.js +215 -0
- package/.next/server/chunks/1703.js +79 -0
- package/.next/server/chunks/1712.js +43 -0
- package/.next/server/chunks/1813.js +1 -0
- package/.next/server/chunks/2325.js +80 -0
- package/.next/server/chunks/258.js +1 -0
- package/.next/server/chunks/2671.js +287 -0
- package/.next/server/chunks/2778.js +1 -0
- package/.next/server/chunks/2943.js +1 -0
- package/.next/server/chunks/3031.js +226 -0
- package/.next/server/chunks/3181.js +1 -0
- package/.next/server/chunks/319.js +45 -0
- package/.next/server/chunks/3379.js +1 -0
- package/.next/server/chunks/3451.js +1 -0
- package/.next/server/chunks/349.js +4 -0
- package/.next/server/chunks/3493.js +1 -0
- package/.next/server/chunks/3672.js +1 -0
- package/.next/server/chunks/3701.js +104 -0
- package/.next/server/chunks/4035.js +80 -0
- package/.next/server/chunks/4248.js +153 -0
- package/.next/server/chunks/4325.js +90 -0
- package/.next/server/chunks/4367.js +1 -0
- package/.next/server/chunks/4406.js +141 -0
- package/.next/server/chunks/459.js +2 -0
- package/.next/server/chunks/4741.js +18 -0
- package/.next/server/chunks/4858.js +148 -0
- package/.next/server/chunks/4880.js +1 -0
- package/.next/server/chunks/4980.js +1 -0
- package/.next/server/chunks/5155.js +5 -0
- package/.next/server/chunks/5293.js +166 -0
- package/.next/server/chunks/5409.js +1 -0
- package/.next/server/chunks/5797.js +93 -0
- package/.next/server/chunks/5851.js +36 -0
- package/.next/server/chunks/6206.js +1 -0
- package/.next/server/chunks/6296.js +1 -0
- package/.next/server/chunks/6346.js +1 -0
- package/.next/server/chunks/6406.js +23 -0
- package/.next/server/chunks/642.js +1 -0
- package/.next/server/chunks/6429.js +2 -0
- package/.next/server/chunks/6729.js +64 -0
- package/.next/server/chunks/6907.js +115 -0
- package/.next/server/chunks/6980.js +1 -0
- package/.next/server/chunks/7073.js +24 -0
- package/.next/server/chunks/7233.js +24 -0
- package/.next/server/chunks/7270.js +2 -0
- package/.next/server/chunks/7307.js +1 -0
- package/.next/server/chunks/7362.js +9 -0
- package/.next/server/chunks/7567.js +29 -0
- package/.next/server/chunks/8238.js +34 -0
- package/.next/server/chunks/8276.js +1 -0
- package/.next/server/chunks/8336.js +1 -0
- package/.next/server/chunks/8342.js +4 -0
- package/.next/server/chunks/8433.js +1 -0
- package/.next/server/chunks/8490.js +1 -0
- package/.next/server/chunks/8916.js +1 -0
- package/.next/server/chunks/9280.js +252 -0
- package/.next/server/chunks/9315.js +1 -0
- package/.next/server/chunks/966.js +1 -0
- package/.next/server/edge-instrumentation.js +2 -0
- package/.next/server/edge-runtime-webpack.js +2 -0
- package/.next/server/functions-config-manifest.json +8 -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 +34 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +10 -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/0b9a0da7.915b07ceecd18755.js +62 -0
- package/.next/static/chunks/1413.922d232de90c0c41.js +115 -0
- package/.next/static/chunks/1643.467a526a1f24f54d.js +24 -0
- package/.next/static/chunks/1852.4afb7f7ef17737c1.js +1 -0
- package/.next/static/chunks/1960.b1e26436d7a5f586.js +1 -0
- package/.next/static/chunks/2241-3268f463e00f6e38.js +1 -0
- package/.next/static/chunks/2261-cd89471c199745e2.js +4 -0
- package/.next/static/chunks/2419.fb50b8bb1874d556.js +166 -0
- package/.next/static/chunks/2619.9aac8983f30c7c8a.js +1 -0
- package/.next/static/chunks/2623.d20fabd8e18197c6.js +287 -0
- package/.next/static/chunks/2729.f5365061a849d659.js +34 -0
- package/.next/static/chunks/2821.934bcf60fbdc28c6.js +1 -0
- package/.next/static/chunks/2918becc.abff2ece1de37bc1.js +153 -0
- package/.next/static/chunks/2947.114e51cb06d1c01a.js +23 -0
- package/.next/static/chunks/3079.90c6008a4bba4ee1.js +79 -0
- package/.next/static/chunks/3274.208ca44844cd7d95.js +148 -0
- package/.next/static/chunks/3308.115707ee3fd446be.js +73 -0
- package/.next/static/chunks/3325.01cdecedf0fb6d62.js +80 -0
- package/.next/static/chunks/3794-ba2500baa4c52d55.js +32 -0
- package/.next/static/chunks/3837.a755ccfe6f9c1c1c.js +5 -0
- package/.next/static/chunks/394.2860c5a408dc8801.js +1 -0
- package/.next/static/chunks/3997.42e942ad02cc6f4b.js +1 -0
- package/.next/static/chunks/4491.44fdf20580ac72bd.js +24 -0
- package/.next/static/chunks/4829.cf1d50e43e6d9db5.js +1 -0
- package/.next/static/chunks/498.fe1d9da9ecad6c36.js +1 -0
- package/.next/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
- package/.next/static/chunks/5019.b5a1a2b8daf17525.js +1 -0
- package/.next/static/chunks/5034.cbaaf32db6d2086d.js +1 -0
- package/.next/static/chunks/5035.3755dbc45ec0eb8d.js +90 -0
- package/.next/static/chunks/5074.fc63ed48a3b1a61f.js +1 -0
- package/.next/static/chunks/5118-c59568935da468da.js +1 -0
- package/.next/static/chunks/532.5956ed631aff722b.js +9 -0
- package/.next/static/chunks/5326.69460442bdcd6cd3.js +1 -0
- package/.next/static/chunks/5403.ff110bf5bf600758.js +64 -0
- package/.next/static/chunks/547.902a733488cfe3f7.js +77 -0
- package/.next/static/chunks/5567.540d7fc108ad6ee5.js +215 -0
- package/.next/static/chunks/5590.ef62922166d308b4.js +1 -0
- package/.next/static/chunks/5690.9d6eb1edb1399995.js +1 -0
- package/.next/static/chunks/5749.25faee4a1e55b854.js +226 -0
- package/.next/static/chunks/58bb9007.1ccb6bba34b4c635.js +80 -0
- package/.next/static/chunks/6121.f3f43f1896ea0cd9.js +1 -0
- package/.next/static/chunks/634-ca908c8d0258d9db.js +3 -0
- package/.next/static/chunks/6600.583c88eef37aa524.js +1 -0
- package/.next/static/chunks/6696.c05e02f280b8186b.js +141 -0
- package/.next/static/chunks/6922.42148793782d2fe7.js +1 -0
- package/.next/static/chunks/7006.e191611ffc2b9528.js +43 -0
- package/.next/static/chunks/7343.9574ac32b87d5050.js +1 -0
- package/.next/static/chunks/73972abe.25a4cffa03b2bcef.js +119 -0
- package/.next/static/chunks/7547.8caf31f3b18ded65.js +93 -0
- package/.next/static/chunks/7648.4ae2f183b4db0353.js +1 -0
- package/.next/static/chunks/7874.8db6929b94cdf697.js +1 -0
- package/.next/static/chunks/7959.1f20a35df316216a.js +104 -0
- package/.next/static/chunks/83.85d62d7fc9850b75.js +29 -0
- package/.next/static/chunks/8489.fd81b5e4de9f8431.js +36 -0
- package/.next/static/chunks/8568.f85d8b36fc9a9037.js +1 -0
- package/.next/static/chunks/8863.be51033a67436277.js +1 -0
- package/.next/static/chunks/90542734.ecc36ada79772529.js +1 -0
- package/.next/static/chunks/9500.1488aec06ee78127.js +1 -0
- package/.next/static/chunks/9633.155548b5fca6e580.js +1 -0
- package/.next/static/chunks/9779.673004a62d70e36a.js +1 -0
- package/.next/static/chunks/9b0008ae.3afefd8b13735168.js +2 -0
- package/.next/static/chunks/app/_global-error/page-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/_not-found/page-647d65d4d44f4663.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/export.html/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/extensions/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/files/stage/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/git-branch/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/health/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/history/[id]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/history/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/home/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/models/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/notifications/agent-end/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/preferences/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/product-sessions/[id]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/push/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/remote/audit/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/remote/client/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/remote/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/scene-overrides/[sceneId]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/scene-overrides/export/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/scene-overrides/import/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/scene-overrides/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/share/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/sessions/new/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/settings/default-model/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/skills/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/usage/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/web-fetch/install-agent-browser/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/web-fetch/preferences/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/api/web-fetch/status/route-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/app/layout-e74bc51db18cfddb.js +1 -0
- package/.next/static/chunks/app/page-0a72cdb03c0de546.js +2 -0
- package/.next/static/chunks/app/share/[token]/page-801df8f03e50e9cc.js +1 -0
- package/.next/static/chunks/d3ac728e.7964f816a1ca64e5.js +1 -0
- package/.next/static/chunks/framework-594babcea68f40f6.js +1 -0
- package/.next/static/chunks/main-a301b80fa032f44e.js +5 -0
- package/.next/static/chunks/main-app-4543b2d36de0bf44.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-7fe17cf3265b4136.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6ba03eac42f3d2bb.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-bef1f311e5b374f6.js +1 -0
- package/.next/static/css/889d8f95f57176c7.css +3 -0
- package/.next/static/mO8qg2XV3QxoVaZcobTyc/_buildManifest.js +1 -0
- package/.next/static/mO8qg2XV3QxoVaZcobTyc/_ssgManifest.js +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/ec14413c594b3356-s.p.woff2 +0 -0
- package/.next/trace +6 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/api/agent/[id]/events/route.ts +351 -0
- package/.next/types/app/api/agent/[id]/export.html/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/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/logout/[provider]/route.ts +351 -0
- package/.next/types/app/api/auth/providers/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/extensions/route.ts +351 -0
- package/.next/types/app/api/files/[...path]/route.ts +351 -0
- package/.next/types/app/api/files/stage/route.ts +351 -0
- package/.next/types/app/api/git-branch/route.ts +351 -0
- package/.next/types/app/api/health/route.ts +351 -0
- package/.next/types/app/api/history/[id]/route.ts +351 -0
- package/.next/types/app/api/history/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/notifications/agent-end/route.ts +351 -0
- package/.next/types/app/api/preferences/route.ts +351 -0
- package/.next/types/app/api/product-sessions/[id]/route.ts +351 -0
- package/.next/types/app/api/push/route.ts +351 -0
- package/.next/types/app/api/remote/audit/route.ts +351 -0
- package/.next/types/app/api/remote/client/route.ts +351 -0
- package/.next/types/app/api/remote/pair/route.ts +351 -0
- package/.next/types/app/api/remote/route.ts +351 -0
- package/.next/types/app/api/scene-overrides/[sceneId]/route.ts +351 -0
- package/.next/types/app/api/scene-overrides/export/route.ts +351 -0
- package/.next/types/app/api/scene-overrides/import/route.ts +351 -0
- package/.next/types/app/api/scene-overrides/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/context/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/share/route.ts +351 -0
- package/.next/types/app/api/sessions/new/route.ts +351 -0
- package/.next/types/app/api/sessions/route.ts +351 -0
- package/.next/types/app/api/settings/default-model/route.ts +351 -0
- package/.next/types/app/api/share/[token]/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/usage/route.ts +351 -0
- package/.next/types/app/api/web-fetch/install-agent-browser/route.ts +351 -0
- package/.next/types/app/api/web-fetch/preferences/route.ts +351 -0
- package/.next/types/app/api/web-fetch/status/route.ts +351 -0
- package/.next/types/app/page.ts +87 -0
- package/.next/types/app/share/[token]/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 +121 -0
- package/.next/types/validator.ts +511 -0
- package/LICENSE +21 -0
- package/README.md +142 -0
- package/bin/pi-app.js +113 -0
- package/next.config.ts +61 -0
- package/package.json +78 -0
- package/public/icon.svg +4 -0
- package/public/manifest.webmanifest +18 -0
- package/public/pdf.worker.min.mjs +21 -0
- package/public/sw.js +63 -0
|
@@ -0,0 +1,511 @@
|
|
|
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/share/[token]/page.tsx
|
|
60
|
+
{
|
|
61
|
+
type __IsExpected<Specific extends AppPageConfig<"/share/[token]">> = Specific
|
|
62
|
+
const handler = {} as typeof import("../../app/share/[token]/page.js")
|
|
63
|
+
type __Check = __IsExpected<typeof handler>
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
type __Unused = __Check
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Validate ../../app/api/agent/[id]/events/route.ts
|
|
69
|
+
{
|
|
70
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/[id]/events">> = Specific
|
|
71
|
+
const handler = {} as typeof import("../../app/api/agent/[id]/events/route.js")
|
|
72
|
+
type __Check = __IsExpected<typeof handler>
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
type __Unused = __Check
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Validate ../../app/api/agent/[id]/export.html/route.ts
|
|
78
|
+
{
|
|
79
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/[id]/export.html">> = Specific
|
|
80
|
+
const handler = {} as typeof import("../../app/api/agent/[id]/export.html/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/auth/all-providers/route.ts
|
|
105
|
+
{
|
|
106
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/all-providers">> = Specific
|
|
107
|
+
const handler = {} as typeof import("../../app/api/auth/all-providers/route.js")
|
|
108
|
+
type __Check = __IsExpected<typeof handler>
|
|
109
|
+
// @ts-ignore
|
|
110
|
+
type __Unused = __Check
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Validate ../../app/api/auth/api-key/[provider]/route.ts
|
|
114
|
+
{
|
|
115
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/api-key/[provider]">> = Specific
|
|
116
|
+
const handler = {} as typeof import("../../app/api/auth/api-key/[provider]/route.js")
|
|
117
|
+
type __Check = __IsExpected<typeof handler>
|
|
118
|
+
// @ts-ignore
|
|
119
|
+
type __Unused = __Check
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Validate ../../app/api/auth/login/[provider]/route.ts
|
|
123
|
+
{
|
|
124
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/login/[provider]">> = Specific
|
|
125
|
+
const handler = {} as typeof import("../../app/api/auth/login/[provider]/route.js")
|
|
126
|
+
type __Check = __IsExpected<typeof handler>
|
|
127
|
+
// @ts-ignore
|
|
128
|
+
type __Unused = __Check
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Validate ../../app/api/auth/logout/[provider]/route.ts
|
|
132
|
+
{
|
|
133
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/logout/[provider]">> = Specific
|
|
134
|
+
const handler = {} as typeof import("../../app/api/auth/logout/[provider]/route.js")
|
|
135
|
+
type __Check = __IsExpected<typeof handler>
|
|
136
|
+
// @ts-ignore
|
|
137
|
+
type __Unused = __Check
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Validate ../../app/api/auth/providers/route.ts
|
|
141
|
+
{
|
|
142
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/providers">> = Specific
|
|
143
|
+
const handler = {} as typeof import("../../app/api/auth/providers/route.js")
|
|
144
|
+
type __Check = __IsExpected<typeof handler>
|
|
145
|
+
// @ts-ignore
|
|
146
|
+
type __Unused = __Check
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Validate ../../app/api/cwd/validate/route.ts
|
|
150
|
+
{
|
|
151
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/cwd/validate">> = Specific
|
|
152
|
+
const handler = {} as typeof import("../../app/api/cwd/validate/route.js")
|
|
153
|
+
type __Check = __IsExpected<typeof handler>
|
|
154
|
+
// @ts-ignore
|
|
155
|
+
type __Unused = __Check
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Validate ../../app/api/default-cwd/route.ts
|
|
159
|
+
{
|
|
160
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/default-cwd">> = Specific
|
|
161
|
+
const handler = {} as typeof import("../../app/api/default-cwd/route.js")
|
|
162
|
+
type __Check = __IsExpected<typeof handler>
|
|
163
|
+
// @ts-ignore
|
|
164
|
+
type __Unused = __Check
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Validate ../../app/api/extensions/route.ts
|
|
168
|
+
{
|
|
169
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/extensions">> = Specific
|
|
170
|
+
const handler = {} as typeof import("../../app/api/extensions/route.js")
|
|
171
|
+
type __Check = __IsExpected<typeof handler>
|
|
172
|
+
// @ts-ignore
|
|
173
|
+
type __Unused = __Check
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Validate ../../app/api/files/[...path]/route.ts
|
|
177
|
+
{
|
|
178
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/files/[...path]">> = Specific
|
|
179
|
+
const handler = {} as typeof import("../../app/api/files/[...path]/route.js")
|
|
180
|
+
type __Check = __IsExpected<typeof handler>
|
|
181
|
+
// @ts-ignore
|
|
182
|
+
type __Unused = __Check
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Validate ../../app/api/files/stage/route.ts
|
|
186
|
+
{
|
|
187
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/files/stage">> = Specific
|
|
188
|
+
const handler = {} as typeof import("../../app/api/files/stage/route.js")
|
|
189
|
+
type __Check = __IsExpected<typeof handler>
|
|
190
|
+
// @ts-ignore
|
|
191
|
+
type __Unused = __Check
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Validate ../../app/api/git-branch/route.ts
|
|
195
|
+
{
|
|
196
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/git-branch">> = Specific
|
|
197
|
+
const handler = {} as typeof import("../../app/api/git-branch/route.js")
|
|
198
|
+
type __Check = __IsExpected<typeof handler>
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
type __Unused = __Check
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Validate ../../app/api/health/route.ts
|
|
204
|
+
{
|
|
205
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/health">> = Specific
|
|
206
|
+
const handler = {} as typeof import("../../app/api/health/route.js")
|
|
207
|
+
type __Check = __IsExpected<typeof handler>
|
|
208
|
+
// @ts-ignore
|
|
209
|
+
type __Unused = __Check
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Validate ../../app/api/history/[id]/route.ts
|
|
213
|
+
{
|
|
214
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/history/[id]">> = Specific
|
|
215
|
+
const handler = {} as typeof import("../../app/api/history/[id]/route.js")
|
|
216
|
+
type __Check = __IsExpected<typeof handler>
|
|
217
|
+
// @ts-ignore
|
|
218
|
+
type __Unused = __Check
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Validate ../../app/api/history/route.ts
|
|
222
|
+
{
|
|
223
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/history">> = Specific
|
|
224
|
+
const handler = {} as typeof import("../../app/api/history/route.js")
|
|
225
|
+
type __Check = __IsExpected<typeof handler>
|
|
226
|
+
// @ts-ignore
|
|
227
|
+
type __Unused = __Check
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Validate ../../app/api/home/route.ts
|
|
231
|
+
{
|
|
232
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/home">> = Specific
|
|
233
|
+
const handler = {} as typeof import("../../app/api/home/route.js")
|
|
234
|
+
type __Check = __IsExpected<typeof handler>
|
|
235
|
+
// @ts-ignore
|
|
236
|
+
type __Unused = __Check
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Validate ../../app/api/models-config/route.ts
|
|
240
|
+
{
|
|
241
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models-config">> = Specific
|
|
242
|
+
const handler = {} as typeof import("../../app/api/models-config/route.js")
|
|
243
|
+
type __Check = __IsExpected<typeof handler>
|
|
244
|
+
// @ts-ignore
|
|
245
|
+
type __Unused = __Check
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Validate ../../app/api/models-config/test/route.ts
|
|
249
|
+
{
|
|
250
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models-config/test">> = Specific
|
|
251
|
+
const handler = {} as typeof import("../../app/api/models-config/test/route.js")
|
|
252
|
+
type __Check = __IsExpected<typeof handler>
|
|
253
|
+
// @ts-ignore
|
|
254
|
+
type __Unused = __Check
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Validate ../../app/api/models/route.ts
|
|
258
|
+
{
|
|
259
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/models">> = Specific
|
|
260
|
+
const handler = {} as typeof import("../../app/api/models/route.js")
|
|
261
|
+
type __Check = __IsExpected<typeof handler>
|
|
262
|
+
// @ts-ignore
|
|
263
|
+
type __Unused = __Check
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// Validate ../../app/api/notifications/agent-end/route.ts
|
|
267
|
+
{
|
|
268
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/notifications/agent-end">> = Specific
|
|
269
|
+
const handler = {} as typeof import("../../app/api/notifications/agent-end/route.js")
|
|
270
|
+
type __Check = __IsExpected<typeof handler>
|
|
271
|
+
// @ts-ignore
|
|
272
|
+
type __Unused = __Check
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Validate ../../app/api/preferences/route.ts
|
|
276
|
+
{
|
|
277
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/preferences">> = Specific
|
|
278
|
+
const handler = {} as typeof import("../../app/api/preferences/route.js")
|
|
279
|
+
type __Check = __IsExpected<typeof handler>
|
|
280
|
+
// @ts-ignore
|
|
281
|
+
type __Unused = __Check
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// Validate ../../app/api/product-sessions/[id]/route.ts
|
|
285
|
+
{
|
|
286
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/product-sessions/[id]">> = Specific
|
|
287
|
+
const handler = {} as typeof import("../../app/api/product-sessions/[id]/route.js")
|
|
288
|
+
type __Check = __IsExpected<typeof handler>
|
|
289
|
+
// @ts-ignore
|
|
290
|
+
type __Unused = __Check
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Validate ../../app/api/push/route.ts
|
|
294
|
+
{
|
|
295
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/push">> = Specific
|
|
296
|
+
const handler = {} as typeof import("../../app/api/push/route.js")
|
|
297
|
+
type __Check = __IsExpected<typeof handler>
|
|
298
|
+
// @ts-ignore
|
|
299
|
+
type __Unused = __Check
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// Validate ../../app/api/remote/audit/route.ts
|
|
303
|
+
{
|
|
304
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/remote/audit">> = Specific
|
|
305
|
+
const handler = {} as typeof import("../../app/api/remote/audit/route.js")
|
|
306
|
+
type __Check = __IsExpected<typeof handler>
|
|
307
|
+
// @ts-ignore
|
|
308
|
+
type __Unused = __Check
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// Validate ../../app/api/remote/client/route.ts
|
|
312
|
+
{
|
|
313
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/remote/client">> = Specific
|
|
314
|
+
const handler = {} as typeof import("../../app/api/remote/client/route.js")
|
|
315
|
+
type __Check = __IsExpected<typeof handler>
|
|
316
|
+
// @ts-ignore
|
|
317
|
+
type __Unused = __Check
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Validate ../../app/api/remote/pair/route.ts
|
|
321
|
+
{
|
|
322
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/remote/pair">> = Specific
|
|
323
|
+
const handler = {} as typeof import("../../app/api/remote/pair/route.js")
|
|
324
|
+
type __Check = __IsExpected<typeof handler>
|
|
325
|
+
// @ts-ignore
|
|
326
|
+
type __Unused = __Check
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// Validate ../../app/api/remote/route.ts
|
|
330
|
+
{
|
|
331
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/remote">> = Specific
|
|
332
|
+
const handler = {} as typeof import("../../app/api/remote/route.js")
|
|
333
|
+
type __Check = __IsExpected<typeof handler>
|
|
334
|
+
// @ts-ignore
|
|
335
|
+
type __Unused = __Check
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// Validate ../../app/api/scene-overrides/[sceneId]/route.ts
|
|
339
|
+
{
|
|
340
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/scene-overrides/[sceneId]">> = Specific
|
|
341
|
+
const handler = {} as typeof import("../../app/api/scene-overrides/[sceneId]/route.js")
|
|
342
|
+
type __Check = __IsExpected<typeof handler>
|
|
343
|
+
// @ts-ignore
|
|
344
|
+
type __Unused = __Check
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Validate ../../app/api/scene-overrides/export/route.ts
|
|
348
|
+
{
|
|
349
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/scene-overrides/export">> = Specific
|
|
350
|
+
const handler = {} as typeof import("../../app/api/scene-overrides/export/route.js")
|
|
351
|
+
type __Check = __IsExpected<typeof handler>
|
|
352
|
+
// @ts-ignore
|
|
353
|
+
type __Unused = __Check
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// Validate ../../app/api/scene-overrides/import/route.ts
|
|
357
|
+
{
|
|
358
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/scene-overrides/import">> = Specific
|
|
359
|
+
const handler = {} as typeof import("../../app/api/scene-overrides/import/route.js")
|
|
360
|
+
type __Check = __IsExpected<typeof handler>
|
|
361
|
+
// @ts-ignore
|
|
362
|
+
type __Unused = __Check
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Validate ../../app/api/scene-overrides/route.ts
|
|
366
|
+
{
|
|
367
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/scene-overrides">> = Specific
|
|
368
|
+
const handler = {} as typeof import("../../app/api/scene-overrides/route.js")
|
|
369
|
+
type __Check = __IsExpected<typeof handler>
|
|
370
|
+
// @ts-ignore
|
|
371
|
+
type __Unused = __Check
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// Validate ../../app/api/sessions/[id]/context/route.ts
|
|
375
|
+
{
|
|
376
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]/context">> = Specific
|
|
377
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/context/route.js")
|
|
378
|
+
type __Check = __IsExpected<typeof handler>
|
|
379
|
+
// @ts-ignore
|
|
380
|
+
type __Unused = __Check
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
// Validate ../../app/api/sessions/[id]/route.ts
|
|
384
|
+
{
|
|
385
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]">> = Specific
|
|
386
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/route.js")
|
|
387
|
+
type __Check = __IsExpected<typeof handler>
|
|
388
|
+
// @ts-ignore
|
|
389
|
+
type __Unused = __Check
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
// Validate ../../app/api/sessions/[id]/share/route.ts
|
|
393
|
+
{
|
|
394
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/[id]/share">> = Specific
|
|
395
|
+
const handler = {} as typeof import("../../app/api/sessions/[id]/share/route.js")
|
|
396
|
+
type __Check = __IsExpected<typeof handler>
|
|
397
|
+
// @ts-ignore
|
|
398
|
+
type __Unused = __Check
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// Validate ../../app/api/sessions/new/route.ts
|
|
402
|
+
{
|
|
403
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions/new">> = Specific
|
|
404
|
+
const handler = {} as typeof import("../../app/api/sessions/new/route.js")
|
|
405
|
+
type __Check = __IsExpected<typeof handler>
|
|
406
|
+
// @ts-ignore
|
|
407
|
+
type __Unused = __Check
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
// Validate ../../app/api/sessions/route.ts
|
|
411
|
+
{
|
|
412
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sessions">> = Specific
|
|
413
|
+
const handler = {} as typeof import("../../app/api/sessions/route.js")
|
|
414
|
+
type __Check = __IsExpected<typeof handler>
|
|
415
|
+
// @ts-ignore
|
|
416
|
+
type __Unused = __Check
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// Validate ../../app/api/settings/default-model/route.ts
|
|
420
|
+
{
|
|
421
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/settings/default-model">> = Specific
|
|
422
|
+
const handler = {} as typeof import("../../app/api/settings/default-model/route.js")
|
|
423
|
+
type __Check = __IsExpected<typeof handler>
|
|
424
|
+
// @ts-ignore
|
|
425
|
+
type __Unused = __Check
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
// Validate ../../app/api/share/[token]/route.ts
|
|
429
|
+
{
|
|
430
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/share/[token]">> = Specific
|
|
431
|
+
const handler = {} as typeof import("../../app/api/share/[token]/route.js")
|
|
432
|
+
type __Check = __IsExpected<typeof handler>
|
|
433
|
+
// @ts-ignore
|
|
434
|
+
type __Unused = __Check
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
// Validate ../../app/api/skills/install/route.ts
|
|
438
|
+
{
|
|
439
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/install">> = Specific
|
|
440
|
+
const handler = {} as typeof import("../../app/api/skills/install/route.js")
|
|
441
|
+
type __Check = __IsExpected<typeof handler>
|
|
442
|
+
// @ts-ignore
|
|
443
|
+
type __Unused = __Check
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
// Validate ../../app/api/skills/route.ts
|
|
447
|
+
{
|
|
448
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills">> = Specific
|
|
449
|
+
const handler = {} as typeof import("../../app/api/skills/route.js")
|
|
450
|
+
type __Check = __IsExpected<typeof handler>
|
|
451
|
+
// @ts-ignore
|
|
452
|
+
type __Unused = __Check
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
// Validate ../../app/api/skills/search/route.ts
|
|
456
|
+
{
|
|
457
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/skills/search">> = Specific
|
|
458
|
+
const handler = {} as typeof import("../../app/api/skills/search/route.js")
|
|
459
|
+
type __Check = __IsExpected<typeof handler>
|
|
460
|
+
// @ts-ignore
|
|
461
|
+
type __Unused = __Check
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
// Validate ../../app/api/usage/route.ts
|
|
465
|
+
{
|
|
466
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/usage">> = Specific
|
|
467
|
+
const handler = {} as typeof import("../../app/api/usage/route.js")
|
|
468
|
+
type __Check = __IsExpected<typeof handler>
|
|
469
|
+
// @ts-ignore
|
|
470
|
+
type __Unused = __Check
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
// Validate ../../app/api/web-fetch/install-agent-browser/route.ts
|
|
474
|
+
{
|
|
475
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/web-fetch/install-agent-browser">> = Specific
|
|
476
|
+
const handler = {} as typeof import("../../app/api/web-fetch/install-agent-browser/route.js")
|
|
477
|
+
type __Check = __IsExpected<typeof handler>
|
|
478
|
+
// @ts-ignore
|
|
479
|
+
type __Unused = __Check
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
// Validate ../../app/api/web-fetch/preferences/route.ts
|
|
483
|
+
{
|
|
484
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/web-fetch/preferences">> = Specific
|
|
485
|
+
const handler = {} as typeof import("../../app/api/web-fetch/preferences/route.js")
|
|
486
|
+
type __Check = __IsExpected<typeof handler>
|
|
487
|
+
// @ts-ignore
|
|
488
|
+
type __Unused = __Check
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
// Validate ../../app/api/web-fetch/status/route.ts
|
|
492
|
+
{
|
|
493
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/web-fetch/status">> = Specific
|
|
494
|
+
const handler = {} as typeof import("../../app/api/web-fetch/status/route.js")
|
|
495
|
+
type __Check = __IsExpected<typeof handler>
|
|
496
|
+
// @ts-ignore
|
|
497
|
+
type __Unused = __Check
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
// Validate ../../app/layout.tsx
|
|
505
|
+
{
|
|
506
|
+
type __IsExpected<Specific extends LayoutConfig<"/">> = Specific
|
|
507
|
+
const handler = {} as typeof import("../../app/layout.js")
|
|
508
|
+
type __Check = __IsExpected<typeof handler>
|
|
509
|
+
// @ts-ignore
|
|
510
|
+
type __Unused = __Check
|
|
511
|
+
}
|
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,142 @@
|
|
|
1
|
+
# pi-web
|
|
2
|
+
|
|
3
|
+
[pi 编程智能体](https://github.com/badlogic/pi-mono) 的网页界面。在浏览器中浏览会话、与智能体对话、分叉对话、切换消息分支。
|
|
4
|
+
|
|
5
|
+
## 快速开始
|
|
6
|
+
|
|
7
|
+
**无需安装,直接运行:**
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx @agegr/pi-web@latest
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**或全局安装后使用:**
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g @agegr/pi-web
|
|
17
|
+
pi-web
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
启动后打开 [http://localhost:30141](http://localhost:30141)。
|
|
21
|
+
|
|
22
|
+
**可选参数:**
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pi-web --port 8080 # 自定义端口
|
|
26
|
+
pi-web --hostname 127.0.0.1 # 仅本机访问
|
|
27
|
+
pi-web --remote # 开启远程访问并绑定 0.0.0.0
|
|
28
|
+
pi-web -p 8080 -H 127.0.0.1 # 组合使用
|
|
29
|
+
|
|
30
|
+
PORT=8080 pi-web # 也支持环境变量
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
> 安全提示:pi-web 会提供本地会话删除、模型配置和 API key 写入等接口。默认仅绑定 localhost。远程访问需显式开启(`--remote` 或 Settings → Remote access),并通过配对链接或 Bearer token 认证。详见 [docs/remote-access.md](docs/remote-access.md)。
|
|
34
|
+
|
|
35
|
+
## 功能介绍
|
|
36
|
+
|
|
37
|
+
- **会话浏览器** — 按工作目录分组展示所有 pi 会话
|
|
38
|
+
- **实时对话** — 通过 SSE 流式输出与智能体实时交互
|
|
39
|
+
- **会话分叉** — 从用户消息「从这里另开一版」创建独立 `.jsonl` 子会话
|
|
40
|
+
- **复制为新对话** — 将当前分支整段复制为新的独立会话(Clone)
|
|
41
|
+
- **会话内分支** — 回退到任意节点继续对话,在同一文件内创建分支
|
|
42
|
+
- **分支导航器** — 可视化切换分支;可选「切换前先总结」
|
|
43
|
+
- **整理摘要** — 自动/手动整理后在时间线显示可折叠的白话摘要块
|
|
44
|
+
- **会话标题** — 侧栏重命名,顶栏与列表同步显示
|
|
45
|
+
- **模型切换** — 对话中途随时切换模型
|
|
46
|
+
- **工具面板** — 控制智能体可使用的工具
|
|
47
|
+
- **压缩会话** — 对长会话进行摘要,节省上下文窗口
|
|
48
|
+
- **引导 / 追加** — 打断正在运行的智能体,或在其完成后追加消息
|
|
49
|
+
|
|
50
|
+
## 注意事项
|
|
51
|
+
|
|
52
|
+
- **数据目录** — 默认读取 `~/.pi/agent/sessions` 下的会话文件。可通过环境变量 `PI_CODING_AGENT_DIR` 指定其他目录(本地开发时见下方「端口与数据隔离」,勿写入 `.env.local`)。
|
|
53
|
+
- **模型配置** — 从智能体数据目录下的 `models.json` 读取可用模型,可在侧边栏的「Models」面板中编辑。
|
|
54
|
+
- **文件浏览** — 侧边栏内置文件浏览器,可在标签页中查看当前工作目录下的文件。
|
|
55
|
+
|
|
56
|
+
## 规划
|
|
57
|
+
|
|
58
|
+
总计划:[docs/plan-pi-web-macos-workbench.md](docs/plan-pi-web-macos-workbench.md)
|
|
59
|
+
贯穿原则:[docs/product-principles.md](docs/product-principles.md)
|
|
60
|
+
|
|
61
|
+
## 开发
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npm install
|
|
65
|
+
npm run lint
|
|
66
|
+
npm run test:run
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 端口与数据隔离
|
|
70
|
+
|
|
71
|
+
**原则:30141 是你日常使用的服务;开发、改代码、跑测试只动 30142,不要影响 30141。**
|
|
72
|
+
|
|
73
|
+
| 用途 | 端口 | 命令 | 数据目录 | 说明 |
|
|
74
|
+
|------|------|------|----------|------|
|
|
75
|
+
| **日常使用** | **30141** | `npm start` 或全局 `pi-web` | `~/.pi/agent/` | 稳定服务,不随源码热更新 |
|
|
76
|
+
| **开发 / 测试** | **30142** | `npm run dev` | `~/tmp/pi-dev-agent/` | 改代码、试功能只用此端口 |
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# 30141 — 日常服务(先 build 一次,之后可长期开着)
|
|
80
|
+
npm run build && npm start
|
|
81
|
+
|
|
82
|
+
# 30142 — 开发测试(与 30141 可同时运行)
|
|
83
|
+
npm run dev
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 让改动在 30141 上生效
|
|
87
|
+
|
|
88
|
+
30141 使用 `next start`,读取仓库根目录的 `.next` 生产构建,**不会**像 30142 那样随保存自动热更新。在 30142 上验证通过的 UI/逻辑修复,要同步到日常端口必须:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm run build
|
|
92
|
+
# 若 30141 已在运行,先结束占用该端口的进程,再:
|
|
93
|
+
npm start
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
浏览器打开 [http://127.0.0.1:30141](http://127.0.0.1:30141) 后建议 **硬刷新**(Cmd+Shift+R),避免旧前端资源缓存。
|
|
97
|
+
|
|
98
|
+
- **本仓库**:`npm start` 或 macOS [PiWorkbench](macos/README.md)(内嵌子进程连 `127.0.0.1:30141`)——在本目录 `build` 并重启即可。
|
|
99
|
+
- **全局 `pi-web`**:需在该包的安装目录执行 `npm run build` 后再启动 CLI,否则仍是旧构建。
|
|
100
|
+
|
|
101
|
+
`npm run dev` 会设置 `PI_CODING_AGENT_DIR=~/tmp/pi-dev-agent`,并使用独立构建目录 `.next-dev-30142`,避免与 30141 抢锁、混数据。
|
|
102
|
+
|
|
103
|
+
**不要在 30141 上跑 `next dev`**(包括 `npm run dev:prod`):它与 30142 共用同一份源码,保存文件时两边都会热更新,开发中的半成品会直接打断你在 30141 上的使用。30141 请用 `npm start`(或已安装的 `pi-web`)。
|
|
104
|
+
|
|
105
|
+
**不要在 `.env.local` 里设置 `PI_CODING_AGENT_DIR`**:Next.js 会在所有模式下加载该文件,导致 30141 误读空的 dev 目录、会话「丢失」。数据目录隔离只写在 `npm run dev` 脚本里。
|
|
106
|
+
|
|
107
|
+
偶尔需要在真实数据上调试 HMR 时,可临时使用 `npm run dev:prod`(30141 + `~/.pi/agent/`),**不要与 `npm run dev` 同时开**。
|
|
108
|
+
|
|
109
|
+
更多细节见 [AGENTS.md](AGENTS.md#dev--production-isolation)。
|
|
110
|
+
|
|
111
|
+
### macOS App(M1 本机测试)
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm run package:macos # 产出 dist/macos/Pi.app(干净 .next + 生产依赖 + 内嵌 Node)
|
|
115
|
+
rm -rf /Applications/Pi.app
|
|
116
|
+
ditto dist/macos/Pi.app /Applications/Pi.app
|
|
117
|
+
open /Applications/Pi.app
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
大体积请用 `ditto` 安装,勿用 `cp -R`(易超时/异常)。若无法打开:`xattr -cr /Applications/Pi.app`。
|
|
121
|
+
|
|
122
|
+
详见 [macos/README.md](macos/README.md)。
|
|
123
|
+
|
|
124
|
+
## 项目结构
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
app/
|
|
128
|
+
api/
|
|
129
|
+
sessions/ # 读写会话文件
|
|
130
|
+
agent/ # 发送命令、SSE 事件流
|
|
131
|
+
files/ # 文件内容读取
|
|
132
|
+
models/ # 可用模型列表与默认模型
|
|
133
|
+
models-config/ # 读写 models.json
|
|
134
|
+
components/ # UI 组件
|
|
135
|
+
lib/
|
|
136
|
+
session-reader.ts # 解析 .jsonl 会话文件
|
|
137
|
+
rpc-manager.ts # 管理 AgentSession 生命周期
|
|
138
|
+
normalize.ts # 规范化 toolCall 字段名
|
|
139
|
+
types.ts
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
会话文件存储路径:`~/.pi/agent/sessions/<编码后的工作目录>/<时间戳>_<uuid>.jsonl`
|