@tasselx/pi-web 1.2.1 → 1.3.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 -1
- package/.next/app-path-routes-manifest.json +6 -5
- package/.next/build-manifest.json +4 -4
- package/.next/prerender-manifest.json +1 -157
- package/.next/react-loadable-manifest.json +1 -1
- package/.next/required-server-files.js +6 -6
- package/.next/required-server-files.json +6 -6
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +4 -4
- package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
- package/.next/server/app/api/agent/[id]/lease/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/debug/route.js +3 -0
- package/.next/server/app/api/agent/debug/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/debug/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/app-update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cache-miss-notices/route.js +1 -1
- package/.next/server/app/api/cache-miss-notices/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/pick/route.js +1 -1
- package/.next/server/app/api/cwd/pick/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +3 -3
- package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/diff/route.js +2 -2
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/status/route.js +2 -2
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/home/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/sign-in/[flowId]/route.js +1 -1
- package/.next/server/app/api/mcp/sign-in/[flowId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/sign-in/route.js +1 -1
- package/.next/server/app/api/mcp/sign-in/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/test/route.js +1 -1
- package/.next/server/app/api/mcp/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models/default/route.js +1 -1
- package/.next/server/app/api/models/default/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models/enabled/route.js +1 -1
- package/.next/server/app/api/models/enabled/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models/refresh/route.js +1 -1
- package/.next/server/app/api/models/refresh/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/open-in-explorer/route.js +1 -1
- package/.next/server/app/api/open-in-explorer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/plugins/check/route.js +1 -1
- package/.next/server/app/api/plugins/check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/provider-usage/query/route.js +1 -1
- package/.next/server/app/api/provider-usage/query/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/config/route.js +1 -1
- package/.next/server/app/api/push/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscribe/route.js +1 -1
- package/.next/server/app/api/push/subscribe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/fork/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/delete/route.js +1 -1
- package/.next/server/app/api/sessions/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/stats/route.js +1 -1
- package/.next/server/app/api/sessions/stats/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/ui-state/route.js +1 -1
- package/.next/server/app/api/sessions/ui-state/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/content/route.js +1 -1
- package/.next/server/app/api/skills/content/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/install/route.js +1 -1
- package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sleep-inhibit/route.js +1 -1
- package/.next/server/app/api/sleep-inhibit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/subagents/[id]/route.js +1 -1
- package/.next/server/app/api/subagents/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/subagents/profiles/route.js +1 -1
- package/.next/server/app/api/subagents/profiles/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/subagents/settings/route.js +1 -1
- package/.next/server/app/api/subagents/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/terminal/[id]/events/route.js +3 -3
- package/.next/server/app/api/terminal/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/terminal/[id]/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/terminal/route.js +1 -1
- package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tools/settings/route.js +1 -1
- package/.next/server/app/api/tools/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/web-auth/route.js +1 -1
- package/.next/server/app/api/web-auth/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +9 -9
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -9
- package/.next/server/app/index.segments/_full.segment.rsc +9 -9
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login/page.js +1 -1
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +6 -6
- package/.next/server/app/login.segments/_full.segment.rsc +6 -6
- package/.next/server/app/login.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +823 -30
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +6 -5
- package/.next/server/chunks/1906.js +1 -1
- package/.next/server/chunks/2243.js +1 -1
- package/.next/server/chunks/2430.js +3 -3
- package/.next/server/chunks/2650.js +1 -1
- package/.next/server/chunks/27.js +1 -1
- package/.next/server/chunks/2970.js +1 -1
- package/.next/server/chunks/3371.js +1 -0
- package/.next/server/chunks/3757.js +1 -1
- package/.next/server/chunks/3824.js +1 -1
- package/.next/server/chunks/4315.js +1 -1
- package/.next/server/chunks/5582.js +3 -3
- package/.next/server/chunks/6216.js +1 -1
- package/.next/server/chunks/6429.js +9 -10
- package/.next/server/chunks/8947.js +1 -0
- package/.next/server/functions-config-manifest.json +1 -0
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/middleware.js +4 -4
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/preview-props.json +3 -3
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/SZGRKeK7Rp-GLXlZwXVpN/_buildManifest.js +1 -0
- package/.next/static/chunks/1278-7900e52add02a581.js +1 -0
- package/.next/static/chunks/{9932-ad7f7fe74cc1f50a.js → 4908-f430833122ebb4b2.js} +2 -2
- package/.next/static/chunks/{7379.f16ffe41e8afa0ef.js → 7379.078f0917cc6a0349.js} +1 -1
- package/.next/static/chunks/app/_global-error/{page-a509ce75fed6d8b0.js → page-ff5f37ea6085322e.js} +1 -1
- package/.next/static/chunks/app/_not-found/{page-35dee0d93253f38c.js → page-d4722b111eb204ad.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/{route-a509ce75fed6d8b0.js → route-ff5f37ea6085322e.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/events/{route-a509ce75fed6d8b0.js → route-ff5f37ea6085322e.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/lease/{route-a509ce75fed6d8b0.js → route-ff5f37ea6085322e.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/agent/debug/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/cache-miss-notices/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/cwd/pick/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/home/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/mcp/sign-in/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/mcp/test/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/models/default/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/models/enabled/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/models/refresh/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/models/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/open-in-explorer/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/plugins/check/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/provider-usage/query/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/push/config/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/push/subscribe/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/fork/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/delete/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/stats/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sessions/ui-state/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/skills/content/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/skills/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/sleep-inhibit/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/subagents/[id]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/subagents/profiles/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/subagents/settings/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/events/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/tools/settings/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/web-auth/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/{layout-fba9ec844c19ded5.js → layout-fd5067066c05f1c1.js} +1 -1
- package/.next/static/chunks/app/login/{page-7d17aa0961f2fcbe.js → page-699dd04274c6737c.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/app/page-e2c75ffccae708f8.js +1131 -0
- package/.next/static/chunks/{main-app-4b56fc85be3f7823.js → main-app-03bab309386a7cee.js} +1 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-7b03c800e367b0e2.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ff5f37ea6085322e.js +1 -0
- package/.next/static/chunks/{webpack-10ae3428600991e0.js → webpack-95292085cd40fbc6.js} +1 -1
- package/.next/static/css/{bf49b4e87f26e436.css → 600a486e13adbe4a.css} +1 -1
- package/.next/static/css/f38e4e9c1d25d157.css +1 -0
- package/.next/trace +181 -59
- package/.next/trace-build +1 -1
- package/.next/types/app/api/agent/[id]/bash-output/route.ts +1 -1
- package/.next/types/app/api/agent/[id]/events/route.ts +1 -1
- package/.next/types/app/api/agent/[id]/lease/route.ts +1 -1
- package/.next/types/app/api/agent/[id]/route.ts +1 -1
- package/.next/types/app/api/agent/debug/route.ts +355 -0
- package/.next/types/app/api/agent/new/route.ts +1 -1
- package/.next/types/app/api/agent/running/route.ts +1 -1
- package/.next/types/app/api/app-update/route.ts +1 -1
- package/.next/types/app/api/auth/api-key/[provider]/route.ts +1 -1
- package/.next/types/app/api/auth/login/[provider]/route.ts +1 -1
- package/.next/types/app/api/auth/logout/[provider]/route.ts +1 -1
- package/.next/types/app/api/auth/providers/route.ts +1 -1
- package/.next/types/app/api/cache-miss-notices/route.ts +1 -1
- package/.next/types/app/api/cwd/browse/route.ts +1 -1
- package/.next/types/app/api/cwd/pick/route.ts +1 -1
- package/.next/types/app/api/cwd/validate/route.ts +1 -1
- package/.next/types/app/api/default-cwd/route.ts +1 -1
- package/.next/types/app/api/file-index/route.ts +1 -1
- package/.next/types/app/api/files/[...path]/route.ts +1 -1
- package/.next/types/app/api/git/diff/route.ts +1 -1
- package/.next/types/app/api/git/status/route.ts +1 -1
- package/.next/types/app/api/home/route.ts +1 -1
- package/.next/types/app/api/mcp/route.ts +1 -1
- package/.next/types/app/api/mcp/sign-in/[flowId]/route.ts +1 -1
- package/.next/types/app/api/mcp/sign-in/route.ts +1 -1
- package/.next/types/app/api/mcp/test/route.ts +1 -1
- package/.next/types/app/api/models/default/route.ts +1 -1
- package/.next/types/app/api/models/enabled/route.ts +1 -1
- package/.next/types/app/api/models/refresh/route.ts +1 -1
- package/.next/types/app/api/models/route.ts +1 -1
- package/.next/types/app/api/models-config/catalog/route.ts +1 -1
- package/.next/types/app/api/models-config/discover/route.ts +1 -1
- package/.next/types/app/api/models-config/route.ts +1 -1
- package/.next/types/app/api/models-config/test/route.ts +1 -1
- package/.next/types/app/api/open-in-explorer/route.ts +1 -1
- package/.next/types/app/api/plugins/check/route.ts +1 -1
- package/.next/types/app/api/plugins/route.ts +1 -1
- package/.next/types/app/api/project-trust/route.ts +1 -1
- package/.next/types/app/api/provider-usage/query/route.ts +1 -1
- package/.next/types/app/api/push/config/route.ts +1 -1
- package/.next/types/app/api/push/subscribe/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/auto-name/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/context/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/export/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/fork/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/route.ts +1 -1
- package/.next/types/app/api/sessions/[id]/state/route.ts +1 -1
- package/.next/types/app/api/sessions/delete/route.ts +1 -1
- package/.next/types/app/api/sessions/route.ts +1 -1
- package/.next/types/app/api/sessions/search/route.ts +1 -1
- package/.next/types/app/api/sessions/stats/route.ts +1 -1
- package/.next/types/app/api/sessions/ui-state/route.ts +1 -1
- package/.next/types/app/api/skills/check/route.ts +1 -1
- package/.next/types/app/api/skills/content/route.ts +1 -1
- package/.next/types/app/api/skills/install/route.ts +1 -1
- package/.next/types/app/api/skills/route.ts +1 -1
- package/.next/types/app/api/skills/search/route.ts +1 -1
- package/.next/types/app/api/skills/update/route.ts +1 -1
- package/.next/types/app/api/sleep-inhibit/route.ts +1 -1
- package/.next/types/app/api/subagents/[id]/route.ts +1 -1
- package/.next/types/app/api/subagents/profiles/route.ts +1 -1
- package/.next/types/app/api/subagents/settings/route.ts +1 -1
- package/.next/types/app/api/terminal/[id]/events/route.ts +1 -1
- package/.next/types/app/api/terminal/[id]/route.ts +1 -1
- package/.next/types/app/api/terminal/route.ts +1 -1
- package/.next/types/app/api/tools/settings/route.ts +1 -1
- package/.next/types/app/api/web-auth/route.ts +1 -1
- package/.next/types/app/api/worktrees/route.ts +1 -1
- package/.next/types/app/layout.ts +1 -1
- package/.next/types/app/login/page.ts +1 -1
- package/.next/types/app/page.ts +1 -1
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +10 -0
- package/README.md +2 -1
- package/bin/browser-opener.js +44 -1
- package/bin/network-addresses.js +62 -0
- package/bin/pi-web.js +10 -2
- package/package.json +1 -1
- package/.next/server/chunks/5924.js +0 -1
- package/.next/server/chunks/7979.js +0 -1
- package/.next/static/chunks/1278-acbd0cb712f7f8f0.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/app-update/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/cache-miss-notices/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/cwd/pick/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/home/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/mcp/sign-in/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/mcp/test/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/models/default/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/models/enabled/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/models/refresh/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/models/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/open-in-explorer/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/plugins/check/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/provider-usage/query/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/push/config/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/push/subscribe/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/fork/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/delete/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/stats/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sessions/ui-state/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/skills/content/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/skills/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/sleep-inhibit/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/subagents/[id]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/subagents/profiles/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/subagents/settings/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/events/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/terminal/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/tools/settings/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/web-auth/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/app/page-020b7792f47e61a6.js +0 -338
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-064e367d6001dbac.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-a509ce75fed6d8b0.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a509ce75fed6d8b0.js +0 -1
- package/.next/static/css/e423cf64c3a31a65.css +0 -1
- package/.next/static/d8QChh2wYaULqtNavrBMx/_buildManifest.js +0 -1
- /package/.next/static/{d8QChh2wYaULqtNavrBMx → SZGRKeK7Rp-GLXlZwXVpN}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/provider-usage/query/route.ts
|
|
2
2
|
import * as entry from '../../../../../../app/api/provider-usage/query/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/sessions/[id]/auto-name/route.ts
|
|
2
2
|
import * as entry from '../../../../../../../app/api/sessions/[id]/auto-name/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/sessions/[id]/context/route.ts
|
|
2
2
|
import * as entry from '../../../../../../../app/api/sessions/[id]/context/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts
|
|
2
2
|
import * as entry from '../../../../../../../../../app/api/sessions/[id]/entries/[entryId]/thinking/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts
|
|
2
2
|
import * as entry from '../../../../../../../../../app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/sessions/[id]/export/route.ts
|
|
2
2
|
import * as entry from '../../../../../../../app/api/sessions/[id]/export/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/sessions/[id]/fork/route.ts
|
|
2
2
|
import * as entry from '../../../../../../../app/api/sessions/[id]/fork/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/sessions/[id]/state/route.ts
|
|
2
2
|
import * as entry from '../../../../../../../app/api/sessions/[id]/state/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/subagents/profiles/route.ts
|
|
2
2
|
import * as entry from '../../../../../../app/api/subagents/profiles/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/subagents/settings/route.ts
|
|
2
2
|
import * as entry from '../../../../../../app/api/subagents/settings/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/api/terminal/[id]/events/route.ts
|
|
2
2
|
import * as entry from '../../../../../../../app/api/terminal/[id]/events/route.js'
|
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// File: /
|
|
1
|
+
// File: /private/tmp/pi-web-merge/app/login/page.tsx
|
|
2
2
|
import * as entry from '../../../../app/login/page.js'
|
|
3
3
|
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
4
|
|
package/.next/types/app/page.ts
CHANGED
package/.next/types/routes.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
4
|
type AppRoutes = "/" | "/login"
|
|
5
|
-
type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/bash-output" | "/api/agent/[id]/events" | "/api/agent/[id]/lease" | "/api/agent/new" | "/api/agent/running" | "/api/app-update" | "/api/auth/api-key/[provider]" | "/api/auth/login/[provider]" | "/api/auth/logout/[provider]" | "/api/auth/providers" | "/api/cache-miss-notices" | "/api/cwd/browse" | "/api/cwd/pick" | "/api/cwd/validate" | "/api/default-cwd" | "/api/file-index" | "/api/files/[...path]" | "/api/git/diff" | "/api/git/status" | "/api/home" | "/api/mcp" | "/api/mcp/sign-in" | "/api/mcp/sign-in/[flowId]" | "/api/mcp/test" | "/api/models" | "/api/models-config" | "/api/models-config/catalog" | "/api/models-config/discover" | "/api/models-config/test" | "/api/models/default" | "/api/models/enabled" | "/api/models/refresh" | "/api/open-in-explorer" | "/api/plugins" | "/api/plugins/check" | "/api/project-trust" | "/api/provider-usage/query" | "/api/push/config" | "/api/push/subscribe" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/auto-name" | "/api/sessions/[id]/context" | "/api/sessions/[id]/entries/[entryId]/thinking" | "/api/sessions/[id]/entries/[entryId]/tool-result-image" | "/api/sessions/[id]/export" | "/api/sessions/[id]/fork" | "/api/sessions/[id]/state" | "/api/sessions/delete" | "/api/sessions/search" | "/api/sessions/stats" | "/api/sessions/ui-state" | "/api/skills" | "/api/skills/check" | "/api/skills/content" | "/api/skills/install" | "/api/skills/search" | "/api/skills/update" | "/api/sleep-inhibit" | "/api/subagents/[id]" | "/api/subagents/profiles" | "/api/subagents/settings" | "/api/terminal" | "/api/terminal/[id]" | "/api/terminal/[id]/events" | "/api/tools/settings" | "/api/web-auth" | "/api/worktrees"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/bash-output" | "/api/agent/[id]/events" | "/api/agent/[id]/lease" | "/api/agent/debug" | "/api/agent/new" | "/api/agent/running" | "/api/app-update" | "/api/auth/api-key/[provider]" | "/api/auth/login/[provider]" | "/api/auth/logout/[provider]" | "/api/auth/providers" | "/api/cache-miss-notices" | "/api/cwd/browse" | "/api/cwd/pick" | "/api/cwd/validate" | "/api/default-cwd" | "/api/file-index" | "/api/files/[...path]" | "/api/git/diff" | "/api/git/status" | "/api/home" | "/api/mcp" | "/api/mcp/sign-in" | "/api/mcp/sign-in/[flowId]" | "/api/mcp/test" | "/api/models" | "/api/models-config" | "/api/models-config/catalog" | "/api/models-config/discover" | "/api/models-config/test" | "/api/models/default" | "/api/models/enabled" | "/api/models/refresh" | "/api/open-in-explorer" | "/api/plugins" | "/api/plugins/check" | "/api/project-trust" | "/api/provider-usage/query" | "/api/push/config" | "/api/push/subscribe" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/auto-name" | "/api/sessions/[id]/context" | "/api/sessions/[id]/entries/[entryId]/thinking" | "/api/sessions/[id]/entries/[entryId]/tool-result-image" | "/api/sessions/[id]/export" | "/api/sessions/[id]/fork" | "/api/sessions/[id]/state" | "/api/sessions/delete" | "/api/sessions/search" | "/api/sessions/stats" | "/api/sessions/ui-state" | "/api/skills" | "/api/skills/check" | "/api/skills/content" | "/api/skills/install" | "/api/skills/search" | "/api/skills/update" | "/api/sleep-inhibit" | "/api/subagents/[id]" | "/api/subagents/profiles" | "/api/subagents/settings" | "/api/terminal" | "/api/terminal/[id]" | "/api/terminal/[id]/events" | "/api/tools/settings" | "/api/web-auth" | "/api/worktrees"
|
|
6
6
|
type PageRoutes = never
|
|
7
7
|
type LayoutRoutes = "/"
|
|
8
8
|
type RedirectRoutes = never
|
|
@@ -16,6 +16,7 @@ interface ParamMap {
|
|
|
16
16
|
"/api/agent/[id]/bash-output": { "id": string; }
|
|
17
17
|
"/api/agent/[id]/events": { "id": string; }
|
|
18
18
|
"/api/agent/[id]/lease": { "id": string; }
|
|
19
|
+
"/api/agent/debug": {}
|
|
19
20
|
"/api/agent/new": {}
|
|
20
21
|
"/api/agent/running": {}
|
|
21
22
|
"/api/app-update": {}
|
package/.next/types/validator.ts
CHANGED
|
@@ -126,6 +126,16 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
126
126
|
type __Unused = __Check
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
+
// Validate ../../app/api/agent/debug/route.ts
|
|
130
|
+
{
|
|
131
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/debug">> = Specific
|
|
132
|
+
const handler = {} as typeof import("../../app/api/agent/debug/route.js")
|
|
133
|
+
type __Check = __IsExpected<typeof handler>
|
|
134
|
+
|
|
135
|
+
// @ts-ignore
|
|
136
|
+
type __Unused = __Check
|
|
137
|
+
}
|
|
138
|
+
|
|
129
139
|
// Validate ../../app/api/agent/new/route.ts
|
|
130
140
|
{
|
|
131
141
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/agent/new">> = Specific
|
package/README.md
CHANGED
|
@@ -81,6 +81,7 @@ For port and hostname, command-line options override the corresponding environme
|
|
|
81
81
|
| `PI_WEB_PASSWORD` | Enable browser password login; API clients may use Basic Auth with username `pi` | Authentication disabled |
|
|
82
82
|
| `PI_WEB_IDLE_TIMEOUT_MS` | Session idle timeout in milliseconds, up to `2147483647`; `0` disables idle shutdown; invalid or out-of-range values use the default | `600000` (10 min) |
|
|
83
83
|
| `PI_WEB_SHUTDOWN_DEADLINE_MS` | How long extensions get to handle `session_shutdown` before a closing session is disposed anyway, in milliseconds up to `2147483647`; `0`, invalid or out-of-range values use the default | `5000` (5 s) |
|
|
84
|
+
| `PI_CODEMODE_MAX_WORKERS` | pi's limit on codemode scripts running at once, shared by every session and subagent in the server; pi's own default is `2`, and pi-web sets `8` when the variable is unset or empty. Each script may use up to 256 MB | `8` |
|
|
84
85
|
|
|
85
86
|
Set `PI_WEB_APP_NAME` before starting the server (for example, `PI_WEB_APP_NAME='Work Pi' pi-web`). After changing it, restart the server to serve the new manifest; no rebuild is required. Updates to the name of an already installed PWA are managed by the browser and are not guaranteed to appear immediately. This does not change the page title or icons.
|
|
86
87
|
|
|
@@ -128,7 +129,7 @@ npx @tasselx/pi-web@latest
|
|
|
128
129
|
- **Agent data**: Pi Web reads pi data from `~/.pi/agent` by default, including session files under `sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl`. Set `PI_CODING_AGENT_DIR` to use another pi agent directory.
|
|
129
130
|
- **Filesystem access**: Pi Web must be able to read the agent data directory and the working directories recorded by its sessions. Run Pi Web in the same filesystem environment as pi when sharing existing sessions.
|
|
130
131
|
- **Shared configuration**: the Models panel uses pi's model, settings, and credential storage, so changes are visible to both interfaces. An open session applies a saved edit of its model when you select the model again.
|
|
131
|
-
- **Code mode workers**: pi
|
|
132
|
+
- **Code mode workers**: pi's own limit is two sandbox workers at a time; Pi Web raises it to eight unless `PI_CODEMODE_MAX_WORKERS` is set. The workers are shared by every session and in-process subagent of the Pi Web server, and a further script waits up to 60 seconds for a free worker. To change the limit, set `PI_CODEMODE_MAX_WORKERS` to a whole number before starting Pi Web; each worker's script may use up to 256 MB.
|
|
132
133
|
- **File access boundary**: the file browser is limited to working directories selected in Pi Web and project or session roots it already knows about; it is not a general filesystem browser.
|
|
133
134
|
- **Git worktrees**: see [Worktrees in Pi Web](./docs/worktrees.md) for switcher visibility, worktree creation, and removal behavior.
|
|
134
135
|
|
package/bin/browser-opener.js
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
4
4
|
const { spawn } = require("child_process");
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
6
|
+
const { getOpenUrl } = require("./run-records");
|
|
7
|
+
|
|
8
|
+
// Next.js prints "Ready" before it has loaded its request handlers, and the
|
|
9
|
+
// first request then also waits out the pi SDK import that instrumentation
|
|
10
|
+
// starts (#964): half a second on macOS, seconds on a slow disk, and a first
|
|
11
|
+
// navigation that outlasts the service worker's 8 s timeout shows
|
|
12
|
+
// offline.html (#1358). Past this limit the browser opens anyway.
|
|
13
|
+
const FIRST_PAGE_TIMEOUT_MS = 30_000;
|
|
14
|
+
const FIRST_PAGE_RETRY_MS = 250;
|
|
5
15
|
|
|
6
16
|
function openInBrowser(url, platform = process.platform) {
|
|
7
17
|
// Avoid `shell: true` to suppress Node.js DEP0190 deprecation
|
|
@@ -31,4 +41,37 @@ function openInBrowser(url, platform = process.platform) {
|
|
|
31
41
|
opener.unref();
|
|
32
42
|
}
|
|
33
43
|
|
|
34
|
-
|
|
44
|
+
// Resolves true once url has answered a GET with any HTTP status and the whole
|
|
45
|
+
// body has arrived, or false when nothing answered within timeoutMs. Never
|
|
46
|
+
// rejects. Redirects are followed: with PI_WEB_PASSWORD, / redirects to /login,
|
|
47
|
+
// the page the browser lands on, and the proxy sends that redirect while the
|
|
48
|
+
// pi SDK import is still running.
|
|
49
|
+
async function waitForFirstPage(url, {
|
|
50
|
+
fetchImpl = fetch,
|
|
51
|
+
timeoutMs = FIRST_PAGE_TIMEOUT_MS,
|
|
52
|
+
retryMs = FIRST_PAGE_RETRY_MS,
|
|
53
|
+
} = {}) {
|
|
54
|
+
const deadline = AbortSignal.timeout(timeoutMs);
|
|
55
|
+
while (!deadline.aborted) {
|
|
56
|
+
try {
|
|
57
|
+
const response = await fetchImpl(url, { signal: deadline });
|
|
58
|
+
// The page has rendered once its body has arrived, not its headers.
|
|
59
|
+
await response.arrayBuffer();
|
|
60
|
+
return true;
|
|
61
|
+
} catch {
|
|
62
|
+
if (!deadline.aborted) await new Promise((resolve) => setTimeout(resolve, retryMs));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Opens the browser once the server has served its first page, so the
|
|
69
|
+
// browser's own first navigation finds the page route loaded. A wildcard bind
|
|
70
|
+
// is asked on loopback. Port 0 leaves the real port unknown, so that browser
|
|
71
|
+
// opens at once. The launcher exits with Next.js, which ends the wait too.
|
|
72
|
+
function openWhenServing({ hostname, port, url, open = openInBrowser, wait = waitForFirstPage }) {
|
|
73
|
+
const served = port === "0" ? Promise.resolve() : wait(`${getOpenUrl(hostname, port)}/`);
|
|
74
|
+
return served.then(() => open(url));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
module.exports = { openInBrowser, openWhenServing, waitForFirstPage };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
4
|
+
const os = require("os");
|
|
5
|
+
|
|
6
|
+
const WILDCARD_HOSTNAMES = new Set(["0.0.0.0", "::", "[::]"]);
|
|
7
|
+
|
|
8
|
+
function isWildcardHostname(hostname) {
|
|
9
|
+
return WILDCARD_HOSTNAMES.has(hostname);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// An IPv6 wildcard listens dual-stack (Node's default, and Next passes no
|
|
13
|
+
// ipv6Only), so it answers on every IPv4 address too.
|
|
14
|
+
function addressFamilies(hostname) {
|
|
15
|
+
return hostname.includes(":") ? ["IPv4", "IPv6"] : ["IPv4"];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Addresses another machine can open when the server binds a wildcard address:
|
|
19
|
+
// the wildcard itself routes nowhere, so list this host's interfaces instead.
|
|
20
|
+
function getReachableAddresses(hostname, { interfaces = os.networkInterfaces() } = {}) {
|
|
21
|
+
if (!isWildcardHostname(hostname)) return [];
|
|
22
|
+
const addresses = [];
|
|
23
|
+
for (const family of addressFamilies(hostname)) {
|
|
24
|
+
for (const [name, entries] of Object.entries(interfaces)) {
|
|
25
|
+
for (const entry of entries ?? []) {
|
|
26
|
+
// `internal` covers loopback; a scoped IPv6 address (fe80::/10) needs a
|
|
27
|
+
// zone id, so it cannot be pasted into another machine's browser.
|
|
28
|
+
if (entry.family !== family || entry.internal || entry.scopeid) continue;
|
|
29
|
+
addresses.push({ name, address: entry.address });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return addresses;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function formatUrl(address, port) {
|
|
37
|
+
const host = address.includes(":") ? `[${address}]` : address;
|
|
38
|
+
return `http://${host}:${port}`;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// The startup block that names each interface and the URL it serves. Empty when
|
|
42
|
+
// there is nothing to add: a concrete bind address, port 0 (the OS picks one we
|
|
43
|
+
// never learn), or no address of the bound family.
|
|
44
|
+
function formatReachableAddresses(hostname, port, options) {
|
|
45
|
+
if (String(port) === "0") return "";
|
|
46
|
+
const addresses = getReachableAddresses(hostname, options);
|
|
47
|
+
if (addresses.length === 0) return "";
|
|
48
|
+
const width = Math.max(...addresses.map(({ name }) => name.length));
|
|
49
|
+
return [
|
|
50
|
+
"Reachable at:",
|
|
51
|
+
...addresses.map(
|
|
52
|
+
({ name, address }) => ` ${name.padEnd(width)} ${formatUrl(address, port)}`,
|
|
53
|
+
),
|
|
54
|
+
].join("\n");
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
module.exports = {
|
|
58
|
+
formatReachableAddresses,
|
|
59
|
+
formatUrl,
|
|
60
|
+
getReachableAddresses,
|
|
61
|
+
isWildcardHostname,
|
|
62
|
+
};
|
package/bin/pi-web.js
CHANGED
|
@@ -24,11 +24,13 @@ const { wireChildProcessLifecycle } = require("./process-lifecycle");
|
|
|
24
24
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
25
25
|
const { rotatePreviewSecrets, getRotationWarning } = require("./rotate-preview-secrets");
|
|
26
26
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
27
|
-
const {
|
|
27
|
+
const { openWhenServing } = require("./browser-opener");
|
|
28
28
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
29
29
|
const { createRunRecordTracker, getOpenUrl, getRunDir } = require("./run-records");
|
|
30
30
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
31
31
|
const { getPackageVersion, runCommand } = require("./pi-web-commands");
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
33
|
+
const { formatReachableAddresses } = require("./network-addresses");
|
|
32
34
|
|
|
33
35
|
let launchOptions;
|
|
34
36
|
try {
|
|
@@ -144,14 +146,20 @@ function startServer({ port, hostname, openBrowser }) {
|
|
|
144
146
|
|
|
145
147
|
let serverReady = false;
|
|
146
148
|
const url = `http://${hostname}:${port}`;
|
|
149
|
+
// Next.js repeats the `-H` value in its own "Network:" line, which a wildcard
|
|
150
|
+
// bind makes unusable; name the interfaces and their addresses instead.
|
|
151
|
+
const reachable = formatReachableAddresses(hostname, port);
|
|
147
152
|
|
|
148
153
|
child.stdout.on("data", (chunk) => {
|
|
149
154
|
const text = chunk.toString();
|
|
150
155
|
process.stdout.write(text);
|
|
151
156
|
if (!serverReady && text.includes("Ready")) {
|
|
152
157
|
serverReady = true;
|
|
158
|
+
if (reachable) process.stdout.write(`${reachable}\n`);
|
|
159
|
+
// The record needs no wait: status, stop and open list a record only
|
|
160
|
+
// once its URL answers. The browser waits for the first page.
|
|
153
161
|
if (port !== "0") runRecord.markReady();
|
|
154
|
-
if (openBrowser)
|
|
162
|
+
if (openBrowser) openWhenServing({ hostname, port, url });
|
|
155
163
|
}
|
|
156
164
|
});
|
|
157
165
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=5924,exports.ids=[5924],exports.modules={45924:(a,b,c)=>{c.d(b,{registerNodeInstrumentation:()=>t});var d=c(78474),e=c(48161),f=c(76760),g=c(73136),h=c(9956),i=c(73024);let j=i.constants.O_RDONLY|(i.constants.O_NONBLOCK||0),k=globalThis,l=globalThis.fetch,m=()=>{};function n(a){if("string"==typeof a){let b=a.trim();if("disabled"===b.toLowerCase())return 0;if(0===b.length)return;return n(Number(b))}if("number"==typeof a&&Number.isFinite(a)&&!(a<0))return Math.floor(a)}function o(a){return a instanceof d.EventEmitter&&d.EventEmitter.prototype.on.call(a,"error",m),a}function p(a,b){return o(new h.Client(a,b))}function q(a,b){return 1===b.connections?p(a,b):o(new h.Pool(a,{...b,factory:p}))}let r=Symbol.for("pi-web.agentEventStreamClosers"),s=globalThis[r]??=new Set;function t(){!function(a=3e5){if(k.__piWebHttpDispatcherConfigured)return;let b=n(a);if(void 0===b)throw Error(`Invalid HTTP idle timeout: ${String(a)}`);let c=o(new h.EnvHttpProxyAgent({allowH2:!1,proxyTunnel:!0,bodyTimeout:b,connect:{autoSelectFamilyAttemptTimeout:2e3},headersTimeout:b,clientFactory:p,factory:q}));h.setGlobalDispatcher(c),globalThis.fetch===l&&h.install?.(),k.__piWebHttpDispatcherConfigured=!0}(function(a=function(){let a=process.env.PI_CODING_AGENT_DIR;return a?("win32"===process.platform&&(a=function(a){if(!a.startsWith("/")||a.startsWith("//")||a.includes("\\"))return a;let b=a.match(/^\/(?:mnt\/|cygdrive\/)?([a-z])(?:\/(.*))?$/i);return b?`${b[1].toUpperCase()}:\\${b[2]?.replaceAll("/","\\")??""}`:a}(a)),"~"===a)?(0,e.homedir)():a.startsWith("~/")||"win32"===process.platform&&a.startsWith("~\\")?(0,f.join)((0,e.homedir)(),a.slice(2)):/^file:\/\//.test(a)?(0,g.fileURLToPath)(a):a:(0,f.join)((0,e.homedir)(),".pi","agent")}()){let b,c;try{b=function(a){let b;try{b=(0,i.openSync)(a,j)}catch(b){let a;if("ENOENT"===(a=b?.code)||"ENOTDIR"===a)return;throw b}try{if(!(0,i.fstatSync)(b).isFile())throw Error(`${a} is not a regular file`);return(0,i.readFileSync)(b,"utf8")}finally{(0,i.closeSync)(b)}}((0,f.join)(a,"settings.json"))}catch{return}if(void 0!==b){try{c=JSON.parse(65279===b.charCodeAt(0)?b.slice(1):b)}catch{return}if("object"==typeof c&&null!==c)return n(c.httpIdleTimeoutMs)}}());let a=()=>(function(){for(let a of[...s])try{a("error")}catch{}})();process.on("SIGINT",a),process.on("SIGTERM",a),Promise.resolve().then(c.bind(c,75430)).catch(()=>{})}}};
|