@qt4798/pi-web 0.18.14 → 0.18.16
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 +29 -27
- package/.next/build-manifest.json +5 -5
- package/.next/diagnostics/build-diagnostics.json +1 -1
- package/.next/prerender-manifest.json +6 -6
- package/.next/react-loadable-manifest.json +73 -71
- package/.next/required-server-files.js +20 -9
- package/.next/required-server-files.json +20 -9
- package/.next/routes-manifest.json +12 -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/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/events/route.js +1 -1
- package/.next/server/app/api/agent/running/events/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/combined/route.js +1 -1
- package/.next/server/app/api/auth/combined/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/backup/export/route.js +1 -1
- package/.next/server/app/api/backup/export/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/backup/import/route.js +1 -1
- package/.next/server/app/api/backup/import/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/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/events/route.js +2 -2
- package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/features/route.js +1 -1
- package/.next/server/app/api/features/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 +2 -2
- package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/diff/route.js +1 -1
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/push/route.js +1 -1
- package/.next/server/app/api/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/git/stash/route.js +1 -1
- package/.next/server/app/api/git/stash/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/import/discover/route.js +1 -1
- package/.next/server/app/api/import/discover/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import/execute/route.js +1 -1
- package/.next/server/app/api/import/execute/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import/status/route.js +1 -1
- package/.next/server/app/api/import/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/logs/route.js +1 -1
- package/.next/server/app/api/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mcp/restart/route.js +1 -1
- package/.next/server/app/api/mcp/restart/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/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/builtin/route.js +1 -1
- package/.next/server/app/api/models-config/builtin/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/import/route.js +1 -0
- package/.next/server/app/api/models-config/import/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/import/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/route.js.nft.json +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/modes/route.js +1 -1
- package/.next/server/app/api/modes/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-aliases/route.js +1 -1
- package/.next/server/app/api/project-aliases/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/projects/visibility/route.js +1 -1
- package/.next/server/app/api/projects/visibility/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/proxy/route.js +1 -1
- package/.next/server/app/api/proxy/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/proxy/test/route.js +1 -1
- package/.next/server/app/api/proxy/test/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]/details/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/details/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 +1 -1
- package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/queue-recovery/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/queue-recovery/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/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/settings/appearance/route.js +1 -0
- package/.next/server/app/api/settings/appearance/route.js.nft.json +1 -0
- package/.next/server/app/api/settings/appearance/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/settings/title-model/route.js +1 -1
- package/.next/server/app/api/settings/title-model/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/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/snippets/[id]/route.js +1 -1
- package/.next/server/app/api/snippets/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/snippets/route.js +1 -1
- package/.next/server/app/api/snippets/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/tasks/[id]/[action]/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/[action]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[id]/changed-files/route.js +2 -2
- package/.next/server/app/api/tasks/[id]/changed-files/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[id]/diff/route.js +2 -2
- package/.next/server/app/api/tasks/[id]/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[id]/events/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[id]/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/batch/route.js +1 -1
- package/.next/server/app/api/tasks/batch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/events/route.js +1 -1
- package/.next/server/app/api/tasks/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/route.js +1 -1
- package/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/settings/route.js +1 -1
- package/.next/server/app/api/tasks/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/templates/route.js +1 -1
- package/.next/server/app/api/tasks/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/terminal/[id]/events/route.js +2 -2
- 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/themes/[name]/route.js +1 -1
- package/.next/server/app/api/themes/[name]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/themes/route.js +1 -1
- package/.next/server/app/api/themes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tools/extension-tools/route.js +2 -2
- package/.next/server/app/api/tools/extension-tools/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/usage/route.js +1 -1
- package/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/vision-config/route.js +2 -2
- package/.next/server/app/api/vision-config/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/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 +6 -6
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/index.segments/_full.segment.rsc +6 -6
- 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 +5 -5
- package/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/.next/server/app/login.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/page.js +15 -15
- 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 +29 -27
- package/.next/server/chunks/1625.js +1 -1
- package/.next/server/chunks/2325.js +1 -1
- package/.next/server/chunks/2430.js +4 -4
- package/.next/server/chunks/3379.js +1 -1
- package/.next/server/chunks/4253.js +5 -5
- package/.next/server/chunks/5437.js +1 -1
- package/.next/server/chunks/5582.js +3 -3
- package/.next/server/chunks/5725.js +1 -1
- package/.next/server/chunks/{3400.js → 5924.js} +2 -2
- package/.next/server/chunks/6429.js +2 -2
- package/.next/server/chunks/8050.js +1 -0
- package/.next/server/chunks/8526.js +1 -0
- package/.next/server/chunks/9280.js +6 -6
- 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 +7 -7
- 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/PXIvaiEmgDyK__UouWrME/_buildManifest.js +1 -0
- package/.next/static/chunks/{103.23142a67b02246a8.js → 103.bfbf2ceb209ee60a.js} +3 -3
- package/.next/static/chunks/1063.e4ab1eacb59256e4.js +1 -0
- package/.next/static/chunks/{1ba63609.b2ae90f43319a29e.js → 1ba63609.56aacc9b9c1fc3c9.js} +3 -3
- package/.next/static/chunks/202.2eb729e44266c67c.js +1 -0
- package/.next/static/chunks/{2539.c5a4f2fd8e421c70.js → 2539.3edf131e2ca8ce95.js} +2 -2
- package/.next/static/chunks/{268.72794ee2773c2060.js → 268.13b43d4bc938ecaf.js} +1 -1
- package/.next/static/chunks/{2703.495a65ed14b2f094.js → 2703.8c74b7bfdb7420f4.js} +2 -2
- package/.next/static/chunks/2787-8d358343705fcc68.js +1 -0
- package/.next/static/chunks/3308.de64beaa0de14c14.js +73 -0
- package/.next/static/chunks/{3336.a76f9485fe7cb762.js → 3336.0f9ee646d3cb3d78.js} +1 -1
- package/.next/static/chunks/{370.8e8f3cf8eb0e29dd.js → 370.a485dd5092c76362.js} +1 -1
- package/.next/static/chunks/3716.9ca94f5f4438e674.js +1 -0
- package/.next/static/chunks/3794-1fcd61e8ecc94071.js +52 -0
- package/.next/static/chunks/398.abb6ae5bffac7bc8.js +77 -0
- package/.next/static/chunks/3995.ce807d1cb0b49dc6.js +38 -0
- package/.next/static/chunks/3e0fc59a.bdaacbd7105103cc.js +146 -0
- package/.next/static/chunks/4202.e56ae229379586da.js +226 -0
- package/.next/static/chunks/{4405.c4b4ce2efac94ed2.js → 4405.81f03b286f952606.js} +1 -1
- package/.next/static/chunks/5091.175b669ec3e8380f.js +15 -0
- package/.next/static/chunks/5170-3e328b87bd2a2070.js +1 -0
- package/.next/static/chunks/5526.dbe8850524c3a0b7.js +86 -0
- package/.next/static/chunks/5609943a.724ce4262fb3117f.js +127 -0
- package/.next/static/chunks/{5681.dd0e66b0de16e54b.js → 5681.970265b4caa33e0c.js} +10 -10
- package/.next/static/chunks/6195.5dc951f896dbe7c7.js +24 -0
- package/.next/static/chunks/7047.198a0b3b75b24ea9.js +22 -0
- package/.next/static/chunks/7268.e1589e6f1b33dc69.js +1 -0
- package/.next/static/chunks/{7331.2add3c4e125a2dba.js → 7331.4dab6a47177b021e.js} +4 -4
- package/.next/static/chunks/{8403.1f5a2b397c89fd5e.js → 8403.1d6d08894b1a96a2.js} +1 -1
- package/.next/static/chunks/8863.82d37740ec1cddf2.js +1 -0
- package/.next/static/chunks/{8885.cf60cac98bf8b70c.js → 8885.b3380514638e6caa.js} +1 -1
- package/.next/static/chunks/{918.6a9bbe564e4a2d0f.js → 918.24d797d64aea10eb.js} +1 -1
- package/.next/static/chunks/{9614.3221013d7f0af27f.js → 9614.b33d76486b6ddeba.js} +1 -1
- package/.next/static/chunks/{9698.4d09a99b9d99f3e5.js → 9698.3597679011d58a99.js} +1 -1
- package/.next/static/chunks/9873.c36038f319fa59ae.js +15 -0
- package/.next/static/chunks/99.4406f0eb0e571f3e.js +24 -0
- package/.next/static/chunks/993e5495.65b5fe07838b22d4.js +62 -0
- package/.next/static/chunks/{9974.9a0f79beca65e8c4.js → 9974.7f033cb2770e1d6a.js} +2 -2
- package/.next/static/chunks/app/_global-error/page-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/_not-found/page-a500a3059c57d262.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/lease/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/agent/running/events/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/auth/combined/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/backup/export/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/backup/import/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/events/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/features/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/git/push/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/git/stash/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/home/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/import/discover/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/import/execute/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/import/status/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/logs/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/mcp/restart/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models/enabled/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models/refresh/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models-config/builtin/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models-config/import/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/modes/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/plugins/check/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/project-aliases/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/projects/visibility/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/provider-usage/query/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/proxy/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/proxy/test/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/details/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/queue-recovery/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/settings/appearance/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/settings/title-model/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/skills/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/snippets/[id]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/snippets/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/subagents/[id]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/subagents/profiles/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/subagents/settings/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/[action]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/changed-files/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/diff/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/events/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/batch/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/events/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/settings/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tasks/templates/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/events/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/themes/[name]/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/themes/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tools/extension-tools/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/tools/settings/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/usage/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/vision-config/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/web-auth/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/app/layout-5719770bb4c2db1c.js +1 -0
- package/.next/static/chunks/app/login/{page-9b153b8af0f90735.js → page-7d898795adddde04.js} +1 -1
- package/.next/static/chunks/app/page-7b80403208ca6e44.js +237 -0
- package/.next/static/chunks/bf2ff291.6dc9ad1bc7ff61cb.js +122 -0
- package/.next/static/chunks/c3448d49.887dde9a549859d4.js +5 -0
- package/.next/static/chunks/da12927c.83795b5f3ef6b27b.js +82 -0
- package/.next/static/chunks/db9d41be.d429ba23973269f2.js +1 -0
- package/.next/static/chunks/main-4dd0e30beb0a1520.js +5 -0
- package/.next/static/chunks/{main-app-8944008299d05701.js → main-app-0b45ce7a4444c85e.js} +1 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-9b3287a6309b286c.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-8b1369cbf4e0a858.js +1 -0
- package/.next/static/chunks/webpack-31cab65cc5a39c4d.js +1 -0
- package/.next/static/css/5a620688241e1a56.css +1 -0
- package/.next/static/css/9bf1ae2d877ac1bd.css +1 -0
- package/.next/trace +10 -83
- 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/new/route.ts +1 -1
- package/.next/types/app/api/agent/running/events/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/combined/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/backup/export/route.ts +1 -1
- package/.next/types/app/api/backup/import/route.ts +1 -1
- package/.next/types/app/api/cwd/browse/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/events/route.ts +1 -1
- package/.next/types/app/api/features/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/push/route.ts +1 -1
- package/.next/types/app/api/git/stash/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/import/discover/route.ts +1 -1
- package/.next/types/app/api/import/execute/route.ts +1 -1
- package/.next/types/app/api/import/status/route.ts +1 -1
- package/.next/types/app/api/logs/route.ts +1 -1
- package/.next/types/app/api/mcp/restart/route.ts +1 -1
- package/.next/types/app/api/mcp/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/builtin/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/import/route.ts +353 -0
- 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/modes/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-aliases/route.ts +1 -1
- package/.next/types/app/api/project-trust/route.ts +1 -1
- package/.next/types/app/api/projects/visibility/route.ts +1 -1
- package/.next/types/app/api/provider-usage/query/route.ts +1 -1
- package/.next/types/app/api/proxy/route.ts +1 -1
- package/.next/types/app/api/proxy/test/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]/details/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]/queue-recovery/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/route.ts +1 -1
- package/.next/types/app/api/sessions/search/route.ts +1 -1
- package/.next/types/app/api/settings/appearance/route.ts +353 -0
- package/.next/types/app/api/settings/title-model/route.ts +1 -1
- package/.next/types/app/api/skills/check/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/snippets/[id]/route.ts +1 -1
- package/.next/types/app/api/snippets/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/tasks/[id]/[action]/route.ts +1 -1
- package/.next/types/app/api/tasks/[id]/changed-files/route.ts +1 -1
- package/.next/types/app/api/tasks/[id]/diff/route.ts +1 -1
- package/.next/types/app/api/tasks/[id]/events/route.ts +1 -1
- package/.next/types/app/api/tasks/[id]/route.ts +1 -1
- package/.next/types/app/api/tasks/batch/route.ts +1 -1
- package/.next/types/app/api/tasks/events/route.ts +1 -1
- package/.next/types/app/api/tasks/route.ts +1 -1
- package/.next/types/app/api/tasks/settings/route.ts +1 -1
- package/.next/types/app/api/tasks/templates/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/themes/[name]/route.ts +1 -1
- package/.next/types/app/api/themes/route.ts +1 -1
- package/.next/types/app/api/tools/extension-tools/route.ts +1 -1
- package/.next/types/app/api/tools/settings/route.ts +1 -1
- package/.next/types/app/api/usage/route.ts +1 -1
- package/.next/types/app/api/vision-config/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 +3 -1
- package/.next/types/validator.ts +18 -0
- package/bin/pi-web.js +10 -0
- package/bin/rotate-preview-secrets.js +105 -0
- package/next.config.ts +21 -0
- package/package.json +9 -1
- package/.next/server/chunks/8692.js +0 -1
- package/.next/static/YMj6bx3-waKfetNnywU4u/_buildManifest.js +0 -1
- package/.next/static/chunks/1063.775c442bdbeef08b.js +0 -1
- package/.next/static/chunks/1781.866132cea8e77cd0.js +0 -1
- package/.next/static/chunks/3308.18c2954e9a937988.js +0 -73
- package/.next/static/chunks/3716.72bf4c9d7325debd.js +0 -1
- package/.next/static/chunks/3794-6e153c69bf16369e.js +0 -52
- package/.next/static/chunks/398.ffa02af9062a3950.js +0 -77
- package/.next/static/chunks/3995.eca0f5bef1fc3ae5.js +0 -38
- package/.next/static/chunks/4004.74b9bcf5478b1663.js +0 -160
- package/.next/static/chunks/4202.8440832386f023c7.js +0 -226
- package/.next/static/chunks/4238.8c87d84edfed6131.js +0 -141
- package/.next/static/chunks/5170-1843a50074eff480.js +0 -1
- package/.next/static/chunks/5526.ff46471041fdcb79.js +0 -86
- package/.next/static/chunks/6195.1153369f5f8b13a2.js +0 -24
- package/.next/static/chunks/7268.236544be8e242c16.js +0 -1
- package/.next/static/chunks/8200.a36b9f8c983c6b9e.js +0 -5
- package/.next/static/chunks/8272-a2dd6dc928b6876e.js +0 -1
- package/.next/static/chunks/8863.fa0320ea586efb3b.js +0 -1
- package/.next/static/chunks/973.88e865b52eff479a.js +0 -8
- package/.next/static/chunks/99.280e10a836dfdb17.js +0 -24
- package/.next/static/chunks/993e5495.8797001fcfcf2889.js +0 -62
- package/.next/static/chunks/app/_global-error/page-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/_not-found/page-0e8bb074c3dbf54e.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/lease/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/agent/running/events/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/app-update/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/auth/combined/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/backup/export/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/backup/import/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/events/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/features/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/git/push/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/git/stash/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/home/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/import/discover/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/import/execute/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/import/status/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/logs/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/mcp/restart/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/models/enabled/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/models/refresh/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/models/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/models-config/builtin/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/modes/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/plugins/check/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/project-aliases/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/projects/visibility/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/provider-usage/query/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/proxy/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/proxy/test/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/details/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/queue-recovery/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/settings/title-model/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/skills/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/snippets/[id]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/snippets/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/subagents/[id]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/subagents/profiles/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/subagents/settings/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/[action]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/changed-files/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/diff/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/events/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/batch/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/events/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/settings/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tasks/templates/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/events/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/terminal/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/themes/[name]/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/themes/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tools/extension-tools/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/tools/settings/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/usage/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/vision-config/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/web-auth/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/app/layout-740df3abbdf0ae0c.js +0 -1
- package/.next/static/chunks/app/page-5588e64c6d7ae092.js +0 -237
- package/.next/static/chunks/bf2ff291.3a109dffc1fe84af.js +0 -122
- package/.next/static/chunks/da12927c.df8334cb8b491be6.js +0 -82
- package/.next/static/chunks/db9d41be.e72ce090a86a3691.js +0 -1
- package/.next/static/chunks/main-6400935cf7d44c96.js +0 -5
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-a57ff04541d78dd4.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-43ebd38332159d0f.js +0 -1
- package/.next/static/chunks/webpack-8937e0633207540f.js +0 -1
- package/.next/static/css/2d92ddfd19010e95.css +0 -1
- package/.next/static/css/e7f4c5cc504068dd.css +0 -1
- /package/.next/static/{YMj6bx3-waKfetNnywU4u → PXIvaiEmgDyK__UouWrME}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
exports.id=5437,exports.ids=[5437],exports.modules={6999:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Tu:()=>o,o$:()=>n});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=a([i]);i=(k.then?(await k)():k)[0];let p={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function l(){return(0,f.join)((0,i.getAgentDir)(),"settings.json")}function m(){let a=l();if(!(0,e.existsSync)(a))return{};try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));return null===b||"object"!=typeof b||Array.isArray(b)?{}:b}catch{return{}}}async function n(a){let b=l(),c=null,d=await h().lock(b,{...p,onCompromised:a=>{c=a}});try{if(c)throw c;let d=m(),e=await a(d);if(c)throw c;if(!e||"object"!=typeof e||!e.settings)throw Error("settings.json mutation must return { settings }");if(!1===e.changed)return{changed:!1};if((0,j.$)(b,JSON.stringify(e.settings,null,2)),c)throw c;return{changed:!0}}finally{d().catch(()=>{})}}function o(){return m()}d()}catch(a){d(a)}})},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},16284:(a,b,c)=>{"use strict";c.d(b,{U:()=>i});var d=c(73024),e=c(76760);let f=[".queue.json",".goal.json"];function g(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function h(a){try{return(0,d.lstatSync)(a),!0}catch(a){if("ENOENT"===a.code)return!1;throw a}}function i(a,b){let c={restored:[],warnings:[]};if(!h(a))return c.warnings.push("No session files in this backup"),c;let i=function(a,b){let c=new Set,f=[""];for(;f.length;){let g=f.pop(),h=(0,e.join)(a,g),i=(0,d.lstatSync)(h);if(i.isSymbolicLink())b.push(`Skipped symbolic link in sessions: ${g||"sessions/"}`);else if(i.isDirectory())for(let a of(0,d.readdirSync)(h))f.push(g?`${g}/${a}`:a);else i.isFile()?c.add(g):b.push(`Skipped unsupported session entry: ${g}`)}return c}(a,c.warnings),j=[...i].filter(a=>a.endsWith(".jsonl")).sort(),k=new Set;(0,d.mkdirSync)(b,{recursive:!0,mode:448});let l=(0,d.realpathSync)(b);for(let b of j){let j,m=[b,...f.map(a=>b+a).filter(a=>i.has(a))];for(let a of m)k.add(a);let n=[];try{let i,k=(0,e.dirname)(`sessions/${b}`).split(e.sep).join("/"),o=function(a,b){let c=a;for(let f of b.split("/").filter(Boolean)){if("."===f||".."===f||/[\\:\0]/.test(f))throw Error("Invalid session path");c=(0,e.join)(c,f);try{(0,d.mkdirSync)(c,{mode:448})}catch(a){if("EEXIST"!==a.code)throw a}let b=(0,d.lstatSync)(c);if(b.isSymbolicLink())throw Error("Symbolic link in session destination");if(!b.isDirectory())throw Error("Session destination is not a directory");let g=(0,e.relative)(a,(0,d.realpathSync)(c));if(".."===g||g.startsWith(`..${e.sep}`)||(0,e.resolve)(a,g)!==(0,d.realpathSync)(c))throw Error("Session destination is outside the agent directory")}return c}(l,k),p=(0,e.join)(l,"sessions",b);if([p,...f.map(a=>p+a)].some(h)){c.warnings.push(`Skipped existing session or sidecar: ${b}`);continue}let q=(0,d.readFileSync)((0,e.join)(a,b)),r=q.indexOf(10);try{i=JSON.parse(q.subarray(0,r<0?q.length:r).toString("utf8"))}catch{throw Error("Invalid session header")}if(!g(i)||"session"!==i.type||"string"!=typeof i.id||!i.id||"string"!=typeof i.cwd)throw Error("Invalid session header");let s=!1,t=m.slice(1).map(b=>{let c=b.endsWith(".goal.json")?".goal.json":".queue.json",f=function(a,b){let c,e=(0,d.readFileSync)(a);try{c=JSON.parse(e.toString("utf8"))}catch{throw Error(`Invalid ${b} file`)}if(!g(c)||1!==c.version)throw Error(`Invalid ${b} file`);if(".queue.json"===b){if(!Array.isArray(c.entries)||!c.entries.every(a=>g(a)&&("steer"===a.kind||"followUp"===a.kind)&&"string"==typeof a.text))throw Error("Invalid queue file");return{data:e,paused:!1}}if(!g(c.state))throw Error("Invalid goal file");if("running"!==c.state.status)return{data:e,paused:!1};let f={...c,state:{...c.state,status:"paused",updatedAt:Date.now()}};return{data:Buffer.from(`${JSON.stringify(f)}
|
|
2
|
-
`),paused:!0}}((0,e.join)(a,b),c);return s||=f.paused,{name:b,data:f.data}});for(let[a,c]of(t.push({name:b,data:q}),j=(0,d.mkdtempSync)((0,e.join)(o,".restore-")),t.entries()))(0,d.writeFileSync)((0,e.join)(j,String(a)),c.data,{flag:"wx",mode:384,flush:!0});for(let[a,b]of t.entries()){let c=(0,e.join)(l,"sessions",b.name),f=(0,e.join)(j,String(a));(0,d.linkSync)(f,c),n.push({destination:c,source:f})}c.restored.push(...t.map(({name:a})=>`sessions/${a}`)),s&&c.warnings.push(`Restored goal paused; resume manually: ${b}`),"string"!=typeof i.cwd||(0,d.existsSync)(i.cwd)||c.warnings.push(`Original workspace path was retained; select a valid workspace before continuing: ${b}`),i.parentSession&&c.warnings.push(`Parent session path was retained; verify the restored relationship: ${b}`)}catch(f){for(let{destination:a,source:b}of n.reverse())try{let f=(0,d.lstatSync)(b,{bigint:!0}),g=(0,d.lstatSync)(a,{bigint:!0});g.dev===f.dev&&g.ino===f.ino?(0,d.unlinkSync)(a):c.warnings.push(`Rollback kept a replaced session file: ${(0,e.relative)(l,a)}`)}catch(b){"ENOENT"!==b.code&&c.warnings.push(`Session rollback needs manual cleanup: ${(0,e.relative)(l,a)}`)}let a=f instanceof Error&&/^(Invalid |Symbolic link |Session destination )/.test(f.message)?f.message:"File operation failed";c.warnings.push(`Skipped session ${b}: ${a}`)}finally{if(j)try{(0,d.rmSync)(j,{recursive:!0,force:!0})}catch{c.warnings.push(`Session staging needs manual cleanup: ${(0,e.relative)(l,j)}`)}}}for(let a of i)k.has(a)||c.warnings.push(`Skipped orphan or unsupported session file: ${a}`);return c}},17551:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Br:()=>q,LB:()=>t,V6:()=>p,z0:()=>r});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=c(28967),l=c(18904),m=a([i,l]);[i,l]=m.then?(await m)():m;let s={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(a=(0,i.getAgentDir)()){return(0,f.join)(a,"models.json")}class t extends Error{constructor(a){super(a),this.name="ModelsConfigReadError"}}function p(a=o()){let b;if(!(0,e.existsSync)(a))return{providers:{}};try{let c=(0,e.readFileSync)(a,"utf8").replace(/^\uFEFF/,"");if(!c.trim())return{providers:{}};b=JSON.parse(c.replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*/g,a=>'"'===a[0]?a:"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(a,b)=>b??('"'===a[0]?a:"")))}catch(b){throw new t(`Failed to read ${a}: ${b instanceof Error?b.message:String(b)}`)}if(!n(b))throw new t("Invalid models.json: expected an object");if(void 0!==b.providers&&!n(b.providers))throw new t("Invalid models.json: providers must be an object");return b}async function q(a,b=o()){let c,d=(0,f.dirname)(b);if((0,e.existsSync)(d)||(0,e.mkdirSync)(d,{recursive:!0,mode:448}),!(0,e.existsSync)(b))try{(0,e.writeFileSync)(b,JSON.stringify({providers:{}},null,2),{encoding:"utf8",flag:"wx",mode:384})}catch(a){if("EEXIST"!==a.code)throw a}let g=await h().lock(b,{...s,onCompromised:a=>{c=a}}),i=()=>{if(c)throw c};try{i();let c=p(b),d=await a(c);if(!n(d.data))throw Error("Invalid models.json mutation result");return i(),!1!==d.changed&&((0,j.$)(b,JSON.stringify(d.data,null,2)),(0,k.k)(),(0,l.Ln)(),i()),d.result}finally{try{await g()}catch(a){if(c)throw c;throw a}}}function r(a){if(!n(a))throw Error("models.json payload must be an object");if(void 0!==a.providers&&!n(a.providers))throw Error("models.json payload providers must be an object")}d()}catch(a){d(a)}})},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},39006:a=>{"use strict";a.exports=JSON.parse('{"name":"@qt4798/pi-web","version":"0.18.14","description":"Web workspace for the pi coding agent","homepage":"https://github.com/t479842598/pi-web-QT#readme","repository":{"type":"git","url":"git+https://github.com/t479842598/pi-web-QT.git"},"bugs":{"url":"https://github.com/t479842598/pi-web-QT/issues"},"license":"MIT","engines":{"node":">=22.19.0"},"bin":{"pi-web":"bin/pi-web.js"},"files":["bin",".next","!.next/cache","!.next/dev","!.next/standalone","!.next/**/*.js.map","lib/theme","public","next.config.ts","package.json"],"scripts":{"dev":"node bin/fix-pi-agent-undici.js && node bin/with-memory-limit.js nextDev","dev:lan":"node bin/fix-pi-agent-undici.js && node bin/with-memory-limit.js node_modules/.bin/next dev -H 0.0.0.0 -p 0 --turbopack","postinstall":"node bin/prepare-terminal.js","theme:css":"node scripts/generate-theme-css.mjs","prebuild":"node scripts/generate-theme-css.mjs","build":"env -u TURBOPACK -u __NEXT_PRIVATE_STANDALONE_CONFIG next build --webpack","bundle:backend":"node scripts/bundle-backend.mjs","start":"node bin/fix-pi-agent-undici.js && node bin/with-memory-limit.js nextStart","start:lan":"node bin/fix-pi-agent-undici.js && node bin/with-memory-limit.js node_modules/.bin/next start -H 0.0.0.0 -p 0","lint":"eslint .","release":"npm version patch --no-git-tag-version && npm run build && npm publish --access public","test":"node --experimental-strip-types --test $(find app components hooks lib -name \'*.test.mjs\' -print)","test:e2e":"node e2e/run.mjs","test:terminal":"node e2e/terminal.mjs"},"dependencies":{"@earendil-works/pi-agent-core":"0.87.1","@earendil-works/pi-ai":"0.87.1","@earendil-works/pi-coding-agent":"0.87.1","@earendil-works/pi-tui":"0.87.1","@fontsource/ia-writer-quattro":"^5.3.0","@fontsource/lilex":"^5.3.0","@phosphor-icons/react":"^2.1.10","@radix-ui/react-dialog":"^1.1.23","@tanstack/react-virtual":"^3.14.9","@tauri-apps/api":"^2.11.1","@xterm/addon-fit":"0.11.0","@xterm/xterm":"6.0.0","adm-zip":"^0.6.0","ansi_up":"^6.0.6","cmdk":"^1.1.1","js-yaml":"^5.2.3","katex":"^0.16.47","lucide-react":"^1.37.0","mammoth":"^1.12.0","mermaid":"^11.16.1","next":"16.3.6","node-pty":"1.2.0-beta.15","proper-lockfile":"4.1.2","qrcode":"^1.5.4","react":"^19.2.4","react-dom":"^19.2.4","react-markdown":"^10.1.0","react-syntax-highlighter":"^16.1.1","rehype-katex":"^7.0.1","rehype-raw":"^7.0.0","rehype-sanitize":"^6.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1","remark-math":"^6.0.0","semver":"7.8.5","undici":"^8.11.0"},"overrides":{"undici":"^8.11.0","@earendil-works/pi-coding-agent":{"undici":"^8.11.0"},"intersection-observer":"npm:noop2@2.0.0","node-domexception":"npm:@profoundlogic/node-domexception@1.0.2"},"allowScripts":{"@google/genai@1.52.0":true,"protobufjs@7.6.5":true,"sharp@0.34.5":true,"unrs-resolver@1.12.2":true},"devDependencies":{"@resvg/resvg-js":"^2.6.2","@tailwindcss/postcss":"^4.2.2","@types/js-yaml":"^4.0.9","@types/node":"^25","@types/proper-lockfile":"4.1.4","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/react-syntax-highlighter":"^15.5.13","@types/semver":"7.8.0","eslint":"^9.39.5","eslint-config-next":"16.3.5","jiti":"^2.7.0","lightningcss":"^1.33.0","playwright":"^1.63.0","postcss":"^8","tailwindcss":"^4.2.2","to-ico":"^1.1.5","typescript":"^5.9.3"}}')},50593:(a,b,c)=>{"use strict";function d(a){return/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")?a.replace(/\\/g,"/"):a}c.d(b,{A0:()=>d})},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},78335:()=>{},89628:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{DT:()=>A,dH:()=>C,g3:()=>B,jE:()=>x,lz:()=>D,uj:()=>v});var e=c(26106),f=c.n(e),g=c(29021),h=c(21820),i=c(33873),j=c(75430),k=c(50593),l=c(8102),m=c(17551),n=c(16284),o=a([j,m]);[j,m]=o.then?(await o)():o;let F="pi-backup",G="${agentDir}",H="${home}";function p(a){if(!(0,g.existsSync)(a))return null;try{let b=JSON.parse((0,g.readFileSync)(a,"utf8"));return null!==b&&"object"==typeof b?b:null}catch{return null}}function q(a){let b=[],c=[""];for(;c.length>0;){let d,e=c.pop(),f=(0,i.join)(a,e);try{d=(0,g.readdirSync)(f)}catch{continue}for(let a of d){let d;if("node_modules"===a||".git"===a)continue;let h=e?`${e}/${a}`:a,j=(0,i.join)(f,a);try{d=(0,g.statSync)(j)}catch{continue}d.isDirectory()?c.push(h):d.isFile()&&b.push(h)}}return b}function r(a){let b=(0,k.A0)((0,j.getAgentDir)()),c=(0,k.A0)((0,h.homedir)());return t(a,a=>{let d=(0,k.A0)(a);return d===b?G:d===c?H:d.startsWith(b+"/")?G+d.slice(b.length):d.startsWith(c+"/")?H+d.slice(c.length):a})}function s(a){let b=(0,j.getAgentDir)(),c=(0,h.homedir)();return t(a,a=>a===G?b:a===H?c:a.startsWith(G+"/")?(0,i.join)(b,...a.slice(G.length+1).split("/")):a.startsWith(H+"/")?(0,i.join)(c,...a.slice(H.length+1).split("/")):a)}function t(a,b){if("string"==typeof a)return b(a);if(Array.isArray(a))return a.map(a=>t(a,b));if(null!==a&&"object"==typeof a){let c={};for(let[d,e]of Object.entries(a))c[d]=t(e,b);return c}return a}function u(a,b,c){a.addFile(`${F}/${b}`,Buffer.isBuffer(c)?c:Buffer.from(c,"utf8"))}function v(a){let b=(0,j.getAgentDir)(),d=new(f()),e={formatVersion:1,createdAt:new Date().toISOString(),...function(){try{return{piWebVersion:c(39006).version??"unknown",piSdkVersion:"unknown"}}catch{return{piWebVersion:"unknown",piSdkVersion:"unknown"}}}(),sourcePlatform:process.platform,includeSecrets:a.includeSecrets,includeSessions:a.includeSessions,files:[],mcpBinScripts:[],localPackages:[],absolutePaths:[],warnings:[]};for(let c of["models.json","auth.json","settings.json","mcp.json","models-store.json","AGENTS.md","APPEND_SYSTEM.md"]){let f,h=(0,i.join)(b,c);if((0,g.existsSync)(h)&&("auth.json"!==c||a.includeSecrets)){if("models.json"===c){let b;try{b=(0,m.V6)(h)}catch{throw Error("Cannot export models.json: configuration is unreadable or invalid")}f=JSON.stringify(r(a.includeSecrets?b:function(a){let b=a.providers??{},c={};for(let[a,d]of Object.entries(b))c[a]={...d},Object.hasOwn(c[a],"apiKey")&&(c[a].apiKey="");return{...a,providers:c}}(b)),null,2)}else if(f=(0,g.readFileSync)(h,"utf8"),"settings.json"===c||"mcp.json"===c){let a=p(h);a&&(f=JSON.stringify(r(a),null,2))}u(d,c,String(f)),e.files.push(`${F}/${c}`)}}let h=(0,i.join)(b,"skills");if((0,g.existsSync)(h))for(let a of q(h))d.addFile(`${F}/skills/${a}`,(0,g.readFileSync)((0,i.join)(h,a))),e.files.push(`${F}/skills/${a}`);let l=p((0,i.join)(b,"settings.json"));for(let a of l?.packages??[]){let b="string"==typeof a?a:a?.source;if(!b||b.startsWith("npm:"))continue;let c=(0,k.A0)(b);if((0,i.isAbsolute)(c)&&(0,g.existsSync)(c)){let a=(0,i.basename)(c);for(let b of q(c))d.addFile(`${F}/local-packages/${a}/${b}`,(0,g.readFileSync)((0,i.join)(c,b))),e.files.push(`${F}/local-packages/${a}/${b}`);e.localPackages.push(a)}else e.warnings.push(`Local package skipped (not found or not absolute): ${b}`)}let n=p((0,i.join)(b,"mcp.json")),o=new Set;if(n?.mcpServers)for(let a of Object.values(n.mcpServers))!function a(b,c){if("string"==typeof b){let a=`${G}/bin/`;if(b.startsWith(a)){let d=b.slice(a.length).split("/")[0];d&&c.add(d)}return}if(Array.isArray(b)){for(let d of b)a(d,c);return}if(null!==b&&"object"==typeof b)for(let d of Object.values(b))a(d,c)}(r(a),o);for(let a of o){let c=(0,i.join)(b,"bin",a);(0,g.existsSync)(c)&&(0,g.statSync)(c).isFile()?(d.addFile(`${F}/bin/${a}`,(0,g.readFileSync)(c)),e.files.push(`${F}/bin/${a}`),e.mcpBinScripts.push(a)):e.warnings.push(`MCP bin script referenced but missing: ${a}`)}if(a.includeSessions){let a=(0,i.join)(b,"sessions");if((0,g.existsSync)(a))for(let b of q(a))d.addFile(`${F}/sessions/${b}`,(0,g.readFileSync)((0,i.join)(a,b))),e.files.push(`${F}/sessions/${b}`)}return u(d,"manifest.json",JSON.stringify(e,null,2)),d.toBuffer()}let I=new Set(["npx","uvx","node","uv","npm","git","python3","python","bun","deno"]);function w(a){let b=a.toString("utf8",0,256).split(/\r?\n/,1)[0]??"";return b.startsWith("#!")?b:null}function x(a,b,c){let d=(0,j.getAgentDir)(),e=c??process.platform,f="win32"===e,g=[],h=[];for(let[c,j]of Object.entries(a)){let a,l=s(j),m="string"==typeof l.command?l.command:"",n=Array.isArray(l.args)?l.args.map(String):[],o={command:m,args:n};if(!m){h.push({name:c,original:o,adapted:null,action:"keep",platform:e});continue}let p=function(a,b){if(!a)return"manual";if((0,k.A0)(a).startsWith((0,k.A0)(b)+"/bin/"))return"restore-script";if(a.includes("/")||a.includes("\\")||a.includes(":"))return"keep-with-warning";let c=a.split(/[\s]/)[0];return I.has(c),"keep"}(m,d),q=null;if("restore-script"===p){let j=(0,i.basename)((0,k.A0)(m)),l=b.get(j);if(!l){q=null,a=`bin script ${j} missing from backup`,h.push({name:c,original:o,adapted:q,action:"manual",platform:e,reason:a,installPrompt:E({name:c,original:o,adapted:q,action:"manual",platform:e,reason:a})});continue}if(!y(j)){a=`bin script name rejected (unsafe): ${j}`;let b={name:c,original:o,adapted:null,action:"manual",platform:e,reason:a};h.push({...b,installPrompt:E(b)}),g.push(`${c}: ${a}`);continue}if(!z(l)){a="bin script content rejected (unrecognized shebang)";let b={name:c,original:o,adapted:null,action:"manual",platform:e,reason:a};h.push({...b,installPrompt:E(b)}),g.push(`${c}: ${a}`);continue}if(f){let b=w(l);if(b&&b.includes("node"))q={command:(0,i.join)(d,"bin",`${j}.cmd`),args:n},h.push({name:c,original:o,adapted:q,action:"generate-cmd",platform:e,reason:(0,i.join)(d,"bin",j)});else{a="bash/other shebang wrapper cannot run on Windows; reinstall or adjust manually";let b={name:c,original:o,adapted:null,action:"manual",platform:e,reason:a};h.push({...b,installPrompt:E(b)}),g.push(`${c}: ${a}`)}}else q={command:(0,i.join)(d,"bin",j),args:n},h.push({name:c,original:o,adapted:q,action:"restore-script",platform:e});continue}if("keep-with-warning"===p){q={command:m,args:n},a="absolute path outside agentDir/bin — verify it exists on this machine",h.push({name:c,original:o,adapted:q,action:"keep-with-warning",platform:e,reason:a}),g.push(`${c}: ${a}`);continue}q={command:m,args:n},h.push({name:c,original:o,adapted:q,action:"keep",platform:e})}return{servers:h,warnings:g}}function y(a){return/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(a)&&!a.includes("..")}function z(a){let b=w(a);if(!b)return!1;let c=b.slice(2).trim().split(/\s+/);if(0===c.length)return!1;let d=c[0],e=d.split("/").pop()??d;return!!["node","bash","sh","python3","python","zsh"].includes(e)||"env"===e&&c.length>1&&["node","bash","sh","python3","python"].includes(c[1].split("/").pop()??"")}function A(a){let b;try{b=new(f())(a)}catch(a){throw Error(`Not a valid zip archive: ${a instanceof Error?a.message:String(a)}`)}let c=b.getEntries(),d=(0,g.mkdtempSync)((0,i.join)((0,h.tmpdir)(),"pi-backup-")),e=(0,i.join)(d,F);(0,g.mkdirSync)(e,{recursive:!0});let j=0,k=0;for(let a of c){if(a.isDirectory)continue;let c=a.entryName.replace(/\\/g,"/");if(!c.startsWith(`${F}/`))throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Unexpected entry outside ${F}/: ${c}`);let f=(0,i.resolve)(e,c.slice(F.length+1));if(!f.startsWith((0,i.resolve)(e)+i.sep))throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Path traversal blocked: ${c}`);let h="number"==typeof a.header.size?a.header.size:0;if(j+=h,h>0x20000000||j>0x40000000)throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Backup archive too large when extracted (entry: ${c})`);(0,g.mkdirSync)((0,i.dirname)(f),{recursive:!0}),b.extractEntryTo(a,(0,i.dirname)(f),!1,!0);let l=(0,g.statSync)(f).size;if(k+=l,l>0x20000000||k>0x40000000)throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Backup archive too large when extracted (entry: ${c})`)}let l=(0,i.join)(e,"manifest.json");if(!(0,g.existsSync)(l))throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error("Backup manifest.json missing — not a pi-web backup");let m=p(l);if(!m||1!==m.formatVersion)throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Unsupported backup format version: ${m?.formatVersion??"unknown"} (expected 1)`);let n=p((0,i.join)(e,"mcp.json"))?.mcpServers??{},o=new Map;for(let a of m.mcpBinScripts??[]){let b=(0,i.join)(e,"bin",a);(0,g.existsSync)(b)&&o.set(a,(0,g.readFileSync)(b))}let q=["core","skills","packages","mcp"];return m.includeSessions&&q.push("sessions"),{manifest:m,tempDir:d,servers:n,binScripts:o,categories:q}}function B(a){(0,g.rmSync)(a.tempDir,{recursive:!0,force:!0})}function C(a,b){let c=(0,j.getAgentDir)(),{manifest:d}=a,e={restored:[],needsRestart:[],manual:[],warnings:[]},f=new Set(b.categories),h=new Set(b.skippedMcpServers),m=b=>{let d=(0,i.join)(c,b),f=(0,i.join)(a.tempDir,F,b);(0,g.existsSync)(f)&&((0,g.mkdirSync)((0,i.dirname)(d),{recursive:!0}),(0,l.$)(d,(0,g.readFileSync)(f,"utf8")),e.restored.push(b))};if(f.has("core"))for(let a of["models.json","auth.json","settings.json","mcp.json","models-store.json","AGENTS.md","APPEND_SYSTEM.md"])("auth.json"!==a||d.includeSecrets)&&(m(a),e.needsRestart.push(a));if(f.has("skills")){let b=(0,i.join)(a.tempDir,F,"skills");if((0,g.existsSync)(b)){for(let a of q(b)){let d=(0,i.join)(c,"skills",a);(0,g.mkdirSync)((0,i.dirname)(d),{recursive:!0}),(0,l.$)(d,(0,g.readFileSync)((0,i.join)(b,a),"utf8"))}e.restored.push("skills/")}}if(f.has("packages")){let b=(0,i.join)(c,"settings.json"),f=p(b)??{},h=f.packages??[],j=d.localPackages??[],m=(0,i.join)(a.tempDir,F,"local-packages");for(let a of j){if(!y(a)){e.warnings.push(`Local package ${a} not restored (unsafe name)`);continue}let b=(0,i.join)(m,a);if(!(0,g.existsSync)(b)){e.warnings.push(`Local package ${a} missing from backup`);continue}let d=(0,i.join)(c,"local-packages",a);for(let a of q(b)){let c=(0,i.join)(d,a);(0,g.mkdirSync)((0,i.dirname)(c),{recursive:!0}),(0,l.$)(c,(0,g.readFileSync)((0,i.join)(b,a),"utf8"))}e.restored.push(`local-packages/${a}`)}let n=!1,o=h.map(a=>{let b="string"==typeof a?a:a?.source;if("string"!=typeof b||b.startsWith("npm:"))return a;let d=(0,i.basename)((0,k.A0)(b));if(j.includes(d)){n=!0;let b=(0,i.join)(c,"local-packages",d);return"string"==typeof a?b:{...a,source:b}}return a});if(n){let a={...f,packages:o};(0,l.$)(b,JSON.stringify(a,null,2)),e.restored.push("settings.json (packages paths)"),e.needsRestart.push("settings.json (packages paths)")}for(let a of h.map(a=>"string"==typeof a?a:a?.source).filter(a=>"string"==typeof a&&a.startsWith("npm:")))e.restored.push(`npm package ${a} (queued for reinstall)`)}if(f.has("mcp")){let b=x(a.servers,a.binScripts);e.warnings.push(...b.warnings);let d=p((0,i.join)(c,"mcp.json"))??{},f={};for(let d of b.servers){if(h.has(d.name))continue;if("manual"===d.action){e.manual.push({server:d.name,message:d.reason??"cannot be adapted automatically"});continue}let b=a.servers[d.name]??{},j=s(b);if(f[d.name]={...j,command:d.adapted?.command??j.command,...d.adapted?{args:d.adapted.args}:{}},"restore-script"===d.action){let b=(0,i.basename)((0,k.A0)(String(d.adapted?.command??""))),f=a.binScripts.get(b);if(f&&y(b)&&z(f)){let a=(0,i.join)(c,"bin",b);(0,g.mkdirSync)((0,i.dirname)(a),{recursive:!0}),(0,l.$)(a,f.toString("utf8"));try{(0,g.chmodSync)(a,493)}catch{}e.restored.push(`bin/${b}`)}else e.warnings.push(`bin script ${b} not restored (unsafe name or content)`)}if("generate-cmd"===d.action){let b=(0,i.basename)((0,k.A0)(String(d.adapted?.command??""))).replace(/\.cmd$/,""),f=a.binScripts.get(b);if(f&&y(b)&&z(f)){let a=(0,i.join)(c,"bin",b);(0,g.mkdirSync)((0,i.dirname)(a),{recursive:!0}),(0,l.$)(a,f.toString("utf8"));let d=(0,i.join)(c,"bin",`${b}.cmd`),h=`%~dp0${b}`;(0,l.$)(d,`@node "${h}" %*\r
|
|
2
|
+
`),paused:!0}}((0,e.join)(a,b),c);return s||=f.paused,{name:b,data:f.data}});for(let[a,c]of(t.push({name:b,data:q}),j=(0,d.mkdtempSync)((0,e.join)(o,".restore-")),t.entries()))(0,d.writeFileSync)((0,e.join)(j,String(a)),c.data,{flag:"wx",mode:384,flush:!0});for(let[a,b]of t.entries()){let c=(0,e.join)(l,"sessions",b.name),f=(0,e.join)(j,String(a));(0,d.linkSync)(f,c),n.push({destination:c,source:f})}c.restored.push(...t.map(({name:a})=>`sessions/${a}`)),s&&c.warnings.push(`Restored goal paused; resume manually: ${b}`),"string"!=typeof i.cwd||(0,d.existsSync)(i.cwd)||c.warnings.push(`Original workspace path was retained; select a valid workspace before continuing: ${b}`),i.parentSession&&c.warnings.push(`Parent session path was retained; verify the restored relationship: ${b}`)}catch(f){for(let{destination:a,source:b}of n.reverse())try{let f=(0,d.lstatSync)(b,{bigint:!0}),g=(0,d.lstatSync)(a,{bigint:!0});g.dev===f.dev&&g.ino===f.ino?(0,d.unlinkSync)(a):c.warnings.push(`Rollback kept a replaced session file: ${(0,e.relative)(l,a)}`)}catch(b){"ENOENT"!==b.code&&c.warnings.push(`Session rollback needs manual cleanup: ${(0,e.relative)(l,a)}`)}let a=f instanceof Error&&/^(Invalid |Symbolic link |Session destination )/.test(f.message)?f.message:"File operation failed";c.warnings.push(`Skipped session ${b}: ${a}`)}finally{if(j)try{(0,d.rmSync)(j,{recursive:!0,force:!0})}catch{c.warnings.push(`Session staging needs manual cleanup: ${(0,e.relative)(l,j)}`)}}}for(let a of i)k.has(a)||c.warnings.push(`Skipped orphan or unsupported session file: ${a}`);return c}},17551:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Br:()=>q,LB:()=>u,V6:()=>p,po:()=>r,z0:()=>s});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=c(28967),l=c(18904),m=a([i,l]);[i,l]=m.then?(await m)():m;let t={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(a=(0,i.getAgentDir)()){return(0,f.join)(a,"models.json")}class u extends Error{constructor(a){super(a),this.name="ModelsConfigReadError"}}function p(a=o()){let b;if(!(0,e.existsSync)(a))return{providers:{}};try{let c=(0,e.readFileSync)(a,"utf8").replace(/^\uFEFF/,"");if(!c.trim())return{providers:{}};b=JSON.parse(c.replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*/g,a=>'"'===a[0]?a:"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(a,b)=>b??('"'===a[0]?a:"")))}catch(b){throw new u(`Failed to read ${a}: ${b instanceof Error?b.message:String(b)}`)}if(!n(b))throw new u("Invalid models.json: expected an object");if(void 0!==b.providers&&!n(b.providers))throw new u("Invalid models.json: providers must be an object");return b}async function q(a,b=o()){let c,d=(0,f.dirname)(b);if((0,e.existsSync)(d)||(0,e.mkdirSync)(d,{recursive:!0,mode:448}),!(0,e.existsSync)(b))try{(0,e.writeFileSync)(b,JSON.stringify({providers:{}},null,2),{encoding:"utf8",flag:"wx",mode:384})}catch(a){if("EEXIST"!==a.code)throw a}let g=await h().lock(b,{...t,onCompromised:a=>{c=a}}),i=()=>{if(c)throw c};try{i();let c=p(b),d=await a(c);if(!n(d.data))throw Error("Invalid models.json mutation result");return i(),!1!==d.changed&&((0,j.$)(b,JSON.stringify(d.data,null,2)),(0,k.k)(),(0,l.Ln)(),i()),d.result}finally{try{await g()}catch(a){if(c)throw c;throw a}}}function r(a=o()){try{return p(a)}catch{return{providers:{}}}}function s(a){if(!n(a))throw Error("models.json payload must be an object");if(void 0!==a.providers&&!n(a.providers))throw Error("models.json payload providers must be an object")}d()}catch(a){d(a)}})},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},39006:a=>{"use strict";a.exports=JSON.parse('{"name":"@qt4798/pi-web","version":"0.18.16","description":"Web workspace for the pi coding agent","homepage":"https://github.com/t479842598/pi-web-QT#readme","repository":{"type":"git","url":"git+https://github.com/t479842598/pi-web-QT.git"},"bugs":{"url":"https://github.com/t479842598/pi-web-QT/issues"},"license":"MIT","engines":{"node":">=22.19.0"},"bin":{"pi-web":"bin/pi-web.js"},"files":["bin",".next","!.next/cache","!.next/dev","!.next/standalone","!.next/**/*.js.map","lib/theme","public","next.config.ts","package.json"],"browserslist":["chrome 111","edge 111","firefox 111","safari 16.2","ios_saf 16.2"],"scripts":{"dev":"node bin/fix-pi-agent-undici.js && node bin/with-memory-limit.js nextDev","dev:lan":"node bin/fix-pi-agent-undici.js && node bin/with-memory-limit.js node_modules/.bin/next dev -H 0.0.0.0 -p 0 --turbopack","postinstall":"node bin/prepare-terminal.js","theme:css":"node scripts/generate-theme-css.mjs","prebuild":"node scripts/generate-theme-css.mjs","build":"env -u TURBOPACK -u __NEXT_PRIVATE_STANDALONE_CONFIG next build --webpack","bundle:backend":"node scripts/bundle-backend.mjs","start":"node bin/fix-pi-agent-undici.js && node bin/with-memory-limit.js nextStart","start:lan":"node bin/fix-pi-agent-undici.js && node bin/with-memory-limit.js node_modules/.bin/next start -H 0.0.0.0 -p 0","lint":"eslint .","release":"npm version patch --no-git-tag-version && npm run build && npm publish --access public","test":"node --experimental-strip-types --test $(find app components hooks lib -name \'*.test.mjs\' -print)","test:e2e":"node e2e/run.mjs","test:terminal":"node e2e/terminal.mjs"},"dependencies":{"@earendil-works/pi-agent-core":"0.87.1","@earendil-works/pi-ai":"0.87.1","@earendil-works/pi-coding-agent":"0.87.1","@earendil-works/pi-tui":"0.87.1","@fontsource/ia-writer-quattro":"^5.3.0","@fontsource/lilex":"^5.3.0","@phosphor-icons/react":"^2.1.10","@radix-ui/react-dialog":"^1.1.23","@tanstack/react-virtual":"^3.14.9","@tauri-apps/api":"^2.11.1","@xterm/addon-fit":"0.11.0","@xterm/xterm":"6.0.0","adm-zip":"^0.6.0","ansi_up":"^6.0.6","cmdk":"^1.1.1","js-yaml":"^5.2.3","katex":"^0.16.47","lucide-react":"^1.37.0","mammoth":"^1.12.0","mermaid":"^11.16.1","next":"16.3.6","node-pty":"1.2.0-beta.15","proper-lockfile":"4.1.2","qrcode":"^1.5.4","react":"^19.2.4","react-dom":"^19.2.4","react-markdown":"^10.1.0","react-syntax-highlighter":"^16.1.1","rehype-katex":"^7.0.1","rehype-raw":"^7.0.0","rehype-sanitize":"^6.0.0","remark-cjk-friendly":"^2.3.2","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1","remark-math":"^6.0.0","semver":"7.8.5","undici":"^8.11.0"},"overrides":{"undici":"^8.11.0","@earendil-works/pi-coding-agent":{"undici":"^8.11.0"},"intersection-observer":"npm:noop2@2.0.0","node-domexception":"npm:@profoundlogic/node-domexception@1.0.2"},"allowScripts":{"@google/genai@1.52.0":true,"protobufjs@7.6.5":true,"sharp@0.34.5":true,"unrs-resolver@1.12.2":true},"devDependencies":{"@resvg/resvg-js":"^2.6.2","@tailwindcss/postcss":"^4.2.2","@types/js-yaml":"^4.0.9","@types/node":"^25","@types/proper-lockfile":"4.1.4","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/react-syntax-highlighter":"^15.5.13","@types/semver":"7.8.0","eslint":"^9.39.5","eslint-config-next":"16.3.5","jiti":"^2.7.0","lightningcss":"^1.33.0","playwright":"^1.63.0","postcss":"^8","tailwindcss":"^4.2.2","to-ico":"^1.1.5","typescript":"^5.9.3"}}')},50593:(a,b,c)=>{"use strict";function d(a){return/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")?a.replace(/\\/g,"/"):a}c.d(b,{A0:()=>d})},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},78335:()=>{},89628:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{DT:()=>A,dH:()=>C,g3:()=>B,jE:()=>x,lz:()=>D,uj:()=>v});var e=c(26106),f=c.n(e),g=c(29021),h=c(21820),i=c(33873),j=c(75430),k=c(50593),l=c(8102),m=c(17551),n=c(16284),o=a([j,m]);[j,m]=o.then?(await o)():o;let F="pi-backup",G="${agentDir}",H="${home}";function p(a){if(!(0,g.existsSync)(a))return null;try{let b=JSON.parse((0,g.readFileSync)(a,"utf8"));return null!==b&&"object"==typeof b?b:null}catch{return null}}function q(a){let b=[],c=[""];for(;c.length>0;){let d,e=c.pop(),f=(0,i.join)(a,e);try{d=(0,g.readdirSync)(f)}catch{continue}for(let a of d){let d;if("node_modules"===a||".git"===a)continue;let h=e?`${e}/${a}`:a,j=(0,i.join)(f,a);try{d=(0,g.statSync)(j)}catch{continue}d.isDirectory()?c.push(h):d.isFile()&&b.push(h)}}return b}function r(a){let b=(0,k.A0)((0,j.getAgentDir)()),c=(0,k.A0)((0,h.homedir)());return t(a,a=>{let d=(0,k.A0)(a);return d===b?G:d===c?H:d.startsWith(b+"/")?G+d.slice(b.length):d.startsWith(c+"/")?H+d.slice(c.length):a})}function s(a){let b=(0,j.getAgentDir)(),c=(0,h.homedir)();return t(a,a=>a===G?b:a===H?c:a.startsWith(G+"/")?(0,i.join)(b,...a.slice(G.length+1).split("/")):a.startsWith(H+"/")?(0,i.join)(c,...a.slice(H.length+1).split("/")):a)}function t(a,b){if("string"==typeof a)return b(a);if(Array.isArray(a))return a.map(a=>t(a,b));if(null!==a&&"object"==typeof a){let c={};for(let[d,e]of Object.entries(a))c[d]=t(e,b);return c}return a}function u(a,b,c){a.addFile(`${F}/${b}`,Buffer.isBuffer(c)?c:Buffer.from(c,"utf8"))}function v(a){let b=(0,j.getAgentDir)(),d=new(f()),e={formatVersion:1,createdAt:new Date().toISOString(),...function(){try{return{piWebVersion:c(39006).version??"unknown",piSdkVersion:"unknown"}}catch{return{piWebVersion:"unknown",piSdkVersion:"unknown"}}}(),sourcePlatform:process.platform,includeSecrets:a.includeSecrets,includeSessions:a.includeSessions,files:[],mcpBinScripts:[],localPackages:[],absolutePaths:[],warnings:[]};for(let c of["models.json","auth.json","settings.json","mcp.json","models-store.json","AGENTS.md","APPEND_SYSTEM.md"]){let f,h=(0,i.join)(b,c);if((0,g.existsSync)(h)&&("auth.json"!==c||a.includeSecrets)){if("models.json"===c){let b;try{b=(0,m.V6)(h)}catch{throw Error("Cannot export models.json: configuration is unreadable or invalid")}f=JSON.stringify(r(a.includeSecrets?b:function(a){let b=a.providers??{},c={};for(let[a,d]of Object.entries(b))c[a]={...d},Object.hasOwn(c[a],"apiKey")&&(c[a].apiKey="");return{...a,providers:c}}(b)),null,2)}else if(f=(0,g.readFileSync)(h,"utf8"),"settings.json"===c||"mcp.json"===c){let a=p(h);a&&(f=JSON.stringify(r(a),null,2))}u(d,c,String(f)),e.files.push(`${F}/${c}`)}}let h=(0,i.join)(b,"skills");if((0,g.existsSync)(h))for(let a of q(h))d.addFile(`${F}/skills/${a}`,(0,g.readFileSync)((0,i.join)(h,a))),e.files.push(`${F}/skills/${a}`);let l=p((0,i.join)(b,"settings.json"));for(let a of l?.packages??[]){let b="string"==typeof a?a:a?.source;if(!b||b.startsWith("npm:"))continue;let c=(0,k.A0)(b);if((0,i.isAbsolute)(c)&&(0,g.existsSync)(c)){let a=(0,i.basename)(c);for(let b of q(c))d.addFile(`${F}/local-packages/${a}/${b}`,(0,g.readFileSync)((0,i.join)(c,b))),e.files.push(`${F}/local-packages/${a}/${b}`);e.localPackages.push(a)}else e.warnings.push(`Local package skipped (not found or not absolute): ${b}`)}let n=p((0,i.join)(b,"mcp.json")),o=new Set;if(n?.mcpServers)for(let a of Object.values(n.mcpServers))!function a(b,c){if("string"==typeof b){let a=`${G}/bin/`;if(b.startsWith(a)){let d=b.slice(a.length).split("/")[0];d&&c.add(d)}return}if(Array.isArray(b)){for(let d of b)a(d,c);return}if(null!==b&&"object"==typeof b)for(let d of Object.values(b))a(d,c)}(r(a),o);for(let a of o){let c=(0,i.join)(b,"bin",a);(0,g.existsSync)(c)&&(0,g.statSync)(c).isFile()?(d.addFile(`${F}/bin/${a}`,(0,g.readFileSync)(c)),e.files.push(`${F}/bin/${a}`),e.mcpBinScripts.push(a)):e.warnings.push(`MCP bin script referenced but missing: ${a}`)}if(a.includeSessions){let a=(0,i.join)(b,"sessions");if((0,g.existsSync)(a))for(let b of q(a))d.addFile(`${F}/sessions/${b}`,(0,g.readFileSync)((0,i.join)(a,b))),e.files.push(`${F}/sessions/${b}`)}return u(d,"manifest.json",JSON.stringify(e,null,2)),d.toBuffer()}let I=new Set(["npx","uvx","node","uv","npm","git","python3","python","bun","deno"]);function w(a){let b=a.toString("utf8",0,256).split(/\r?\n/,1)[0]??"";return b.startsWith("#!")?b:null}function x(a,b,c){let d=(0,j.getAgentDir)(),e=c??process.platform,f="win32"===e,g=[],h=[];for(let[c,j]of Object.entries(a)){let a,l=s(j),m="string"==typeof l.command?l.command:"",n=Array.isArray(l.args)?l.args.map(String):[],o={command:m,args:n};if(!m){h.push({name:c,original:o,adapted:null,action:"keep",platform:e});continue}let p=function(a,b){if(!a)return"manual";if((0,k.A0)(a).startsWith((0,k.A0)(b)+"/bin/"))return"restore-script";if(a.includes("/")||a.includes("\\")||a.includes(":"))return"keep-with-warning";let c=a.split(/[\s]/)[0];return I.has(c),"keep"}(m,d),q=null;if("restore-script"===p){let j=(0,i.basename)((0,k.A0)(m)),l=b.get(j);if(!l){q=null,a=`bin script ${j} missing from backup`,h.push({name:c,original:o,adapted:q,action:"manual",platform:e,reason:a,installPrompt:E({name:c,original:o,adapted:q,action:"manual",platform:e,reason:a})});continue}if(!y(j)){a=`bin script name rejected (unsafe): ${j}`;let b={name:c,original:o,adapted:null,action:"manual",platform:e,reason:a};h.push({...b,installPrompt:E(b)}),g.push(`${c}: ${a}`);continue}if(!z(l)){a="bin script content rejected (unrecognized shebang)";let b={name:c,original:o,adapted:null,action:"manual",platform:e,reason:a};h.push({...b,installPrompt:E(b)}),g.push(`${c}: ${a}`);continue}if(f){let b=w(l);if(b&&b.includes("node"))q={command:(0,i.join)(d,"bin",`${j}.cmd`),args:n},h.push({name:c,original:o,adapted:q,action:"generate-cmd",platform:e,reason:(0,i.join)(d,"bin",j)});else{a="bash/other shebang wrapper cannot run on Windows; reinstall or adjust manually";let b={name:c,original:o,adapted:null,action:"manual",platform:e,reason:a};h.push({...b,installPrompt:E(b)}),g.push(`${c}: ${a}`)}}else q={command:(0,i.join)(d,"bin",j),args:n},h.push({name:c,original:o,adapted:q,action:"restore-script",platform:e});continue}if("keep-with-warning"===p){q={command:m,args:n},a="absolute path outside agentDir/bin — verify it exists on this machine",h.push({name:c,original:o,adapted:q,action:"keep-with-warning",platform:e,reason:a}),g.push(`${c}: ${a}`);continue}q={command:m,args:n},h.push({name:c,original:o,adapted:q,action:"keep",platform:e})}return{servers:h,warnings:g}}function y(a){return/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(a)&&!a.includes("..")}function z(a){let b=w(a);if(!b)return!1;let c=b.slice(2).trim().split(/\s+/);if(0===c.length)return!1;let d=c[0],e=d.split("/").pop()??d;return!!["node","bash","sh","python3","python","zsh"].includes(e)||"env"===e&&c.length>1&&["node","bash","sh","python3","python"].includes(c[1].split("/").pop()??"")}function A(a){let b;try{b=new(f())(a)}catch(a){throw Error(`Not a valid zip archive: ${a instanceof Error?a.message:String(a)}`)}let c=b.getEntries(),d=(0,g.mkdtempSync)((0,i.join)((0,h.tmpdir)(),"pi-backup-")),e=(0,i.join)(d,F);(0,g.mkdirSync)(e,{recursive:!0});let j=0,k=0;for(let a of c){if(a.isDirectory)continue;let c=a.entryName.replace(/\\/g,"/");if(!c.startsWith(`${F}/`))throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Unexpected entry outside ${F}/: ${c}`);let f=(0,i.resolve)(e,c.slice(F.length+1));if(!f.startsWith((0,i.resolve)(e)+i.sep))throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Path traversal blocked: ${c}`);let h="number"==typeof a.header.size?a.header.size:0;if(j+=h,h>0x20000000||j>0x40000000)throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Backup archive too large when extracted (entry: ${c})`);(0,g.mkdirSync)((0,i.dirname)(f),{recursive:!0}),b.extractEntryTo(a,(0,i.dirname)(f),!1,!0);let l=(0,g.statSync)(f).size;if(k+=l,l>0x20000000||k>0x40000000)throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Backup archive too large when extracted (entry: ${c})`)}let l=(0,i.join)(e,"manifest.json");if(!(0,g.existsSync)(l))throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error("Backup manifest.json missing — not a pi-web backup");let m=p(l);if(!m||1!==m.formatVersion)throw(0,g.rmSync)(d,{recursive:!0,force:!0}),Error(`Unsupported backup format version: ${m?.formatVersion??"unknown"} (expected 1)`);let n=p((0,i.join)(e,"mcp.json"))?.mcpServers??{},o=new Map;for(let a of m.mcpBinScripts??[]){let b=(0,i.join)(e,"bin",a);(0,g.existsSync)(b)&&o.set(a,(0,g.readFileSync)(b))}let q=["core","skills","packages","mcp"];return m.includeSessions&&q.push("sessions"),{manifest:m,tempDir:d,servers:n,binScripts:o,categories:q}}function B(a){(0,g.rmSync)(a.tempDir,{recursive:!0,force:!0})}function C(a,b){let c=(0,j.getAgentDir)(),{manifest:d}=a,e={restored:[],needsRestart:[],manual:[],warnings:[]},f=new Set(b.categories),h=new Set(b.skippedMcpServers),m=b=>{let d=(0,i.join)(c,b),f=(0,i.join)(a.tempDir,F,b);(0,g.existsSync)(f)&&((0,g.mkdirSync)((0,i.dirname)(d),{recursive:!0}),(0,l.$)(d,(0,g.readFileSync)(f,"utf8")),e.restored.push(b))};if(f.has("core"))for(let a of["models.json","auth.json","settings.json","mcp.json","models-store.json","AGENTS.md","APPEND_SYSTEM.md"])("auth.json"!==a||d.includeSecrets)&&(m(a),e.needsRestart.push(a));if(f.has("skills")){let b=(0,i.join)(a.tempDir,F,"skills");if((0,g.existsSync)(b)){for(let a of q(b)){let d=(0,i.join)(c,"skills",a);(0,g.mkdirSync)((0,i.dirname)(d),{recursive:!0}),(0,l.$)(d,(0,g.readFileSync)((0,i.join)(b,a),"utf8"))}e.restored.push("skills/")}}if(f.has("packages")){let b=(0,i.join)(c,"settings.json"),f=p(b)??{},h=f.packages??[],j=d.localPackages??[],m=(0,i.join)(a.tempDir,F,"local-packages");for(let a of j){if(!y(a)){e.warnings.push(`Local package ${a} not restored (unsafe name)`);continue}let b=(0,i.join)(m,a);if(!(0,g.existsSync)(b)){e.warnings.push(`Local package ${a} missing from backup`);continue}let d=(0,i.join)(c,"local-packages",a);for(let a of q(b)){let c=(0,i.join)(d,a);(0,g.mkdirSync)((0,i.dirname)(c),{recursive:!0}),(0,l.$)(c,(0,g.readFileSync)((0,i.join)(b,a),"utf8"))}e.restored.push(`local-packages/${a}`)}let n=!1,o=h.map(a=>{let b="string"==typeof a?a:a?.source;if("string"!=typeof b||b.startsWith("npm:"))return a;let d=(0,i.basename)((0,k.A0)(b));if(j.includes(d)){n=!0;let b=(0,i.join)(c,"local-packages",d);return"string"==typeof a?b:{...a,source:b}}return a});if(n){let a={...f,packages:o};(0,l.$)(b,JSON.stringify(a,null,2)),e.restored.push("settings.json (packages paths)"),e.needsRestart.push("settings.json (packages paths)")}for(let a of h.map(a=>"string"==typeof a?a:a?.source).filter(a=>"string"==typeof a&&a.startsWith("npm:")))e.restored.push(`npm package ${a} (queued for reinstall)`)}if(f.has("mcp")){let b=x(a.servers,a.binScripts);e.warnings.push(...b.warnings);let d=p((0,i.join)(c,"mcp.json"))??{},f={};for(let d of b.servers){if(h.has(d.name))continue;if("manual"===d.action){e.manual.push({server:d.name,message:d.reason??"cannot be adapted automatically"});continue}let b=a.servers[d.name]??{},j=s(b);if(f[d.name]={...j,command:d.adapted?.command??j.command,...d.adapted?{args:d.adapted.args}:{}},"restore-script"===d.action){let b=(0,i.basename)((0,k.A0)(String(d.adapted?.command??""))),f=a.binScripts.get(b);if(f&&y(b)&&z(f)){let a=(0,i.join)(c,"bin",b);(0,g.mkdirSync)((0,i.dirname)(a),{recursive:!0}),(0,l.$)(a,f.toString("utf8"));try{(0,g.chmodSync)(a,493)}catch{}e.restored.push(`bin/${b}`)}else e.warnings.push(`bin script ${b} not restored (unsafe name or content)`)}if("generate-cmd"===d.action){let b=(0,i.basename)((0,k.A0)(String(d.adapted?.command??""))).replace(/\.cmd$/,""),f=a.binScripts.get(b);if(f&&y(b)&&z(f)){let a=(0,i.join)(c,"bin",b);(0,g.mkdirSync)((0,i.dirname)(a),{recursive:!0}),(0,l.$)(a,f.toString("utf8"));let d=(0,i.join)(c,"bin",`${b}.cmd`),h=`%~dp0${b}`;(0,l.$)(d,`@node "${h}" %*\r
|
|
3
3
|
`),e.restored.push(`bin/${b}`,`bin/${b}.cmd`)}else e.warnings.push(`bin script ${b} not restored (unsafe name or content)`)}}(0,l.$)((0,i.join)(c,"mcp.json"),JSON.stringify({...d,mcpServers:f},null,2)),e.restored.push("mcp.json"),e.needsRestart.push("mcp.json")}if(f.has("sessions")){let b=(0,n.U)((0,i.join)(a.tempDir,F,"sessions"),c);e.restored.push(...b.restored),e.warnings.push(...b.warnings)}return{report:e,npmPackages:D(a)}}function D(a){let b=p((0,i.join)(a.tempDir,F,"settings.json"));return(b?.packages??[]).map(a=>"string"==typeof a?a:a?.source).filter(a=>"string"==typeof a&&a.startsWith("npm:"))}function E(a){let b=(0,j.getAgentDir)(),c="win32"===process.platform?"Windows":"darwin"===process.platform?"macOS":"Linux",d=JSON.stringify(a.original,null,2);return[`请在当前环境(${c})安装 MCP server「${a.name}」。`,"\n## 原始配置(来自备份)\n```json",d,"```\n\n## 统一安装约定",`- 脚本类工具统一安装到 \`${(0,i.join)(b,"bin")}\`(Windows 上同时生成同名 \`.cmd\` 包装)。`,`- npm 类工具统一通过 \`npx <pkg>\` 运行,或安装到 \`${(0,i.join)(b,"npm")}\` 后引用。`,"- 依赖(node/npx/uv 等)统一从 PATH 解析,不要硬编码本机绝对路径。\n- 安装完成后,输出可直接写入 `~/.pi/agent/mcp.json` 的完整 server 配置片段(含 command/args/transport/lifecycle)。\n- 不要修改 mcp.json 中其它 server 的配置。\n\n安装过程中如遇障碍,请说明原因并给出替代方案。"].join("\n")}d()}catch(a){d(a)}})},96487:()=>{}};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
exports.id=5582,exports.ids=[5582],exports.modules={766:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{q8:()=>s});var e=c(73024),f=c(51455),g=c(76760),h=c(80481),i=c(75430),j=c(8102),k=a([i]);function l(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function m(a){if(!a.trim())return null;try{let b=JSON.parse(a);return b&&"object"==typeof b?b:null}catch{return null}}async function n(a){try{let b,c,d=await (0,f.stat)(a),g=null,i=0,j="";for await(let d of(0,h.createInterface)({input:(0,e.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0})){let a=m(d);if(!a)continue;if(!g){if("session"!==a.type)return null;g=a;continue}if("session_info"===a.type&&(b="string"==typeof a.name&&a.name.trim()?a.name.trim():void 0),"message"!==a.type)continue;i++;let e=function(a){let b=a.message;if(!b||"string"!=typeof b.role||!("content"in b)||"user"!==b.role&&"assistant"!==b.role)return;if("number"==typeof b.timestamp)return b.timestamp;let c=new Date(a.timestamp).getTime();return Number.isNaN(c)?void 0:c}(a);"number"==typeof e&&(c=Math.max(c??0,e));let f=a.message;if(!f||"string"!=typeof f.role||!("content"in f)||"user"!==f.role&&"assistant"!==f.role)continue;let h=function(a){let b=a.content;return"string"==typeof b?b:Array.isArray(b)?b.filter(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join(" "):""}(f);h&&(j||"user"!==f.role||(j=h))}if(!g)return null;let k="string"==typeof g.cwd?g.cwd:"",l="string"==typeof g.parentSession?g.parentSession:void 0,n="string"==typeof g.timestamp?new Date(g.timestamp).getTime():NaN,o="number"==typeof c&&c>0?new Date(c):Number.isNaN(n)?d.mtime:new Date(n);return{path:a,id:g.id,cwd:k,name:b,parentSessionPath:l,created:new Date(g.timestamp),modified:o,messageCount:i,firstMessage:j||"(no messages)"}}catch{return null}}async function o(a){let b;try{b=(await (0,f.readdir)(a,{withFileTypes:!0})).filter(a=>a.isDirectory()||a.isSymbolicLink())}catch{return[]}let c=[];for(let d of b){let b=(0,g.join)(a,d.name);try{for(let a of(await (0,f.readdir)(b)))a.endsWith(".jsonl")&&c.push((0,g.join)(b,a))}catch{}}return c}async function p(a,b){let c=0,d=new Set;for(;c<a.length||d.size>0;){for(;c<a.length&&d.size<10;){let e=a[c++],f=b(e).finally(()=>d.delete(f));d.add(f)}d.size>0&&await Promise.race(d)}}function q(){return globalThis.__piWebScanIndex||(globalThis.__piWebScanIndex=new Map),globalThis.__piWebScanIndex}function r(){return(0,g.join)((0,i.getAgentDir)(),"pi-web-session-index.json")}async function s(a={}){!function(){if(globalThis.__piWebScanIndexLoaded)return;globalThis.__piWebScanIndexLoaded=!0;let a=r();if((0,e.existsSync)(a))try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));if(!l(b)||1!==b.version||!l(b.entries))return;let c=q();for(let[a,d]of Object.entries(b.entries)){if(!l(d)||!l(d.fp)||!l(d.info))continue;let{fp:b,info:e}=d;if("number"!=typeof b.size||!Number.isSafeInteger(b.size)||b.size<0||"number"!=typeof b.mtimeMs||!Number.isFinite(b.mtimeMs)||e.path!==a||"string"!=typeof e.id||"string"!=typeof e.cwd||"string"!=typeof e.firstMessage||void 0!==e.name&&"string"!=typeof e.name||void 0!==e.parentSessionPath&&"string"!=typeof e.parentSessionPath||"number"!=typeof e.messageCount||!Number.isSafeInteger(e.messageCount)||e.messageCount<0||"string"!=typeof e.created||"string"!=typeof e.modified)continue;let f=new Date(e.created),g=new Date(e.modified);Number.isFinite(f.getTime())&&Number.isFinite(g.getTime())&&c.set(a,{fp:{size:b.size,mtimeMs:b.mtimeMs},info:{path:a,id:e.id,cwd:e.cwd,name:e.name,parentSessionPath:e.parentSessionPath,firstMessage:e.firstMessage,messageCount:e.messageCount,created:f,modified:g}})}}catch{}}();let b=a.deferDetails??!1,c=(0,g.join)((0,i.getAgentDir)(),"sessions"),d=await o(c),h=q(),k=new Set(d),t=[];for(let a of h.keys())k.has(a)||t.push(a);for(let a of t)h.delete(a);let u=await Promise.all(d.map(async a=>{try{let b=await (0,f.stat)(a);return{filePath:a,fp:{size:b.size,mtimeMs:b.mtimeMs}}}catch{return{filePath:a,fp:null}}})),v=[],w=Array(d.length).fill(null),x=Array(d.length).fill(-1/0);for(let[a,{filePath:c,fp:d}]of u.entries()){if(!d){h.delete(c);continue}x[a]=d.mtimeMs;let f=h.get(c);if(f&&f.fp.size===d.size&&f.fp.mtimeMs===d.mtimeMs){w[a]=f.info;continue}if(b){let b=function(a,b){let c=function(a){let b=(0,e.openSync)(a,"r");try{let a=Buffer.allocUnsafe(65536),c=(0,e.readSync)(b,a,0,a.length,0);if(c<=0)return null;for(let b of a.subarray(0,c).toString("utf8").split("\n")){let a=m(b.replace(/\r$/,""));if(a)return"session"===a.type?a:null}return null}catch{return null}finally{(0,e.closeSync)(b)}}(a);if(!c||"string"!=typeof c.id||"string"!=typeof c.cwd||"string"!=typeof c.timestamp)return null;let d=new Date(c.timestamp);return Number.isFinite(d.getTime())?{path:a,id:c.id,cwd:c.cwd,created:d,modified:new Date(b.mtimeMs),messageCount:0,firstMessage:"",..."string"==typeof c.parentSession?{parentSessionPath:c.parentSession}:{},detailsPending:!0}:null}(c,d);b?w[a]=b:h.delete(c);continue}v.push({filePath:c,fp:d,resultIndex:a})}return await p(v,async({filePath:a,fp:b,resultIndex:c})=>{let d=await n(a);d?(h.set(a,{fp:b,info:d}),w[c]=d):h.delete(a)}),(v.length>0||t.length>0)&&(globalThis.__piWebScanIndexSaveQueued||(globalThis.__piWebScanIndexSaveQueued=!0,queueMicrotask(()=>{globalThis.__piWebScanIndexSaveQueued=void 0;try{let a={};for(let[b,c]of q())a[b]=c;(0,j.$)(r(),JSON.stringify({version:1,entries:a}))}catch{}}))),w.flatMap((a,b)=>a?[{info:a,mtimeMs:x[b]}]:[]).sort((a,b)=>b.info.modified.getTime()-a.info.modified.getTime()||b.mtimeMs-a.mtimeMs||(0,g.basename)(b.info.path).localeCompare((0,g.basename)(a.info.path))).map(({info:a})=>a)}i=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},6999:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Tu:()=>o,o$:()=>n});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=a([i]);i=(k.then?(await k)():k)[0];let p={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function l(){return(0,f.join)((0,i.getAgentDir)(),"settings.json")}function m(){let a=l();if(!(0,e.existsSync)(a))return{};try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));return null===b||"object"!=typeof b||Array.isArray(b)?{}:b}catch{return{}}}async function n(a){let b=l(),c=null,d=await h().lock(b,{...p,onCompromised:a=>{c=a}});try{if(c)throw c;let d=m(),e=await a(d);if(c)throw c;if(!e||"object"!=typeof e||!e.settings)throw Error("settings.json mutation must return { settings }");if(!1===e.changed)return{changed:!1};if((0,j.$)(b,JSON.stringify(e.settings,null,2)),c)throw c;return{changed:!0}}finally{d().catch(()=>{})}}function o(){return m()}d()}catch(a){d(a)}})},7048:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$u:()=>L,I6:()=>J,IR:()=>A,fw:()=>z,gY:()=>K,kj:()=>E,o2:()=>N,ph:()=>I,pv:()=>O,q9:()=>F,rh:()=>B,st:()=>P,tP:()=>M});var e=c(75430),f=c(90426),g=c(29021),h=c(33873),i=c(21898),j=c(8102),k=c(82536),l=c(27367),m=c(41761),n=a([e,l]);[e,l]=n.then?(await n)():n;let M="pi-web:subagent",N="pi-web:subagent-status",O="pi-web:subagent-result",P=["Agent","get_subagent_result","steer_subagent"],Q=["read","bash","edit","write","grep","find","ls"],R=new Set(Q),S=new Set(P),T=new Set(["off","minimal","low","medium","high","xhigh","max"]),U=new Set(["description","display_name","tools","load_skills","load_extensions","enabled","inherit_context","run_in_background","model","thinking","max_turns","prompt_mode","color","isolation","persist_session"]),V=/^(?:\uFEFF)?---[ \t]*(?:\r\n|\n|\r)/,W=new Set(["none","all","true","false"]),X=[{name:"general-purpose",displayName:"General purpose",description:"Handle a focused implementation or investigation task",systemPrompt:"Work autonomously on the delegated task. Keep the final answer concise and include important files, decisions, and remaining risks.",tools:Q,loadSkills:!1,loadExtensions:!1,promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0,scope:"builtin"},{name:"explore",displayName:"Explore",description:"Quickly inspect a codebase without modifying it",systemPrompt:"Explore the codebase to answer the delegated question. Do not modify files. Report concrete findings with file paths and relevant symbols.",tools:[...m.kU],loadSkills:!1,loadExtensions:!1,promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0,scope:"builtin"},{name:"plan",displayName:"Plan",description:"Design an implementation plan without modifying files",systemPrompt:"Produce an implementation-ready plan for the delegated task. Inspect the repository as needed, do not modify files, and call out dependencies, risks, and verification steps.",tools:[...m.kU],loadSkills:!1,loadExtensions:!1,promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0,scope:"builtin"}];function o(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function p(a,b){return"boolean"==typeof a?a:b}function q(a,b){return"boolean"==typeof a?a:!!Array.isArray(a)||"string"==typeof a||b}function r(a){return(Array.isArray(a)?a:"string"==typeof a?a.split(","):[]).map(a=>String(a).trim()).filter(Boolean)}function s(a,b){let c=r(a);return c.includes("none")?[]:c.includes("all")||c.includes("*")?[...Q]:0===c.length?[...b]:[...new Set(c.filter(a=>R.has(a)))]}function t(a){return[...new Set(r(a).filter(a=>a.toLowerCase().startsWith("ext:")))]}function u(a,b,c,d){(void 0===c||"boolean"==typeof c||"string"==typeof c&&W.has(c.trim().toLowerCase()))&&(a[b]=d)}function v(a,b){return(0,k.x)(b,new Set([a]))}function w(a,b,c){return(0,g.existsSync)(a)&&("global"===b||v(c,a))?(0,g.readdirSync)(a,{withFileTypes:!0}).filter(a=>a.isFile()&&a.name.endsWith(".md")).map(c=>(function(a,b){try{let c=(0,g.readFileSync)(a,"utf8"),{data:d,rest:e}=(0,i.yv)(c),f=o(d?.name)??(0,h.basename)(a,".md");if(!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(f))return null;let j=o(d?.thinking),k="number"==typeof d?.max_turns?Math.floor(d.max_turns):void 0,l=s(d?.tools,Q),m=new Set(s(d?.disallowed_tools,[])),n=new Set(t(d?.disallowed_tools).map(a=>a.toLowerCase())),r=t(d?.tools).filter(a=>!n.has(a.toLowerCase()));return{name:f,displayName:o(d?.display_name)??f,description:o(d?.description)??f,systemPrompt:e.trim(),tools:l.filter(a=>!m.has(a)),...r.length>0?{extensionTools:r}:{},loadSkills:q(d?.load_skills??d?.skills,!1),loadExtensions:q(d?.load_extensions??d?.extensions,r.length>0),...o(d?.model)?{model:o(d?.model)}:{},...j&&T.has(j)?{thinking:j}:{},...k&&k>0?{maxTurns:k}:{},inheritContext:p(d?.inherit_context,!1),runInBackground:p(d?.run_in_background,!1),promptMode:d?.prompt_mode==="replace"?"replace":"append",...o(d?.color)?{color:o(d?.color)}:{},...d?.isolation==="worktree"||d?.isolation==="off"?{isolation:d.isolation}:{},..."boolean"==typeof d?.persist_session?{persistSession:d.persist_session}:{},enabled:p(d?.enabled,!0),scope:b,filePath:a}}catch{return null}})((0,h.join)(a,c.name),b)).filter(a=>null!==a):[]}function x(a){return[[(0,h.join)((0,e.getAgentDir)(),"agents"),"global"],[(0,h.join)((0,h.resolve)(a),".agents","agents"),"workspace"],[(0,h.join)((0,h.resolve)(a),".pi","agents"),"project"]]}function y(){let a=(0,l.Q$)();return X.map(b=>({...b,tools:[...b.tools],enabled:!a.has(b.name.toLowerCase())}))}function z(a){let b=y();for(let[c,d]of x(a))b.push(...w(c,d,a));return b.sort((a,b)=>a.displayName.localeCompare(b.displayName))}function A(a){let b=new Map(y().map(a=>[a.name.toLowerCase(),a]));for(let[c,d]of x(a))for(let e of w(c,d,a))b.set(e.name.toLowerCase(),e);return[...b.values()].sort((a,b)=>a.displayName.localeCompare(b.displayName))}function B(a,b){return A(a).find(a=>a.name.toLowerCase()===b.trim().toLowerCase()&&a.enabled)}function C(a){let b=a.trim();if(!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(b))throw Error("Agent name may contain only letters, numbers, dots, underscores, and hyphens");return b}function D(a,b){let c=function(a,b){if("global"===b)return(0,h.join)((0,e.getAgentDir)(),"agents");if("project"===b)return(0,h.join)((0,h.resolve)(a),".pi","agents");throw Error("Agent scope must be global or project")}(a,b);if("global"===b)return c;let d=c;for(;!(0,g.existsSync)(d);){let a=(0,h.dirname)(d);if(a===d)throw Error("Agent profile directory is outside the project root");d=a}if(!v(a,d))throw Error("Agent profile directory is outside the project root");return c}function E(a,b,c){var d,e;let k,l,m=C(c.name),n=[...new Set(c.tools.filter(a=>R.has(a)))],o=[...new Set(c.extensionTools??[])];if(c.thinking&&!T.has(c.thinking))throw Error(`Invalid thinking level: ${c.thinking}`);if(void 0!==c.maxTurns&&(!Number.isFinite(c.maxTurns)||c.maxTurns<0))throw Error("Max turns must be a non-negative number");let p=c.maxTurns&&c.maxTurns>0?Math.floor(c.maxTurns):void 0,q=c.displayName.trim()||m,s=c.description.trim()||m,t=c.systemPrompt.trim(),w=c.model?.trim()||void 0,x=!0===c.loadSkills,y=!0===c.loadExtensions,z="replace"===c.promptMode?"replace":"append",A=D(a,b);if((0,g.mkdirSync)(A,{recursive:!0}),"project"===b&&!v(a,A))throw Error("Agent profile directory is outside the project root");let B=(0,h.join)(A,`${m}.md`),E=function(a){if(!(0,g.existsSync)(a))return{};let b=(0,g.readFileSync)(a,"utf8"),{data:c}=(0,i.yv)(b);if(c)return c;if(V.test(b))throw Error("Cannot save agent profile: existing frontmatter is invalid");return{}}(B),F={description:s,display_name:q,tools:(d=[...n,...o],e=E.tools,k=r(e).filter(a=>a.startsWith("ext:")),(l=[...d,...k.filter(a=>!d.includes(a))]).length>0?l.join(", "):"none"),load_skills:x,load_extensions:y,enabled:c.enabled,inherit_context:c.inheritContext,run_in_background:c.runInBackground,prompt_mode:z};u(F,"skills",E.skills,x),u(F,"extensions",E.extensions,y),w&&(F.model=w),c.thinking&&(F.thinking=c.thinking),p&&(F.max_turns=p),c.color?.trim()&&(F.color=c.color.trim()),c.isolation&&(F.isolation=c.isolation),void 0!==c.persistSession&&(F.persist_session=c.persistSession);let G={...F};for(let[a,b]of Object.entries(function(a){let b={};for(let[c,d]of Object.entries(a))U.has(c)||(b[c]=d);return b}(E)))a in G||(G[a]=b);let H=(0,f.Bh)(G,{noRefs:!0,lineWidth:1e3}).trimEnd();return(0,j.$)(B,`---
|
|
1
|
+
exports.id=5582,exports.ids=[5582],exports.modules={766:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{jr:()=>t,q8:()=>s});var e=c(73024),f=c(51455),g=c(76760),h=c(80481),i=c(75430),j=c(8102),k=a([i]);function l(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function m(a){if(!a.trim())return null;try{let b=JSON.parse(a);return b&&"object"==typeof b?b:null}catch{return null}}async function n(a){try{let b,c,d=await (0,f.stat)(a),g=null,i=0,j="";for await(let d of(0,h.createInterface)({input:(0,e.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0})){let a=m(d);if(!a)continue;if(!g){if("session"!==a.type)return null;g=a;continue}if("session_info"===a.type&&(b="string"==typeof a.name&&a.name.trim()?a.name.trim():void 0),"message"!==a.type)continue;i++;let e=function(a){let b=a.message;if(!b||"string"!=typeof b.role||!("content"in b)||"user"!==b.role&&"assistant"!==b.role)return;if("number"==typeof b.timestamp)return b.timestamp;let c=new Date(a.timestamp).getTime();return Number.isNaN(c)?void 0:c}(a);"number"==typeof e&&(c=Math.max(c??0,e));let f=a.message;if(!f||"string"!=typeof f.role||!("content"in f)||"user"!==f.role&&"assistant"!==f.role)continue;let h=function(a){let b=a.content;return"string"==typeof b?b:Array.isArray(b)?b.filter(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join(" "):""}(f);h&&(j||"user"!==f.role||(j=h))}if(!g)return null;let k="string"==typeof g.cwd?g.cwd:"",l="string"==typeof g.parentSession?g.parentSession:void 0,n="string"==typeof g.timestamp?new Date(g.timestamp).getTime():NaN,o="number"==typeof c&&c>0?new Date(c):Number.isNaN(n)?d.mtime:new Date(n);return{path:a,id:g.id,cwd:k,name:b,parentSessionPath:l,created:new Date(g.timestamp),modified:o,messageCount:i,firstMessage:j||"(no messages)"}}catch{return null}}async function o(a){let b;try{b=(await (0,f.readdir)(a,{withFileTypes:!0})).filter(a=>a.isDirectory()||a.isSymbolicLink())}catch{return[]}let c=[];for(let d of b){let b=(0,g.join)(a,d.name);try{for(let a of(await (0,f.readdir)(b)))a.endsWith(".jsonl")&&c.push((0,g.join)(b,a))}catch{}}return c}async function p(a,b){let c=0,d=new Set;for(;c<a.length||d.size>0;){for(;c<a.length&&d.size<10;){let e=a[c++],f=b(e).finally(()=>d.delete(f));d.add(f)}d.size>0&&await Promise.race(d)}}function q(){return globalThis.__piWebScanIndex||(globalThis.__piWebScanIndex=new Map),globalThis.__piWebScanIndex}function r(){return(0,g.join)((0,i.getAgentDir)(),"pi-web-session-index.json")}async function s(a={}){!function(){if(globalThis.__piWebScanIndexLoaded)return;globalThis.__piWebScanIndexLoaded=!0;let a=r();if((0,e.existsSync)(a))try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));if(!l(b)||1!==b.version||!l(b.entries))return;let c=q();for(let[a,d]of Object.entries(b.entries)){if(!l(d)||!l(d.fp)||!l(d.info))continue;let{fp:b,info:e}=d;if("number"!=typeof b.size||!Number.isSafeInteger(b.size)||b.size<0||"number"!=typeof b.mtimeMs||!Number.isFinite(b.mtimeMs)||e.path!==a||"string"!=typeof e.id||"string"!=typeof e.cwd||"string"!=typeof e.firstMessage||void 0!==e.name&&"string"!=typeof e.name||void 0!==e.parentSessionPath&&"string"!=typeof e.parentSessionPath||"number"!=typeof e.messageCount||!Number.isSafeInteger(e.messageCount)||e.messageCount<0||"string"!=typeof e.created||"string"!=typeof e.modified)continue;let f=new Date(e.created),g=new Date(e.modified);Number.isFinite(f.getTime())&&Number.isFinite(g.getTime())&&c.set(a,{fp:{size:b.size,mtimeMs:b.mtimeMs},info:{path:a,id:e.id,cwd:e.cwd,name:e.name,parentSessionPath:e.parentSessionPath,firstMessage:e.firstMessage,messageCount:e.messageCount,created:f,modified:g}})}}catch{}}();let b=a.deferDetails??!1,c=(0,g.join)((0,i.getAgentDir)(),"sessions"),d=await o(c);globalThis.__piSessionMembership={files:new Set(d)};let h=q(),k=new Set(d),t=[];for(let a of h.keys())k.has(a)||t.push(a);for(let a of t)h.delete(a);let u=await Promise.all(d.map(async a=>{try{let b=await (0,f.stat)(a);return{filePath:a,fp:{size:b.size,mtimeMs:b.mtimeMs}}}catch{return{filePath:a,fp:null}}})),v=[],w=Array(d.length).fill(null),x=Array(d.length).fill(-1/0);for(let[a,{filePath:c,fp:d}]of u.entries()){if(!d){h.delete(c);continue}x[a]=d.mtimeMs;let f=h.get(c);if(f&&f.fp.size===d.size&&f.fp.mtimeMs===d.mtimeMs){w[a]=f.info;continue}if(b){let b=function(a,b){let c=function(a){let b=(0,e.openSync)(a,"r");try{let a=Buffer.allocUnsafe(65536),c=(0,e.readSync)(b,a,0,a.length,0);if(c<=0)return null;for(let b of a.subarray(0,c).toString("utf8").split("\n")){let a=m(b.replace(/\r$/,""));if(a)return"session"===a.type?a:null}return null}catch{return null}finally{(0,e.closeSync)(b)}}(a);if(!c||"string"!=typeof c.id||"string"!=typeof c.cwd||"string"!=typeof c.timestamp)return null;let d=new Date(c.timestamp);return Number.isFinite(d.getTime())?{path:a,id:c.id,cwd:c.cwd,created:d,modified:new Date(b.mtimeMs),messageCount:0,firstMessage:"",..."string"==typeof c.parentSession?{parentSessionPath:c.parentSession}:{},detailsPending:!0}:null}(c,d);b?w[a]=b:h.delete(c);continue}v.push({filePath:c,fp:d,resultIndex:a})}return await p(v,async({filePath:a,fp:b,resultIndex:c})=>{let d=await n(a);d?(h.set(a,{fp:b,info:d}),w[c]=d):h.delete(a)}),(v.length>0||t.length>0)&&(globalThis.__piWebScanIndexSaveQueued||(globalThis.__piWebScanIndexSaveQueued=!0,queueMicrotask(()=>{globalThis.__piWebScanIndexSaveQueued=void 0;try{let a={};for(let[b,c]of q())a[b]=c;(0,j.$)(r(),JSON.stringify({version:1,entries:a}))}catch{}}))),w.flatMap((a,b)=>a?[{info:a,mtimeMs:x[b]}]:[]).sort((a,b)=>b.info.modified.getTime()-a.info.modified.getTime()||b.mtimeMs-a.mtimeMs||(0,g.basename)(b.info.path).localeCompare((0,g.basename)(a.info.path))).map(({info:a})=>a)}function t(a,b,c=Date.now()){let d=globalThis.__piSessionMembership,e=globalThis.__piSessionMembershipCheck??={at:-1/0,busy:!1};if(d&&!e.busy&&!(c-e.at<1e3))return e.busy=!0,e.at=c,o(a).then(a=>{globalThis.__piSessionMembership!==d||d.files.size===a.length&&a.every(a=>d.files.has(a))||(globalThis.__piSessionMembership={files:new Set(a)},b())}).catch(()=>void 0).finally(()=>{e.busy=!1})}i=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},6999:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Tu:()=>o,o$:()=>n});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=a([i]);i=(k.then?(await k)():k)[0];let p={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function l(){return(0,f.join)((0,i.getAgentDir)(),"settings.json")}function m(){let a=l();if(!(0,e.existsSync)(a))return{};try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));return null===b||"object"!=typeof b||Array.isArray(b)?{}:b}catch{return{}}}async function n(a){let b=l(),c=null,d=await h().lock(b,{...p,onCompromised:a=>{c=a}});try{if(c)throw c;let d=m(),e=await a(d);if(c)throw c;if(!e||"object"!=typeof e||!e.settings)throw Error("settings.json mutation must return { settings }");if(!1===e.changed)return{changed:!1};if((0,j.$)(b,JSON.stringify(e.settings,null,2)),c)throw c;return{changed:!0}}finally{d().catch(()=>{})}}function o(){return m()}d()}catch(a){d(a)}})},7048:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$u:()=>L,I6:()=>J,IR:()=>A,fw:()=>z,gY:()=>K,kj:()=>E,o2:()=>N,ph:()=>I,pv:()=>O,q9:()=>F,rh:()=>B,st:()=>P,tP:()=>M});var e=c(75430),f=c(90426),g=c(29021),h=c(33873),i=c(21898),j=c(8102),k=c(82536),l=c(27367),m=c(41761),n=a([e,l]);[e,l]=n.then?(await n)():n;let M="pi-web:subagent",N="pi-web:subagent-status",O="pi-web:subagent-result",P=["Agent","get_subagent_result","steer_subagent"],Q=["read","bash","edit","write","grep","find","ls"],R=new Set(Q),S=new Set(P),T=new Set(["off","minimal","low","medium","high","xhigh","max"]),U=new Set(["description","display_name","tools","load_skills","load_extensions","enabled","inherit_context","run_in_background","model","thinking","max_turns","prompt_mode","color","isolation","persist_session"]),V=/^(?:\uFEFF)?---[ \t]*(?:\r\n|\n|\r)/,W=new Set(["none","all","true","false"]),X=[{name:"general-purpose",displayName:"General purpose",description:"Handle a focused implementation or investigation task",systemPrompt:"Work autonomously on the delegated task. Keep the final answer concise and include important files, decisions, and remaining risks.",tools:Q,loadSkills:!1,loadExtensions:!1,promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0,scope:"builtin"},{name:"explore",displayName:"Explore",description:"Quickly inspect a codebase without modifying it",systemPrompt:"Explore the codebase to answer the delegated question. Do not modify files. Report concrete findings with file paths and relevant symbols.",tools:[...m.kU],loadSkills:!1,loadExtensions:!1,promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0,scope:"builtin"},{name:"plan",displayName:"Plan",description:"Design an implementation plan without modifying files",systemPrompt:"Produce an implementation-ready plan for the delegated task. Inspect the repository as needed, do not modify files, and call out dependencies, risks, and verification steps.",tools:[...m.kU],loadSkills:!1,loadExtensions:!1,promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0,scope:"builtin"}];function o(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function p(a,b){return"boolean"==typeof a?a:b}function q(a,b){return"boolean"==typeof a?a:!!Array.isArray(a)||"string"==typeof a||b}function r(a){return(Array.isArray(a)?a:"string"==typeof a?a.split(","):[]).map(a=>String(a).trim()).filter(Boolean)}function s(a,b){let c=r(a);return c.includes("none")?[]:c.includes("all")||c.includes("*")?[...Q]:0===c.length?[...b]:[...new Set(c.filter(a=>R.has(a)))]}function t(a){return[...new Set(r(a).filter(a=>a.toLowerCase().startsWith("ext:")))]}function u(a,b,c,d){(void 0===c||"boolean"==typeof c||"string"==typeof c&&W.has(c.trim().toLowerCase()))&&(a[b]=d)}function v(a,b){return(0,k.xk)(b,new Set([a]))}function w(a,b,c){return(0,g.existsSync)(a)&&("global"===b||v(c,a))?(0,g.readdirSync)(a,{withFileTypes:!0}).filter(a=>a.isFile()&&a.name.endsWith(".md")).map(c=>(function(a,b){try{let c=(0,g.readFileSync)(a,"utf8"),{data:d,rest:e}=(0,i.yv)(c),f=o(d?.name)??(0,h.basename)(a,".md");if(!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(f))return null;let j=o(d?.thinking),k="number"==typeof d?.max_turns?Math.floor(d.max_turns):void 0,l=s(d?.tools,Q),m=new Set(s(d?.disallowed_tools,[])),n=new Set(t(d?.disallowed_tools).map(a=>a.toLowerCase())),r=t(d?.tools).filter(a=>!n.has(a.toLowerCase()));return{name:f,displayName:o(d?.display_name)??f,description:o(d?.description)??f,systemPrompt:e.trim(),tools:l.filter(a=>!m.has(a)),...r.length>0?{extensionTools:r}:{},loadSkills:q(d?.load_skills??d?.skills,!1),loadExtensions:q(d?.load_extensions??d?.extensions,r.length>0),...o(d?.model)?{model:o(d?.model)}:{},...j&&T.has(j)?{thinking:j}:{},...k&&k>0?{maxTurns:k}:{},inheritContext:p(d?.inherit_context,!1),runInBackground:p(d?.run_in_background,!1),promptMode:d?.prompt_mode==="replace"?"replace":"append",...o(d?.color)?{color:o(d?.color)}:{},...d?.isolation==="worktree"||d?.isolation==="off"?{isolation:d.isolation}:{},..."boolean"==typeof d?.persist_session?{persistSession:d.persist_session}:{},enabled:p(d?.enabled,!0),scope:b,filePath:a}}catch{return null}})((0,h.join)(a,c.name),b)).filter(a=>null!==a):[]}function x(a){return[[(0,h.join)((0,e.getAgentDir)(),"agents"),"global"],[(0,h.join)((0,h.resolve)(a),".agents","agents"),"workspace"],[(0,h.join)((0,h.resolve)(a),".pi","agents"),"project"]]}function y(){let a=(0,l.Q$)();return X.map(b=>({...b,tools:[...b.tools],enabled:!a.has(b.name.toLowerCase())}))}function z(a){let b=y();for(let[c,d]of x(a))b.push(...w(c,d,a));return b.sort((a,b)=>a.displayName.localeCompare(b.displayName))}function A(a){let b=new Map(y().map(a=>[a.name.toLowerCase(),a]));for(let[c,d]of x(a))for(let e of w(c,d,a))b.set(e.name.toLowerCase(),e);return[...b.values()].sort((a,b)=>a.displayName.localeCompare(b.displayName))}function B(a,b){return A(a).find(a=>a.name.toLowerCase()===b.trim().toLowerCase()&&a.enabled)}function C(a){let b=a.trim();if(!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(b))throw Error("Agent name may contain only letters, numbers, dots, underscores, and hyphens");return b}function D(a,b){let c=function(a,b){if("global"===b)return(0,h.join)((0,e.getAgentDir)(),"agents");if("project"===b)return(0,h.join)((0,h.resolve)(a),".pi","agents");throw Error("Agent scope must be global or project")}(a,b);if("global"===b)return c;let d=c;for(;!(0,g.existsSync)(d);){let a=(0,h.dirname)(d);if(a===d)throw Error("Agent profile directory is outside the project root");d=a}if(!v(a,d))throw Error("Agent profile directory is outside the project root");return c}function E(a,b,c){var d,e;let k,l,m=C(c.name),n=[...new Set(c.tools.filter(a=>R.has(a)))],o=[...new Set(c.extensionTools??[])];if(c.thinking&&!T.has(c.thinking))throw Error(`Invalid thinking level: ${c.thinking}`);if(void 0!==c.maxTurns&&(!Number.isFinite(c.maxTurns)||c.maxTurns<0))throw Error("Max turns must be a non-negative number");let p=c.maxTurns&&c.maxTurns>0?Math.floor(c.maxTurns):void 0,q=c.displayName.trim()||m,s=c.description.trim()||m,t=c.systemPrompt.trim(),w=c.model?.trim()||void 0,x=!0===c.loadSkills,y=!0===c.loadExtensions,z="replace"===c.promptMode?"replace":"append",A=D(a,b);if((0,g.mkdirSync)(A,{recursive:!0}),"project"===b&&!v(a,A))throw Error("Agent profile directory is outside the project root");let B=(0,h.join)(A,`${m}.md`),E=function(a){if(!(0,g.existsSync)(a))return{};let b=(0,g.readFileSync)(a,"utf8"),{data:c}=(0,i.yv)(b);if(c)return c;if(V.test(b))throw Error("Cannot save agent profile: existing frontmatter is invalid");return{}}(B),F={description:s,display_name:q,tools:(d=[...n,...o],e=E.tools,k=r(e).filter(a=>a.startsWith("ext:")),(l=[...d,...k.filter(a=>!d.includes(a))]).length>0?l.join(", "):"none"),load_skills:x,load_extensions:y,enabled:c.enabled,inherit_context:c.inheritContext,run_in_background:c.runInBackground,prompt_mode:z};u(F,"skills",E.skills,x),u(F,"extensions",E.extensions,y),w&&(F.model=w),c.thinking&&(F.thinking=c.thinking),p&&(F.max_turns=p),c.color?.trim()&&(F.color=c.color.trim()),c.isolation&&(F.isolation=c.isolation),void 0!==c.persistSession&&(F.persist_session=c.persistSession);let G={...F};for(let[a,b]of Object.entries(function(a){let b={};for(let[c,d]of Object.entries(a))U.has(c)||(b[c]=d);return b}(E)))a in G||(G[a]=b);let H=(0,f.Bh)(G,{noRefs:!0,lineWidth:1e3}).trimEnd();return(0,j.$)(B,`---
|
|
2
2
|
${H}
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
${t}
|
|
6
|
-
`),{...c,name:m,displayName:q,description:s,systemPrompt:t,tools:n,...o.length>0?{extensionTools:o}:{},loadSkills:x,loadExtensions:y,...w?{model:w}:{model:void 0},...p?{maxTurns:p}:{maxTurns:void 0},promptMode:z,...c.color?{color:c.color}:{},...c.isolation?{isolation:c.isolation}:{},...void 0!==c.persistSession?{persistSession:c.persistSession}:{},scope:b,filePath:B}}function F(a,b,c){let d=C(c),e=(0,h.join)(D(a,b),`${d}.md`);(0,g.existsSync)(e)&&(0,g.unlinkSync)(e)}function G(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function H(a){let b=a.find(a=>"custom"===a.type&&a.customType===M);if(!b||"custom"!==b.type||!G(b.data))return null;let c=b.data;return 1!==c.version||"string"!=typeof c.parentSessionId||"string"!=typeof c.parentSessionPath?null:c}function I(a){let b=H(a);if(!b)return null;let c=b.resourceSnapshot,d=G(c)&&!0===c.loadSkills,e=G(c)&&!0===c.loadExtensions;return G(c)&&1===c.version&&Array.isArray(c.appendSystemPrompt)&&c.appendSystemPrompt.every(a=>"string"==typeof a)&&Array.isArray(c.tools)&&c.tools.every(a=>"string"==typeof a&&a.length>0&&!S.has(a)&&(R.has(a)||e))?{appendSystemPrompt:[...c.appendSystemPrompt],tools:[...new Set(c.tools)],loadSkills:d,loadExtensions:e,..."string"==typeof c.exactSystemPrompt?{exactSystemPrompt:c.exactSystemPrompt}:{}}:null}function J(a,b){return[...new Set([...a,...[...b].filter(a=>!S.has(a))])]}function K(a,b){let c=b.map(a=>a.slice(4).toLowerCase());return[...a].flatMap(a=>{let b=a.path.replaceAll("\\","/").split("/").at(-2)??a.path,d=(a.sourceInfo?.source??"").replace(/^npm:/,""),e=new Set([b.toLowerCase(),d.toLowerCase()]);return c.some(b=>{if("*"===b)return!0;let[c,d]=b.split("/",2);return e.has(c)&&(!d||a.tools.has(d))})?[...a.tools.keys()].filter(a=>c.some(b=>{if("*"===b||b.endsWith("/*"))return"*"===b||e.has(b.slice(0,-2));let[c,d]=b.split("/",2);return e.has(c)&&(!d||d===a)})):[]})}function L(a,b,c){let d=H(a);if(!d)return null;let e=[...a].reverse().find(a=>"custom"===a.type&&(a.customType===O||a.customType===N)),f=e?.type==="custom"&&e.customType===O?e:void 0,g=f?.type==="custom"&&G(f.data)?f.data:void 0,h=e?.type==="custom"&&e.customType===N?e:void 0,i=h?.type==="custom"&&G(h.data)?h.data:void 0,j=g&&("completed"===g.status||"failed"===g.status||"aborted"===g.status)?g.status:i?.version===1&&("queued"===i.status||"running"===i.status)?i.status:"interrupted";return{sessionId:b,sessionPath:c,parentSessionId:d.parentSessionId,parentToolCallId:"string"==typeof d.parentToolCallId?d.parentToolCallId:"",profile:"string"==typeof d.profile?d.profile:"general-purpose",description:"string"==typeof d.description?d.description:"Subagent",task:"string"==typeof d.task?d.task:"",runInBackground:!0===d.runInBackground,status:j,createdAt:"string"==typeof d.createdAt?d.createdAt:"",...g&&"string"==typeof g.completedAt?{completedAt:g.completedAt}:{},...g&&"string"==typeof g.result?{result:g.result}:{},...g&&"string"==typeof g.error?{error:g.error}:{},..."string"==typeof d.worktreePath?{worktreePath:d.worktreePath}:{},..."string"==typeof d.worktreeBranch?{worktreeBranch:d.worktreeBranch}:{},...g&&"string"==typeof g.worktreeCleanupError?{worktreeCleanupError:g.worktreeCleanupError}:{}}}d()}catch(a){d(a)}})},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},12039:(a,b,c)=>{"use strict";function d(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function e(a){return function(a,b={}){if("assistant"!==a.role)return a;let c=a.content;if(!Array.isArray(c))return a;let e=c.map(a=>(function(a,b={}){if(!d(a)||"toolCall"!==a.type)return null;let c={type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input},e=b.includeStreamingRawInput?function(a){if("string"==typeof a.rawInput)return a.rawInput;if("string"==typeof a.partialJson)return a.partialJson;if("string"==typeof a.partialArgs)return a.partialArgs;let b=d(a.customInput)?a.customInput:null,c=b&&"string"==typeof b.property?b.property:null,e=d(a.arguments)?a.arguments:null;return c&&e&&"string"==typeof e[c]?e[c]:void 0}(a):void 0;return void 0===e?c:{...c,rawInput:e}})(a,b)??a);return{...a,content:e}}(a)}c.d(b,{B:()=>e})},20495:(a,b,c)=>{"use strict";c.d(b,{_:()=>j,j:()=>i});var d=c(73024),e=c(80974),f=c.n(e),g=c(8102);let h={realpath:!1,retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function i(a,b){if(!(0,d.existsSync)(a))return b(void 0);try{return b(JSON.parse((0,d.readFileSync)(a,"utf8")))}catch{return b(void 0)}}async function j(a,b,c){let d=null,e=await f().lock(a,{...h,onCompromised:a=>{d=a}});try{if(d)throw d;let e=i(a,b),f=await c(e);if(d)throw d;if(!f||"object"!=typeof f||!("value"in f))throw Error(`${a} mutation must return { value }`);if(!1===f.changed)return{value:f.value,changed:!1};if((0,g.$)(a,JSON.stringify(f.value,null,2)),d)throw d;return{value:f.value,changed:!0}}finally{e().catch(()=>{})}}},21898:(a,b,c)=>{"use strict";c.d(b,{yv:()=>f});var d=c(90426);let e=/^(?:\uFEFF)?---[ \t]*(?:\r\n|\n|\r)/;function f(a){let b=function(a){let b=e.exec(a);if(!b)return null;let c=/^---[ \t]*(?:(?:\r\n|\n|\r)|$)/gm;c.lastIndex=b[0].length;let d=c.exec(a);return d?{yaml:a.slice(b[0].length,d.index).replace(/(?:\r\n|\n|\r)$/,""),rest:a.slice(d.index+d[0].length)}:null}(a);if(!b)return{data:null,rest:a};try{let a=(0,d.Hh)(b.yaml);if(a&&"object"==typeof a&&!Array.isArray(a))return{data:a,rest:b.rest}}catch{}return{data:null,rest:b.rest}}},24923:(a,b,c)=>{"use strict";c.d(b,{IL:()=>w,KI:()=>p,P9:()=>s,l:()=>v,xw:()=>u});var d=c(79646),e=c(29021),f=c(33873),g=c(28354),h=c(25252),i=c(58864);let j=(0,g.promisify)(d.execFile);function k(){return globalThis.__piProjectCache||(globalThis.__piProjectCache=new Map),globalThis.__piProjectCache}let l=0;function m(){globalThis.__piProjectCache?.clear(),globalThis.__piProjectCacheGeneration=(globalThis.__piProjectCacheGeneration??0)+1,globalThis.__piProjectRefresh?.clear()}async function n(a,b,c=1e4){let{stdout:d}=await j("git",["-C",a,...b],{timeout:c,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return d.trim()}function o(a){try{return(0,e.realpathSync)(a)}catch{return a}}async function p(a){!function(){let a=Date.now();if(a-l<6e4)return;l=a;let b=k();for(let[c,d]of b)d.expiresAt<=a&&b.delete(c)}();let b=k(),c=b.get(a),d=Date.now();if(c&&c.expiresAt>d)return c.info;if(c)return function(a){let b=globalThis.__piProjectRefresh??=new Map;if(b.has(a))return;let c=globalThis.__piProjectCacheGeneration??0,d=q(a).then(b=>{(globalThis.__piProjectCacheGeneration??0)===c&&k().set(a,{info:b,expiresAt:Date.now()+6e4})}).catch(()=>{}).finally(()=>{b.get(a)===d&&b.delete(a)});b.set(a,d)}(a),c.info;let e=await q(a);return b.set(a,{info:e,expiresAt:Date.now()+6e4}),e}async function q(a){let b;try{if(!(0,e.existsSync)(a))return function(a){let b=(0,f.dirname)(a);if(!b.endsWith("-worktrees"))return null;let c=b.slice(0,-10);return c&&(0,e.existsSync)((0,f.join)(c,".git"))?{projectRoot:o(c),branch:(0,f.basename)(a),isWorktree:!0,isTopLevel:!0}:null}(a)??{projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1};let[c,d,g,h]=(await n(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),[j,k,l]=[c,d,g].map(i.gB),m=o(a),p=(0,i.Eb)(l,m),q=!(0,i.Eb)(k,j)&&p,r=q?(0,f.dirname)(j):l;b={projectRoot:p?o(r):a,branch:h&&"HEAD"!==h?h:null,isWorktree:q,isTopLevel:p}}catch{b={projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1}}return b}async function r(a){let b=await n(a,["rev-parse","--path-format=absolute","--git-common-dir"]);return o((0,f.dirname)((0,i.gB)(b)))}async function s(a){let b=await n(a,["worktree","list","--porcelain"]),c=[],d=null,f=()=>{d?.path&&!d.prunable&&(0,e.existsSync)(d.path)&&c.push({path:d.path,branch:d.branch??null,isMain:0===c.length}),d=null};for(let a of b.split("\n"))a.startsWith("worktree ")?(f(),d={path:(0,i.gB)(a.slice(9).trim())}):a.startsWith("branch ")&&d?d.branch=a.slice(7).trim().replace(/^refs\/heads\//,""):a.startsWith("prunable")&&d?d.prunable=!0:""===a.trim()&&f();return f(),c}function t(a,b){return a.find(a=>(0,i.Eb)(a.path,b))}function u(a,b){return t(a,o(b))?.path??null}async function v(a,b){let c=b.trim();if(!c)throw Error("Branch name is required");let d=c.replace(/[\/\\:*?"<>|\s]+/g,"-").replace(/^-+|-+$/g,"");if(!d)throw Error(`Invalid branch name: ${b}`);let g=await r(a),i=`${(0,f.resolve)(g)}-worktrees`,j=(0,f.join)(i,d);if((0,e.existsSync)(j))throw Error(`Directory already exists: ${j}`);(0,e.mkdirSync)(i,{recursive:!0});let k=!1;try{await n(g,["rev-parse","--verify","--quiet",`refs/heads/${c}`]),k=!0}catch{k=!1}try{if(k)await n(g,["worktree","add","--",j,c],3e5);else{let a;try{await n(g,["rev-parse","--verify","--quiet",`refs/remotes/origin/${c}`]),a=`refs/remotes/origin/${c}`}catch{a=void 0}let b=["worktree","add","-b",c,"--",j];a&&b.push(a),await n(g,b,3e5)}}catch(a){throw Error(x(a))}return(0,h.wz)(j),m(),{path:j,branch:c}}async function w(a,b,c=!1){let d=t(await s(a),b);if(!d)throw Error(`Not a worktree of this repository: ${b}`);if(d.isMain)throw Error("Cannot remove the main worktree");try{await n(a,["worktree","remove",...c?["--force"]:[],d.path])}catch(a){throw Error(x(a))}(0,h.sM)(b),m()}function x(a){let b=a.stderr;return"string"==typeof b&&b.trim()?b.trim():a instanceof Error?a.message:String(a)}},25252:(a,b,c)=>{"use strict";c.d(b,{HM:()=>f,Nw:()=>e,sM:()=>h,wz:()=>g});var d=c(58864);function e(a){return(0,d.W3)(a)}function f(){return globalThis.__piAdditionalAllowedRoots||(globalThis.__piAdditionalAllowedRoots=new Set),globalThis.__piAdditionalAllowedRoots}function g(a){if(!a)return;let b=e(a);f().add(b),globalThis.__piAllowedRootsCache?.roots.add(b)}function h(a){if(!a)return;let b=e(a);f().delete(b),globalThis.__piAllowedRootsCache=void 0}},27367:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{M6:()=>k,N:()=>o,Q$:()=>n,UF:()=>s,UM:()=>r,ef:()=>p,hd:()=>m,o9:()=>q});var e=c(73024),f=c(76760),g=c(75430),h=c(8102),i=a([g]);g=(i.then?(await i)():i)[0];let s=32;function j(a){if(!Array.isArray(a))return[];let b=[],c=new Set;for(let d of a){if("string"!=typeof d)continue;let a=d.trim(),e=a.toLowerCase();!a||c.has(e)||(c.add(e),b.push(a))}return b}function k(a=(0,g.getAgentDir)()){return(0,f.join)(a,"agents","settings.json")}function l(a){if(!(0,e.existsSync)(a))return{};let b=JSON.parse((0,e.readFileSync)(a,"utf8"));if(null===b||"object"!=typeof b||Array.isArray(b))throw Error("Invalid subagent settings: expected an object");return b}function m(a=k()){var b,c,d,e;let f=l(a);return c=!0===f.builtInEnabled,b=f.maxConcurrent,d="number"==typeof b&&Number.isInteger(b)&&b>=1&&b<=s?b:10,e=j(f.disabledBuiltIns),Object.defineProperty({builtInEnabled:c,disabledBuiltIns:e},"maxConcurrent",{value:d,enumerable:!1,configurable:!0})}function n(a=k()){try{return new Set(m(a).disabledBuiltIns.map(a=>a.toLowerCase()))}catch{return new Set}}function o(a=k()){try{return m(a).builtInEnabled}catch{return!1}}function p(a,b=k()){let c=l(b);return(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,h.$)(b,JSON.stringify({...c,version:1,builtInEnabled:a},null,2)),m(b)}function q(a,b,c=k()){let d=a.trim();if(!d)throw Error("Sub-agent name is required");let g=l(c),i=j(g.disabledBuiltIns),n=d.toLowerCase(),o=i.some(a=>a.toLowerCase()===n);if(b===o)return m(c);let p=b?o?i:[...i,d]:i.filter(a=>a.toLowerCase()!==n);return(0,e.mkdirSync)((0,f.dirname)(c),{recursive:!0}),(0,h.$)(c,JSON.stringify({...g,version:1,disabledBuiltIns:p},null,2)),m(c)}function r(a,b=k()){if(!Number.isInteger(a)||a<1||a>s)throw Error(`maxConcurrent must be an integer between 1 and ${s}`);let c=l(b);return(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,h.$)(b,JSON.stringify({...c,version:1,maxConcurrent:a},null,2)),m(b)}d()}catch(a){d(a)}})},40239:(a,b,c)=>{"use strict";c.d(b,{JJ:()=>h,Lc:()=>i,w_:()=>j});var d=c(76760),e=c(20495);function f(a){return(0,d.join)(a,"session-archive.json")}function g(a){let b={};if(!a||"object"!=typeof a||Array.isArray(a))return b;for(let[c,d]of Object.entries(a)){if(!c||!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.archivedAt;b[c]={archivedAt:"string"==typeof a?a:""}}return b}function h(a){return(0,e.j)(f(a),g)}async function i(a,b,c){let{value:d}=await (0,e._)(f(a),g,a=>{if(c)return a[b]?{value:a,changed:!1}:{value:{...a,[b]:{archivedAt:new Date().toISOString()}}};if(!(b in a))return{value:a,changed:!1};let d={...a};return delete d[b],{value:d}});return d}async function j(a,b){await i(a,b,!1)}},40402:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>e.getAgentDir,BR:()=>S,D5:()=>I,DK:()=>U,G1:()=>O,H6:()=>x,O5:()=>z,O8:()=>R,Uv:()=>W,Vg:()=>V,bA:()=>F,dQ:()=>D,eP:()=>T,j6:()=>N,mD:()=>E,os:()=>P,rJ:()=>C,u1:()=>Q,zH:()=>y});var e=c(75430),f=c(29021),g=c(79748),h=c(33873),i=c(12039),j=c(67264),k=c(50880),l=c(74244),m=c(45902),n=c(79535),o=c(24923),p=c(6999),q=c(40239),r=c(7048),s=c(766),t=a([e,p,r,s]);[e,p,r,s]=t.then?(await t)():t;let $=s.q8,_=null;function u(a,b,c){let d=(0,f.openSync)(a,"r");try{let a=[],e=0,g=0,h=!1;for(;e<b&&g<c;){let i=Buffer.allocUnsafe(Math.min(4096,b-e)),j=(0,f.readSync)(d,i,0,i.length,e);if(0===j){h=!0;break}e+=j;let k=i.subarray(0,j),l=k.length;for(let a=0;a<k.length;a+=1)if(10===k[a]&&(g+=1)===c){l=a+1;break}a.push(k.subarray(0,l))}let i=Buffer.concat(a).toString("utf8"),j=i.split("\n");return h||i.endsWith("\n")||j.pop(),""===j.at(-1)&&j.pop(),j.map(a=>a.endsWith("\r")?a.slice(0,-1):a)}finally{(0,f.closeSync)(d)}}function v(a,b){let c=(0,f.openSync)(a,"r");try{let a=(0,f.fstatSync)(c).size,d=Math.max(0,a-b),e=Buffer.allocUnsafe(a-d),g=(0,f.readSync)(c,e,0,e.length,d);if(0===g)return[];let h=e.subarray(0,g).toString("utf8").split("\n");if(d>0){let a=Buffer.allocUnsafe(1);(0,f.readSync)(c,a,0,1,d-1),10!==a[0]&&h.shift()}return""===h.at(-1)&&h.pop(),h.map(a=>a.endsWith("\r")?a.slice(0,-1):a)}finally{(0,f.closeSync)(c)}}function w(a){return a.flatMap(a=>{try{return[JSON.parse(a)]}catch{return[]}})}function x(a){let b;if(a){try{b=v(a,65536)}catch{return}for(let a=b.length-1;a>=0;a-=1){let c=function(a){try{let b=JSON.parse(a);if("session"===b.type)return;return"string"==typeof b.id&&b.id?b.id:void 0}catch{return}}(b[a]);if(c)return c}}}async function y(a){let b=[...new Set(a.map(a=>a.cwd).filter(Boolean))],c=new Map;return await Promise.all(b.map(async a=>{c.set(a,await (0,o.KI)(a))})),a.map(a=>{let b=a.cwd?c.get(a.cwd):void 0,d=b?.projectRoot??a.cwd;return{...a,projectRoot:d,projectKey:(0,l.z)(d),...b?.branch?{branch:b.branch}:{},...b?.isWorktree?{isWorktree:!0}:{}}})}function z(a,b){let c=new Map(b.map(a=>[a.id,a]));for(let b of a)c.set(b.id,b);return[...c.values()].sort((a,b)=>b.modified.localeCompare(a.modified))}async function A(a){let b=(0,p.Tu)(),c=Array.isArray(b.sessionPins)?b.sessionPins:[],d=new Set(c.filter(a=>"string"==typeof a)),f=(0,q.JJ)((0,e.getAgentDir)()),g=new Map;for(let b of a)g.set((0,m.$)(b.path),b.id);return y(a.map(a=>(function(a,b,c){R(a.id,a.path);let{originSessionId:d,subagent:e}=function(a,b){let c=a.parentSessionPath?b.get((0,m.$)(a.parentSessionPath)):void 0;if(!a.parentSessionPath)return{originSessionId:c,subagent:null};try{var d;let b,e=(0,r.$u)((d=a.path,(b=w(u(d,262144,400).slice(1))).some(a=>"custom"===a.type&&a.customType===r.tP)?[...b,...w(v(d,262144))]:b),a.id,a.path);return{originSessionId:c,subagent:e}}catch{return{originSessionId:c,subagent:null}}}(a,b),f=!0===a.detailsPending;return{path:a.path,id:a.id,cwd:a.cwd,name:a.name,created:a.created.toISOString(),modified:a.modified.toISOString(),messageCount:a.messageCount,firstMessage:f&&!a.firstMessage?"":(0,j.CS)(a.firstMessage||"(no messages)").slice(0,300),parentSessionId:d,...e?{relation:{kind:"subagent",parentSessionId:e.parentSessionId,profile:e.profile,description:e.description,status:e.status,...e.createdAt?{createdAt:e.createdAt}:{},...e.completedAt?{completedAt:e.completedAt}:{}}}:a.parentSessionPath?{relation:{kind:"fork",...d?{originSessionId:d}:{}}}:{},transient:!1,...f?{detailsPending:!0}:{},pinned:c.pinSet.has(a.id),archived:!!c.archive[a.id],...c.archive[a.id]?{archivedAt:c.archive[a.id].archivedAt}:{},importedFrom:a.importedFrom}})(a,g,{pinSet:d,archive:f})))}async function B(){let a=globalThis.__piListSessionsOverride??$;return A(await a())}async function C(){return A(await (0,s.q8)({deferDetails:!0}))}async function D(a={}){a.force&&E();let b=globalThis.__piSessionListGeneration??0,c=globalThis.__piSessionListCache;if(c&&c.generation===b&&Date.now()-c.ts<1e4)return c.data;let d=globalThis.__piSessionListStaleData;if(a.allowStale&&(c||d))return D().catch(()=>void 0),c?.data??d;if(globalThis.__piSessionListPromise&&globalThis.__piSessionListPromiseGeneration===b)return globalThis.__piSessionListPromise;let e=B().then(a=>(globalThis.__piSessionListGeneration??0)!==b?D():(globalThis.__piSessionListCache={data:a,ts:Date.now(),generation:b},globalThis.__piSessionListStaleData=a,a)).finally(()=>{globalThis.__piSessionListPromise===e&&(globalThis.__piSessionListPromise=void 0,globalThis.__piSessionListPromiseGeneration=void 0)});return globalThis.__piSessionListPromise=e,globalThis.__piSessionListPromiseGeneration=b,e}function E(){let a=globalThis.__piSessionListCache;a&&(globalThis.__piSessionListStaleData=a.data),globalThis.__piSessionListGeneration=(globalThis.__piSessionListGeneration??0)+1,globalThis.__piSessionListCache=void 0,_&&clearTimeout(_),_=setTimeout(()=>{_=null},300)}function F(){return globalThis.__piSessionListGeneration??0}function G(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}function H(){return globalThis.__piPathToSessionIdCache||(globalThis.__piPathToSessionIdCache=new Map),globalThis.__piPathToSessionIdCache}function I(a){return O(a)}let aa=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/;function J(){return(0,h.join)((0,e.getAgentDir)(),"sessions")}function K(a,b=(0,h.resolve)(J())){let c=(0,h.resolve)(a),d=(0,h.relative)(b,c);return""===d||".."===d||d.startsWith(`..${h.sep}`)||(0,h.isAbsolute)(d)?null:c}async function L(a){let b,c;if(!aa.test(a))return null;let d=(0,h.resolve)(J());try{b=await (0,g.readdir)(d,{withFileTypes:!0})}catch{return null}let e=`_${a}.jsonl`;for(let f of b){let b;if(!f.isDirectory()&&!f.isSymbolicLink())continue;let i=K((0,h.join)(d,f.name),d);if(i){try{b=await (0,g.readdir)(i)}catch{continue}for(let f of b){if(!f.endsWith(e))continue;let b=K((0,h.join)(i,f),d);if(b){try{if(T(b)?.id!==a)continue}catch{continue}if(c&&c!==b)return null;c=b}}}}return c??null}function M(){return globalThis.__piSmCache||(globalThis.__piSmCache=new Map),globalThis.__piSmCache}function N(a){let b=M();void 0===a?b.clear():b.delete((0,m.$)(a))}function O(a,b={}){if(b.mutable)return e.SessionManager.open(a,void 0);let c=M(),d=(0,m.$)(a),g=function(a){try{let b=(0,f.statSync)(a);return{fingerprint:`${b.size}:${b.mtimeMs}`,bytes:b.size}}catch{return null}}(a);if(null===g)return c.delete(d),e.SessionManager.open(a,void 0);let h=c.get(d);if(h&&h.fingerprint===g.fingerprint)return c.delete(d),c.set(d,h),h.sm;let i=e.SessionManager.open(a,void 0);if(g.bytes>0x4000000)return c.delete(d),i;c.set(d,{sm:i,fingerprint:g.fingerprint,bytes:g.bytes});let j=0;for(let a of c.values())j+=a.bytes;for(;c.size>12||j>0x10000000;){let a=c.keys().next().value;if(void 0===a)break;j-=c.get(a)?.bytes??0,c.delete(a)}return i}async function P(a){let b=G().get(a);if(b)return b;let c=await L(a);return c?R(a,c):await D(),G().get(a)??null}async function Q(a){let b=(0,m.$)(a),c=H().get(b);if(c)return c;let d=function(a){if(!a.endsWith(".jsonl"))return;let b=K(a);if(b)try{let a=T(b)?.id;if(!a)return;return R(a,b),a}catch{return}}(a);return d||(await D(),H().get(b))}function R(a,b){let c=(0,h.normalize)(b),d=G(),e=H(),f=d.get(a),g=e.get(c);f&&f!==c&&e.get(f)===a&&e.delete(f),g&&g!==a&&d.get(g)===c&&d.delete(g),d.set(a,c),e.set(c,a);let i=G();for(;i.size>4096;){let a=i.keys().next().value;if(void 0===a)break;S(a)}}function S(a){let b=G(),c=H(),d=b.get(a);b.delete(a),d&&c.get(d)===a&&c.delete(d)}function T(a){let b=u(a,65536,1)[0]?.trimEnd();if(!b)return null;try{let a=JSON.parse(b);return"session"===a.type?a:null}catch{return null}}function U(a){return O(a).getEntries()}function V(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if("model_change"===c.type)return{provider:c.provider,modelId:c.modelId}}return null}function W(a,b,c={}){let{tail:d,excludeLeaf:e}=c,f=null===b?[]:X(a,b??null,d&&d>0?d:a.length,e),g=!!(d&&d>0&&f[0]?.parentId),h=[],j=[];for(let a of f){let b=function(a,b){switch(a.type){case"message":{if("system"===a.message.role)return null;let c=b.deferToolResultImages?function(a,b,c){if("toolResult"!==a.role)return a;let d=0,e=0,f=new Set,g=a.content.flatMap((a,g)=>{let h=function(a){let b,c;if(!Z(a)||"image"!==a.type||("string"==typeof a.data?(b=a.data,c="string"==typeof a.mimeType?a.mimeType:void 0):Z(a.source)&&"base64"===a.source.type&&"string"==typeof a.source.data&&(b=a.source.data,c="string"==typeof a.source.media_type?a.source.media_type:void 0),!b))return null;let d=b.endsWith("==")?2:+!!b.endsWith("=");return{bytes:Math.max(0,Math.floor(3*b.length/4)-d),mime:c}}(a);if(!h)return[a];if(b&&h.mime&&n.Ng.has(h.mime)&&h.bytes>0&&h.bytes<=n.cY){let a={type:"url",media_type:h.mime,url:`/api/sessions/${encodeURIComponent(b)}/entries/${encodeURIComponent(c)}/tool-result-image?blockIndex=${g}`};return[{type:"image",source:a}]}return d+=1,e+=h.bytes,h.mime&&f.add(h.mime),[]});if(0===d)return{...a,content:g};let h=f.size>0?`: ${[...f].join(", ")}`:"";return g.push({type:"text",text:`[${d} tool result image${1===d?"":"s"} omitted from initial history payload${h}, ~${e} bytes]`}),{...a,content:g}}((0,i.B)(a.message),b.sessionId,a.id):(0,i.B)(a.message),d="assistant"===c.role?c.content:void 0;if("string"==typeof d&&(c={...c,content:[{type:"text",text:d}]}),!b.deferThinking||"assistant"!==c.role)return c;let e=c.content;return{...c,content:e.map(a=>"thinking"===a.type&&""!==a.thinking.trim()?{...a,thinking:(0,k.de)(a.thinking),deferred:!0}:a)}}case"compaction":return{role:"custom",customType:"compaction",content:a.summary,display:!0,details:{tokensBefore:a.tokensBefore,firstKeptEntryId:a.firstKeptEntryId},timestamp:Y(a.timestamp)};case"branch_summary":if(!a.summary)return null;return{role:"user",content:`*The conversation briefly explored another branch and returned with this summary:*
|
|
6
|
+
`),{...c,name:m,displayName:q,description:s,systemPrompt:t,tools:n,...o.length>0?{extensionTools:o}:{},loadSkills:x,loadExtensions:y,...w?{model:w}:{model:void 0},...p?{maxTurns:p}:{maxTurns:void 0},promptMode:z,...c.color?{color:c.color}:{},...c.isolation?{isolation:c.isolation}:{},...void 0!==c.persistSession?{persistSession:c.persistSession}:{},scope:b,filePath:B}}function F(a,b,c){let d=C(c),e=(0,h.join)(D(a,b),`${d}.md`);(0,g.existsSync)(e)&&(0,g.unlinkSync)(e)}function G(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function H(a){let b=a.find(a=>"custom"===a.type&&a.customType===M);if(!b||"custom"!==b.type||!G(b.data))return null;let c=b.data;return 1!==c.version||"string"!=typeof c.parentSessionId||"string"!=typeof c.parentSessionPath?null:c}function I(a){let b=H(a);if(!b)return null;let c=b.resourceSnapshot,d=G(c)&&!0===c.loadSkills,e=G(c)&&!0===c.loadExtensions;return G(c)&&1===c.version&&Array.isArray(c.appendSystemPrompt)&&c.appendSystemPrompt.every(a=>"string"==typeof a)&&Array.isArray(c.tools)&&c.tools.every(a=>"string"==typeof a&&a.length>0&&!S.has(a)&&(R.has(a)||e))?{appendSystemPrompt:[...c.appendSystemPrompt],tools:[...new Set(c.tools)],loadSkills:d,loadExtensions:e,..."string"==typeof c.exactSystemPrompt?{exactSystemPrompt:c.exactSystemPrompt}:{}}:null}function J(a,b){return[...new Set([...a,...[...b].filter(a=>!S.has(a))])]}function K(a,b){let c=b.map(a=>a.slice(4).toLowerCase());return[...a].flatMap(a=>{let b=a.path.replaceAll("\\","/").split("/").at(-2)??a.path,d=(a.sourceInfo?.source??"").replace(/^npm:/,""),e=new Set([b.toLowerCase(),d.toLowerCase()]);return c.some(b=>{if("*"===b)return!0;let[c,d]=b.split("/",2);return e.has(c)&&(!d||a.tools.has(d))})?[...a.tools.keys()].filter(a=>c.some(b=>{if("*"===b||b.endsWith("/*"))return"*"===b||e.has(b.slice(0,-2));let[c,d]=b.split("/",2);return e.has(c)&&(!d||d===a)})):[]})}function L(a,b,c){let d=H(a);if(!d)return null;let e=[...a].reverse().find(a=>"custom"===a.type&&(a.customType===O||a.customType===N)),f=e?.type==="custom"&&e.customType===O?e:void 0,g=f?.type==="custom"&&G(f.data)?f.data:void 0,h=e?.type==="custom"&&e.customType===N?e:void 0,i=h?.type==="custom"&&G(h.data)?h.data:void 0,j=g&&("completed"===g.status||"failed"===g.status||"aborted"===g.status)?g.status:i?.version===1&&("queued"===i.status||"running"===i.status)?i.status:"interrupted";return{sessionId:b,sessionPath:c,parentSessionId:d.parentSessionId,parentToolCallId:"string"==typeof d.parentToolCallId?d.parentToolCallId:"",profile:"string"==typeof d.profile?d.profile:"general-purpose",description:"string"==typeof d.description?d.description:"Subagent",task:"string"==typeof d.task?d.task:"",runInBackground:!0===d.runInBackground,status:j,createdAt:"string"==typeof d.createdAt?d.createdAt:"",...g&&"string"==typeof g.completedAt?{completedAt:g.completedAt}:{},...g&&"string"==typeof g.result?{result:g.result}:{},...g&&"string"==typeof g.error?{error:g.error}:{},..."string"==typeof d.worktreePath?{worktreePath:d.worktreePath}:{},..."string"==typeof d.worktreeBranch?{worktreeBranch:d.worktreeBranch}:{},...g&&"string"==typeof g.worktreeCleanupError?{worktreeCleanupError:g.worktreeCleanupError}:{}}}d()}catch(a){d(a)}})},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},12039:(a,b,c)=>{"use strict";function d(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function e(a){return function(a,b={}){if("assistant"!==a.role)return a;let c=a.content;if(!Array.isArray(c))return a;let e=c.map(a=>(function(a,b={}){if(!d(a)||"toolCall"!==a.type)return null;let c={type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input},e=b.includeStreamingRawInput?function(a){if("string"==typeof a.rawInput)return a.rawInput;if("string"==typeof a.partialJson)return a.partialJson;if("string"==typeof a.partialArgs)return a.partialArgs;let b=d(a.customInput)?a.customInput:null,c=b&&"string"==typeof b.property?b.property:null,e=d(a.arguments)?a.arguments:null;return c&&e&&"string"==typeof e[c]?e[c]:void 0}(a):void 0;return void 0===e?c:{...c,rawInput:e}})(a,b)??a);return{...a,content:e}}(a)}c.d(b,{B:()=>e})},20495:(a,b,c)=>{"use strict";c.d(b,{_:()=>j,j:()=>i});var d=c(73024),e=c(80974),f=c.n(e),g=c(8102);let h={realpath:!1,retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function i(a,b){if(!(0,d.existsSync)(a))return b(void 0);try{return b(JSON.parse((0,d.readFileSync)(a,"utf8")))}catch{return b(void 0)}}async function j(a,b,c){let d=null,e=await f().lock(a,{...h,onCompromised:a=>{d=a}});try{if(d)throw d;let e=i(a,b),f=await c(e);if(d)throw d;if(!f||"object"!=typeof f||!("value"in f))throw Error(`${a} mutation must return { value }`);if(!1===f.changed)return{value:f.value,changed:!1};if((0,g.$)(a,JSON.stringify(f.value,null,2)),d)throw d;return{value:f.value,changed:!0}}finally{e().catch(()=>{})}}},21898:(a,b,c)=>{"use strict";c.d(b,{yv:()=>f});var d=c(90426);let e=/^(?:\uFEFF)?---[ \t]*(?:\r\n|\n|\r)/;function f(a){let b=function(a){let b=e.exec(a);if(!b)return null;let c=/^---[ \t]*(?:(?:\r\n|\n|\r)|$)/gm;c.lastIndex=b[0].length;let d=c.exec(a);return d?{yaml:a.slice(b[0].length,d.index).replace(/(?:\r\n|\n|\r)$/,""),rest:a.slice(d.index+d[0].length)}:null}(a);if(!b)return{data:null,rest:a};try{let a=(0,d.Hh)(b.yaml);if(a&&"object"==typeof a&&!Array.isArray(a))return{data:a,rest:b.rest}}catch{}return{data:null,rest:b.rest}}},24923:(a,b,c)=>{"use strict";c.d(b,{IL:()=>w,KI:()=>p,P9:()=>s,l:()=>v,xw:()=>u});var d=c(79646),e=c(29021),f=c(33873),g=c(28354),h=c(25252),i=c(58864);let j=(0,g.promisify)(d.execFile);function k(){return globalThis.__piProjectCache||(globalThis.__piProjectCache=new Map),globalThis.__piProjectCache}let l=0;function m(){globalThis.__piProjectCache?.clear(),globalThis.__piProjectCacheGeneration=(globalThis.__piProjectCacheGeneration??0)+1,globalThis.__piProjectRefresh?.clear()}async function n(a,b,c=1e4){let{stdout:d}=await j("git",["-C",a,...b],{timeout:c,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return d.trim()}function o(a){try{return(0,e.realpathSync)(a)}catch{return a}}async function p(a){!function(){let a=Date.now();if(a-l<6e4)return;l=a;let b=k();for(let[c,d]of b)d.expiresAt<=a&&b.delete(c)}();let b=k(),c=b.get(a),d=Date.now();if(c&&c.expiresAt>d)return c.info;if(c)return function(a){let b=globalThis.__piProjectRefresh??=new Map;if(b.has(a))return;let c=globalThis.__piProjectCacheGeneration??0,d=q(a).then(b=>{(globalThis.__piProjectCacheGeneration??0)===c&&k().set(a,{info:b,expiresAt:Date.now()+6e4})}).catch(()=>{}).finally(()=>{b.get(a)===d&&b.delete(a)});b.set(a,d)}(a),c.info;let e=await q(a);return b.set(a,{info:e,expiresAt:Date.now()+6e4}),e}async function q(a){let b;try{if(!(0,e.existsSync)(a))return function(a){let b=(0,f.dirname)(a);if(!b.endsWith("-worktrees"))return null;let c=b.slice(0,-10);return c&&(0,e.existsSync)((0,f.join)(c,".git"))?{projectRoot:o(c),branch:(0,f.basename)(a),isWorktree:!0,isTopLevel:!0}:null}(a)??{projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1};let[c,d,g,h]=(await n(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),[j,k,l]=[c,d,g].map(i.gB),m=o(a),p=(0,i.Eb)(l,m),q=!(0,i.Eb)(k,j)&&p,r=q?(0,f.dirname)(j):l;b={projectRoot:p?o(r):a,branch:h&&"HEAD"!==h?h:null,isWorktree:q,isTopLevel:p}}catch{b={projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1}}return b}async function r(a){let b=await n(a,["rev-parse","--path-format=absolute","--git-common-dir"]);return o((0,f.dirname)((0,i.gB)(b)))}async function s(a){let b=await n(a,["worktree","list","--porcelain"]),c=[],d=null,f=()=>{d?.path&&!d.prunable&&(0,e.existsSync)(d.path)&&c.push({path:d.path,branch:d.branch??null,isMain:0===c.length}),d=null};for(let a of b.split("\n"))a.startsWith("worktree ")?(f(),d={path:(0,i.gB)(a.slice(9).trim())}):a.startsWith("branch ")&&d?d.branch=a.slice(7).trim().replace(/^refs\/heads\//,""):a.startsWith("prunable")&&d?d.prunable=!0:""===a.trim()&&f();return f(),c}function t(a,b){return a.find(a=>(0,i.Eb)(a.path,b))}function u(a,b){return t(a,o(b))?.path??null}async function v(a,b){let c=b.trim();if(!c)throw Error("Branch name is required");let d=c.replace(/[\/\\:*?"<>|\s]+/g,"-").replace(/^-+|-+$/g,"");if(!d)throw Error(`Invalid branch name: ${b}`);let g=await r(a),i=`${(0,f.resolve)(g)}-worktrees`,j=(0,f.join)(i,d);if((0,e.existsSync)(j))throw Error(`Directory already exists: ${j}`);(0,e.mkdirSync)(i,{recursive:!0});let k=!1;try{await n(g,["rev-parse","--verify","--quiet",`refs/heads/${c}`]),k=!0}catch{k=!1}try{if(k)await n(g,["worktree","add","--",j,c],3e5);else{let a;try{await n(g,["rev-parse","--verify","--quiet",`refs/remotes/origin/${c}`]),a=`refs/remotes/origin/${c}`}catch{a=void 0}let b=["worktree","add","-b",c,"--",j];a&&b.push(a),await n(g,b,3e5)}}catch(a){throw Error(x(a))}return(0,h.wz)(j),m(),{path:j,branch:c}}async function w(a,b,c=!1){let d=t(await s(a),b);if(!d)throw Error(`Not a worktree of this repository: ${b}`);if(d.isMain)throw Error("Cannot remove the main worktree");try{await n(a,["worktree","remove",...c?["--force"]:[],d.path])}catch(a){throw Error(x(a))}(0,h.sM)(b),m()}function x(a){let b=a.stderr;return"string"==typeof b&&b.trim()?b.trim():a instanceof Error?a.message:String(a)}},25252:(a,b,c)=>{"use strict";c.d(b,{HM:()=>f,Nw:()=>e,sM:()=>h,wz:()=>g});var d=c(58864);function e(a){return(0,d.W3)(a)}function f(){return globalThis.__piAdditionalAllowedRoots||(globalThis.__piAdditionalAllowedRoots=new Set),globalThis.__piAdditionalAllowedRoots}function g(a){if(!a)return;let b=e(a);f().add(b),globalThis.__piAllowedRootsCache?.roots.add(b)}function h(a){if(!a)return;let b=e(a);f().delete(b),globalThis.__piAllowedRootsCache=void 0}},27367:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{M6:()=>k,N:()=>o,Q$:()=>n,UF:()=>s,UM:()=>r,ef:()=>p,hd:()=>m,o9:()=>q});var e=c(73024),f=c(76760),g=c(75430),h=c(8102),i=a([g]);g=(i.then?(await i)():i)[0];let s=32;function j(a){if(!Array.isArray(a))return[];let b=[],c=new Set;for(let d of a){if("string"!=typeof d)continue;let a=d.trim(),e=a.toLowerCase();!a||c.has(e)||(c.add(e),b.push(a))}return b}function k(a=(0,g.getAgentDir)()){return(0,f.join)(a,"agents","settings.json")}function l(a){if(!(0,e.existsSync)(a))return{};let b=JSON.parse((0,e.readFileSync)(a,"utf8"));if(null===b||"object"!=typeof b||Array.isArray(b))throw Error("Invalid subagent settings: expected an object");return b}function m(a=k()){var b,c,d,e;let f=l(a);return c=!0===f.builtInEnabled,b=f.maxConcurrent,d="number"==typeof b&&Number.isInteger(b)&&b>=1&&b<=s?b:10,e=j(f.disabledBuiltIns),Object.defineProperty({builtInEnabled:c,disabledBuiltIns:e},"maxConcurrent",{value:d,enumerable:!1,configurable:!0})}function n(a=k()){try{return new Set(m(a).disabledBuiltIns.map(a=>a.toLowerCase()))}catch{return new Set}}function o(a=k()){try{return m(a).builtInEnabled}catch{return!1}}function p(a,b=k()){let c=l(b);return(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,h.$)(b,JSON.stringify({...c,version:1,builtInEnabled:a},null,2)),m(b)}function q(a,b,c=k()){let d=a.trim();if(!d)throw Error("Sub-agent name is required");let g=l(c),i=j(g.disabledBuiltIns),n=d.toLowerCase(),o=i.some(a=>a.toLowerCase()===n);if(b===o)return m(c);let p=b?o?i:[...i,d]:i.filter(a=>a.toLowerCase()!==n);return(0,e.mkdirSync)((0,f.dirname)(c),{recursive:!0}),(0,h.$)(c,JSON.stringify({...g,version:1,disabledBuiltIns:p},null,2)),m(c)}function r(a,b=k()){if(!Number.isInteger(a)||a<1||a>s)throw Error(`maxConcurrent must be an integer between 1 and ${s}`);let c=l(b);return(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,h.$)(b,JSON.stringify({...c,version:1,maxConcurrent:a},null,2)),m(b)}d()}catch(a){d(a)}})},40239:(a,b,c)=>{"use strict";c.d(b,{JJ:()=>h,Lc:()=>i,w_:()=>j});var d=c(76760),e=c(20495);function f(a){return(0,d.join)(a,"session-archive.json")}function g(a){let b={};if(!a||"object"!=typeof a||Array.isArray(a))return b;for(let[c,d]of Object.entries(a)){if(!c||!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.archivedAt;b[c]={archivedAt:"string"==typeof a?a:""}}return b}function h(a){return(0,e.j)(f(a),g)}async function i(a,b,c){let{value:d}=await (0,e._)(f(a),g,a=>{if(c)return a[b]?{value:a,changed:!1}:{value:{...a,[b]:{archivedAt:new Date().toISOString()}}};if(!(b in a))return{value:a,changed:!1};let d={...a};return delete d[b],{value:d}});return d}async function j(a,b){await i(a,b,!1)}},40402:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>e.getAgentDir,BR:()=>S,D5:()=>I,DK:()=>U,G1:()=>O,H6:()=>x,O5:()=>z,O8:()=>R,Uv:()=>W,Vg:()=>V,bA:()=>F,dQ:()=>D,eP:()=>T,j6:()=>N,mD:()=>E,os:()=>P,rJ:()=>C,u1:()=>Q,zH:()=>y});var e=c(75430),f=c(29021),g=c(79748),h=c(33873),i=c(12039),j=c(67264),k=c(50880),l=c(74244),m=c(45902),n=c(79535),o=c(24923),p=c(6999),q=c(40239),r=c(7048),s=c(766),t=a([e,p,r,s]);[e,p,r,s]=t.then?(await t)():t;let $=s.q8,_=null;function u(a,b,c){let d=(0,f.openSync)(a,"r");try{let a=[],e=0,g=0,h=!1;for(;e<b&&g<c;){let i=Buffer.allocUnsafe(Math.min(4096,b-e)),j=(0,f.readSync)(d,i,0,i.length,e);if(0===j){h=!0;break}e+=j;let k=i.subarray(0,j),l=k.length;for(let a=0;a<k.length;a+=1)if(10===k[a]&&(g+=1)===c){l=a+1;break}a.push(k.subarray(0,l))}let i=Buffer.concat(a).toString("utf8"),j=i.split("\n");return h||i.endsWith("\n")||j.pop(),""===j.at(-1)&&j.pop(),j.map(a=>a.endsWith("\r")?a.slice(0,-1):a)}finally{(0,f.closeSync)(d)}}function v(a,b){let c=(0,f.openSync)(a,"r");try{let a=(0,f.fstatSync)(c).size,d=Math.max(0,a-b),e=Buffer.allocUnsafe(a-d),g=(0,f.readSync)(c,e,0,e.length,d);if(0===g)return[];let h=e.subarray(0,g).toString("utf8").split("\n");if(d>0){let a=Buffer.allocUnsafe(1);(0,f.readSync)(c,a,0,1,d-1),10!==a[0]&&h.shift()}return""===h.at(-1)&&h.pop(),h.map(a=>a.endsWith("\r")?a.slice(0,-1):a)}finally{(0,f.closeSync)(c)}}function w(a){return a.flatMap(a=>{try{return[JSON.parse(a)]}catch{return[]}})}function x(a){let b;if(a){try{b=v(a,65536)}catch{return}for(let a=b.length-1;a>=0;a-=1){let c=function(a){try{let b=JSON.parse(a);if("session"===b.type)return;return"string"==typeof b.id&&b.id?b.id:void 0}catch{return}}(b[a]);if(c)return c}}}async function y(a){let b=[...new Set(a.map(a=>a.cwd).filter(Boolean))],c=new Map;return await Promise.all(b.map(async a=>{c.set(a,await (0,o.KI)(a))})),a.map(a=>{let b=a.cwd?c.get(a.cwd):void 0,d=b?.projectRoot??a.cwd;return{...a,projectRoot:d,projectKey:(0,l.z)(d),...b?.branch?{branch:b.branch}:{},...b?.isWorktree?{isWorktree:!0}:{}}})}function z(a,b){let c=new Map(b.map(a=>[a.id,a]));for(let b of a)c.set(b.id,b);return[...c.values()].sort((a,b)=>b.modified.localeCompare(a.modified))}async function A(a){let b=(0,p.Tu)(),c=Array.isArray(b.sessionPins)?b.sessionPins:[],d=new Set(c.filter(a=>"string"==typeof a)),f=(0,q.JJ)((0,e.getAgentDir)()),g=new Map;for(let b of a)g.set((0,m.$)(b.path),b.id);return y(a.map(a=>(function(a,b,c){R(a.id,a.path);let{originSessionId:d,subagent:e}=function(a,b){let c=a.parentSessionPath?b.get((0,m.$)(a.parentSessionPath)):void 0;if(!a.parentSessionPath)return{originSessionId:c,subagent:null};try{var d;let b,e=(0,r.$u)((d=a.path,(b=w(u(d,262144,400).slice(1))).some(a=>"custom"===a.type&&a.customType===r.tP)?[...b,...w(v(d,262144))]:b),a.id,a.path);return{originSessionId:c,subagent:e}}catch{return{originSessionId:c,subagent:null}}}(a,b),f=!0===a.detailsPending;return{path:a.path,id:a.id,cwd:a.cwd,name:a.name,created:a.created.toISOString(),modified:a.modified.toISOString(),messageCount:a.messageCount,firstMessage:f&&!a.firstMessage?"":(0,j.CS)(a.firstMessage||"(no messages)").slice(0,300),parentSessionId:d,...e?{relation:{kind:"subagent",parentSessionId:e.parentSessionId,profile:e.profile,description:e.description,status:e.status,...e.createdAt?{createdAt:e.createdAt}:{},...e.completedAt?{completedAt:e.completedAt}:{}}}:a.parentSessionPath?{relation:{kind:"fork",...d?{originSessionId:d}:{}}}:{},transient:!1,...f?{detailsPending:!0}:{},pinned:c.pinSet.has(a.id),archived:!!c.archive[a.id],...c.archive[a.id]?{archivedAt:c.archive[a.id].archivedAt}:{},importedFrom:a.importedFrom}})(a,g,{pinSet:d,archive:f})))}async function B(){let a=globalThis.__piListSessionsOverride??$;return A(await a())}async function C(){return A(await (0,s.q8)({deferDetails:!0}))}async function D(a={}){a.force&&E();let b=globalThis.__piSessionListGeneration??0,c=globalThis.__piSessionListCache;if(c&&c.generation===b&&Date.now()-c.ts<1e4)return c.data;let d=globalThis.__piSessionListStaleData;if(a.allowStale&&(c||d))return D().catch(()=>void 0),c?.data??d;if(globalThis.__piSessionListPromise&&globalThis.__piSessionListPromiseGeneration===b)return globalThis.__piSessionListPromise;let e=B().then(a=>(globalThis.__piSessionListGeneration??0)!==b?D():(globalThis.__piSessionListCache={data:a,ts:Date.now(),generation:b},globalThis.__piSessionListStaleData=a,a)).finally(()=>{globalThis.__piSessionListPromise===e&&(globalThis.__piSessionListPromise=void 0,globalThis.__piSessionListPromiseGeneration=void 0)});return globalThis.__piSessionListPromise=e,globalThis.__piSessionListPromiseGeneration=b,e}function E(){let a=globalThis.__piSessionListCache;a&&(globalThis.__piSessionListStaleData=a.data),globalThis.__piSessionListGeneration=(globalThis.__piSessionListGeneration??0)+1,globalThis.__piSessionListCache=void 0,_&&clearTimeout(_),_=setTimeout(()=>{_=null},300)}function F(){return(0,s.jr)(J(),E),globalThis.__piSessionListGeneration??0}function G(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}function H(){return globalThis.__piPathToSessionIdCache||(globalThis.__piPathToSessionIdCache=new Map),globalThis.__piPathToSessionIdCache}function I(a){return O(a)}let aa=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/;function J(){return(0,h.join)((0,e.getAgentDir)(),"sessions")}function K(a,b=(0,h.resolve)(J())){let c=(0,h.resolve)(a),d=(0,h.relative)(b,c);return""===d||".."===d||d.startsWith(`..${h.sep}`)||(0,h.isAbsolute)(d)?null:c}async function L(a){let b,c;if(!aa.test(a))return null;let d=(0,h.resolve)(J());try{b=await (0,g.readdir)(d,{withFileTypes:!0})}catch{return null}let e=`_${a}.jsonl`;for(let f of b){let b;if(!f.isDirectory()&&!f.isSymbolicLink())continue;let i=K((0,h.join)(d,f.name),d);if(i){try{b=await (0,g.readdir)(i)}catch{continue}for(let f of b){if(!f.endsWith(e))continue;let b=K((0,h.join)(i,f),d);if(b){try{if(T(b)?.id!==a)continue}catch{continue}if(c&&c!==b)return null;c=b}}}}return c??null}function M(){return globalThis.__piSmCache||(globalThis.__piSmCache=new Map),globalThis.__piSmCache}function N(a){let b=M();void 0===a?b.clear():b.delete((0,m.$)(a))}function O(a,b={}){if(b.mutable)return e.SessionManager.open(a,void 0);let c=M(),d=(0,m.$)(a),g=function(a){try{let b=(0,f.statSync)(a);return{fingerprint:`${b.size}:${b.mtimeMs}`,bytes:b.size}}catch{return null}}(a);if(null===g)return c.delete(d),e.SessionManager.open(a,void 0);let h=c.get(d);if(h&&h.fingerprint===g.fingerprint)return c.delete(d),c.set(d,h),h.sm;let i=e.SessionManager.open(a,void 0);if(g.bytes>0x4000000)return c.delete(d),i;c.set(d,{sm:i,fingerprint:g.fingerprint,bytes:g.bytes});let j=0;for(let a of c.values())j+=a.bytes;for(;c.size>12||j>0x10000000;){let a=c.keys().next().value;if(void 0===a)break;j-=c.get(a)?.bytes??0,c.delete(a)}return i}async function P(a){let b=G().get(a);if(b)return b;let c=await L(a);return c?R(a,c):await D(),G().get(a)??null}async function Q(a){let b=(0,m.$)(a),c=H().get(b);if(c)return c;let d=function(a){if(!a.endsWith(".jsonl"))return;let b=K(a);if(b)try{let a=T(b)?.id;if(!a)return;return R(a,b),a}catch{return}}(a);return d||(await D(),H().get(b))}function R(a,b){let c=(0,h.normalize)(b),d=G(),e=H(),f=d.get(a),g=e.get(c);f&&f!==c&&e.get(f)===a&&e.delete(f),g&&g!==a&&d.get(g)===c&&d.delete(g),d.set(a,c),e.set(c,a);let i=G();for(;i.size>4096;){let a=i.keys().next().value;if(void 0===a)break;S(a)}}function S(a){let b=G(),c=H(),d=b.get(a);b.delete(a),d&&c.get(d)===a&&c.delete(d)}function T(a){let b=u(a,65536,1)[0]?.trimEnd();if(!b)return null;try{let a=JSON.parse(b);return"session"===a.type?a:null}catch{return null}}function U(a){return O(a).getEntries()}function V(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if("model_change"===c.type)return{provider:c.provider,modelId:c.modelId}}return null}function W(a,b,c={}){let{tail:d,excludeLeaf:e}=c,f=null===b?[]:X(a,b??null,d&&d>0?d:a.length,e),g=!!(d&&d>0&&f[0]?.parentId),h=[],j=[];for(let a of f){let b=function(a,b){switch(a.type){case"message":{if("system"===a.message.role)return null;let c=b.deferToolResultImages?function(a,b,c){if("toolResult"!==a.role)return a;let d=0,e=0,f=new Set,g=a.content.flatMap((a,g)=>{let h=function(a){let b,c;if(!Z(a)||"image"!==a.type||("string"==typeof a.data?(b=a.data,c="string"==typeof a.mimeType?a.mimeType:void 0):Z(a.source)&&"base64"===a.source.type&&"string"==typeof a.source.data&&(b=a.source.data,c="string"==typeof a.source.media_type?a.source.media_type:void 0),!b))return null;let d=b.endsWith("==")?2:+!!b.endsWith("=");return{bytes:Math.max(0,Math.floor(3*b.length/4)-d),mime:c}}(a);if(!h)return[a];if(b&&h.mime&&n.Ng.has(h.mime)&&h.bytes>0&&h.bytes<=n.cY){let a={type:"url",media_type:h.mime,url:`/api/sessions/${encodeURIComponent(b)}/entries/${encodeURIComponent(c)}/tool-result-image?blockIndex=${g}`};return[{type:"image",source:a}]}return d+=1,e+=h.bytes,h.mime&&f.add(h.mime),[]});if(0===d)return{...a,content:g};let h=f.size>0?`: ${[...f].join(", ")}`:"";return g.push({type:"text",text:`[${d} tool result image${1===d?"":"s"} omitted from initial history payload${h}, ~${e} bytes]`}),{...a,content:g}}((0,i.B)(a.message),b.sessionId,a.id):(0,i.B)(a.message),d="assistant"===c.role?c.content:void 0;if("string"==typeof d&&(c={...c,content:[{type:"text",text:d}]}),!b.deferThinking||"assistant"!==c.role)return c;let e=c.content;return{...c,content:e.map(a=>"thinking"===a.type&&""!==a.thinking.trim()?{...a,thinking:(0,k.de)(a.thinking),deferred:!0}:a)}}case"compaction":return{role:"custom",customType:"compaction",content:a.summary,display:!0,details:{tokensBefore:a.tokensBefore,firstKeptEntryId:a.firstKeptEntryId},timestamp:Y(a.timestamp)};case"branch_summary":if(!a.summary)return null;return{role:"user",content:`*The conversation briefly explored another branch and returned with this summary:*
|
|
7
7
|
|
|
8
|
-
${a.summary}`,timestamp:Y(a.timestamp)};case"custom_message":return{role:"custom",customType:a.customType,content:a.content,display:a.display,details:a.details,timestamp:Y(a.timestamp)};default:return null}}(a,c);b&&(h.push(b),j.push(a.id))}return{messages:h,entryIds:j,oldestEntryId:f[0]?.id??null,hasMore:g,...function(a,b){let c,d;if(null===b)return{thinkingLevel:"off",model:null};let e=X(a,b??null,a.length);for(let a=e.length-1;a>=0&&(void 0===c||void 0===d);a--){let b=e[a];if(void 0===c&&"thinking_level_change"===b.type&&(c=b.thinkingLevel),void 0===d&&"message"===b.type&&"assistant"===b.message.role){let a=b.message;"string"==typeof a.provider&&"string"==typeof a.model&&(d={provider:a.provider,modelId:a.model})}}return{thinkingLevel:c??"off",model:V(e)??d??null}}(a,b)}}function X(a,b,c,d=!1){if(c<=0)return a;let e=new Map;for(let b of a)e.set(b.id,b);let f=b?e.get(b):a[a.length-1];if(d&&(f=f?.parentId?e.get(f.parentId):void 0),!f)return[];let g=[],h=f,i=0,j=Math.max(200,6*c);for(;h&&(g.push(h),function(a){if("compaction"===a.type)return!0;if("message"!==a.type)return!1;let b=a.message?.role;return"user"===b||"assistant"===b}(h)&&i++,!(i>=c)&&!(g.length>=j));)h=h.parentId?e.get(h.parentId):void 0;return g.reverse(),g}function Y(a){let b=Date.parse(a);return Number.isNaN(b)?void 0:b}function Z(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}d()}catch(a){d(a)}})},41761:(a,b,c)=>{"use strict";c.d(b,{C1:()=>e,kU:()=>d});let d=["read","grep","find","ls"],e=["bash","read","edit","write","grep","find","ls"];[...e]},45902:(a,b,c)=>{"use strict";c.d(b,{$:()=>f});var d=c(76760),e=c.n(d);function f(a,b=process.platform){let c="win32"===b?e().win32.normalize(a):e().posix.normalize(a);return"win32"===b?c.toLowerCase():c}},50880:(a,b,c)=>{"use strict";function d(a){return a.trimStart().match(/^[^\r\n]{0,240}/u)?.[0].trimEnd()??""}c.d(b,{de:()=>d})},58864:(a,b,c)=>{"use strict";c.d(b,{A_:()=>h,Eb:()=>k,W3:()=>j,gB:()=>i,pJ:()=>g,uK:()=>f});var d=c(33873);let e=/^[a-zA-Z]:[\\/]/;function f(a){return e.test(a)||a.startsWith("\\\\")||a.startsWith("//")}function g(a){let b=a.trim().match(/^([a-zA-Z]):(?:[\\/](.*))?$/);if(b){let a=b[1].toLowerCase(),c=(b[2]??"").replace(/\\/g,"/");return c?`/mnt/${a}/${c}`:`/mnt/${a}`}return a}function h(a){let b=a.join("/"),c=j(b);return/^[a-zA-Z]:$/.test(c)?`${c}/`:f(c)?c:"/"+b.replace(/^\/+/,"")}function i(a){return a&&"win32"===process.platform?(0,d.normalize)(a):a}function j(a){return a.replace(/\\/g,"/")}function k(a,b){return a===b||!!a&&!!b&&"win32"===process.platform&&i(a).toLowerCase()===i(b).toLowerCase()}},67264:(a,b,c)=>{"use strict";c.d(b,{CS:()=>l,MJ:()=>k,Md:()=>g,UY:()=>h,g0:()=>j,wI:()=>i});let d="normal",e="full",f="auto";function g(){return{collaborationMode:d,tokenMode:e,toolApprovalMode:f,permissionRules:{allow:[],ask:[],deny:[]}}}function h(a){return"normal"===a||"plan"===a||"goal"===a?a:d}function i(a){return"economy"===a||"delivery"===a||"full"===a?a:e}function j(a){return"ask"===a||"auto"===a||"yolo"===a?a:f}let k=new Set(["read","grep","find","ls","bash_output","get_tools","get_commands","get_session_stats"]);function l(a){if(!a)return"";let b=a.replace(/^\uFEFF/,""),c=b;if((b=b.replace(/<(?:economy|delivery|goal)-profile>\n?[\s\S]*?<\/(?:economy|delivery|goal)-profile>\n*(?:Goal:\s*[^\n]*\n?)?/g,""))===c){let a=/^\s*<(?:economy|delivery|goal)-profile>\s*/.exec(b);if(a){let c=b.slice(a[0].length).match(/^[^.]*?\.\s+([\s\S]*)$/);b=c?c[1]:""}}return(b=b.replace(/^You are in PLAN MODE\.[\s\S]*?\n(?=\n|$)/,"")).replace(/^\s*\n/,"").trimStart()}},74244:(a,b,c)=>{"use strict";c.d(b,{z:()=>f});var d=c(76760),e=c.n(d);function f(a,b=process.platform){if(!a)return a;let c="win32"===b?e().win32:e().posix,d=c.normalize(a),g=c.parse(d).root.length,h=d.length;for(;h>g&&d[h-1]===c.sep;)h--;let i=d.slice(0,h);return"win32"===b?i.toLowerCase():i}},78335:()=>{},79535:(a,b,c)=>{"use strict";c.d(b,{Ng:()=>e,cY:()=>d});let d=0xa00000,e=new Set(["image/png","image/jpeg","image/webp","image/gif","image/bmp","image/avif"])},82536:(a,b,c)=>{"use strict";c.d(b,{
|
|
8
|
+
${a.summary}`,timestamp:Y(a.timestamp)};case"custom_message":return{role:"custom",customType:a.customType,content:a.content,display:a.display,details:a.details,timestamp:Y(a.timestamp)};default:return null}}(a,c);b&&(h.push(b),j.push(a.id))}return{messages:h,entryIds:j,oldestEntryId:f[0]?.id??null,hasMore:g,...function(a,b){let c,d;if(null===b)return{thinkingLevel:"off",model:null};let e=X(a,b??null,a.length);for(let a=e.length-1;a>=0&&(void 0===c||void 0===d);a--){let b=e[a];if(void 0===c&&"thinking_level_change"===b.type&&(c=b.thinkingLevel),void 0===d&&"message"===b.type&&"assistant"===b.message.role){let a=b.message;"string"==typeof a.provider&&"string"==typeof a.model&&(d={provider:a.provider,modelId:a.model})}}return{thinkingLevel:c??"off",model:V(e)??d??null}}(a,b)}}function X(a,b,c,d=!1){if(c<=0)return a;let e=new Map;for(let b of a)e.set(b.id,b);let f=b?e.get(b):a[a.length-1];if(d&&(f=f?.parentId?e.get(f.parentId):void 0),!f)return[];let g=[],h=f,i=0,j=Math.max(200,6*c);for(;h&&(g.push(h),function(a){if("compaction"===a.type)return!0;if("message"!==a.type)return!1;let b=a.message?.role;return"user"===b||"assistant"===b}(h)&&i++,!(i>=c)&&!(g.length>=j));)h=h.parentId?e.get(h.parentId):void 0;return g.reverse(),g}function Y(a){let b=Date.parse(a);return Number.isNaN(b)?void 0:b}function Z(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}d()}catch(a){d(a)}})},41761:(a,b,c)=>{"use strict";c.d(b,{C1:()=>e,kU:()=>d});let d=["read","grep","find","ls"],e=["bash","read","edit","write","grep","find","ls"];[...e]},45902:(a,b,c)=>{"use strict";c.d(b,{$:()=>f});var d=c(76760),e=c.n(d);function f(a,b=process.platform){let c="win32"===b?e().win32.normalize(a):e().posix.normalize(a);return"win32"===b?c.toLowerCase():c}},50880:(a,b,c)=>{"use strict";function d(a){return a.trimStart().match(/^[^\r\n]{0,240}/u)?.[0].trimEnd()??""}c.d(b,{de:()=>d})},58864:(a,b,c)=>{"use strict";c.d(b,{A_:()=>h,Eb:()=>k,W3:()=>j,gB:()=>i,pJ:()=>g,uK:()=>f});var d=c(33873);let e=/^[a-zA-Z]:[\\/]/;function f(a){return e.test(a)||a.startsWith("\\\\")||a.startsWith("//")}function g(a){let b=a.trim().match(/^([a-zA-Z]):(?:[\\/](.*))?$/);if(b){let a=b[1].toLowerCase(),c=(b[2]??"").replace(/\\/g,"/");return c?`/mnt/${a}/${c}`:`/mnt/${a}`}return a}function h(a){let b=a.join("/"),c=j(b);return/^[a-zA-Z]:$/.test(c)?`${c}/`:f(c)?c:"/"+b.replace(/^\/+/,"")}function i(a){return a&&"win32"===process.platform?(0,d.normalize)(a):a}function j(a){return a.replace(/\\/g,"/")}function k(a,b){return a===b||!!a&&!!b&&"win32"===process.platform&&i(a).toLowerCase()===i(b).toLowerCase()}},67264:(a,b,c)=>{"use strict";c.d(b,{CS:()=>l,MJ:()=>k,Md:()=>g,UY:()=>h,g0:()=>j,wI:()=>i});let d="normal",e="full",f="auto";function g(){return{collaborationMode:d,tokenMode:e,toolApprovalMode:f,permissionRules:{allow:[],ask:[],deny:[]}}}function h(a){return"normal"===a||"plan"===a||"goal"===a?a:d}function i(a){return"economy"===a||"delivery"===a||"full"===a?a:e}function j(a){return"ask"===a||"auto"===a||"yolo"===a?a:f}let k=new Set(["read","grep","find","ls","bash_output","get_tools","get_commands","get_session_stats"]);function l(a){if(!a)return"";let b=a.replace(/^\uFEFF/,""),c=b;if((b=b.replace(/<(?:economy|delivery|goal)-profile>\n?[\s\S]*?<\/(?:economy|delivery|goal)-profile>\n*(?:Goal:\s*[^\n]*\n?)?/g,""))===c){let a=/^\s*<(?:economy|delivery|goal)-profile>\s*/.exec(b);if(a){let c=b.slice(a[0].length).match(/^[^.]*?\.\s+([\s\S]*)$/);b=c?c[1]:""}}return(b=b.replace(/^You are in PLAN MODE\.[\s\S]*?\n(?=\n|$)/,"")).replace(/^\s*\n/,"").trimStart()}},74244:(a,b,c)=>{"use strict";c.d(b,{z:()=>f});var d=c(76760),e=c.n(d);function f(a,b=process.platform){if(!a)return a;let c="win32"===b?e().win32:e().posix,d=c.normalize(a),g=c.parse(d).root.length,h=d.length;for(;h>g&&d[h-1]===c.sep;)h--;let i=d.slice(0,h);return"win32"===b?i.toLowerCase():i}},78335:()=>{},79535:(a,b,c)=>{"use strict";c.d(b,{Ng:()=>e,cY:()=>d});let d=0xa00000,e=new Set(["image/png","image/jpeg","image/webp","image/gif","image/bmp","image/avif"])},82536:(a,b,c)=>{"use strict";c.d(b,{TU:()=>i,o4:()=>h,xk:()=>j});var d=c(29021),e=c(33873),f=c.n(e),g=c(58864);function h(a,b){for(let c of b){let b=(0,g.uK)(a)||(0,g.uK)(c),d=b?f().win32:f(),e=b?"\\":f().sep,h=d.resolve(a),i=d.resolve(c),j=b?h.toLowerCase():h,k=b?i.toLowerCase():i,l=k.endsWith(e)?k:k+e;if(j===k||j.startsWith(l))return!0}return!1}function i(a){let b="win32"===process.platform||(0,g.uK)(a)?/[\\/]/:"/";return a.split(b).includes("..")}function j(a,b){let c;if(i(a))return!1;try{c=(0,d.realpathSync)(a)}catch{return!1}return h(c,function(a){let b=new Set;for(let c of a)try{b.add((0,d.realpathSync)(c))}catch{}return b}(b))}},96487:()=>{}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=5725,exports.ids=[5725],exports.modules={19038:(a,b,c)=>{c.d(b,{CU:()=>l,S7:()=>u});var d=c(79646),e=c(79748),f=c(21820),g=c(33873),h=c(28354);let i=process.env.SKILLS_API_URL||"https://skills.sh",j=(0,h.promisify)(d.execFile);class k extends Error{constructor(a){super(`HTTP ${a}`),this.status=a}}function l(a){let b=n(a.skillPath??""),c=b?`${a.source}/${b}`:a.source,d=a.ref?`#${encodeURIComponent(a.ref)}`:"",e=["skills","add",`${c}${d}`,"--skill",m(a.package),"-y","--agent","pi"];return"global"===a.scope&&e.push("-g"),e}function m(a){let b=a.lastIndexOf("@");return b>=0?a.slice(b+1):a}function n(a){let b=a.replace(/\\/g,"/");return b.toLowerCase().endsWith("/skill.md")?b=b.slice(0,-9):b.toLowerCase().endsWith("skill.md")&&(b=b.slice(0,-8)),b.replace(/\/$/,"")}function o(a,b,c,d){return{package:a.package,scope:a.scope,state:b,currentVersion:a.versionHash,latestVersion:c,message:d}}async function p(a,b,c){let d=await b(a,{cache:"no-store",headers:c,signal:AbortSignal.timeout(15e3)});if(!d.ok)throw new k(d.status);return d.json()}async function q(a){let b=`https://github.com/${a.source}.git`,c=a.ref||"HEAD",d=n(a.skillPath),h=await (0,e.mkdtemp)((0,g.join)((0,f.tmpdir)(),"pi-web-skill-check-"));try{await j("git",["init","--bare",h],{timeout:3e4}),await j("git",[`--git-dir=${h}`,"fetch","--depth=1","--filter=blob:none","--no-tags",b,c],{timeout:3e4});let a=d?`FETCH_HEAD:${d}`:"FETCH_HEAD^{tree}",{stdout:e}=await j("git",[`--git-dir=${h}`,"rev-parse",a],{timeout:3e4}),f=e.trim();if(!/^[0-9a-f]{40}$/i.test(f))throw Error("Invalid Git tree hash");return f}finally{await (0,e.rm)(h,{recursive:!0,force:!0})}}async function r(a,b){let c,d=a.ref||"HEAD",e=`https://api.github.com/repos/${a.source}/git/trees/${encodeURIComponent(d)}?recursive=1`,f={Accept:"application/vnd.github.v3+json","User-Agent":"pi-web"};b.githubToken&&(f.Authorization=`Bearer ${b.githubToken}`);let g=n(a.skillPath);try{let a=await p(e,b.fetcher,f);if(c="string"!=typeof a.sha||g?void 0:a.sha,g&&Array.isArray(a.tree)){let b=a.tree.find(a=>"tree"===a.type&&a.path===g);b&&"string"==typeof b.sha&&(c=b.sha)}}catch(d){if(!(d instanceof k)||![401,403,429].includes(d.status))throw d;c=await b.resolveGitTreeHash(a)}return c?o(a,c===a.versionHash?"up-to-date":"update-available",c):o(a,"error",void 0,"Remote skill path was not found.")}async function s(a,b){let[c,d]=a.source.split("/"),e=m(a.package).toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,""),f=`${b.skillsApiBase}/api/download/${encodeURIComponent(c)}/${encodeURIComponent(d)}/${encodeURIComponent(e)}`,g=await p(f,b.fetcher),h="string"==typeof g.hash?g.hash:void 0;return h?o(a,h===a.versionHash?"up-to-date":"update-available",h):o(a,"error",void 0,"skills.sh did not return a version hash.")}async function t(a,b={}){if(!a.canCheckForUpdates||!a.versionHash||!a.skillPath)return o(a,"unsupported",void 0,"This lock entry cannot be checked automatically.");let c={...b,fetcher:b.fetcher??fetch,skillsApiBase:b.skillsApiBase??i,resolveGitTreeHash:b.resolveGitTreeHash??q};try{return"global"===a.scope?await r(a,c):await s(a,c)}catch(b){return o(a,"error",void 0,b instanceof Error?b.message:String(b))}}async function u(a,b={}){let c=b.fetcher??fetch,d=new Map,e=async(a,b)=>{let e=d.get(a);return e||(e=c(a,b),d.set(a,e)),(await e).clone()};return Promise.all(a.map(a=>t(a,{...b,fetcher:e})))}},21278:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{y:()=>i});var e=c(75430),f=c(75805),g=c(72498),h=a([e,g]);async function i(a){let b=(0,e.getAgentDir)(),c=new e.DefaultResourceLoader({cwd:a,agentDir:b});await c.reload((0,g.Fk)(a,b));let{skills:d,diagnostics:h}=c.getSkills();return{skills:(0,f._)(d,{cwd:a,agentDir:b}),diagnostics:h,projectResourcesLoaded:(0,g.Y1)(a,b).trusted}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},72498:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){return a&&(0,e.hasTrustRequiringProjectResources)(a)?{requiresTrust:!0,trusted:!0===new e.ProjectTrustStore(b).get(a)}:{requiresTrust:!1,trusted:!0}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},75805:(a,b,c)=>{c.d(b,{_:()=>j});var d=c(29021),e=c(21820),f=c(33873);function g(a){try{let b=JSON.parse((0,d.readFileSync)(a,"utf8"));return b.skills&&"object"==typeof b.skills?b.skills:{}}catch{return{}}}function h(a,b){let c=(0,f.relative)((0,f.resolve)(b),(0,f.resolve)(a));return""!==c&&".."!==c&&!c.startsWith(`..${f.sep}`)&&!(0,f.isAbsolute)(c)}function i(a,b,c){var d;let e=function(a,b){if(a[b])return a[b];let c=b.toLowerCase(),d=Object.keys(a).find(a=>a.toLowerCase()===c);return d?a[d]:void 0}(a,b);if(!e||"string"!=typeof e.source||!e.source.trim())return;let f="string"==typeof e.sourceType?e.sourceType:void 0,g=(d=e.source.trim(),"github"!==f?d.replace(/\/$/,""):d.replace(/^git\+/,"").replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/\.git$/,"").replace(/\/$/,""));if(!g)return;let h="string"==typeof e.skillPath?e.skillPath:void 0,i="string"==typeof e.ref?e.ref:void 0,j="global"===c?e.skillFolderHash:e.computedHash,k="string"==typeof j&&j?j:void 0,l="github"===f&&/^[\w.-]+\/[\w.-]+$/.test(g);return{package:`${g}@${b}`,scope:c,source:g,sourceType:f,skillsShUrl:"local"===f?void 0:function(a,b){if(!a||a.includes("://")||a.startsWith("git@"))return;let c=a.split("/").filter(Boolean).map(encodeURIComponent).join("/");if(c)return`https://skills.sh/${c}/${encodeURIComponent(b)}`}(g,b),...h&&{skillPath:h},...i&&{ref:i},...k&&{versionHash:k},canCheckForUpdates:!!(l&&h&&k&&("global"===c||!i))}}function j(a,{cwd:b,agentDir:c,globalLockPath:k=function({homeDir:a=(0,e.homedir)(),xdgStateHome:b=process.env.XDG_STATE_HOME}={}){return b?(0,f.join)(b,"skills",".skill-lock.json"):(0,f.join)(a,".agents",".skill-lock.json")}(),projectLockPath:l=(0,f.join)(b,"skills-lock.json")}){let m=g(k),n=g(l),o=(0,f.join)(c,"skills"),p=(0,f.join)(b,".pi","skills");return a.map(a=>{if(!(0,d.existsSync)(a.filePath))return a;let b=h(a.filePath,o)?i(m,a.name,"global"):h(a.filePath,p)?i(n,a.name,"project"):void 0;return b?{...a,install:b}:a})}},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.
|
|
1
|
+
"use strict";exports.id=5725,exports.ids=[5725],exports.modules={19038:(a,b,c)=>{c.d(b,{CU:()=>l,S7:()=>u});var d=c(79646),e=c(79748),f=c(21820),g=c(33873),h=c(28354);let i=process.env.SKILLS_API_URL||"https://skills.sh",j=(0,h.promisify)(d.execFile);class k extends Error{constructor(a){super(`HTTP ${a}`),this.status=a}}function l(a){let b=n(a.skillPath??""),c=b?`${a.source}/${b}`:a.source,d=a.ref?`#${encodeURIComponent(a.ref)}`:"",e=["skills","add",`${c}${d}`,"--skill",m(a.package),"-y","--agent","pi"];return"global"===a.scope&&e.push("-g"),e}function m(a){let b=a.lastIndexOf("@");return b>=0?a.slice(b+1):a}function n(a){let b=a.replace(/\\/g,"/");return b.toLowerCase().endsWith("/skill.md")?b=b.slice(0,-9):b.toLowerCase().endsWith("skill.md")&&(b=b.slice(0,-8)),b.replace(/\/$/,"")}function o(a,b,c,d){return{package:a.package,scope:a.scope,state:b,currentVersion:a.versionHash,latestVersion:c,message:d}}async function p(a,b,c){let d=await b(a,{cache:"no-store",headers:c,signal:AbortSignal.timeout(15e3)});if(!d.ok)throw new k(d.status);return d.json()}async function q(a){let b=`https://github.com/${a.source}.git`,c=a.ref||"HEAD",d=n(a.skillPath),h=await (0,e.mkdtemp)((0,g.join)((0,f.tmpdir)(),"pi-web-skill-check-"));try{await j("git",["init","--bare",h],{timeout:3e4}),await j("git",[`--git-dir=${h}`,"fetch","--depth=1","--filter=blob:none","--no-tags",b,c],{timeout:3e4});let a=d?`FETCH_HEAD:${d}`:"FETCH_HEAD^{tree}",{stdout:e}=await j("git",[`--git-dir=${h}`,"rev-parse",a],{timeout:3e4}),f=e.trim();if(!/^[0-9a-f]{40}$/i.test(f))throw Error("Invalid Git tree hash");return f}finally{await (0,e.rm)(h,{recursive:!0,force:!0})}}async function r(a,b){let c,d=a.ref||"HEAD",e=`https://api.github.com/repos/${a.source}/git/trees/${encodeURIComponent(d)}?recursive=1`,f={Accept:"application/vnd.github.v3+json","User-Agent":"pi-web"};b.githubToken&&(f.Authorization=`Bearer ${b.githubToken}`);let g=n(a.skillPath);try{let a=await p(e,b.fetcher,f);if(c="string"!=typeof a.sha||g?void 0:a.sha,g&&Array.isArray(a.tree)){let b=a.tree.find(a=>"tree"===a.type&&a.path===g);b&&"string"==typeof b.sha&&(c=b.sha)}}catch(d){if(!(d instanceof k)||![401,403,429].includes(d.status))throw d;c=await b.resolveGitTreeHash(a)}return c?o(a,c===a.versionHash?"up-to-date":"update-available",c):o(a,"error",void 0,"Remote skill path was not found.")}async function s(a,b){let[c,d]=a.source.split("/"),e=m(a.package).toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,""),f=`${b.skillsApiBase}/api/download/${encodeURIComponent(c)}/${encodeURIComponent(d)}/${encodeURIComponent(e)}`,g=await p(f,b.fetcher),h="string"==typeof g.hash?g.hash:void 0;return h?o(a,h===a.versionHash?"up-to-date":"update-available",h):o(a,"error",void 0,"skills.sh did not return a version hash.")}async function t(a,b={}){if(!a.canCheckForUpdates||!a.versionHash||!a.skillPath)return o(a,"unsupported",void 0,"This lock entry cannot be checked automatically.");let c={...b,fetcher:b.fetcher??fetch,skillsApiBase:b.skillsApiBase??i,resolveGitTreeHash:b.resolveGitTreeHash??q};try{return"global"===a.scope?await r(a,c):await s(a,c)}catch(b){return o(a,"error",void 0,b instanceof Error?b.message:String(b))}}async function u(a,b={}){let c=b.fetcher??fetch,d=new Map,e=async(a,b)=>{let e=d.get(a);return e||(e=c(a,b),d.set(a,e)),(await e).clone()};return Promise.all(a.map(a=>t(a,{...b,fetcher:e})))}},21278:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{y:()=>i});var e=c(75430),f=c(75805),g=c(72498),h=a([e,g]);async function i(a){let b=(0,e.getAgentDir)(),c=new e.DefaultResourceLoader({cwd:a,agentDir:b});await c.reload((0,g.Fk)(a,b));let{skills:d,diagnostics:h}=c.getSkills();return{skills:(0,f._)(d,{cwd:a,agentDir:b}),diagnostics:h,projectResourcesLoaded:(0,g.Y1)(a,b).trusted}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},72498:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){return a&&(0,e.hasTrustRequiringProjectResources)(a)?{requiresTrust:!0,trusted:!0===new e.ProjectTrustStore(b).get(a)}:{requiresTrust:!1,trusted:!0}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},75805:(a,b,c)=>{c.d(b,{_:()=>j});var d=c(29021),e=c(21820),f=c(33873);function g(a){try{let b=JSON.parse((0,d.readFileSync)(a,"utf8"));return b.skills&&"object"==typeof b.skills?b.skills:{}}catch{return{}}}function h(a,b){let c=(0,f.relative)((0,f.resolve)(b),(0,f.resolve)(a));return""!==c&&".."!==c&&!c.startsWith(`..${f.sep}`)&&!(0,f.isAbsolute)(c)}function i(a,b,c){var d;let e=function(a,b){if(a[b])return a[b];let c=b.toLowerCase(),d=Object.keys(a).find(a=>a.toLowerCase()===c);return d?a[d]:void 0}(a,b);if(!e||"string"!=typeof e.source||!e.source.trim())return;let f="string"==typeof e.sourceType?e.sourceType:void 0,g=(d=e.source.trim(),"github"!==f?d.replace(/\/$/,""):d.replace(/^git\+/,"").replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/\.git$/,"").replace(/\/$/,""));if(!g)return;let h="string"==typeof e.skillPath?e.skillPath:void 0,i="string"==typeof e.ref?e.ref:void 0,j="global"===c?e.skillFolderHash:e.computedHash,k="string"==typeof j&&j?j:void 0,l="github"===f&&/^[\w.-]+\/[\w.-]+$/.test(g);return{package:`${g}@${b}`,scope:c,source:g,sourceType:f,skillsShUrl:"local"===f?void 0:function(a,b){if(!a||a.includes("://")||a.startsWith("git@"))return;let c=a.split("/").filter(Boolean).map(encodeURIComponent).join("/");if(c)return`https://skills.sh/${c}/${encodeURIComponent(b)}`}(g,b),...h&&{skillPath:h},...i&&{ref:i},...k&&{versionHash:k},canCheckForUpdates:!!(l&&h&&k&&("global"===c||!i))}}function j(a,{cwd:b,agentDir:c,globalLockPath:k=function({homeDir:a=(0,e.homedir)(),xdgStateHome:b=process.env.XDG_STATE_HOME}={}){return b?(0,f.join)(b,"skills",".skill-lock.json"):(0,f.join)(a,".agents",".skill-lock.json")}(),projectLockPath:l=(0,f.join)(b,"skills-lock.json")}){let m=g(k),n=g(l),o=(0,f.join)(c,"skills"),p=(0,f.join)(b,".pi","skills");return a.map(a=>{if(!(0,d.existsSync)(a.filePath))return a;let b=h(a.filePath,o)?i(m,a.name,"global"):h(a.filePath,p)?i(n,a.name,"project"):void 0;return b?{...a,install:b}:a})}},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o4)(a,b)}function p(a,b){return(0,j.xk)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})}};
|