@qt4798/pi-web 0.17.7 → 0.17.9
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 +24 -23
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- 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 +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +3 -3
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/running/events/route.js +2 -2
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/combined/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/backup/export/route.js +1 -1
- package/.next/server/app/api/backup/import/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/deepseek/balance/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/events/route.js +2 -2
- package/.next/server/app/api/features/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/git/diff/route.js +2 -2
- package/.next/server/app/api/git/push/route.js +1 -1
- package/.next/server/app/api/git/stash/route.js +1 -1
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/import/discover/route.js +1 -1
- package/.next/server/app/api/import/execute/route.js +1 -1
- package/.next/server/app/api/import/status/route.js +1 -1
- package/.next/server/app/api/logs/route.js +1 -1
- package/.next/server/app/api/mcp/restart/route.js +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/builtin/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/modes/route.js +1 -1
- package/.next/server/app/api/pair/route.js +1 -0
- package/.next/server/app/api/pair/route.js.nft.json +1 -0
- package/.next/server/app/api/pair/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/check/route.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/project-aliases/route.js +1 -1
- package/.next/server/app/api/project-state/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/projects/visibility/route.js +1 -1
- package/.next/server/app/api/proxy/route.js +1 -1
- package/.next/server/app/api/proxy/test/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/details/route.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]/tool-result-image/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/queue-recovery/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/settings/title-model/route.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/snippets/[id]/route.js +1 -1
- package/.next/server/app/api/snippets/route.js +1 -1
- package/.next/server/app/api/subagents/[id]/route.js +1 -1
- package/.next/server/app/api/subagents/profiles/route.js +1 -1
- package/.next/server/app/api/subagents/settings/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/[action]/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/changed-files/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/diff/route.js +2 -2
- package/.next/server/app/api/tasks/[id]/events/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/route.js +1 -1
- package/.next/server/app/api/tasks/batch/route.js +1 -1
- package/.next/server/app/api/tasks/events/route.js +1 -1
- package/.next/server/app/api/tasks/route.js +1 -1
- package/.next/server/app/api/tasks/settings/route.js +1 -1
- package/.next/server/app/api/tasks/templates/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/events/route.js +2 -2
- package/.next/server/app/api/terminal/[id]/route.js +1 -1
- package/.next/server/app/api/terminal/route.js +1 -1
- package/.next/server/app/api/themes/[name]/route.js +1 -1
- package/.next/server/app/api/themes/route.js +1 -1
- package/.next/server/app/api/tools/extension-tools/route.js +1 -1
- package/.next/server/app/api/tools/settings/route.js +1 -1
- package/.next/server/app/api/usage/route.js +1 -1
- package/.next/server/app/api/vision-config/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/icon.ico/route.js +1 -1
- package/.next/server/app/icon.png/route.js +1 -1
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js +13 -13
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +24 -23
- package/.next/server/chunks/4154.js +1 -0
- package/.next/server/chunks/4253.js +1 -1
- package/.next/server/chunks/5582.js +1 -1
- package/.next/server/chunks/7915.js +1 -1
- 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/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{9786-a857d8cac4c6f124.js → 9660-8945dc0e772329fb.js} +1 -1
- package/.next/static/chunks/app/_global-error/page-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/agent/running/events/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/auth/combined/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/backup/export/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/backup/import/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/deepseek/balance/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/events/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/features/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/git/push/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/git/stash/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/home/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/import/discover/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/import/execute/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/import/status/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/logs/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/mcp/restart/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/models/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/models-config/builtin/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/modes/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/pair/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/plugins/check/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/project-aliases/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/project-state/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/projects/visibility/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/proxy/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/proxy/test/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/details/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/queue-recovery/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/settings/title-model/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/skills/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/snippets/[id]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/snippets/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/subagents/[id]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/subagents/profiles/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/subagents/settings/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/[action]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/changed-files/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/diff/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/events/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/batch/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/events/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/settings/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tasks/templates/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/events/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/themes/[name]/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/themes/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tools/extension-tools/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/tools/settings/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/usage/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/vision-config/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/app/page-4dc15b51da9c8fc9.js +206 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1f18a3ac6ad460ce.js +1 -0
- package/.next/static/css/cc02ff1fe55740e5.css +1 -0
- package/.next/static/vOqofO6dUkQhxJHaAA5d2/_buildManifest.js +1 -0
- package/.next/trace +7 -83
- package/.next/trace-build +1 -1
- package/.next/types/app/api/pair/route.ts +353 -0
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/package.json +3 -1
- package/.next/static/chunks/app/_global-error/page-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/agent/running/events/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/app-update/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/auth/combined/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/backup/export/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/backup/import/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/deepseek/balance/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/events/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/features/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/git/push/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/git/stash/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/home/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/import/discover/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/import/execute/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/import/status/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/logs/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/mcp/restart/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/models/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/models-config/builtin/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/modes/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/plugins/check/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/project-aliases/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/project-state/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/projects/visibility/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/proxy/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/proxy/test/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/details/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/queue-recovery/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/settings/title-model/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/skills/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/snippets/[id]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/snippets/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/subagents/[id]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/subagents/profiles/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/subagents/settings/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/[action]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/changed-files/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/diff/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/events/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/batch/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/events/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/settings/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tasks/templates/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/events/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/terminal/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/themes/[name]/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/themes/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tools/extension-tools/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/tools/settings/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/usage/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/vision-config/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/app/page-f572e8cb1d35be40.js +0 -206
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-cfe3af3c88e8502f.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-cfe3af3c88e8502f.js +0 -1
- package/.next/static/css/69b56227f1fefbb0.css +0 -1
- package/.next/static/lh89q_egAarSwgB6HxUCx/_buildManifest.js +0 -1
- /package/.next/static/{lh89q_egAarSwgB6HxUCx → vOqofO6dUkQhxJHaAA5d2}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"5000":{"*":{"id":"58893","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"32719","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86343":{"*":{"id":"67809","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/components/ErrorBoundary.tsx":{"id":86343,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/settings.css":{"id":39979,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/theme-presets.css":{"id":5332,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/index.css":{"id":26408,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/400-italic.css":{"id":8057,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/700.css":{"id":35279,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/700-italic.css":{"id":48276,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/lilex/index.css":{"id":12043,"name":"*","chunks":["7177","static/chunks/app/layout-4d62e08c230b8ea9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/components/AppShell.tsx":{"id":5000,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","9660","static/chunks/9660-8945dc0e772329fb.js","8974","static/chunks/app/page-4dc15b51da9c8fc9.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/hooks/useI18n.tsx":{"id":39247,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","9660","static/chunks/9660-8945dc0e772329fb.js","8974","static/chunks/app/page-4dc15b51da9c8fc9.js"],"async":false}},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/":[],"/Volumes/1T 原装/项目研发/pi-web-QT/app/layout":[{"inlined":false,"path":"static/css/2f46e0db0d4a3aed.css"},{"inlined":false,"path":"static/css/cc02ff1fe55740e5.css"},{"inlined":false,"path":"static/css/cec93cc3229def39.css"}],"/Volumes/1T 原装/项目研发/pi-web-QT/app/page":[]},"rscModuleMapping":{"5000":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"5332":{"*":{"id":"39612","name":"*","chunks":[],"async":false}},"8057":{"*":{"id":"17","name":"*","chunks":[],"async":false}},"12043":{"*":{"id":"47561","name":"*","chunks":[],"async":false}},"26408":{"*":{"id":"77222","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"35279":{"*":{"id":"10289","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"73884","name":"*","chunks":[],"async":false}},"39979":{"*":{"id":"77261","name":"*","chunks":[],"async":false}},"48276":{"*":{"id":"64388","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"86343":{"*":{"id":"24387","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
|
|
@@ -34,65 +34,66 @@
|
|
|
34
34
|
"/icon.ico/route": "app/icon.ico/route.js",
|
|
35
35
|
"/icon.png/route": "app/icon.png/route.js",
|
|
36
36
|
"/icon.svg/route": "app/icon.svg/route.js",
|
|
37
|
-
"/api/agent/[id]/bash-output/route": "app/api/agent/[id]/bash-output/route.js",
|
|
38
37
|
"/api/agent/running/route": "app/api/agent/running/route.js",
|
|
39
38
|
"/api/agent/running/events/route": "app/api/agent/running/events/route.js",
|
|
40
|
-
"/api/agent/[id]/
|
|
39
|
+
"/api/agent/[id]/bash-output/route": "app/api/agent/[id]/bash-output/route.js",
|
|
41
40
|
"/api/app-update/route": "app/api/app-update/route.js",
|
|
42
|
-
"/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
|
|
43
41
|
"/api/auth/combined/route": "app/api/auth/combined/route.js",
|
|
44
42
|
"/api/auth/logout/[provider]/route": "app/api/auth/logout/[provider]/route.js",
|
|
45
43
|
"/api/auth/providers/route": "app/api/auth/providers/route.js",
|
|
46
|
-
"/api/auth/
|
|
44
|
+
"/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
|
|
47
45
|
"/api/backup/export/route": "app/api/backup/export/route.js",
|
|
48
|
-
"/api/events/route": "app/api/events/route.js",
|
|
49
|
-
"/api/backup/import/route": "app/api/backup/import/route.js",
|
|
46
|
+
"/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
|
|
50
47
|
"/api/deepseek/balance/route": "app/api/deepseek/balance/route.js",
|
|
48
|
+
"/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
|
|
49
|
+
"/api/events/route": "app/api/events/route.js",
|
|
51
50
|
"/api/features/route": "app/api/features/route.js",
|
|
51
|
+
"/api/backup/import/route": "app/api/backup/import/route.js",
|
|
52
52
|
"/api/git/diff/route": "app/api/git/diff/route.js",
|
|
53
|
-
"/api/git/push/route": "app/api/git/push/route.js",
|
|
54
53
|
"/api/git/status/route": "app/api/git/status/route.js",
|
|
55
54
|
"/api/git/stash/route": "app/api/git/stash/route.js",
|
|
55
|
+
"/api/git/push/route": "app/api/git/push/route.js",
|
|
56
56
|
"/api/mcp/restart/route": "app/api/mcp/restart/route.js",
|
|
57
57
|
"/api/logs/route": "app/api/logs/route.js",
|
|
58
58
|
"/api/mcp/route": "app/api/mcp/route.js",
|
|
59
59
|
"/api/models-config/catalog/route": "app/api/models-config/catalog/route.js",
|
|
60
60
|
"/api/models-config/discover/route": "app/api/models-config/discover/route.js",
|
|
61
|
-
"/api/models-config/test/route": "app/api/models-config/test/route.js",
|
|
62
61
|
"/api/models-config/route": "app/api/models-config/route.js",
|
|
63
|
-
"/api/models-config/
|
|
64
|
-
"/api/modes/route": "app/api/modes/route.js",
|
|
62
|
+
"/api/models-config/test/route": "app/api/models-config/test/route.js",
|
|
65
63
|
"/api/models/route": "app/api/models/route.js",
|
|
66
|
-
"/api/
|
|
64
|
+
"/api/modes/route": "app/api/modes/route.js",
|
|
67
65
|
"/api/plugins/check/route": "app/api/plugins/check/route.js",
|
|
66
|
+
"/api/project-aliases/route": "app/api/project-aliases/route.js",
|
|
67
|
+
"/api/pair/route": "app/api/pair/route.js",
|
|
68
|
+
"/api/models-config/builtin/route": "app/api/models-config/builtin/route.js",
|
|
68
69
|
"/api/project-state/route": "app/api/project-state/route.js",
|
|
69
70
|
"/api/project-trust/route": "app/api/project-trust/route.js",
|
|
70
71
|
"/api/projects/visibility/route": "app/api/projects/visibility/route.js",
|
|
71
72
|
"/api/proxy/route": "app/api/proxy/route.js",
|
|
72
|
-
"/api/proxy/test/route": "app/api/proxy/test/route.js",
|
|
73
73
|
"/api/sessions/route": "app/api/sessions/route.js",
|
|
74
|
-
"/api/plugins/route": "app/api/plugins/route.js",
|
|
75
|
-
"/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
|
|
76
74
|
"/api/sessions/search/route": "app/api/sessions/search/route.js",
|
|
75
|
+
"/api/proxy/test/route": "app/api/proxy/test/route.js",
|
|
77
76
|
"/api/settings/title-model/route": "app/api/settings/title-model/route.js",
|
|
78
77
|
"/api/skills/check/route": "app/api/skills/check/route.js",
|
|
78
|
+
"/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
|
|
79
79
|
"/api/skills/install/route": "app/api/skills/install/route.js",
|
|
80
80
|
"/api/skills/route": "app/api/skills/route.js",
|
|
81
|
-
"/api/
|
|
81
|
+
"/api/plugins/route": "app/api/plugins/route.js",
|
|
82
|
+
"/api/skills/update/route": "app/api/skills/update/route.js",
|
|
82
83
|
"/api/snippets/route": "app/api/snippets/route.js",
|
|
84
|
+
"/api/snippets/[id]/route": "app/api/snippets/[id]/route.js",
|
|
83
85
|
"/api/subagents/[id]/route": "app/api/subagents/[id]/route.js",
|
|
84
|
-
"/api/skills/update/route": "app/api/skills/update/route.js",
|
|
85
|
-
"/api/skills/search/route": "app/api/skills/search/route.js",
|
|
86
86
|
"/api/subagents/settings/route": "app/api/subagents/settings/route.js",
|
|
87
|
-
"/api/
|
|
88
|
-
"/api/tasks/[id]/changed-files/route": "app/api/tasks/[id]/changed-files/route.js",
|
|
87
|
+
"/api/skills/search/route": "app/api/skills/search/route.js",
|
|
89
88
|
"/api/tasks/events/route": "app/api/tasks/events/route.js",
|
|
90
|
-
"/api/
|
|
91
|
-
"/api/
|
|
89
|
+
"/api/tasks/[id]/changed-files/route": "app/api/tasks/[id]/changed-files/route.js",
|
|
90
|
+
"/api/subagents/profiles/route": "app/api/subagents/profiles/route.js",
|
|
92
91
|
"/api/terminal/route": "app/api/terminal/route.js",
|
|
92
|
+
"/api/terminal/[id]/events/route": "app/api/terminal/[id]/events/route.js",
|
|
93
93
|
"/api/tools/extension-tools/route": "app/api/tools/extension-tools/route.js",
|
|
94
|
+
"/api/terminal/[id]/route": "app/api/terminal/[id]/route.js",
|
|
94
95
|
"/api/tools/settings/route": "app/api/tools/settings/route.js",
|
|
95
96
|
"/api/vision-config/route": "app/api/vision-config/route.js",
|
|
96
|
-
"/
|
|
97
|
-
"/
|
|
97
|
+
"/page": "app/page.js",
|
|
98
|
+
"/api/usage/route": "app/api/usage/route.js"
|
|
98
99
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4154,exports.ids=[4154],exports.modules={94154:(a,b,c)=>{c.d(b,{ensureRelayClient:()=>m});var d=c(77598);let e="pair_result",f=[1e3,2e3,5e3,1e4,3e4];function g(a){return(0,d.createHash)("sha256").update(a,"utf8").digest("hex").slice(0,32)}class h{constructor(a){this.options=a,this.socket=null,this.state="idle",this.attempt=0,this.pingTimer=null,this.reconnectTimer=null,this.stopped=!1,this.lastError=null,this.nextRequestId=1,this.pending=new Map,this.onFrame=null}get deviceMid(){return this.options.deviceMid}getState(){return{state:this.state,attempt:this.attempt,url:this.options.url,lastError:this.lastError}}start(){this.stopped||this.connect()}stop(){this.stopped=!0,this.clearTimers();try{this.socket?.close()}catch{}this.socket=null,this.state="closed"}send(a){if(!this.socket||"registered"!==this.state)return!1;try{return this.socket.send(JSON.stringify(a)),!0}catch(a){return this.options.log?.("relay send failed",a),!1}}request(a,b=5e3){if(!this.socket||"registered"!==this.state)return Promise.resolve({type:e,ok:!1,code:"relayUnavailable"});let c=String(this.nextRequestId++);return new Promise(d=>{let f=setTimeout(()=>{this.pending.delete(c),d({type:e,ok:!1,code:"relayUnavailable"})},b);this.pending.set(c,a=>{clearTimeout(f),d(a)});try{this.socket?.send(JSON.stringify({...a,rid:c}))}catch{clearTimeout(f),this.pending.delete(c),d({type:e,ok:!1,code:"relayUnavailable"})}})}log(a,b){this.options.log?.(`[relay-client] ${a}`,b)}clearTimers(){this.pingTimer&&(clearInterval(this.pingTimer),this.pingTimer=null),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}connect(){let a;this.clearTimers(),this.state="connecting";let b=this.options.socketFactory??(a=>new WebSocket(a)),c=this.options.url.includes("?")?"&":"?",d=`${this.options.url}${c}role=device&mid=${encodeURIComponent(this.options.deviceMid)}`;try{a=b(d)}catch(a){this.lastError=a instanceof Error?a.message:String(a),this.scheduleReconnect();return}this.socket=a,a.onopen=()=>{this.log("connected",{url:this.options.url}),a.send(JSON.stringify({type:"device_register_init",protocol_version:1,device_mid:this.options.deviceMid,device_secret:this.options.deviceSecret??"",meta:{name:this.options.deviceName,version:this.options.appVersion,platform:process.platform}}))},a.onmessage=a=>{let b=function(a){let b;if("string"==typeof a)b=a;else{if(!(a instanceof Uint8Array))return null;b=Buffer.from(a).toString("utf8")}try{let a=JSON.parse(b);if(!a||"object"!=typeof a||Array.isArray(a))return null;return a}catch{return null}}(a.data);if(b){if(void 0!==b.rid){let a=this.pending.get(String(b.rid));if(a){this.pending.delete(String(b.rid)),a(b);return}}if("device_register_ack"===b.type){this.state="registered",this.attempt=0,this.lastError=null,this.log("registered",{deviceMid:b.device_mid}),this.pingTimer=setInterval(()=>this.send({type:"ping"}),25e3),this.pingTimer.unref?.();return}"pong"!==b.type&&this.onFrame?.(b)}},a.onerror=a=>{this.lastError=a instanceof Error?a.message:"socket error"},a.onclose=()=>{if(this.socket===a){for(let a of(this.socket=null,this.state="closed",this.clearTimers(),this.pending.values()))a({type:e,ok:!1,code:"relayUnavailable"});this.pending.clear(),this.log("disconnected",{attempt:this.attempt}),this.scheduleReconnect()}}}scheduleReconnect(){if(this.stopped)return;let a=f[Math.min(this.attempt,f.length-1)];this.attempt+=1,this.reconnectTimer=setTimeout(()=>this.connect(),a),this.reconnectTimer.unref?.()}}let i="http_response_head",j="http_response_chunk",k=new Set(["host","connection","content-length","transfer-encoding","upgrade","accept-encoding"]);class l{constructor(a){this.streams=new Map,this.baseUrl=a.baseUrl.replace(/\/$/,""),this.authorization=a.authorization,this.log=a.log??(()=>{}),this.fetchImpl=a.fetchImpl??fetch}abortAll(){for(let[,a]of this.streams)a.controller.abort();this.streams.clear()}get inflightCount(){return this.streams.size}async handle(a,b){let c="string"==typeof b.cid?b.cid:"",d=b.rid;if(!c||void 0===d)return;let e=`${c}:${String(d)}`,f=new AbortController;this.streams.set(e,{controller:f});let g=()=>{this.streams.delete(e),a({type:"http_response_end",cid:c,rid:d})};try{let e="string"==typeof b.path?b.path:"";if(!e.startsWith("/"))throw Error(`invalid path: ${e}`);let h="string"==typeof b.method?b.method.toUpperCase():"GET",l=new Headers,m=b.headers;if(m&&"object"==typeof m)for(let[a,b]of Object.entries(m))"string"==typeof b&&(k.has(a.toLowerCase())||l.set(a,b));this.authorization&&!l.has("authorization")&&l.set("authorization",this.authorization);let n="string"==typeof b.body&&b.body.length>0?b.body:void 0,o=await this.fetchImpl(`${this.baseUrl}${e}`,{method:h,headers:l,body:"GET"===h||"HEAD"===h?void 0:n,redirect:"manual",signal:f.signal}),p={};if(o.headers.forEach((a,b)=>{"content-encoding"!==b.toLowerCase()&&(p[b]=a)}),a({type:i,cid:c,rid:d,status:o.status,headers:p}),!o.body)return void g();let q=o.body.getReader();for(;;){let{done:b,value:e}=await q.read();if(b)break;if(e&&0!==e.byteLength)for(let b=0;b<e.byteLength;b+=65536){let f=e.subarray(b,b+65536);a({type:j,cid:c,rid:d,data:Buffer.from(f).toString("base64"),encoding:"base64"})}}g()}catch(e){if(!(e instanceof Error&&"AbortError"===e.name)){let f=e instanceof Error?e.message:String(e);this.log("bridge request failed",{path:b.path,error:f}),a({type:i,cid:c,rid:d,status:502,headers:{"content-type":"text/plain; charset=utf-8"}}),a({type:j,cid:c,rid:d,data:Buffer.from(`Bridge error: ${f}`,"utf8").toString("base64"),encoding:"base64"})}g()}}}function m(){let a;if(void 0!==globalThis.__piRelayClient)return globalThis.__piRelayClient;let b=function(a={}){let b=a.url??process.env.PI_WEB_RELAY_URL?.trim();return b?new h({url:b,deviceMid:a.deviceMid??(0,d.randomBytes)(16).toString("hex"),deviceName:a.deviceName??process.env.PI_WEB_RELAY_DEVICE_NAME?.trim()??"pi-web",appVersion:a.appVersion??"0.17.9"??"unknown",deviceSecret:a.deviceSecret??process.env.PI_WEB_RELAY_DEVICE_SECRET?.trim()??"",socketFactory:a.socketFactory,log:a.log}):null}({deviceMid:(a=process.env.PI_WEB_DEVICE_ID?.trim())?g(a):g(`${process.platform}-${process.env.HOSTNAME??"pi-web"}-${process.cwd()}`),log:(a,b)=>{void 0===b?console.log(a):console.log(a,b)}});if(globalThis.__piRelayClient=b,b){let a,c;globalThis.__piRelayBridge=function(a,b){if(!a)return null;let c=new l(b);return a.onFrame=b=>{"http_request"===b.type&&c.handle(b=>{a.send(b)},b)},c}(b,{baseUrl:(a=process.env.PI_WEB_HOSTNAME?.trim()||"127.0.0.1",c=process.env.PI_WEB_PORT?.trim()||"30141",`http://${a}:${c}`),authorization:function(){let a=process.env.PI_WEB_PASSWORD;if(function(a=process.env.PI_WEB_PASSWORD){return"string"==typeof a&&a.length>0}(a))return`Basic ${Buffer.from(`pi:${a}`,"utf8").toString("base64")}`}(),log:(a,b)=>{void 0===b?console.log(`[relay-bridge] ${a}`):console.log(`[relay-bridge] ${a}`,b)}}),b.start()}return b}}};
|